Fakultas Ilmu Komputer
Universitas Brawijaya
9929
Sistem Deteksi dan Klasifikasi Pergerakan Kepala Menggunakan
K-Nearest Neighbor
Nikmatus Soleha1, Dahnial Syauqy2, Eko Setiawan3
Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1nikmatussoleha95@gmail.com, 2dahnial87@ub.ac.id, 3ekosetiawan@ub.ac.id
Abstrak
Perkembangan teknologi dengan memanfaatkan pergerakan tubuh manusia berkembang sangat pesat. Salah satunya pada sebuah sistem kecerdasan buatan yang memanfaatkan pergerakan kepala untuk mengendalikan kursi roda berbasis embedded system. Pada penelitian tersebut, kepala bergerak sebagai kontrol untuk menggerakkan kursi roda. Penelitian serupa yang ada sebelumnya memunculkan beberapa kendala, salah satunya sistem tidak dapat digunakan semua pengguna dikarenakan dalam penentuan threshold diperoleh secara manual. Untuk mengatasi permasalahan tersebut, peneliti melakukan perancangan sistem dengan mengklasifikasi arah peregerakan kepala sesuai kelasnya menggunakan metode K-Nearest Neighbor (K-NN). Dengan ini diharapkan sistem dapat lebih fleksibel digunakan oleh pengguna. Sistem menggunakan sensor MPU6050 dan mikrokontroller ESP32 yang dirangkai berbentuk ikat kepala. Hasil yang didapat dari kalibrasi klasifikasi sistem ditampilkan pada serial monitor berupa kelas arah pergerakan kepala. Pengujian sistem dilakukan dengan empat kali percobaan pada tiap kelas pergerakan kepala, terdapat lima kelas golongan pergerakan kepala yang diuji. Lima kelas pergerakan kepala yang diuji yakni kelas tegak, miring kanan, miring kiri, menunduk serta mendongak. Berdasarkan hasil pengujian pada sistem ini, didapatkan tingkat akurasi data sebesar 95% terhadap klasifikasi K-Nearest Neighbor.
Kata kunci:
k-nearest neighbor, esp32, mpu6050, embedded system.
Abstract
The development of technology by utilizing the movement of the human body is developing very rapidly. One of them is an artificial intelligence system that utilizes head movements to control wheelchairs based on embedded systems. In that study, the head moved as a control to move a wheelchair. Previous similar research have raised several obstacles, one of which is the system is inflexible so that not all users can use it. To overcome these problems, researchers conducted a system design by calibrating the system so that it could classify the direction of head movement according to its class using the K-Nearest Neighbor (K-NN) method. With this, it is hoped that the system can be used more flexibly by users. The system uses MPU6050 sensor and ESP32 microcontroller which are arranged in the form of a headband. The results obtained from the system classification calibration are displayed on the serial monitor in the form of head movement class. The system testing was carried out with four experiments in each head movement class, there were five head movement classes tested. Based on the test results on this system, obtained an accuracy rate of 95% of the K-Nearest Neighbor classification.
Keywords: k-nearest neighbor, esp32, mpu6050, embedded system
.
1. PENDAHULUAN
Perkembangan dunia teknologi yang berperan dalam memenuhi kebutuhan kehidupan manusia pada zaman ini berkembang sangat pesat, terutama dengan memanfaatkan gerak tubuh manusia sebagai alat bantu untuk tujuan
tertentu pada sebuah sistem. Terdapat beberapa macam sistem yang memanfaatkan gerak tubuh manusia salah satunya adalah meggerakkan kursi roda. Terdapat beberapa jenis kursi roda yang menggunakan alat bantu kontroller salah satunya adalah memanfaatkan pergerakan kepala manusia sebagai kontroller kendali kursi
roda berbasis embedded system, sehingga dapat menjadikan alternatif lain selain menggunakan tangan (Ervanda, 2018). Penelitian yang dikerjakan (Ervanda, 2018) mekanismenya menggunakan sensor IMU yang berisi sensor
accelerometer dan gyroscope yang terletak
pada dahi pengguna dengan menggunakan metode complementary filter untuk mengurangi noise nilai yang dihasilkan oleh complementary filter. Namun terdapat kekurangan pada penelitian (Ervanda, 2018), dalam penentuan
threshold, diperoleh secara manual dengan
percabangan kode program if else dalam menentukan threshold arah pergerakan gestur kepala. Jadi sistem ini dapat dikatakan hanya dapat digunakan oleh satu pengguna, apabila terdapat pergantian pengguna harus memprogram ulang sistem sehingga tidak dapat digunakan semua pengguna. Dari kasus tersebut, peneliti akan melakukan pengembangan agar lebih fleksibel dapat digunakan semua pengguna dengan menambahkan kalibrasi pada sistem untuk secara otomatis dapat mengklasifikasi arah pergerakan kepala. Dalam penerapannya pada sistem ini ditambahkan metode K-Nearest
Neighbor untuk menentukan kelompok kelas
arah pergerakan kepala. Sistem yang dirancang oleh peneliti disini menggunakan sensor
accelerometer dan gyroscope sebagai pendeteksi pergerakan kepala pengguna. Terdapat lima kelas yang dideteksi yaitu kelas tegak, miring ke kanan, miring ke kiri, menunduk serta mendongak. Sistem ini diterapkan dengan dibantu menggunakan metode K-Nearest Neighbor untuk membedakan setiap kelompok kelas yang dihasilkan dari pergerakan kepala pengguna.
2. METODE
2.1 Gambaran Umum Sistem
Gambar 1 Gambaran Umum Sistem
Pada Gambar 1 diawali dari sensor MPU6050 untuk mendeteksi pergerakan kepala. Data dari sensor diproses pada mikrokontroller ESP32 dan diolah dengan complementary filter
untuk mengurangi noise data mentah dari sensor sehingga lebih stabil. Selanjutnya data diolah dengan KNN untuk dapat dilakukan pengkategorian golongan kelas dari data yang dihasilkan sesuai arah pergerakan kepala. Untuk pengiriman data, sistem mengirimkan data pada aplikasi handphone dengan perantara bluetooth ataupun ditampilkan pada serial monitor Arduino IDE.
2.2 Perancangan Perangkat Keras
Perancangan perangkat keras terdiri dari perancangan rangkaian perangkat keras dan implementasi yang ditunjukkan pada gambar 2 dan 3:
Gambar 2 Desain Pemasangan Alat
Pada Gambar 2 sistem dirancang berbentuk ikat kepala dan diletakkan tepat pada dahi pengguna. Pada bagian depan teradpat sensor MPU6050 yang merupakan perangkat utama dalam pengambilan nilai yang dihasilkan dari pergerakan kepala. Untuk bagian belakang terdapat ESP32 sebagai mikrokontroller dan battery sebagai sumber daya mikrokontroller. Untuk perancangan rangkaian perangkat keras ditunjukkan pada Gambar 3:
Gambar 3 Perancangan Rangkaian Perangkat Keras Pada gambar 3 menggunakan 4 pin yaitu SCL, SDA, VCC dan GND. Pin SCL dan SDA sebagai komunikasi I2C. Kedua pin
Fakultas Ilmu Komputer, Universitas Brawijaya
tersebut dihubungkan dengan MPU6050 dengan DI/GPIO5 dan D2/GPIO4, dimana pin DI dan D2 adalah pin default I2C pada ESP32.
2.3 Perancangan Perangkat Lunak
Gambar 4 Diagram Alir Perancangan Perangkat Lunak
Pada Gambar 4 menunjukkan tentang alur program yang diimplementasikan pada sistem. Dimulai dari inisialisasi pada library dan variabel sensor. Setelah itu sistem membaca nilai yang dihasilkan dari sensor MPU6050 saat pengguna menggerakkan kepala. Lalu dilakukan perhitungan sudut menggunakan
complmentary filter agar nilai yang dihasilkan
menjadi stabil. Data yang dihasilkan dari perhitungan complementary filter selanjutnya diolah dengan persamaan K-Nearest Neighbor untuk dapat menentukan kelas pengkategorian arah pergerakan kepala dengan melakukan
pengambilan nilai k yang paling dekat antara data uji dengan data latih.
Perhitungan mencari jarak euclidean pada KNN menggunakan persamaan 1:
d =√(𝑑𝑎𝑡𝑎𝑙𝑎𝑡𝑖ℎ(1) − 𝑑𝑎𝑡𝑎𝑢𝑗𝑖(1))² +
(𝑑𝑎𝑡𝑎𝑙𝑎𝑡𝑖ℎ(2)−𝑑𝑎𝑡𝑎𝑢𝑗𝑖(2))² (1)
Dimana data latih didapatkan terlebih dahulu dengan pengambilan data dari 36 pengguna lalu akan dibandingan dengan nilai yang didpatkan dari data uji untuk mencari jarak euclideannya.
2.4 Implementasi Perangkat Keras
Gambar 5 Implementasi Perangkat Keras Pada Gambar 5 menunjukkan implementasi perangkat keras yang berbentuk ikat kepala dengan menggunakan bahan webbing dan perekat agar dapat disesuaikan dengan jenis ukuran kepala pengguna. Pada bagian depan ikat kepala terpasang sensor MPU6050 unuk dapat mendeteksi adanya pergerakan kepala. Sedangkan pada bagian belakang terdapat ESP32 sebagai mikrokontroller dan baterai sebagai sumber daya.
3. PENGUJIAN
3.1. Pengujian hasil output Complementary filter
Pengujian ini dilakukan untuk membandingkan data yang didapatkan dari complementary filter dengan data asli dari sensor MPU6050 saat sistem digunakan untuk dapat mengetahui pengaruh output penggunaan complementary filter terhadap output sensor MPU6050. Pengujian ditunjukkan pada Gambar 6 dan 7 berikut:
Gambar 6 Nilai hasil Pengujian
Pada Gambar 6 menunjukkan terdapat nilai X dan Y yang didaptkan dari sensor serta nilai yang sudah di complementary filter. Nilai hasil complementary filter lebih stabil perubahannya, sehingga sistem mendapatkan nilai yang lebih akurat dan pasti.
Gambar 7 Serial Plotter Pengujian
Pada Gambar 7 menunjukkan grafik nilai asli yang dihasilkan dari sensor dan nilai yang sudah di complementary filter.
3.2. Pengujian meggunakan KNN
Pada Tabel 1 menunjukkan data latih yang diambil dari 36 pengguna dengan terdapat kategori usia, gender, tinggi serta berat badan. Terdapat lima kelas yang diambil yaitu tegak, miring kanan, miring kiri, menunduk, mendongak.
Tabel 1 Data Latih 36 Pengguna
No Nilai X Nilai Y Hasil Kelas
1 91.6 88.27 Tegak 2 80.05 92.88 Tegak 3 102.02 77.88 Tegak 4 91.04 82.89 Tegak 5 77.12 80.74 Tegak 6 101.86 103.16 Tegak 7 104.69 80.05 Tegak 8 86.26 94.16 Tegak 9 85.22 90.47 Tegak 10 83.77 83.06 Tegak ... 171 95.73 138.49 Mendongak 172 84.95 137.98 Mendongak 173 98.36 113.67 Mendongak 174 85.07 125.94 Mendongak 175 94.96 122.84 Mendongak 176 91.46 117.71 Mendongak 177 87.32 105.37 Mendongak 178 84.99 116.34 Mendongak 179 97.19 108.39 Mendongak 180 90.94 128.9 Mendongak
Tabel 2 Data Uji
No Nilai X Nilai Y
1 92.63 78.53
Setelah mendapatkan data uji dan data latih maka dilakukan perhitungan jarak euclidean dengan KNN menggunakan persamaan 1 untuk mencari nilai euclideannya. Tabel 3 menunjukkan hasil nilai euclidean yang sudah didapatkan:
Tabel 3 Hasil Nilai Euclidean
No Nilai Euclidean Hasil Kelas
1 42.60 Tegak 2 81.69 Miring Kanan 3 94.64 Miring Kiri 4 76.15 Menunduk 5 106.49 Mendongak 6 68.06 Tegak 7 99.60 Miring Kanan 8 103.02 Miring Kiri 9 69.64 Menunduk 10 118.98 Mendongak ... 170 93.41 Mendongak
Fakultas Ilmu Komputer, Universitas Brawijaya 171 44.96 Tegak 172 65.92 Miring Kanan 173 73.25 Miring Kiri 174 37.95 Menunduk 175 80.30 Mendongak 176 53.73 Tegak 177 87.64 Miring Kanan 178 107.80 Miring Kiri 179 62.39 Menunduk 180 103.73 Mendongak
Nilai euclidean yang sudah didaptkan selanjutnya diurutkan dari nilai terkecil ke terbesar. Tabel 4 menunjukkan nilai euclidean yang sudah diurutkan:
Tabel 4 Nilai Euclidean yang sudah diurutkan
No Nilai Euclidean Hasil Kelas
1 27.08 Tegak 2 30.67 Tegak 3 31.57 Tegak 4 31.86 Tegak 5 32.16 Tegak 6 33.28 Tegak 7 33.58 Menunduk 8 34.37 Tegak 9 35.38 Menunduk 10 36.92 Menunduk ... 170 112.66 Mendongak 171 113.07 Mendongak 172 114.84 Mendongak 173 114.93 Mendongak 174 115.89 Miring Kiri 175 116.61 Mendongak 176 118.12 Mendongak 177 118.98 Mendongak 178 119.31 Mendongak 179 119.70 Miring Kiri 180 122.73 Mendongak
Setelah nilai euclidean urut dari nilai terkecil ke terbesar, maka dilakukan pengambilan variabel k. Disini peneliti mengambil nilai k=5 untuk mencari nilai k
terbaik yang dapat menampilkan hasil sesuai kelas golongannya.Tabel 5 menunjukkan hasil pengambilan nilai K=5 dan ditemukan golongan pada K=5 adalah golongan Tegak.
Tabel 5 Pengambilan nilai K=5
3.3 Hasil Pengujian Akurasi KNN
Tahap ini peneliti melakukan pengambilan variabel k sebanyak k=3, k=5, k-7, k=9 pada setiap kelas yang ada dengan lima kali percobaan. Pada metode K-NN nilai k memiliki nilai ganjil seperti 3,5,7,9 dan seterusnya. Tujuan dilakukan akurasi untuk dapat mengetahui nilai k terbaik untuk dapat diterapkan pada sistem. Tabel 6 dan gambar 8 menunjukkan hasil pengujian sebanyak k:
Tabel 6 Hasil pengujian k
No Percob aan K = T e g a k K a n a n K i r i M e n u n d u k M e n d o n g a k Hasil Rata-rata 1 K = 3 2 0 % 4 0 % 6 0 % 2 0 % 8 0 % 44% 2 K = 5 1 0 0 % 1 0 0 % 1 0 0 % 1 0 0 % 1 0 0 % 100% 3 K = 7 2 0 % 4 0 % 8 0 % 6 0 % 6 0 % 52% 4 K = 9 2 0 % 2 0 % 6 0 % 4 0 % 2 0 % 32%
No Nilai Euclidean Hasil Kelas
1 27.08 Tegak
2 30.67 Tegak
3 31.57 Tegak
4 31.86 Tegak
Gambar 8 Grafik Hasil Pengujian KNN Dari tabel 6 dan gambar 8 dapat terlihat presentase yang didapatkan saat melakukan pengujian sebanyak k. Pada k=3 mengasilkan nilai sebesar 44%, k=5 menghasilkan nilai sebesar 100%, k=7 menghasilkan nilai sebesar 52%, k=9 menghasilkan nilai sebesar 32%. Sehingga dpaat disimpulkan nili k terbaik yang dapat diterapkan pada sistem adalah nilai k=5.
4. KESIMPULAN
Berdasarkan hasil pengujian serta implementasi yang telah dilakukan, maka dapat ditarik kesimpulan, Perancangan sistem dapat menampilkan hasil kalibrasi klasifikasi dengan menerapkan metode KNN. Penerapan metode KNN pada sistem dengan mengolah data latih sebanyak 180 data dengan lima kelas tegak, miring kanan, miring kiri, menunduk, mendongak berhasil diimplementasikan dengan perhitungan jarak euclidean pada KNN. Pengambilan variabel k=5 memperoleh nilai akurasi yang terbaik sebesar 100% dengan masing-masing pengujian sebanyak lima kali.
5. DAFTAR PUSTAKA
Arbianto, D. A., n.d. Kontrol Kursi Roda
Cerdas Menggunakan Kepala,
Semarang: Achmad Hidayanto.
Avizzano, C., n.d. Head Tracking based on
accelerometer sensors, Italy: s.n.
Electrobes, n.d. Electrobes. [Online]
Available at:
https://electrobes.com/product/mpu605 0-gy-521-6dof-3-axis-analog- gyro-sensor-3-axis-accelerometer-module/ [Accessed 18 Desember 2019].
Beta, R., n.d. Robotics Beta. [Online]
Available at:
https://robotics.stackexchange.com/una
nswered
[Accessed 18 Desember 2019].
rvanda, V. A., 2018. Pengembangan Sistem Deteksi Gerakan Kepala Sebagai Kontrol Pergerakan Kursi Roda Berbasis Embeded Sistem. j-ptiik.ub.ac.id, Volume Vol. 2, No. 1,
Januari 2018, pp. 333-341.
rvanda, V. A., 2018. Pengembangan Sistem Deteksi Gerakan Kepala Sebagai Kontrol Pergerakan Kursi Roda Berbasis Embeded Sistem. j-ptiik.ub.ac.id, Volume Vol. 2, No. 1,
Januari 2018, pp. 333-341.
Medicalogy, n.d. Medicalogy. [Online]
Available at:
https://www.medicalogy.com/blog/jenis -jenis-kursi-roda/
[Accessed 2019 Desember 2019]. eichelt, n.d. reichelt. [Online]
Available at: https://www.reichelt.com/ch/en/develop ment-boards-esp32-wi-fi-and- bluetooth-module-debo-jt-esp32-p219897.html [Accessed 18 Desember 2019]. 0% 20% 40% 60% 80% 100% K = 3 K = 5 K = 7 K = 9