DAFTAR PUSTAKA
Alex, D.S. & Wahi, A. 2014. BFSD: Background subtraction frame difference algorithm for moving object detection and extraction. Journal of Theoretical & Applied Information Technology 60(3): 623-628.
Amirani, M.C., Toorani, M. & Beheshti, A.A. 2008. A new approach to content-based file type detection. Proceedings of the 13th IEEE Symposium on Computers and Communications (ISCC’08), pp. 1103-1108.
Bengio, Y. 2009. Learning Deep Architectures for AI. Now: Netherland.
Bradski, G. & Kaehler, A. 2008. Learning OpenCV. O’Relly Media, Inc: Sebastopol.
Chairunnisa, T. 2015. Pengenalan gerakan tangan manusia untuk interaksi manusia-komputer. Skripsi. Universitas Sumatera Utara.
Deng, L. & Yu, D. 2014. Deep Learning Methods and Applications. 978-1-60198-814-0. Now: Netherland.
Dunteman, G.H. 1989. Principal Components Analysis. SAGE: Thousand Oaks.
Erhan, D., Szegedy, C., Toshev, A. & Anguelov, D. 2014. Scalable object detection using deep neural networks. IEEE Conference on Computer Vision and Pattern Recognition, pp. 2155-2162.
Haykin, S. 1999. Neural Networks: A Comprehensive Foundation. 2nd Edition. Prentice Hall: Upper Saddle River.
Heaton, J. 2015. Deep Learning and Neural Networks. Artificial Intelligence for Humans. Volume 3. Heaton Research, Inc.: Chesterfield.
Ivakhnenko, A. G. 1971. Polynomial theory of complex system. IEEE Transactions on Systems, Man, and Cybernetics 1(4): 364-378.
Jolliffe, I.T. 2002. Principal Component Analysis. Springer: London.
Kang, J. & Hayes, M.H. 2015. Face recognition for vehicle personalization with near-IR frame differencing and pose clustering. IEEE International Conference on Consumer Electronics (ICCE), pp. 455-456.
Malepati, H. 2010. Digital Media Processing. 978-1-85617-678-1. Elsevier: Burlington.
Molchanov, P., Gupta, S., Kim, K. & Kautz, J. 2015. Hand gesture recognition with 3D convolutional neural networks. IEEE Conference on Computer Vision and Pattern Recognition Workshops, pp. 1-7.
Negnevitsky, M. 2005. Artificial Intelligence: A Guide to Intelligent Systems. 2nd Edition. Pearson Education Limited: Upper Saddle River.
Neto, P., Pereira, D., Pires, J.N. & Moreira, A.P. 2013. Real-time and continuous hand gesture spotting: an approach based on artificial neural networks. IEEE International Conference on Robotic and Automation (ICRA), pp. 178-183. Ramjan, M.R., Sandip, R.M., Uttam, P.S. & Srimant, W.S. 2014. Dynamic hand
gesture recognition and detection for real time using human computer interaction. International Journal of Advance Research in Computer Science and Management Studies (IJARCSMS) 2(3): 425-430.
Safinaz, S. 2014. An efficient algorithm for image scaling with high boost filtering. International Journal of Scientific and Research Publications 4(5): 1-9.
Silver, D., Huang, A., Maddison, C.J., Guez, A., Sifre, L., Driessche, G., Schrittwieser, J., Antonoglou, I., Panneershelvam, V., Lanctot, M., Dieleman, S., Grewe, D., Nham, J., Kalchbrenner, N., Sutskever, I., Lilicrap, T., Leach, M., Kavukcuoglu, K., Graepel, T. & Hassabis, D. 2016. Mastering the game of go with deep neural networks and tree search. Nature, January 529: 484-489.
Tang, A., Lu, K., Wang, Y., Huang, J. & Li, H. 2013. A real-time hand posture recognition system using deep neural networks. ACM Transactions on Intelligent Systems and Technology 9(4): 39:1-21.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini akan membahas tentang implementasi metode yang digunakan untuk mengenali gerakan tangan manusia dalam interaksi manusia-komputer. Adapun dua tahapan yang dibahas pada bab ini yaitu tahap analisis dan tahap perancangan sistem. Analisis terhadap data yang digunakan dan analisis terhadap metode yang digunakan pada setiap langkah pemrosesan data akan dibahas pada tahap analisis. Perancangan tampilan antarmuka sistem akan dibahas pada tahap perancangan sistem.
3.1. Dataset
Data yang digunakan pada penelitian ini yaitu kumpulan video yang dikumpulkan dari
VIVA (Vision For Intelligent Vehicles and Appilications) dataset (diambil dari http://cvrr.ucsd.edu/vivachallenge/index.php/hands/hand-gestures/). Terdapat dua percobaan yang dilakukan dalam penelitian ini yakni:
1. Percobaan pertama
Dataset yang digunakan terdiri atas enam kelompok video gerakan tangan manusia yaitu video gerakan tangan kiri-kanan, video gerakan tangan kanan-kiri, video gerakan tangan atas-bawah, video gerakan tangan bawah-atas, video gerakan tangan depan-belakang dan video gerakan tangan belakang-depan. Total video yang dikumpulkan seluruhnya berjumlah 818. Detail video yang dikumpulkan untuk percobaan pertama dapat dilihat pada Tabel 3.1.
Video yang telah dikumpulkan dibagi menjadi dua dataset yaitu training dataset dan testing dataset. Training dataset atau data pelatihan digunakan untuk melatih DNN dan testing dataset atau data pengujian digunakan untuk menguji
data pengujian dilakukan secara acak. Detail pembagian dataset untuk percobaan pertama dapat dilihat pada Tabel 3.2 dan Tabel 3.3.
Tabel 3.1. Detail Video Data Penelitian Percobaan Pertama
Jenis video Banyak
Gerakan tangan kiri-kanan 134 81.400 248.000
Gerakan tangan kanan-kiri 140 89.000 238.000
Gerakan tangan atas-bawah 135 89.300 237.000
Gerakan tangan bawah-atas 133 86.000 199.000
Gerakan tangan belakang-depan 138 91.800 203.000 Gerakan tangan depan-belakang 138 764.000 3.790.000
Tabel 3.2. Detail Training Dataset Percobaan Pertama
Jenis video Banyak
Gerakan tangan kiri-kanan 108 81.400 248.000
Gerakan tangan kanan-kiri 112 89.000 238.000
Gerakan tangan atas-bawah 108 89.600 237.000
Gerakan tangan bawah-atas 107 86.000 199.000
Gerakan tangan belakang-depan 111 91.800 203.000 Gerakan tangan depan-belakang 111 764.000 3.790.000
Tabel 3.3. Detail Testing Dataset Percobaan Pertama
Jenis video Banyak
Gerakan tangan kiri-kanan 26 96.400 214.000
Gerakan tangan kanan-kiri 28 101.000 200.000
Gerakan tangan atas-bawah 27 89.300 226.000
Gerakan tangan bawah-atas 26 88.700 183.000
2. Percobaan kedua
Dataset yang digunakan terdiri atas empat kelompok video gerakan tangan manusia yaitu video gerakan tangan kiri-kanan, video gerakan tangan kanan-kiri, video gerakan tangan atas-bawah, dan video gerakan tangan bawah-atas. Total video yang dikumpulkan seluruhnya berjumlah 542. Detail video yang dikumpulkan untuk percobaan kedua dapat dilihat pada Tabel 3.4.
Video yang telah dikumpulkan dibagi menjadi dua dataset yaitu training dataset dan testing dataset. Seluruh dataset yang dibagi menjadi data pelatihan dan data pengujian dilakukan secara acak. Detail pembagian dataset untuk percobaan kedua dapat dilihat pada Tabel 3.5 dan Tabel 3.6.
Tabel 3.4. Detail Video Data Penelitian Percobaan Kedua
Jenis video Banyak
Gerakan tangan kiri-kanan 134 81.400 248.000
Gerakan tangan kanan-kiri 140 89.000 238.000
Gerakan tangan atas-bawah 135 89.300 237.000
Gerakan tangan bawah-atas 133 86.000 199.000
Tabel 3.5. Detail Training Dataset Percobaan Kedua
Jenis video Banyak
Gerakan tangan kiri-kanan 108 81.400 248.000
Gerakan tangan kanan-kiri 112 89.000 238.000
Gerakan tangan atas-bawah 108 89.600 237.000
Gerakan tangan bawah-atas 107 86.000 199.000
Tabel 3.6. Detail Testing Dataset Percobaan Kedua
Jenis video Banyak
Gerakan tangan kiri-kanan 26 96.400 214.000
Tabel 3.6. Detail Testing Dataset Percobaan Kedua (lanjutan)
Jenis video Banyak
video
Ukuran video minimum (byte)
Ukuran video maksimum (byte)
Gerakan tangan atas-bawah 27 89.300 226.000
Gerakan tangan bawah-atas 26 88.700 183.000
3.2. Analisis Sistem
Testing Dataset
3.2.1. Pemisahan video gerakan tangan menjadi beberapa frame gambar
Sebuah video pada dasarnya terdiri atas beberapa gambar. Dengan demikian, setiap video gerakan tangan yang telah direkam harus dipisahkan terlebih dahulu menjadi beberapa frame gambar sebelum digunakan sebagai input untuk DNN.
3.2.2. Perkecil ukuran gambar menggunakan algoritma neareset neighbor
Ukuran setiap gambar dikecilkan menjadi 50 x 23 menggunakan algoritma nearest neighbor yang telah dibahas pada bagian 2.1. Adapun tujuan dari pengecilan ukuran gambar adalah untuk mengurangi jumlah parameter yang akan digunakan sebagai
3.2.3. Grayscaling
Setelah ukuran gambar dikecilkan, dilakukan proses grayscaling pada gambar.
Grayscalling adalah proses mengubah citra berwarna menjadi citra keabuan. Piksel gambar yang pada awalnya terdiri atas RGB (Red Green Blue) akan diubah menjadi satu nilai gray melalui proses grayscaling dengan menggunakan persamaan 2.1. Proses grayscaling juga bertujuan untuk mengurangi jumlah parameter yang akan digunakan oleh DNN sehingga dapat mempercepat proses pelatihan.
3.2.4. Frame differencing
Frame differencing akan dilakukan pada setiap frame gambar yang telah melalui setiap proses sebelumnya menggunakan persamaan 2.4. Proses frame differencing
dilakukan untuk setiap gambar dengan gambar pertama sebagai pembeda, dengan tujuan untuk menyederhanakan gambar-gambar yang ada dengan menghilangkan
background yang tidak relevan.
Dari kumpulan gambar yang telah melalui proses frame differencing dipilih empat gambar. Pemilihan empat gambar dilakukan dengan selang gambar sebanyak total gambar yang telah melalui proses frame differencing dibagi dengan lima untuk tiga gambar pertama dan untuk gambar keempat yang dipilih yakni gambar dengan indeks paling akhir dari total gambar yang telah melalui proses frame differencing, dimana gambar pertama yang telah melalui proses frame differencing tidak diambil karena gambar pertama berwarna hitam. Hal ini disebabkan karena gambar yang dilakukan
frame differencing dengan gambar itu sendiri tidak memiliki perbedaan sehingga hasil
frame differencing berwarna hitam sepenuhnya.
3.2.5. Principal Component Analysis (PCA)
Empat gambar frame differencing yang telah dipilih kemudian akan dilakukan proses
PCA sesuai dengan langkah-langkah yang telah dibahas pada bagian 2.4. Proses PCA
disimpan karena pada data pengujian serta data baru akan menggunakan parameter operasi yang sama pada data pelatihan.
3.2.6. Implementasi Deep Neural Network
Training dataset dan testing dataset yang telah melalui seluruh pre-proses akan digunakan untuk melatih dan menguji Deep Neural Network (DNN). DNN yang diimplementasikan merupakan Feed-forward Neural Network dan dilatih menggunakan metode backpropagation. Langkah-langkah yang dilakukan pada metode backpropagation dapat dilihat pada bagian 2.7. Adapun parameter pelatihan yang digunakan untuk DNN pada percobaan dengan enam jenis gerakan tangan pada penelitian ini dapat dilihat pada Tabel 3.7 dan parameter pelatihan untuk percobaan dengan empat jenis gerakan tangan pada penelitian ini dapat dilihat pada Tabel 3.8.
Tabel 3.7. Nilai Parameter DNN pada Percobaan dengan Enam Gerakan Tangan
Parameter Nomor percobaan
1 2 3 4 5
Banyak neuron pada input layer 523 523 523 523 523
Banyak neuron pada output layer 6 6 6 6 6
Banyak hidden layer 2 2 3 3 4
Banyak neuron pada hidden layer pertama 250 300 200 300 300 Banyak neuron pada hidden layer kedua 50 50 100 150 150 Banyak neuron pada hidden layer ketiga - - 50 75 100 Banyak neuron pada hidden layer keempat - - - - 75
Learning rate 0,01 0,01 0,01 0,01 0,01
Momentum rate 0,0 0,0 0,0 0,0 0,0
Maksimum Epoch 1000 1000 1000 1000 1000
Tabel 3.8. Nilai Parameter DNN pada Percobaan dengan Empat Gerakan Tangan
Parameter Nomor percobaan
1 2 3 4 5
Banyak neuron pada input layer 365 365 365 365 365
Banyak neuron pada output layer 4 4 4 4 4
Banyak hidden layer 2 2 3 3 4
Banyak neuron pada hidden layer pertama 250 300 200 300 300 Banyak neuron pada hidden layer kedua 50 50 100 150 150 Banyak neuron pada hidden layer ketiga - - 50 75 100 Banyak neuron pada hidden layer keempat - - - - 75
Learning rate 0,01 0,01 0,01 0,01 0,01
Momentum rate 0,0 0,0 0,0 0,0 0,0
Maksimum Epoch 100 100 100 100 100
Target error 0,01 0,01 0,01 0,01 0,01
Output yang diharapkan pada pelatihan DNN untuk setiap gerakan tangan pada percobaan dengan enam jenis gerakan tangan dapat dilihat pada Tabel 3.9. Node
pertama pada output layer menunjukkan apakah gerakan tangan merupakan gerakan tangan dari arah kiri ke kanan. Node kedua pada output layer menunjukkan apakah gerakan tangan merupakan gerakan tangan dari arah kanan ke kiri. Node ketiga pada
Tabel 3.9. Target Output untuk Setiap Jenis Gerakan Tangan pada Percobaan dengan Enam Gerakan Tangan
Jenis gerakan tangan Node
1 2 3 4 5 6
Gerakan tangan dari kiri ke kanan 1 0 0 0 0 0
Gerakan tangan dari kanan ke kiri 0 1 0 0 0 0
Gerakan tangan dari atas ke bawah 0 0 1 0 0 0
Gerakan tangan dari bawah ke atas 0 0 0 1 0 0
Gerakan tangan dari belakang ke depan 0 0 0 0 1 0 Gerakan tangan dari depan ke belakang 0 0 0 0 0 1
Output yang diharapkan pada pelatihan DNN untuk setiap gerakan tangan pada percobaan dengan empat jenis gerakan tangan dapat dilihat pada Tabel 3.10. Node
pertama pada output layer menunjukkan apakah gerakan tangan merupakan gerakan tangan dari arah kiri ke kanan. Node kedua pada output layer menunjukkan apakah gerakan tangan merupakan gerakan tangan dari arah kanan ke kiri. Node ketiga pada
output layer menunjukkan apakah gerakan tangan merupakan gerakan tangan dari arah atas ke bawah. Node keempat pada output layer menunjukkan apakah gerakan tangan merupakan gerakan tangan dari arah bawah ke atas.
Tabel 3.10. Target Output untuk Setiap Jenis Gerakan Tangan pada Percobaan dengan Empat Gerakan Tangan
Jenis gerakan tangan Node
1 2 3 4
Gerakan tangan dari kiri ke kanan 1 0 0 0
Gerakan tangan dari kanan ke kiri 0 1 0 0
Gerakan tangan dari atas ke bawah 0 0 1 0
Gerakan tangan dari bawah ke atas 0 0 0 1
3.3. Perancangan Sistem
3.3.1. Perancangan sistem bagian belakang (back-end)
Perancangan sistem bagian belakang (back-end) pada penelitian ini tidak menggunakan Graphical User Interface (GUI). Perancangan sistem back-end lebih ditujukan kepada pemrogram sistem untuk melakukan pre-proses (pre-processing),
PCA, mengatur parameter untuk pelatihan DNN, serta melakukan pelatihan dan pengujian DNN dalam mengenali gerakan tangan manusia. Kemudian hasil pelatihan
DNN yang telah sesuai akan digunakan pada sistem front-end untuk mengenali gerakan tangan manusia.
3.3.2. Perancangan sistem bagian depan (front-end)
Perancangan sistem bagian depan (front-end) pada penelitian ini menggunakan
Graphical User Interface (GUI). Sistem front-end dirancang untuk membantu pengguna dalam melakukan interaksi manusia-komputer melalui gerakan tangan. Adapun beberapa aplikasi yang dapat digunakan oleh pengguna adalah file explorer,
Windows Media Player untuk file musik, VLC media player untuk file video,
Microsoft Power Point untuk file presentasi dan Acrobat Reader DC untuk PDFfile.
GUI sistem front-end yang dirancang terdiri dari tiga bagian yaitu bagian penjelasan penggunaan aplikasi, bagian panel kamera web, dan bagian keterangan yang menjelaskan bagaimana cara pengendalian aplikasi melalui gerakan tangan.
Bagian penjelasan penggunaan aplikasi akan terbuka pada saat aplikasi dijalankan. Bagian penjelasan penggunaan aplikasi dirancang dengan tujuan agar pengguna dapat mengetahui apa saja yang dapat dilakukan aplikasi pada saat dijalankan. Gambaran rancangan tampilan bagian penjelasan penggunaan aplikasi dapat dilihat pada Gambar 3.2.
Bagian panel kamera web juga akan terbuka ketika aplikasi dijalankan sehingga dapat menangkap gerakan yang dilakukan oleh pengguna secara langsung. Bagian
panel kamera web dirancang agar pengguna dapat melihat gambar yang ditangkap oleh kamera web secara real-time dan memberi informasi ke pengguna mengenai jenis gerakan tangan yang telah dikenali oleh sistem. Gambar rancangan tampilan panel
kamera web dapat dilihat pada Gambar 3.3.
Gambar 3.3. Rancangan Bagian Panel Kamera Web
Setelah sistem dijalankan dan gerakan tangan dikenali untuk pertama kali, maka bagian penjelasan penggunaan aplikasi akan ditutup dan akan terbuka file explorer
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas tentang hasil pre-processing, pelatihan (training) dan pengujian (testing) yang diperoleh dari implementasi metode Deep Neural Network (DNN) untuk mengenali gerakan tangan manusia dalam interaksi manusia-komputer dan implementasi DNN yang telah dilatih dalam sistem sesuai dengan analisis dan perancangan yang telah dibahas pada Bab 3.
4.1.Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi perangkat keras yang digunakan dalam penelitian ini adalah sebagai berikut:
1. Prosesor Intel® Core™ i7-2640M CPU @ 2.80 GHz. 2. Kapasitas harddisk 500 GB.
3. Memori RAM yang digunakan 4 GB DDR3.
4. Kamera web internal 1 MP dengan resolusi 1280 x 720 native HD.
Spesifikasi perangkat lunak yang digunakan dalam penelitian ini adalah sebagai berikut:
1. Sistem operasi yang digunakan adalah Windows 7 Home Premium 64-bit (6.1,
Build 7601).
2. Aplikasi pengolah presentasi yang digunakan adalah Microsoft Office PowerPoint 2010.
3. Aplikasi PDF Reader yang digunakan adalah Acrobat Reader DC versi 2015.016.20045.
5. Aplikasi pemutar video yang digunakan adalah VLC media player versi 2.2.4
Weatherwax.
6. Eclipse IDE Mars.2 Release (4.5.2).
7. Library yang digunakan adalah OpenCV 3.1.0, Encog 3.3.0, JavaCV 1.1, dan
OjAlgo 35.0.
4.2.Hasil Pre-processing
Bagian ini dijabarkan hasil yang diperoleh dari pre-processing yang terdiri dari pemisahan video gerakan tangan menjadi beberapa frame gambar, nearest neighbor,
grayscaling, frame differencing, dan Principal Component Analysis (PCA). Hasil dari pemisahan video gerakan tangan menjadi beberapa frame gambar dapat dilihat pada Gambar 4.1. Dapat dilihat bahwa dari sebuah video yang dipisahkan, setiap frame
gambar telah disimpan sebagai gambar dengan nama “frame_” diikuti nomor frame.
Setiap frame gambar disimpan dengan ekstensi .png.
Gambar 4.1. Hasil Pemisahan Video Gerakan Tangan Menjadi Beberapa Frame Gambar
dari setiap frame gambar yang dikecilkan ukurannya, setiap frame gambar telah disimpan sebagai gambar dengan nama “frame_” diikuti nomor frame dan penanda
“_min” yang menunjukkan frame gambar telah dikecilkan. Setiap frame gambar juga disimpan dengan ekstensi .png.
Gambar 4.2. Hasil Proses Nearest Neighbor
Hasil proses grayscaling dari setiap frame gambar yang telah dikecilkan ukurannya dapat dilihat pada Gambar 4.3. Setelah melalui proses grayscaling, setiap
frame gambar disimpan sebagai gambar dengan nama “frame_” diikuti nomor frame
dan penanda “_gray” yang menunjukkan frame gambar telah melalui proses
grayscaling. Setiap frame gambar juga disimpan dengan ekstensi .png.
Hasil proses frame differencing dari setiap frame gambar yang telah melalui proses grayscaling dengan frame gambar pertama sebagai pembeda dapat dilihat pada Gambar 4.4. Setiap frame gambar yang telah melalui proses frame differencing
disimpan sebagai gambar dengan nama “frame_” diikuti nomor frame dan penanda
“_framediffer” yang menunjukkan frame gambar telah melalui proses frame differencing. Setiap frame gambar juga disimpan dengan ekstensi .png.
Gambar 4.4. Hasil Proses Frame Differencing
Empat frame gambar yang dipilih setelah melalui proses frame differencing dapat dilihat pada Gambar 4.5. Empat gambar yang dipilih ditandai dengan kotak berwarna hijau. Kemudian nilai piksel dari empat gambar yang telah dipilih dimasukkan ke dalam file teks dengan nama “TrainingDataset.txt” untuk dataset pelatihan dan
“TestingDataset.txt” untuk dataset pengujian. File “TrainingDataset.txt” dan
“TestingDataset.txt” kemudian diproses menggunakan PCA untuk menghasilkan file
teks dengan nama “TrainingDatasetPCA.txt” dan “TestingDatasetPCA.txt” yang merupakan dataset dengan jumlah parameter yang dikurangi. Contoh dari isi file
“TrainingDatasetPCA.txt” dapat dilihat pada Gambar 4.6. Contoh dari isi file
Gambar 4.5. Empat Gambar yang Dipilih Setelah Proses Frame Differencing
Gambar 4.6. Contoh Isi File “TrainingDatasetPCA.txt”
Gambar 4.7. Contoh Isi File “TestingDatasetPCA.txt”
4.3.Hasil Pelatihan Deep Neural Network (DNN)
Pada bagian ini dijabarkan hasil pelatihan yang didapatkan dari Deep Neural Network
menggunakan training dataset. Ada dua percobaan yang dilakukan dalam pelatihan
sesuai dengan parameter pada Bab 3 Tabel 3.7 dan 3.8. Hasil pelatihan DNN untuk kelima percobaan pada percobaan dengan enam jenis gerakan tangan dapat dilihat pada Tabel 4.1. Hasil pelatihan DNN untuk kelima percobaan pada percobaan dengan empat jenis gerakan tangan dapat dilihat pada Tabel 4.2.
Tabel 4.1. Hasil Pelatihan DNN pada Percobaan dengan Enam Gerakan Tangan
Hasil pelatihan Nomor percobaan
1 2 3 4 5
Actual epoch 128 149 182 148 148
Tingkat error 0,00992 0,009915 0,0099 0,009872 0,00972
Hasil tingkat error pelatihan untuk setiap nomor percobaan satu, dua, tiga, empat dan lima pada percobaan dengan enam jenis gerakan tangan seluruhnya lebih rendah dari 0,01. Dapat disimpulkan bahwa DNN mampu mendapatkan tingkat error yang rendah yakni lebih rendah dari 0,01 untuk setiap jumlah hidden layer dan hidden
neuron. Hasil-hasil ini didapatkan dengan nilai parameter learning rate dan
momentum rate yang sama yakni 0,01 dan 0,0. Namun, sampai pada tahap ini masih belum dapat ditentukan jumlah hidden layer dan hidden neuron yang terbaik. Akan tetapi, jumlah hidden layer dan hidden neuron yang lebih sedikit dapat mempercepat proses feed-forward dan backpropagation pada DNN. Representasi grafik dari hasil pelatihan DNN pada kelima percobaan dengan enam jenis gerakan tangan dapat dilihat pada Gambar 4.8.
Tabel 4.2. Hasil Pelatihan DNN pada Percobaan dengan Empat Gerakan Tangan
Hasil pelatihan Nomor percobaan
1 2 3 4 5
Actual epoch 16 17 50 23 56
Tingkat error 0,009 0,00863 0,00999 0,00999 0,00987
setiap jumlah hidden layer dan hidden neuron. Nilai parameter learning rate dan
momentum rate yang digunakan adalah sama yakni 0,01 dan 0,0. Rata-rata actual epoch yang dicapai pada percobaan ini adalah 32,4 sedangkan untuk percobaan dengan enam jenis gerakan tangan mencapai rata-rata actual epoch yang lebih tinggi yakni 151. Hal ini berarti DNN dapat beradaptasi lebih cepat dengan empat jenis gerakan tangan dibandingkan dengan enam jenis gerakan tangan. Representasi grafik dari hasil pelatihan DNN pada kelima percobaan dengan empat jenis gerakan tangan dapat dilihat pada Gambar 4.9. Representasi grafik perbandingan actual epoch pada setiap percobaan untuk empat dan enam jenis gerakan tangan dengan jumlah hidden layer dan hidden neuron yang sama dapat dilihat pada Gambar 4.10.
Gambar 4.8. Grafik Hasil Pelatihan DNN dengan Enam Gerakan Tangan
1 2 3 4 5
Tingkat error 0.00992 0.009915 0.0099 0.009872 0.00972
Hidden layer 2 2 3 3 4
Hidden neuron 1 250 300 200 300 300 Hidden neuron 2 50 50 100 150 150
Hidden neuron 3 50 75 100
Gambar 4.9. Grafik Hasil Pelatihan DNN dengan Empat Gerakan Tangan
Gambar 4.10. Grafik Perbandingan Actual Epoch
1 2 3 4 5
Tingkat error 0.009 0.00863 0.00999 0.00999 0.00987
Hidden layer 2 2 3 3 4
Hidden neuron 1 250 300 200 300 300 Hidden neuron 2 50 50 100 150 150
Hidden neuron 3 50 75 100
Hasil Pelatihan Empat Gerakan Tangan
4.4.Hasil Pengujian Deep Neural Network (DNN)
Pada bagian ini dijabarkan hasil pengujian terhadap Deep Neural Network yang telah dilatih. Proses pengujian (testing) menggunakan testing dataset dilakukan untuk mengetahui akurasi DNN dalam mengenali gerakan tangan yang tidak dilatih. Pengujian dilakukan untuk kedua percobaan dengan enam jenis gerakan tangan dan empat jenis gerakan tangan. Pengujian juga dilakukan sebanyak lima kali untuk masing-masing percobaan untuk setiap jumlah hidden layer dan hidden neuron. Hasil pengujian DNN yang telah dilatih untuk kelima percobaan pada percobaan dengan enam jenis gerakan tangan dapat dilihat pada Tabel 4.3. Hasil pengujian DNN yang telah dilatih untuk kelima percobaan pada percobaan dengan empat jenis gerakan tangan dapat dilihat pada Tabel 4.4.
Tabel 4.3. Hasil Pengujian DNN yang Telah Dilatih untuk Enam Jenis Gerakan Tangan
Jenis gerakan tangan Akurasi untuk nomor percobaan
1 2 3 4 5
Kiri – kanan 84,62% 88,46% 88,46% 80,77% 80,77%
Kanan – kiri 85,71% 92,86% 82,14% 92,86% 85,71%
Atas – bawah 70,37% 77,78% 74,07% 74,07% 70,37%
Bawah – atas 76,92% 80,77% 84,62% 80,77% 84,62%
Depan – belakang 40,74% 66,67% 55,56% 55,56% 59,26%
Belakang – depan 66,67% 55,56% 59,26% 62,96% 48,15%
Tingkat akurasi keseluruhan 70,81% 77,02% 73,91% 74,53% 71,43%
mendapatkan akurasi yang cukup rendah adalah karena dari pengujian yang dilakukan gerakan tangan depan-belakang dan belakang-depan sering salah dikenali sebagai gerakan tangan atas-bawah dan bawah-atas serta sebaliknya.
Secara keseluruhan hasil paling optimal untuk percobaan dengan enam jenis gerakan tangan adalah hasil akurasi percobaan dua dengan dua hidden layer dan masing-masing hidden neuron sebanyak 300 dan 50, dengan tingkat akurasi keseluruhan sebesar 77,02%. Hasil kedua paling baik pada percobaan ini adalah percobaan empat dengan tiga hidden layer dan jumlah masing-masing hidden neuron sebanyak 300, 150 dan 75, dengan tingkat akurasi keseluruhan sebesar 74,53%. Adapun alasan kenapa hasil percobaan yang lain mendapatkan nilai yang lebih rendah dibandingkan dengan kedua percobaan ini adalah jumlah hidden layer dan hidden
neuron yang terlalu sedikit ataupun terlalu banyak akan menyebabkan DNN hanya mampu mengenali data yang telah dilatih (training dataset) dan tidak mampu mengenali data yang belum pernah dilatih (testing dataset). Representasi grafik hasil pengujian DNN yang telah dilatih untuk percobaan dengan enam jenis gerakan dapat dilihat pada Gambar 4.11.
Gambar 4.11. Grafik Hasil Pengujian DNN yang Telah Dilatih untuk Enam Jenis Gerakan Tangan
Hasil Pengujian Enam Gerakan Tangan
Tabel 4.4. Hasil Pengujian DNN yang Telah Dilatih untuk Empat Jenis Gerakan Tangan
Jenis gerakan tangan Akurasi untuk nomor percobaan
1 2 3 4 5
Kiri – kanan 88,46% 92,31% 92,31% 84,62% 84,62%
Kanan – kiri 96,43% 96,43% 92,86% 92,86% 96,43%
Atas – bawah 85,19% 81,48% 81,48% 85,19% 81,48%
Bawah – atas 88,46% 84,62% 88,46% 80,77% 76,92%
Tingkat akurasi keseluruhan 89,72% 88,79% 88,79% 85,98% 85,05%
Hasil pengujian untuk empat jenis gerakan tangan menunjukkan bahwa terdapat kesamaan dengan percobaan untuk enam jenis gerakan tangan yaitu gerakan tangan kanan-kiri merupakan gerakan tangan dengan akurasi pengenalan yang terbaik untuk setiap nomor percobaan, diikuti dengan gerakan tangan kiri-kanan, atas-bawah dan bawah-atas. Dengan mengurangi gerakan tangan depan-belakang dan belakang-depan dari percobaan, akurasi pengenalan gerakan tangan atas-bawah dan bawah-atas pada percobaan ini jauh lebih tinggi dibandingkan dengan percobaan dengan enam jenis gerakan tangan. Hal ini disebabkan karena gerakan tangan atas-bawah dan bawah-atas tidak lagi dikenali sebagai gerakan tangan depan-belakang dan belakang-depan.
Secara keseluruhan, hasil pengenalan terbaik untuk pengujian DNN yang telah dilatih untuk empat jenis gerakan tangan adalah pada percobaan satu dengan dua
hidden layer dan jumlah hidden neuron masing-masing 200 dan 50. Hasil pengujian ini mendapatkan akurasi sebesar 89,72%. Pada percobaan dengan empat jenis gerakan tangan dapat dilihat bahwa semakin banyak hidden layer dan hidden neuron, hasil tingkat akurasi keseluruhan semakin menurun. Dengan demikian, dapat disimpulkan bahwa jumlah hidden layer dua merupakan jumlah yang optimal dan jumlah hidden layer yang lebih banyak akan menyebabkan overfit dimana DNN hanya mampu mengenali data yang telah dilatih, tetapi tidak mampu mengenali data yang belum pernah dilihat ataupun dilatih sebelumnya. Representasi grafik hasil pengujian DNN
Gambar 4.12. Grafik Hasil Pengujian DNN yang Telah Dilatih untuk Empat Jenis Gerakan Tangan
Secara umum, hasil akurasi pengujian percobaan dengan empat jenis gerakan tangan jauh lebih baik dari hasil pengujian percobaan dengan enam jenis gerakan tangan. Salah satu alasan kenapa hasil pengujian percobaan dengan empat jenis gerakan tangan mendapatkan hasil yang lebih baik adalah parameter input untuk percobaan ini jauh lebih sedikit dibandingkan parameter input untuk percobaan dengan enam jenis gerakan tangan, sehingga DNN dengan jumlah hidden layer dan
hidden neuron yang tepat dapat lebih mudah beradaptasi dengan data pelatihan. Dari kedua percobaan, hasil yang terbaik didapatkan pada percobaan satu untuk empat jenis gerakan tangan dengan jumlah hidden layer dua dan hidden neuron sebanyak 200 dan 50 dengan akurasi keseluruhan 89,72%. Parameter dan hasil DNN yang didapatkan
Hasil Pengujian Empat Gerakan Tangan
4.5.Implementasi Sistem Bagian Depan (Front-End)
Pada bagian ini dijabarkan tampilan serta prosedur operasional dari antarmuka front-end yang telah dibangun.
4.5.1. Tampilan antarmuka
Antarmuka front-end dalam penelitian ini dibangun berdasarkan rancangan yang telah dijabarkan pada Bab 3 yaitu:
1. Tampilan bagian penjelasan penggunaan aplikasi
Bagian penjelasan penggunaan aplikasi merupakan bagian yang pertama kali ditampilkan ketika sistem front-end dijalankan. Bagian ini dibangun untuk memberikan informasi kepada pengguna (user) tentang sistem front-end yang telah dibangun. Tampilan bagian penjelasan penggunaan aplikasi dapat dilihat pada Gambar 4.13.
Gambar 4.13. Tampilan Bagian Penjelasan Penggunaan Aplikasi
2. Tampilan bagian panel kamera web
Gambar 4.14. Tampilan Bagian Panel Kamera Web
3. Tampilan bagian keterangan mengenai cara pengendalian aplikasi melalui gerakan tangan
Bagian keterangan mengenai cara pengendalian aplikasi melalui gerakan tangan ditampilkan apabila terdapat salah satu dari aplikasi file explorer,
Windows Media Player, VLC media player, Microsoft Power Point atau
Acrobat Reader DC yang terbuka. Bagian ini dibangun untuk membantu pengguna dalam mengendalikan aplikasi. Tampilan bagian keterangan mengenai cara pengendalian aplikasi melalui gerakan tangan dapat dilihat pada Gambar 4.15.
4.5.2. Prosedur operasional
Saat sistem front-end dijalankan untuk pertama kali, ditampilkan bagian penjelasan penggunaan aplikasi dan bagian panel kamera web. Hal ini dapat dilihat pada Gambar 4.16.
Gambar 4.16. Tampilan Pertama Kali Sistem Front-End Dijalankan
Kemudian untuk melanjutkan penggunaan aplikasi, pengguna harus melakukan salah satu gerakan tangan dari empat jenis gerakan tangan yakni gerakan tangan kiri-kanan, kanan-kiri, atas-bawah atau bawah-atas. Setelah gerakan tangan untuk pertama kali dikenali maka file explorer akan terbuka. Rincian prosedur untuk mengendalikan
file explorer menggunakan gerakan tangan dalam menggantikan fungsi mouse atau
keyboard dapat dilihat pada Tabel 4.5.
Tabel 4.5. Fungsi Gerakan Tangan pada Aplikasi File Explorer No. Jenis gerakan tangan Fungsi
1 Kanan – kiri Menuju direktori sebelumnya 2 Kiri – kanan Membuka file atau direktori 3 Atas – bawah Gerakan ke bawah
Tampilan pada saat file explorer dibuka dan dikendalikan oleh pengguna dapat dilihat pada Gambar 4.17. Dapat dilihat bahwa pada bagian tengah terdapat file explorer yang sedang terbuka, pada bagian kanan atas terdapat keterangan untuk mengendalikan file explorer dan pada bagian kanan bawah terdapat panel kamera web.
Gambar 4.17. Tampilan Saat File Explorer Dijalankan
Setelah file explorer dibuka, terdapat beberapa jenis ekstensi file yang dapat dibuka pada file explorer yakni sebagai berikut:
1. File musik dengan ekstensi .mp3
Jenis file musik pada penelitian ini dibuka menggunakan aplikasi Windows Media Player. Rincian prosedur untuk mengendalikan Windows Media Player
menggunakan gerakan tangan dapat dilihat pada Tabel 4.6.
Tabel 4.6. Fungsi Gerakan Tangan pada Aplikasi Windows Media Player No. Jenis gerakan tangan Fungsi
1 Kanan – kiri Menurunkan volume
2 Kiri – kanan Menaikkan volume
3 Atas – bawah Play atau pause
4 Bawah – atas - Stop (ketika musik sedang dimainkan atau paused)
Tampilan pada saat Windows Media Player dibuka dan dikendalikan oleh pengguna dapat dilihat pada Gambar 4.18. Dapat dilihat bahwa pada bagian kiri atas terdapat Windows Media Player yang sedang terbuka, pada bagian kanan atas terdapat keterangan untuk mengendalikan Windows Media Player dan pada bagian kanan bawah terdapat panel kamera web.
Gambar 4.18. Tampilan Saat Windows Media Player Dijalankan
2. File video dengan ekstensi .avi, .flv, .mkv, .wmv, .mp4
Jenis file video pada penelitian ini dibuka menggunakan aplikasi VLC media player. Rincian jenis gerakan tangan yang harus dilakukan untuk mengendalikan
VLC media player dapat dilihat pada Tabel 4.7.
Tabel 4.7. Fungsi Gerakan Tangan pada Aplikasi VLC Media Player No. Jenis gerakan tangan Fungsi
1 Kanan – kiri Menurunkan volume
2 Kiri – kanan Menaikkan volume
3 Atas – bawah Play atau pause
4 Bawah – atas - Stop (ketika video sedang dimainkan atau paused)
Tampilan pada saat VLC media player dibuka dan dikendalikan oleh pengguna dapat dilihat pada Gambar 4.19. Dapat dilihat bahwa terdapat VLC media player
yang sedang terbuka, pada bagian kanan atas terdapat keterangan untuk mengendalikan VLC media player dan pada bagian kanan bawah terdapat panel
kamera web.
Gambar 4.19. Tampilan Saat VLC Media Player Dijalankan
3. File presentasi dengan ekstensi .ppt dan .pptx
File presentasi pada penelitian ini dibuka menggunakan aplikasi Microsoft Power Point. Rincian jenis gerakan tangan yang harus dilakukan untuk mengendalikan
Microsoft Power Point dapat dilihat pada Tabel 4.8.
Tabel 4.8. Fungsi Gerakan Tangan pada Aplikasi Microsoft Power Point No. Jenis gerakan tangan Fungsi
1 Kanan – kiri Menuju slide sebelumnya 2 Kiri – kanan Menuju slide selanjutnya
3 Atas – bawah Slide show
4 Bawah – atas - End show (ketika slide show)
- Menutup aplikasi (ketika
Tampilan pada saat Microsoft Power Point dibuka dan dikendalikan oleh pengguna dapat dilihat pada Gambar 4.20. Dapat dilihat bahwa terdapat Microsoft Power Point yang sedang terbuka, pada bagian kanan atas terdapat keterangan untuk mengendalikan Microsoft Power Point dan pada bagian kanan bawah terdapat panel kamera web.
Gambar 4.20. Tampilan Saat Microsoft Power Point Dijalankan
4. File dokumen dengan ekstensi .pdf
File PDF pada penelitian ini dibuka menggunakan aplikasi Acrobat Reader DC. Rincian prosedur untuk mengendalikan Acrobat Reader DC menggunakan gerakan tangan dapat dilihat pada Tabel 4.9.
Tabel 4.9. Fungsi Gerakan Tangan pada Aplikasi Acrobat Reader DC No. Jenis gerakan tangan Fungsi
1 Kanan – kiri Menutup aplikasi 2 Kiri – kanan Zoom in atau zoom out
3 Atas – bawah Scroll ke bawah 4 Bawah – atas Scroll ke atas
Tampilan pada saat Acrobat Reader DC dibuka dan dikendalikan oleh pengguna dapat dilihat pada Gambar 4.21. Dapat dilihat bahwa pada bagian kiri terdapat
keterangan untuk mengendalikan Acrobat Reader DC dan pada bagian kanan bawah terdapat panel kamera web.
BAB 5
KESIMPULAN DAN SARAN
Bab ini membahas tentang kesimpulan dari penerapan metode yang diajukan untuk mengenali gerakan tangan manusia dalam interaksi manusia-komputer dan saran untuk pengembangan yang dapat dilakukan pada penelitian selanjutnya.
5.1. Kesimpulan
Berdasarkan penerapan metode dari arsitektur umum yang dirancang untuk mengenali gerakan tangan manusia dalam interaksi manusia-komputer, didapatkan beberapa kesimpulan yakni:
1. Metode yang diajukan mampu mengenali gerakan tangan manusia untuk interaksi manusia-komputer dengan kondisi tangan tidak memegang benda apapun.
2. Tingkat akurasi pengujian tertinggi pada percobaan dengan enam jenis gerakan tangan didapatkan pada percobaan dua dengan jumlah hidden layer sebanyak dua dan jumlah hidden neuron masing-masing sebanyak 300 dan 50 yaitu sebesar 77,02%.
3. Tingkat akurasi pengujian tertinggi pada percobaan dengan empat jenis gerakan tangan didapatkan pada percobaan satu dengan jumlah hidden layer sebanyak dua dan jumlah hidden neuron masing-masing sebanyak 250 dan 50 yaitu sebesar 89,72%.
4. Tingkat akurasi pengujian dipengaruhi oleh jumlah hidden layer, jumlah hidden neuron dan banyak jenis gerakan tangan yang dilatih.
6. Sistem front-end yang telah dibangun dapat mengendalikan beberapa aplikasi yakni file explorer untuk memilih file, Windows Media Player untuk file musik, VLC media player untuk file video, Microsoft Power Point untuk file presentasi
dan Acrobat Reader DC untuk file PDF.
5.2.Saran
Saran yang dapat penulis berikan untuk pengembangan selanjutnya adalah sebagai berikut:
1. Penerapan dan penambahan teknik image processing lain dalam memproses video menjadi gambar dan kemudian menjadi parameter input yang digunakan sebagai dataset untuk melatih dan menguji DNN sehingga parameter input dapat merepresentasikan data video dengan lebih baik.
2. Penerapan metode machine learning yang lain seperti Deep Belief Network (DBN), Convolutional Neural Network (CNN) ataupun Recurrent Neural Network (RNN)
untuk dibandingkan dengan DNN sehingga dapat digunakan metode yang paling cocok dalam mengenali gerakan tangan manusia.
BAB 2
LANDASAN TEORI
2.1. Nearest Neighbor
Nearest neighbor merupakan salah satu teknik interpolasi paling sederhana dan cepat
dengan memindahkan ruang yang kosong dengan piksel yang berdekatan (the nearest
neighboring pixel) pada saat pengecilan atau pembesaran skala gambar (Safinaz,
2014).
Menurut Malepati (2010), nearest neighbor menggunakan nilai piksel terdekat
pada gambar awal untuk memberikan nilai piksel pada gambar awal yang akan
diperbesar atau diperkecil. Sebagai contoh terdapat sebuah gambar dengan ukuran 4 x
4 dengan jumlah piksel 16 dimana setiap pikselnya diwakilkan dengan nilai A, B, C,
D, E, F, G, H, I, J, K, L, M, N, O, P. Kemudian gambar akan diperbesar menjadi
ukuran 6 x 8 dengan jumlah piksel 48 menggunakan nearest neighbor. Ilustrasi
gambar awal dengan ukuran 4 x 4 beserta nilai pikselnya dapat dilihat pada Gambar
2.1. Hasil gambar setelah diperbesar menjadi ukuran 6 x 8 beserta nilai pikselnya
menggunakan neareast neighbor dapat dilihat pada pada Gambar 2.2.
Gambar 2.1. Nilai-Nilai Piksel Gambar Awal (Malepati, 2010) i
j 1 2 3 4
1 A B C D
2 E F G H
3 I J K L
x
y 1 2 3 4 5 6
1 A B B C D D
2 A B B C D D
3 E F F G H H
4 E F F G H H
5 I J J K L L
6 I J J K L L
7 M N N O P P
8 M N N O P P
Gambar 2.2. Nilai Piksel Setelah Gambar Diperbesar (Malepati, 2010)
Adapun contoh proses perhitungan untuk mendapatkan setiap nilai piksel pada
gambar dengan ukuran 6 x 8 yaitu:
Perbandingan lebar (ratio weight) = 4 : 6 = 2 : 3.
Perbandingan panjang (ratio height) = 4 : 8 = 1 : 2.
- Untuk posisi piksel dengan nilai x = 1, y = 1
Pikselx = ceil(x * ratio weight) = ceil(1 * 2/3) = 1
Piksely = ceil(y * ratio height) = ceil(1 * ½) = 1
Nilai piksel pada gambar ukuran 6 x 8 dengan x = 1 yang menghasilkan Pikselx =
1dan y = 1 yang menghasilkan Piksely = 1disesuaikan dengan nilai piksel pada
gambar awal dengan i = 1 dan j = 1 yaitu A.
- Untuk posisi piksel dengan nilai x = 1, y = 2
Pikselx= ceil(x * ratio weight) = ceil(1 * 2/3) = 1
Piksely = ceil(y * ratio height) = ceil(2 * ½) = 1
Nilai piksel pada gambar ukuran 6 x 8 dengan x = 1 dan y = 2 juga memiliki nilai
A.
- Untuk posisi piksel dengan nilai x = 6, y = 8
Pikselx = ceil(x * ratio weight) = ceil(6 * 2/3) = 4
Nilai piksel pada gambar ukuran 6 x 8 dengan x = 6 yang menghasilkan Pikselx =
4dan y = 8 yang menghasilkan Piksely = 4disesuaikan dengan nilai piksel pada
gambar awal dengan i = 4 dan j = 4 yaitu P.
Ceil (ceiling)merupakan proses pembulatan sebuah bilangan ke atas.
2.2. Grayscaling
Grayscaling dilakukan untuk mengkonversi ruang warna ke ruang warna keabuan.
Grayscaling mengubah citra warna yang memiliki ruang warna RGB (Red Green
Blue) menjadi citra keabuan. Ketiga channelred, green, dan blue diubah menjadi satu
channel gray (keabuan) menggunakan persamaan 2.1 (Bradski & Kaehler, 2008).
Y = 0.299.R + 0.587.G + 0.114.B (2.1)
Dimana: Y = citra hasil konversi RGB menjadi Grayscale
R = nilai redchannel pada piksel
G = nilai greenchannel pada sebuah piksel
B = nilai bluechannel pada sebuah piksel
Proses mengkonversi citra RGB menjadi citra keabuan (grayscale) dilakukan agar
pemrosesan lebih cepat dan efisien dengan menggunakan citra 8 bit (Chairunnisa,
2015).
2.3.Frame Differencing
Frame differencing adalah sebuah teknik yang digunakan untuk mendeteksi perbedaan
piksel antara dua frame gambar dalam satu video. Teknik ini dapat mendeteksi
pergerakan objek berdasarkan perbedaan piksel pada dua frame dalam satu video
dengan interval waktu yang singkat. Perbedaan frame dalam sebuah video diperoleh
menggunakan perhitungan pada persamaan 2.2, 2.3 dan 2.4 (Alex & Wahi, 2014).
Differential:
Dk = { (2.2)
Negative Differential:
Fully Differential:
Dk = (2.4)
Dimana: Dk = hasil citra frame differencing
= citra frame
= citra frame sebelumnya dengan interval waktu
Teknik frame differencing telah diimplementasikan dalam beberapa penelitian
sebelumnya. Kang & Hayes (2015) menggunakan teknik frame differencing dalam
penelitian mengenai pengenalan wajah untuk personalisasi kendaraan. Chairunnisa
(2015) melakukan perbandingan antara citra frame awal dan frame selanjutnya pada
citra hasil konversi warna grayscale dengan menggunakan fungsi frame differencing
pada OpenCV yaitu absdiff(). Fungsi tersebut dapat menghitung perbedaan mutlak
antar dua array atau matriks ketika kedua matriks memiliki ukuran dan jenis yang
sama. Adapun penjelasan tentang fungsi absdiff() yaitu:
absdiff(src1,src2,dst)
Parameter:
- src1: input frame awal yang akan dibandingkan
- src2: input frame selanjutnya yang akan dibandingkan
- dst: hasil keluaran perbandingan frame berupa matriks citra
Berikut ini merupakan pseudecode proses framedifferencing yang diimplementasikan
pada penelitian:
Inisialisasi frame awal, frame selanjutnya dan frame perbedaan
Inisialisasi jumlah frame = 0
IF (jumlah frame = 0) THEN
SET frame perbedaan = frame selanjutnya
ELSE
SET absdiff(frame awal, frame selanjutnya,frame perbedaan)
jumlah frame = jumlah frame + 1 ENDIF
2.4.Principal Component Analysis
Principal Component Analysis (PCA) merupakan teknik statistika untuk
mentransformasi himpunan sekumpulan variabel menjadi himpunan variabel dengan
jumlah yang lebih kecil, tetapi tetap mampu merepresentasikan informasi yang
terdapat pada himpunan variabel sebelum ditransformasi. Adapun tujuan mengurangi
dimensionalitas dari data asli menggunakan PCA adalah agar data lebih mudah
dimengerti dan lebih mudah diproses (Dunteman, 1989).
Apabila diketahui X = {xnRd | n = 1, 2, ..., N} yang merepresentasikan sebuah
dataset dengan dimensi d, dari dataset X tersebut, PCA akan menghasilkan dataset Z,
dimana Z = {znRk | n = 1, 2, ..., N} dengan dimensi k, dimana nilai k adalah lebih
kecil dari d. Langkah-langkah yang dilakukan dalam PCA terdiri atas (Jolliffe, 2002):
1. Normalisasi setiap dimensi data dengan menggunakan rumus normalisasi Z-score:
Setelah melalui proses ini, dataset akan memiliki nilai mean atau rata-rata nol.
2. Cari matriks kovarian menggunakan rumus:
X X
, dimana adalah matriks kovarian; m merupakan banyak data pada dataset asli;
X adalah dataset asli yang disusun dalam bentuk matriks dengan setiap kolom
merupakan fitur, dan setiap baris merupakan kumpulan fitur untuk satu objek; XT
merupakan transpos dari matriks X. Hasil matriks kovarian adalah matriks dengan
ukuran dxd, dimana d merupakan dimensi dari X.
3. Hitung nilai eigenvalue serta eigenvector dari matriks kovarian, dengan
melakukan Single Value Decomposition pada matriks kovarian. Eigenvalue dan
eigenvector merupakan vektor-vektor yang mengkarakterisasikan dataset X.
Apabila dimiliki data awal dengan dimensi d, maka akan didapatkan eigenvector
sebanyak d.
4. Urutkan eigenvector sesuai dengan nilai eigenvalue yang dimiliki secara menurun,
dimana eigenvector dengan nilai eigenvalue yang lebih tinggi berada pada sisi kiri
matriks dan eigenvector dengan nilai eigenvalue yang lebih rendah berada pada
5. Pilih eigenvector sebanyak k untuk membentuk vektor fitur U, dimana dari vektor
fitur U akan dihasilkan data hasil PCA dengan dimensi k. Pemilihan eigenvector
dilakukan berdasarkan nilai eigenvalue dari eigenvector. Akan dipilih eigenvector
dengan nilai eigenvalue tinggi, sehingga informasi data asli tetap akan terjaga
pada data hasil PCA. Hal ini dikarenakan eigenvector dengan eigenvalue tinggi
menunjukkan data yang direpresentasikan eigenvector tersebut adalah signifikan.
Penentuan nilai dimensi k untuk dataset hasil PCA ditentukan berdasarkan
retain rate. Retain rate adalah persentase informasi yang yang tetap terjaga pada
data hasil PCA dari dataset asli. Pemilihan nilai dimensi k pada umumnya dipilih
dengan menjaga retain rate pada nilai 99%, yakni memenuhi persamaan 2.7. Hal
ini dilakukan agar seluruh informasi pada dataset asli tetap dapat
direpresentasikan oleh dataset hasil PCA.
99
Si adalah eigenvalue pada posisi ke-i. Seluruh nilai dari eigenvector yang dipilih
kemudian disusun sebagai kolom sebuah matriks vektor fitur U.
6. Hasil datasetPCA dihasilkan menggunakan rumus:
X U
Z T (2.8)
, dimana Z merupakan matriks dataset hasil PCA; U adalah matriks vektor hasil
pemilihan eigenvector yang didapatkan pada tahap sebelumnya; X adalah matriks
dataset asli.
Metode PCA menghasilkan dataset yang mampu mendeskripsikan dataset asli
dengan tetap menjaga informasi yang tersimpan sebanyak mungkin (Amirani, et al.
2008).
2.5.Artificial Neural Network
Negnevitsky (2005) mendefinisikan Artificial Neural Network atau jaringan saraf
tiruan sebagai model logika yang bekerja berdasarkan otak manusia. Cara kerja otak
yang dengan menggunakan sejumlah neuron sederhana dan saling terhubung dengan
sebuah nilai bobot yang meneruskan signal dari satu neuron menuju neuron lainnya
neuron melalui hubungannya. Sebuah output yang sesuai dengan nilai bobot pada
hubungan tersebut akan dihasilkan oleh neuron tersebut, kemudian output akan
diteruskan kembali ke neuron yang lain. Setiap neuron pada jaringan saraf tiruan
terdiri dari beberapa layer atau lapisan. Sebuah jaringan saraf tiruan pada umumnya
terdiri dari tiga layer, yakni: input layer yaitu node-node yang menerima signal input,
middle layer yang juga disebut sebagai hidden layer yaitu node yang menghubungkan
node pada input layer dengan node pada output layer, dan output layer yaitu
node-node yang menghasilkan signal output. Jaringan saraf tiruan belajar dengan
melakukan penyesuaian nilai bobot yang digunakan untuk mengirimkan nilai dari satu
neuron ke neuron lain. Arsitektur umum dari sebuah jaringan saraf tiruan dapat dilihat
pada Gambar 2.3.
Gambar 2.3. Arsitektur Umum Sebuah Jaringan Saraf Tiruan (Negnevitsky, 2005)
Sebuah fungsi yang disebut sebagai fungsi aktivasi digunakan untuk menentukan
output dari sebuah neuron. Ada empat jenis fungsi aktivasi yang secara umum
digunakan, yakni: step function, sign function, sigmoid function, dan linear function.
Setiap jenis fungsi aktivasi berserta grafik yang menggambarkan fungsi dapat dilihat
Gambar 2.4. Fungsi Aktivasi Neuron (Negnevitsky, 2005)
Step function dan sign function disebut sebagai fungsi pembatasan kasar yang
digunakan secara umum pada permasalahan klasifikasi dan pengenalan pola. Sigmoid
function digunakan pada jaringan propagasi balik dan dapat mengubah input yang
memiliki jangkauan nilai [-∞, ∞] menjadi output dengan jangkauan nilai [0,0, 1,0].
Linearactivation function digunakan pada pendekatan linear dan dapat menghasilkan
output yang sama dengan input yang diterima oleh neuron.
Jaringan saraf tiruan dapat digunakan untuk dua jenis konsep pembelajaran, yakni:
1. Pembelajaran supervised, yaitu pembelajaran yang dilakukan dengan menerima
sekumpulan contoh yang ditandai sebagai data pelatihan dan membuat prediksi
untuk seluruh titik yang tidak diketahui. Pembelajaran ini sudah terlebih dahulu
mengetahui output yang diharapkan berdasarkan input yang diberikan (Mohri, et
al., 2012).
2. Pembelajaran unsupervised, yaitu pembelajaran yang dilakukan dengan menerima
sekumpulan data pelatihan yang tidak ditandai dan membuat prediksi untuk
seluruh titik yang tidak diketahui. Pembelajaran ini tidak dapat terlebih dahulu
mengetahui output dari input yang diberikan sehingga memerlukan metode lain
untuk mengelompokkan input yang diberikan (Mohri, et al., 2012).
2.6.Deep Neural Network
Deep Neural Network merupakan sebuah jaringan saraf tiruan (Neural Network) yang
memiliki lebih dari satu hidden layer, sehingga DNN juga dikenal sebagai multilayer
rumus fungsi aktivasi sigmoid function. Arsitektur dari sebuah multilayer perceptron
dengan dua hidden layer dapat dilihat pada Gambar 2.5 (Negnetvisky, 2005).
Gambar 2.5. Arsitektur Multilayer Perceptron dengan Dua Hidden Layer (Negnevitsky, 2005)
Deep Neural Network juga menggunakan arsitektur deep (deep architectures).
Arsitektur deep terdiri atas beberapa tingkat operasi non-linear, seperti jaringan saraf
tiruan dengan banyak hidden layer atau dalam sebuah rumusan yang menggunakan
banyak sub-rumusan (Bengio, 2009).
Deng & Yu (2014) mendefenisikan DNN adalah generasi baru dari jaringan saraf
tiruan yang menggunakan konsep deep learning. Deep learning adalah sebuah
kumpulan teknik pembelajaran mesin yang memanfaatkan banyak lapisan pemrosesan
informasi linear untuk ekstraksi fitur dan transformasi yang supervised dan
unsupervised, serta untuk analisis pola dan klasifikasi. Deep learning terbagi menjadi
tiga kategori, yakni:
1. Deep networks untuk pembelajaran unsupervised atau generatif, bertujuan untuk
mendapatkan korelasi atau keterkaitan antara data yang dapat diobservasi untuk
analisis pola pada saat informasi tentang hasil yang seharusnya didapatkan tidak
ada.
2. Deep networks untuk pembelajaran supervised, bertujuan menyediakan
kemampuan untuk membedakan klasifikasi pola secara langsung, dilakukan
3. Hybrid deep networks, memiliki tujuan sebagai pembeda dimana secara signifikan
dibantu dengan hasil yang didapatkan dari deep network untuk pembelajaran
unsupervised.
Heaton (2015) mendefinisikan deep learning adalah sebuah pengembangan baru
dalam bidang pemrograman jaringan saraf tiruan yang memberikan cara untuk melatih
DNN. Jaringan saraf tiruan dengan lebih dari dua lapisan (layer) disebut sebagai deep.
Kemampuan untuk membuat DNN telah muncul sejak 1943 dimana Pitts mengenalkan
multilayer perceptron. Jaringan saraf tiruan pada awalnya belum dapat dilatih secara
efektif hingga Hinton berhasil menjadi peneliti pertama yang melatih jaringan saraf
tiruan yang rumit pada tahun 1984.
2.7.Backpropagation
Backpropagation atau propagasi balik adalah salah satu algoritma yang digunakan
dalam pelatihan multilayer perceptron. Adapun tahapan yang dilakukan pada
algoritma ini, yakni (Negnetvisky, 2005):
1. Inisialisasi
Setiap bobot yang menghubungkan seluruh neuron yang ada diberikan nilai acak
dengan distribusi yang merata dan jangkauan yang kecil (Haykin, 1999).
Inisialisasi untuk nilai setiap bobot dihitung dengan persamaan 2.9.
dalam jaringan saraf tiruan untuk menghasilkan output. Aktivasi dari jaringan
saraf tiruan dilakukan dengan menggunakan input x1(p), x2(p), ..., xn(p) dan output
yang diharapkan yd1(p), yd2(p), …, ydn(p), dengan p adalah jumlah perulangan
yang sudah dilakukan dan p memiliki nilai awal 0.
Output sebenarnya dari setiap neuron pada hidden layer dihitung dengan
Dimana: n = banyak input dari neuron j pada hidden layer
sigmoid = fungsi aktivasi sigmoid
Dimana: m = banyak input dari neuron k pada outputlayer
sigmoid = fungsi aktivasi sigmoid
3. Pelatihan bobot
Update atau pembaruan nilai dari setiap bobot pada jaringan saraf tiruan akan
dilakukan dengan melakukan propagasi balik terhadap kesalahan (error) pada
output layer.
Error pada setiap neuron pada output layer dihitung dengan persamaan 2.12.
) Kemudian perbaikan bobot dihitung menggunakan persamaan 2.13.
)
algoritma propagasi balik (learning rate)
µ = konstanta yang menentukan besar perubahan update dari bobot
Error pada setiap neuron pada hidden layer dihitung dengan persamaan 2.15.
Kemudian perbaikan bobot dihitung menggunakan persamaan 2.16. algoritma propagasi balik (learning rate)
µ = konstanta yang menentukan besar perubahan update dari
dilakukan apabila kriteria error belum sesuai yang diharapkan. Algoritma
pelatihan propagasi balik selesai dilakukan apabila kriteria error telah sesuai yang
diharapkan.
2.8.Penelitian Terdahulu
Penelitian mengenai pengenalan gerakan tangan manusia dan metode Deep Neural
Network telah dilakukan oleh beberapa peneliti sebelumnya. Neto, et al. (2013)
melakukan penelitian mengenai penempatan gerakan tangan yang statis secara
real-time dan berlanjut menggunakan metode Artificial Neural Network (ANN). Penelitian
ini dilakukan dengan tujuan agar robot dapat melakukan gerakan tangan yang sama
dengan gerakan tangan manusia. Bentuk gerakan yang dilatih terdiri dari gerakan yang
memiliki arti (communicative) dan gerakan yang tidak memiliki arti (
non-communicative). Hasil penelitian menunjukkan tingkat pengenalan yang sangat baik
(99,8% untuk sepuluh gerakan tangan dan 96,3% untuk tiga puluh gerakan). Selain
itu, penelitian ini juga menggunakan waktu yang singkat untuk pelatihan dan
pembelajaran, memiliki kemampuan untuk mengeneralisasi dan kemampuan untuk
mengoperasikan secara independen dari kondisi di sekitar lingkungan.
Tang, et al. (2013) melakukan penelitian mengenai pengenalan postur tangan yang
algoritma skin color model dan depth model untuk deteksi tangan, algoritma kalman
untuk melacak tangan (hand tracking) serta mengimplementasikan DNN yakni Deep
Belief Network (DBN) dan Convolutional Neural Network (CNN) untuk mengenal
postur tangan. Hasil penelitian ini menunjukkan performa yang baik (akurasi
menggunakan DBN: 98,063% dan CNN: 93,995%) dalam pendeteksian dan pelacakan
tangan, dapat mengatasi masalah terhalangnya tangan serta dapat megenal postur
tangan dengan sangat cepat dan real-time. Namun, metode deteksi tangan yang
digunakan masih bergantung pada data warna dan kedalaman sehingga akurasi
bergantung pada konten dan pencahayaan gambar.
Erhan, et al. (2014) mengajukan metode untuk melakukan pelacakan lokasi objek
pada suatu gambar dan memprediksi beberapa kotak penanda pada satu waktu.
Metode yang digunakan adalah Deep Multi Box yang mengimplementasikan Deep
Convolutional Neural Network sebagai basis ekstraksi fitur dan model pembelajaran
untuk memprediksi lokasi kotak penanda. Adapun rata-rata akurasi yang didapatkan
untuk deteksi adalah 58,48% dan untuk klasifikasi adalah 77,29%, dengan jumlah
window yang digunakan 1-25.
Ramjan, et al. (2014) melakukan penelitian mengenai pengenalan dan
pendeteksian gerakan tangan dinamis secara real-time menggunakan interaksi
manusia dan komputer. Adapun proses yang dilakukan adalah penangkapan gambar
dari video, ekstrasi objek yang terdapat di tangan pada background gambar yang
tertangkap serta penggunaan kamera web untuk menelusuri gerakan objek. Objek
yang tertangkap kemudian diproses dengan blurring, grayscaling, HSV (Hue
Saturation Value) model, dan blob detection. Setelah proses-proses tersebut dilakukan,
gambar akan dicocokkan dengan gambar yang tersimpan dalam database untuk
menentukan gerakan. Melalui penelitian ini, interaksi yang melibatkan penambahan
tulisan baru, pengontrolan media seperti pemutar musik, slide presentasi, photo viewer
dan operasi pada PC dapat dilakukan.
Chairunnisa (2015) melakukan penelitian tentang pengenalan gerakan tangan
manusia yang statis dengan mengimplementasikan teknik-teknik computer vision,
Hs-CbCr (HueSaturation-ChromaBlueChromaRed) untuk mendeteksi warna kulit dan
teknik average background untuk mengatasi masalah background. Penelitian ini
menunjukkan bahwa dengan kondisi tangan kosong dan latar belakang yang kompleks
pemutar musik, pemutar video dan PDF reader. Selain itu, tingkat akurasi 96,87%
dalam mengenali gerakan tangan manusia dengan syarat kondisi pencahayaan yang
baik juga dicapai.
Molchanov, et al. (2015) meneliti mengenai pengenalan gerakan tangan secara
dinamis pada saat mengemudi mobil dengan menggunakan metode Convolutional
Neural Network (CNN). Penelitian ini menggunakan dataset dari Vision for Intelligent
Vehicles and Applications (VIVA). Hasil dari penelitian ini mencapai tingkat akurasi
77,5 % untuk klasifikasi. Rangkuman penelitian terdahulu dapat dilihat pada Tabel 2.1.
Tabel 2.1. Penelitian Terdahulu
No. Peneliti Tahun Metode Keterangan
Tabel 2.1. Penelitian Terdahulu (lanjutan)
No. Peneliti Tahun Metode Keterangan
cukup lama terutama
Perbedaan penelitian yang dilakukan dengan penelitian terdahulu adalah penelitian
ini berfokus pada pengenalan gerakan tangan manusia yang terdiri dari enam yaitu
gerakan tangan dari kiri ke kanan, dari kanan ke kiri, dari atas ke bawah, dari bawah
ke atas, dari depan ke belakang dan dari belakang ke depan. Kemudian, hasil
pengenalan gerakan tangan manusia akan digunakan untuk mengendalikan beberapa
aplikasi komputer. Adapun metode yang diimplementasikan dalam penelitian ini,
Melakukan beberapa tahap preprocessing untuk mengurangi parameter input
dimana bertujuan untuk mempercepat proses pelatihan dan pengenalan gerakan
tangan. Adapun tahap pre-processing yang dilakukan yaitu:
- pemisahan video gerakan tangan menjadi beberapa frame gambar, - setiap frame gambar diperkecil dengan algoritma nearest neighbour, - setiap frame gambar dilakukan proses grayscaling,
- setiap frame gambar dilakukan proses frame differencing dengan gambar
pertama,
- empat gambar akan dipilih dari kumpulan gambar yang telah melalui proses
frame differencing,
- proses Principal Component Analysis (PCA) dilakukan pada empat gambar
yang telah dipilih.