1
BAB 1 PENDAHULUAN
1.1 Latar Belakang Dalam bidang penelitian visi dan grafika komputer, pelacakan gerak ujung-ujung jari dari sekuen citra video secara otomatis telah menjadi penelitian yang sangat menarik untuk dikembangkan. Hal ini disebabkan karena pelacakan gerak ujung-ujungjari merupakankomponen utama yang sangat diperlukan pada kebanyakan sistem pengenalan bahasa isyarat (gesture recognition), antarmuka alami (natural user interface), penangkap gerak (motion capture) untuk pembuatan animasi tiga-dimensi (3D), dan sistem aplikasi komputer untuk membantu operasi bedah di bidang medik dan kedokteran (computer assisted surgery). Namun demikian, pelacakan ujung-ujung jari juga merupakan masalah yang sulit dan menantang. Tidak seperti pelacakan gerak tangan, kaki, atau anggota tubuh yang lain seperti kepala, gerakan masing-masing ujung jari sangat bervariasi dan berubah secara cepat dengan luas daerah pengamatan atau ROI (region of interest) untuk masing-masing ujung jadi relatif sangat kecil sehingga sangat sensitif terhadap derau yang disebabkan oleh citra latar belakang yang berubah-ubah atau sulit dibedakan dengan citra objek ujung-ujung jari yang hendak dilacak. Pelacakan menjadi semakin sulit apabila terjadi halangan (occlusion) baik secara parsial maupun secara keseluruhan sehingga untuk beberapa saat atau beberapa frame kita kehilangan informasi posisi ujung-ujung jari yang hendak di deteksi. Metode penjejakan yang baik harus segera dapat menemukan kembali ujung-ujung jari tersebut setelah halangan tersebuttidak ada lagi dan juga mampu memprediksi ujung-ujung jari yang terhalang berdasarkan informasi posisi dari ujungujung jari lain yang tidak terhalang. Dalam prakteknya, ada dua cara untuk melacakgerakan suatu objek. Pendekatan pertama disebut pendekatan tracking-by-detection. Pada pendekatan ini, untuk melacak suatu objek dilakukan pendeteksian objek tersebut pada setiap frame gambar bergerak atau video yang diamati, guna menentukan posisi objek itu di setiap framenya. Pendekatan kedua disebut sebagai pendekatan detection-by-tracking. Pada pendekatan ini, pendeteksian objek hanya dilakukan pada satu atau beberapa frame pertama saja, lalu
1 Universitas Indonesia
2
untuk mengetahui gerak atau posisi objek pada frame-frame selanjutnya kita cukup melakukan penjejakan perubahan gerak antara frame saat ini terhadap frame-frame sebelumnya. Jadi kita tidak perlu menjalankan algoritma pendeteksian objek disetiap framenya. Pendekatan yang pertamatidak dianjurkan selain karena mahalnya biaya komputasi untuk mendeteksi keberadaan suatu objek pada setiap framenya, pendekatan ini juga tidak memanfaatkan pengetahuan yang sudah didapat pada frame-frame sebelumnya (apriori knowledge) yang dapat digunakan guna menghitung probabilitas kemunculan
atau
posisi
suatu
objek
saat
ini.
Pendekatan
detection-by-
tracking(pendekatan kedua) secara komputasi lebih efisien dibandingkan pendekatan tracking-by-detection (pendekatan pertama) apalagi apabila pada setiap framenya objek yang menjadi target ternyata hanya melakukan perubahan kecil saja. Untuk mengetahui posisi (bahkan dalam aplikasi tertentu kita juga perlu menentukan orientasi, kecepatan, dan percepatan) suatu objek, detection dan trackingsaling terkait erat satu sama lain karena detection diperlukan pada fase awal sedangkan tracking digunakan pada fase selanjutnya(Del Bimbo, 2011). Untuk menangani gerak sensitif dengan variasi tinggi seperti gerak ujung-ujung jari, kita tidak dapat menanganinya secara deterministik. Pendekatan yang lebih tepat untuk menangani hal ini adalah dengan pendekatan stokastik. Pada pendekatan semacam ini, fungsi kerapatan probabilitas (probability density function atau PDF) dari posisi objek akan di estimasi dengan melakukan pensampelan nilai-nilai piksel pada bidang citra kemudian mentransformasinyake dalam suatu domain tertentu agar dapat diukurtingkat kemiripannya dengan objek target yang akan dilacak. Karena penampakan objek target terus berubah seiring waktu pengamatan, PDF yang akan diestimasi biasanya bersifat kompleks dengan beberapa puncak distribusi yang beragam ketinggiannya (multimodal distribution). Tidak seperti pelacakan objek secara deterministik yang didasarkan pada teori optimasi yang meminimalkan suatu fungsi tertentu, pelacakan objek secara stokastik didasarkan pada teori estimasi Bayes. Pada pelacakan secara deterministik posisi objek target bersesuaian dengan nilai minimum fungsi yang akan diminimisasi. Tidak jarang pendekatan deterministik berbasis optimasi ini terperangkap didalam local minima.Pada pelacakan secara stokastik, masalah pelacakan objek diformulasikan sebagai masalah
Universitas Indonesia
3
bagaimana menentukan PDF dari suatu vektor keadaan (state vector) yang menggambarkan posisi target. Vektor keadaan tersebut diasumsikan sebagai suatu peubah acak yang akan diperbaiki nilainya berdasarkan hasil pengamatan pada setiap frame gambar objek target. Perubahan posisi objek targetdiasumsikan merupakan perubahan non-liner dan non-Gaussian.Estimasi peubah keadaan non-linier dan non-Gaussian menjadi bagian dari teori estimasi yang terus dikembangkan. Berbagai metode estimasi peubah keadaan nonlinier yang saat ini dikembangkan antara lain Extended Kalman Filter (EKF) dan Particle Filter (PF). Sebenarnya EKF adalah perluasan dari Kalman Filter (KF). KF pada hakikatnya tidak dapat langsung diterapkan untuk sistem non-linear dan non-Gaussian (distribusi kompleks dan multimoda). Untuk itu EKF melakukan linearisasi dari sistem non-linear tersebut agar bisa diestimasi oleh KF. Dengan demikian, EKF dapat
melakukan
pelacakan menggunakanmodel non-linier dan non-Gaussian. EKF biasanya lebih baik dibanding KF dan mampu memberikan hasil estimasi yang cukup memuaskan karena mampu mengakomodasi gerak yang sederhana maupun gerak yang kompleks.Akan tetapi dalam beberapa kasus, EKF tidak sanggup untuk meramal dengan baik Tingkat kesalahan yang dihasilkan EKF terkadang juga sangat tinggi. Particle Filter atau yang sering juga disebut sebagai Sequential Monte Carlo, pertama kali dikembangkan oleh Godon et al. pada tahun 1993. Ada dua tahap utama dalam metode ini, yaitu prediksi dan update. Namun dibutuhkan komputasi yang cukup besar karena iterasinya yang cukup kompleks. Hal ini terjadi karena bobot (arti penting setiap partikel) perlu dihitung pada setiap tahap update. Keakuratan rata-rata metode ini adalah 80.862% (Indah, 2007). Pada penelitian ini, penulis mencoba merealisasikan sistem pelacakan ujungujung jari yang diperuntukan untuk interaksi yang lebih baik antara manusia dan komputer serta untuk membantu penangkapan gerak jemari tangan guna pembuatan animasi 3D. Pelacakan posisi ujung-ujung jari dilakukan dalam dua proses terpisah yakni: (1) pelacakan posisi dua dimensi (2D) vertical dan horizontal atau posisi (π₯, π¦) dari citra RGB (red, green, blue); (2) pelacakan dimensi ketiga yaitu (π§) dari citra kedalaman atau depth images yang dikalibrasi, yang kemudian disatukan kedalam pelacakan posisi tiga dimensi (π₯, π¦, π§) menggunakan Particle Filter.Posisi 2D atau (π₯, π¦) ditemukan dengan cara menghitung Convex Hull 2D dari citra hasil binerisasi citra asli. Sedangkan posisi
Universitas Indonesia
4
3D ditentukan menggunakan metode Stephane-Magnenat dari citra kedalaman. Setelah itu, masing-masing ujung jari dilacak oleh beberapa pelacak PF secara simultan dengan teknologi multithreading. Untuk menguji efektifitas sistem yang dikembangkan penulis membuat modul grafika tangan 3D untuk mensimulasikan gerakan tangan hasil pelacakan. Hasil pelacakan ujung-ujung jari ini kemudian juga digunakan untuk mensimulasikan kontrol pembesaran (zoom-in) dan pengecilan (zoom-out) yang banyak dilakukan pada interaksi manusia dengan televisi maupun perangkat tablet melalui pembesaran dan pengecilan objek sederhana seperti bola dengan gerakan jemari tangan. Selain itu, penulis juga mengukur tingkat akurasi, overhead waktu komputasi, dan kemampuan untuk beradaptasi terhadap halangan atau occlusion dalam beberapa skenario eksperimen.
1.2 Perumusan Masalah Berdasarkan latar belakang maka dirumuskanbeberapa masalah utama yang diupayakan untuk dijawab dalam tesis ini yaitu: 1. Bagaimana menerapkan metode particle filter pada pelacakan ujung jari? 2. Bagaimana menerapkan pelacak ujung jari dalam mengatasi occlusion? Beberapa masalah lain yang tidak kalah pentingnya tapi lebih bersifat teknis yang juga hendak dicari jawabannya dalam penelitian ini adalah: 1. Bagaimana cara menentukan nilai parameter-parameter PF yang terbaik untuk pelacakan ujung-ujung jari? 2. Seberapa akurat ujung-ujung jari dapat dilacak menggunakan PF? 3. Seberapa cepat ujung-ujung jari dapat dilacak menggunakan PF? 4. Apakah jika pelacakan posisi 2D atau (π₯, π¦) dari ujung-ujung jari dilakukan secara terpisah dengan pelacakan posisi kedalaman (π§) akan lebih baik dibandingkan dengan pelacakan posisi 3D atau (π₯, π¦, π§) secara simultan? 5. Seberapa akurat PF melacak ujung-ujung jari jika dibandingkan dengan metode pelacakan yang lain seperti KF? 6. Seberapa handal PF dalam melacak ujung-ujung jari yang sementara hilang dikarenakan terhalang baik secara parsial atau keseluruhan oleh objek lain yang merupakan bagian dari badan pemilik jemari sendiri maupun benda atau orang lain?
Universitas Indonesia
5
1.3 Batasan Masalah Penelitian ini berupaya merealiasikan dan melakukan evaluasi algoritmaalgoritma pelacakan ujung-ujung jari yang bergerak dinamis dengan menggunakan metode particle filter untuk animasi pergerakan jemari tangan ke dalam model 3D dan juga untuk antarmuka alami.
1.4 Tujuan Tujuan penlitian ini adalah: 1. Menerapkan metode particle filter pada pelacakan ujung jari. 2. Menerapkan pelacak ujung jari dalam mengatasi occlusion.
1.5 Manfaat Manfaat penelitian ini adalah: 1. Untuk mengetahui tingkat akurasi, efisiensi serta pemilihan parameter yang baik pada penerapan metode particle filteruntuk pelacakan ujung-ujung jari. 2. Untuk mengatasi permasalahan occlusion dalam proses pelacakan ujung jari. 3. Untuk membuat sistem animasi 3D dari gerakan jemari tangan sehingga akan mempermudah para animator karena tidak perlu membuat animasi gerakan jarijari tangan secara manual yang akan menghabiskan banyak waktu dan tenaga. 4. Sebagai dasar bagi implementasi operasi pada antarmuka alami yang lebih bersahabat dan intuitif untuk berinteraksi dengan televisi, komputer, maupun perangkat tablet.
1.6 Kontribusi Kontribusi penelitian ini adalah 1
Penentuan ujung jari dengan memberikan depth point threshold pada convex hull.
2
Perumusan forward kinematics untuk gerakan jari.
3
Perumusan zoom in/out.
4
Teknik baru untuk menangani halangan baik yang parsial maupun keseluruhan. BAB 2
Universitas Indonesia
6
STUDI LITERATUR 2.1. Penelitian terkait Berikut tabel penelitan terkait dan perbandingannya dengan penelitian yang dilakukan pada thesis ini pada baris terakhir: Tahun
Penulis
Judul
Masukan
Hand Detection
Fingertip Detection
2012
Hui Liang
3D fingertip and Palm Tracking in Depth Image Sequences
Depth image sequence
Depth threshold
three depthbased features
Mobile User Interface Using a Robust Fingertip Detection Algorithm
RGB Image Sequences
2012
ByungHun Oh
2010
Yi Li
Ahmad Y.D
Skin color filter
Morphologica l filter, Adaboost Algorithm
Derry A.
Hand Gesture Recognition Using Kinect
Depth image sequence
Depth threshold
Fingertip detection from color image with complex background
RGB Image
Skin color filter
Particle Filter based Fingertips Detection and Tracking from Color and Depth Images with Occlusion Handling
Implementation
particle filter in v(x, y)
3D hand animation
-
Mobile Game
-
Gesture recognition
-
-
Particle filter in (x, y, z)
3D hand animation and natural user interface
1 Convex Hull, using finer distance
RGB and depthimag e sequences
Depth threshold
5
Skeleton scheme, thining to get skeletonfinding end point-finding convex hull(envelope
2013
Fingertip Tracking
5
for Complex Lighting and Background Conditions 2012
Detected Fingertip
5
Convex hull and morphological filter
5
Tabel 2.1 Penelitian terkait 2.2.Deteksi Objek
7
Universitas Indonesia
7
Secara umum, metodepelacakanobjek dapat dibagimenjadi empatkategori utama yakni: berbasis wilayah, berbasis model, berbasis konturaktif, dan berbasis fitur. Berikut deskripsi dari metode-metode tersebut: 1. Metode pelacakan berbasis wilayah adalah algoritma yang melacak benda berdasarkan variasi wilayah yang bersesuaian dengan benda bergerak yang diamati (P. Kumar, H. Weimin, I. U. Gu & Q. Tian, 2004;Boyoon Jung &Gaurav S. Sukhatme, 2004). 2. Metode pelacakan berbasis model adalah algoritma yang melacak objek berdasarkan model objek yang cocok (D. Serby, E. K. Meier & L. V. Gool., 2004). Terdapat satu atau beberapa model yang robust, sehingga dapat mendeteksi pergerakan benda yang bersesuaian dengan model yang diberikan. Algoritma ini biasanya berjalan lebih lambat. 3. Metode pelacakan berbasis kontur aktif adalah algoritma pelacakan yang melacak obyek berdasarkan kontur objek dan memperbarui kontur pada frame berturut-turut (Zhimin Fan, Jie Zhou, Dashan Gao and Zhiheng Li., 2002). 4. Metode pelacakan berbasis fituradalah algoritma yang melacakobyekdengan mengekstrakfitur dan mencocokanfitur tersebut di antara frame-frame (D. Serby, E. K. Meier & L. V. Gool., 2004). Sebagai contoh, fitur yang diambil dapat berupa warna.
2.2.1. Kontur Aktif Segmentasi citra dalam prapengolahan dan analisis citra bertujuan untuk mempartisi gambar menjadi beberapa sub-daerah berdasarkan fitur yang diinginkan. Kontur aktif telah banyak digunakan sebagai metode segmentasi citra. Metode ini selalu menghasilkan sub-wilayah dengan batas-batas kontinyu, berbeda dengan metode tepi kernel berbasis deteksi, contohnya seperti detektor tepi Sobel, sering menghasilkan batas terputus-putus. Metode Kontur aktif didasarkan pada penggunaan kontur yang dapat berubah bentuk (deformable)menyesuaikan diri dengan bentuk objek bergerak yang dijadikan target. Berdasarkan implementasi matematikanya, ada dua pendekatan utama dalam kontur aktif: Snakes dan Level-set. Snakes secara eksplisit menggeser titik-titik pada kontur yang telah ditetapkan menggunakan metode minimalisasi energi, sementara
Universitas Indonesia
8
level-setmendekati kontur bergerak sebagai tingkat tertentu fungsi. Ada dua jenis model kontur aktif sebagai metode segmentasi citra yaitu: berdasrkan tepi dan berdasarkan wilayah. Kontur aktif berbasis tepi menerapkan sebuah detektor tepi, biasanya didasarkan pada gradien gambar, untuk menemukan batas-batas sub-daerah dan untuk menggambarkan kontur ke batas terdeteksi. Kontur aktif berbasis tepi berhubungan erat dengan segmentasi berdasarkan tepi. Penggunaan teori level-setlebih fleksibel dan mudah diterapkan pada kontur aktif. Namun, kontur aktif berbasis wilayah lebih berlaku untuk gambar hanya relatif sederhana dimananilai piksel-piksel di dalam subdaerah relatif seragam tanpa ada tepi internal. Kontur aktif berbasis wilayah menerapkan informasi statistik intensitas gambar di dalam setiap bagian. Kontur aktif berbasis daerah berhubungan erat dengan segmentasi berbasis wilayah.
2.2.2. Gaussian Smoothing Smoothing atau juga disebut Blur, adalah operasi pengolahan gambar sederhana dan sering digunakan. Hal ini biasanya dilakukan untuk mengurangi noise atau kamera artefak. Efek Gaussian Blur adalah filter yang memadukan sejumlah tertentu pixel secara bertahap, mengikuti kurva berbentuk lonceng(Bradski, 2008; AlAmri, 2010) Gaussian Blur dilakukan dengan convolving setiap titik dalam larik masukan dengan kernel Gaussian dan kemudian menjumlahkan untuk menghasilkan larik luaran. Berikut, fungsi Gaussian Blur (Bradski, 2008): G(x, y) = Ξ±π
2 (yβΞΌ )2 (xβΞΌx ) y β β 2Ο2 2Ο2 x y
(1).
2.3.Deteksi Ujung Jari Untuk menemukan ujung jari dapat dilakukan dengan dua langkah. Yaitu yang pertama menentukan kontur tangan. Yang kedua menemukan convex dan defects-nya. Convex hull merupakan cara untuk meberikan titik awal dan akhir dari suatu puncak atau kelengkungan dari telapak tangan. Setelah mendpatkan nilai atau poin-poin maka kita dapat menentukan nilai kecuramannya atau kedalaman antar lengkungan. Defects
Universitas Indonesia
9
merupakan segmentasi yang terbentuk dari dua lengkungan yang telah dideteksi oleh convex hull. Hal ini tergambar pada gambar 4 dimana A diasumsikan sebagai titik awal convex dan B sebagai titik akhir convex.
(a)
(b)
Gambar 2.1. Convex dan defects (Sumber: openCV)
2.4.Pelacakan ObjekBerbasis Model Pelacakan objek dilakukan dengan menganalisis dua model yaitu model fungsi dan model pengukuran. Model fungsi merupakan analisa pergerakan objek untuk tiap satuan waktu sedangkan model pengukuran merupakan analisa interaksi objek dengan lingkungannya (Arumpalam, 2002). Analisa pergerakan objek dilakukan dengan pendekatan probabilitas. Dengan ini maka semua kemungkinan solusi pergerakan objek direpresentasikan dalam bentuk distribusi probabilitas. Kemudian dalam pencarianya, posisi objek dihitung berdasarkan derajat kepercayaan sehingga diperoleh posisi objek atau dengan kata lain objek terlacak. Objek yang akan dilacak memiliki state atau keadaan.State ini sendiri merupakan himpunan semua aspek atau fitur yang terdapat pada objek, misalkan posisi untuk setiap satuan waktu pada sistem dinamis. Tujuan dari pelacakan obyek adalah untuk mengestimasi state yang merupakan sampel dari objek sebagai populasinya pada waktu ke-t. State ini dinotasikan dengan Xt yaitu state pada waktu ke-t {ππ‘ β β|π‘ = 0, 1, 2 β¦ , π}. 2.4.1. Bayesian Filter Teorema Bayes secara konsisten memperbaiki kepercayaan kita tentang suatu variabel berdasarkan data yang dimiliki. Selain itu pendekatan Bayesian cukup handal menangani variabel pengganggu (nuisance parameter). Variabel pengganggu adalah
Universitas Indonesia
10
suatu variabel yang kita tidak tertarik untuk melakukan inferensi atasnya, tapi kita tidak ingin variabel tersebut mempengaruhi inferensi tentang variabel utama. Berikut persamaan dasar teorema atau aturan bayes:
π(π|π) =
π(π|π)π(π) π(π)
dengan π = π(π)β1 maka π(π|π) = ππ(π|π)π(π)
(2)
dimana P(X|Y) adalah probabilitas posterior, P(Y|X)adalah likelihood atau kemiripan antara data dan variabel yang akan diestimasi, sedangkan P(X) adalah probabilta prior yang menggambarkan derajat kepercayaan dan π normalisasi pada aturan Bayes. Bayesian filter merupakan algoritma yang umum digunakan untuk menghitung kepercayaan berdasarkan aturan Bayes. Dalam pelacakan suatu objek, kita memiliki variabel yang tidak bisa kita hitung secara langsung, misalnya kepastian posisi objek dalam dunia nyata. Variabel ini dinyatakan oleh state π₯π‘ sehingga kepercayaan kita bahwa objek memiliki suatu nilai pada dunia nyata dinyatakan dalam πππ(π₯π‘ ). Kemudian dengan menerapkan Bayesian filter kita dapat menghitung kepercayaan berdasarkan pengetahuan yang kita miliki, sebagai contoh nilai observasi posisi objek. Berikut algoritma Bayes filter dijabarkan (Thurn S. and Burgard W., 2000):
Algorithm Bayes_filter(πππ(π₯π‘β1 ), π’π‘ , π§π‘ ): for all π₯π‘ do Μ
Μ
Μ
Μ
(π₯π‘ ) = β« π(π₯π‘ |π’π‘ , π₯π‘β1 )πππ(π₯π‘β1 )ππ₯π‘β1 πππ
(3)
Μ
Μ
Μ
Μ
(π₯π‘ ) πππ(π₯π‘ ) = ππ(π§π‘ |π₯π‘ )πππ
(4)
endfor return πππ(π₯π‘ )
π(π₯π‘ |π’π‘ , π₯π‘β1 ) merupakan probabilita perubahan state, yaitu probabilita dari suatu fungsi yang mempengaruhi suatu objek dalam bergerak berdasarkan π’π‘ variabel kontrol, sebagai contoh kecepatan objek. Akan tetapi, nilai π’π‘ bisa kita anggap kosong artinya kita tidak memperhatikan bahwa objek bergerak berdasarkan suatu variabel tertentu yaitu π’π‘ , sehingga kita hanya menghitung probabilitanya berdasarkan pengetahuan state terdahulu. Maka untuk memprediksi dilakukan persamaan (3), dimana πππ(π₯π‘β1 ) merupakan kepercayaan kita terhadap state terdahulu (π₯π‘β1).
Universitas Indonesia
11
Kemudian π(π§π‘ |π₯π‘ ) merupakan probabilita pengukuran, yaitu probabilita posisi objek hasil observasi π§π‘ jika diketahui nilai posisi nyatanya π₯π‘ . Sehingga, untuk proses koreksi dilakukan pada persamaan (4). Algoritma Bayes filter Secara garis besar terdiri dari dua proses yaitu prediksi dan koreksi. Algoritma ini bersifat rekursif, sehingga dalam penggunaannya pada pelacakan proses penentuan posisi berikutnya berdasarkan hasil prediksi sebelumnya. Dimana posisi berikutnya berada pada fungsi kepadata probabilita posterior dan posisi sebelumnya berada pada fungsi kepadata probabilita prior.
2.4.2. Kalman filter Kalman filter merupakan bagian dari Gaussian filter yang mengikuti dalil yang diberikan oleh Bayesian filter, ditemukan oleh Swerling (1958) dan Kalman (1960) (Thurn S. and Burgard W., 2000). Kalman filter menganggap bahwa objek bergerak pada distribusi Gauss atau normal. Dengan asumsi bahwa objek bergerak berdasarkan suatu persamaan linier dan memiliki variabel pengganggu yang diberikan secara acak, mengikuti aturan Gauss. Persamaan linier yang diberikan oleh Kalman filter dinyatakan dalam persamaan (5) dan (6)
π₯π‘ = π΄π‘ π₯π‘β1 + π΅π‘ π’π‘β1 + ππ‘
(5)
dimana ππ‘β1 = π΄π‘ π₯π‘β1 + π΅π‘ π’π‘β1 adalah mean dan Ξ£π‘β1 kovarian dari ππ‘
π§π‘ = πΆπ‘ π₯π‘ + πΏπ‘
(6)
Persamaan (5) menyatakan nilai state π₯π‘ , dengan ππ‘ merupakan suatu variabel acak Gauss yang memiliki mean sama nol. π΄π‘ dan π΅π‘ merupakan konstanta yang diberikan. Kemudian untuk nilai observasi dinyatakan dalam persamaan (6), dengan πΏπ‘ merupakan suatu variabel acak Gauss yang memiliki mean sama nol. πΆπ‘ merupakan konstanta yang diberikan. Kalman merepresentasikan nilai kepercayaan kedalam mean (π) dan kovarian (Ξ£), sehingga untuk hitung nilai kepercayaan dapat dilakukan dengan cara yang serupa pada Bayes filter. Berdasarkan persamaan yang diberikan pada Kalman filter, yaitu pada persamaan (7), (8) dan (9)
Universitas Indonesia
12
1
1
πππ(π₯π‘β1 ) = πππ‘(2πΞ£tβ1 )β2 ππ₯π {β 2 (π₯π‘β1 β π΄π‘ π₯π‘β1 β π΅π‘ π’π‘β1 )π Ξ£β1 tβ1 (π₯π‘β1 β π΄π‘ π₯π‘β1 β π΅π‘ π’π‘β1 )}
(7)
1
1
π(π₯π‘ |π’π‘ , π₯π‘β1 ) = πππ‘(2ππ
)β2 ππ₯π {β 2 [π₯π‘ β π΄π‘ π₯π‘β1 β π΅π‘ π’π‘β1 ]π π
π‘β1 [π₯π‘ β π΄π‘ π₯π‘β1 β π΅π‘ π’π‘β1 ]} 1
(8) 1
π(π§π‘ |π₯π‘ ) = πππ‘(2πππ‘ )β2 exp {β 2 [π§π‘ β πΆπ π₯π‘ ]π π
π‘β1 [π§π‘ β πΆπ π₯π‘ ]}
(9)
maka dapat dihitung
Μ
Μ
Μ
Μ
(π₯π‘ ) = β« π(π₯π‘ |π’π‘ , π₯π‘β1 )πππ(π₯π‘β1 )ππ₯π‘β1 πππ Μ
Μ
Μ
Μ
(π₯π‘ ) πππ(π₯π‘ ) = ππ(π§π‘ |π₯π‘ )πππ
Kemudian, untuk menghitung kembali nilai mean dan kovarian berikutnya dilakukan oleh algoritma Kalman filter (Thurn S. and Burgard W., 2000).
Algorithm Kalman_filter(ππ‘β1 , Ξ£π‘β1 , π’π‘ , π§π‘ ): πΜ
π‘ = π΄π‘ ππ‘ + π΅π‘ π’π‘
(10)
Μ
π‘ = π΄π‘ Ξ£π‘β1 π΄ππ‘ + π
π‘ Ξ£
(11)
Μ
π‘ πΆπ‘π (πΆπ‘ Ξ£ Μ
π‘ πΆπ‘π + ππ‘ )β1 πΎπ‘ = Ξ£
(12)
ππ‘ = πΜ
π‘ + πΎπ‘ (π§π‘ β πΆπ‘ πΜ
π‘ )
(13)
Μ
π‘ Ξ£π‘ = (πΌ β πΎπ‘ πΆπ‘ )Ξ£
(14)
return ππ‘ , Ξ£π‘
Persamaan (10) dan (11) merupakan tahap prediksi. Kemudian persamaan (13) dan (14) merupakan tahap koreksi, berdasarkan Kalman Gain yang didapat, yaitu persamaan (12). Hasil dari Kalman filter adalah nilai mean dan kovarian yang jika
Universitas Indonesia
13
dilakukan proses rekursif, yaitu menyatakan kembali hasil dari Kalman filter sebagai nilai awal (ππ‘β1 , Ξ£π‘β1 ) maka, akan membentuk π΄π‘ dan π΅π‘ yang baru, begitu juga dengan πΆπ‘ . Sehingga dalam algoritma pelacakan kalman filter dinyatakan:
Algoritma Pelacakan_kalmanFilter while (true) π₯π‘ = π΄π‘ π₯π‘β1 + π΅π‘ π’π‘β1 + ππ‘ π§π‘ = πΆπ‘ π₯π‘ + πΏπ‘ Μ
Μ
Μ
Μ
(π₯π‘ ) = β« π(π₯π‘ |π’π‘ , π₯π‘β1 )πππ(π₯π‘β1 )ππ₯π‘β1 πππ Μ
Μ
Μ
Μ
(π₯π‘ ) πππ(π₯π‘ ) = ππ(π§π‘ |π₯π‘ )πππ Kalman_filter(ππ‘β1 , Ξ£π‘β1 , π’π‘ , π§π‘ ) endWhile
Extended Kalman Filter Dalam prakteknya, pergerakan objek tidak selalu linier atau berada dalam distribusi Gaussian. Kemudian dilakukan pendekatan lain dalam mengatasi permasalahan distribus non Gaussian, yaitu dengan Extended Kalman filter. Extended Kalman filter mencoba melinierkan fungsi non linier atau distribusi non Gaussian, yang dinyatakan oleh persamaan (15) dan (16)
π₯π‘ = π(π’π‘ , π₯π‘β1 ) + ππ‘
(15)
π§π‘ = β(π₯π‘ ) + πΏπ‘
(16)
Dengan π(π’π‘ , π₯π‘β1 ) dan β(π₯π‘ ) merupakan fungsi non Gaussian, maka π₯π‘ dan π§π‘ dinyatakan sebagai suatu persamaan linier yang menggandung variabel pengganggu seperti halnya pada Kalman filter. Untuk menyatakan π₯π‘ dan π§π‘ sebagai persamaan linier, maka dilakukan aproksimasi π(π’π‘ , π₯π‘β1 ) dan β(π₯π‘ ), yaitu pada persamaan (17) dan (18)
π(π’π‘ , π₯π‘β1 ) = π(π’π‘ , ππ‘β1 ) + πβ²(π’π‘ , ππ‘β1 )(π₯π‘β1 β ππ‘β1 )
Universitas Indonesia
14
π(π’π‘ , π₯π‘β1 ) = π(π’π‘ , ππ‘β1 ) + πΊπ‘ (π₯π‘β1 β ππ‘β1 )
(17)
dimana πΊπ‘ = πβ²(π’π‘ , ππ‘β1 ) yang dikenal dengan Jacobian. β(π₯π‘ ) = β(πΜ
π‘ ) + ββ²(πΜ
π‘ )(π₯π‘ β πΜ
π‘ )
(18)
β(π₯π‘ ) = β(πΜ
π‘ ) + π»π‘ (π₯π‘ β πΜ
π‘ ) dimana π»π‘ = ββ²(πΜ
π‘ ) = πβ(π₯π‘ )/ππ₯π‘
Kemudian menghitung probabilita posteriornya dan probabilita pengukuranya melalui persamaan (19) dan (20)
1
1
π(π₯π‘ |π’π‘ , π₯π‘β1 ) β πππ‘(2ππ
)β2 ππ₯π {β 2 [π₯π‘ β π(π’π‘ , ππ‘β1 ) β πΊπ‘ (π₯π‘β1 β ππ‘β1 )]π π
π‘β1 [π₯π‘ β π(π’π‘ , ππ‘β1 ) β πΊπ‘ (π₯π‘β1 β ππ‘β1 )]} (19)
1
1
π(π§π‘ |π₯π‘ ) = πππ‘(2πππ‘ )β2 exp {β 2 [π§π‘ β β(πΜ
π‘ ) β π»π‘ (π₯π‘ β πΜ
π‘ )]π π
π‘β1 [π§π‘ β β(πΜ
π‘ ) β π»π‘ (π₯π‘ β πΜ
π‘ )]}
(20)
dimana π(π’π‘ , ππ‘β1 ) + πΊπ‘ (π₯π‘β1 β ππ‘β1 ) merupakan mean. Kemudian dilakukan cara yang sama seperti pada kalman filter dalam menhitung nilai kepercayaanya, yaitu:
Μ
Μ
Μ
Μ
(π₯π‘ ) = β« π(π₯π‘ |π’π‘ , π₯π‘β1 )πππ(π₯π‘β1 )ππ₯π‘β1 πππ Μ
Μ
Μ
Μ
(π₯π‘ ) πππ(π₯π‘ ) = ππ(π§π‘ |π₯π‘ )πππ
dimana
1
1
πππ(π₯π‘β1 ) = πππ‘(2πΞ£tβ1 )β2 ππ₯π {β 2 (π₯π‘β1 β π(π’π‘ , ππ‘β1 ) β πΊπ‘ (π₯π‘β1 β π
ππ‘β1 )) Ξ£β1 tβ1 (π₯π‘β1 β π(π’π‘ , ππ‘β1 ) β πΊπ‘ (π₯π‘β1 β ππ‘β1 ))} (21)
Universitas Indonesia
15
Kemudian, untuk menghitung kembali nilai mean dan kovarian berikutnya dilakukan oleh algoritma Extended Kalman filter (Thurn S. and Burgard W., 2000).
Algorithm Extended_Kalman_filter(ππ‘β1 , Ξ£π‘β1 , π’π‘ , π§π‘ ): πΜ
π‘ = π(π’π‘ , ππ‘β1 )
(22)
Μ
π‘ = πΊπ‘ Ξ£π‘β1 πΊπ‘π + π
π‘ Ξ£
(23)
Μ
π‘ π»π‘π (π»π‘ Ξ£ Μ
π‘ π»π‘π + ππ‘ )β1 πΎπ‘ = Ξ£
(24)
ππ‘ = πΜ
π‘ + πΎπ‘ (π§π‘ β β(πΜ
π‘ ))
(25)
Μ
π‘ Ξ£π‘ = (πΌ β πΎπ‘ π»π‘ )Ξ£
(26)
return ππ‘ , Ξ£π‘
Persamaan (22) dan (23) merupakan tahap prediksi. Kemudian persamaan (25) dan (26) merupakan tahap koreksi, berdasarkan Kalman Gain yang didapat, yaitu persamaan (24). Hasil dari Kalman filter adalah nilai mean dan kovarian yang jika dilakukan proses rekursif, yaitu menyatakan kembali hasil dari Extended Kalman filter sebagai nilai awal (ππ‘β1 , Ξ£π‘β1 ), sehingga dalam algoritma pelacakan Extended kalman filter dinyatakan:
Algoritma Pelacakan_kalmanFilter while (true) π₯π‘ = π(π’π‘ , π₯π‘β1 ) + ππ‘ π§π‘ = β(π₯π‘ ) + πΏπ‘ Μ
Μ
Μ
Μ
(π₯π‘ ) = β« π(π₯π‘ |π’π‘ , π₯π‘β1 )πππ(π₯π‘β1 )ππ₯π‘β1 πππ Μ
Μ
Μ
Μ
(π₯π‘ ) πππ(π₯π‘ ) = ππ(π§π‘ |π₯π‘ )πππ Kalman_filter(ππ‘β1 , Ξ£π‘β1 , π’π‘ , π§π‘ )
Universitas Indonesia
16
endWhile
2.4.3. Particle filter Particle filter merupakan penurunan dari pendekatan Bayesian dalam melacak objek denganβ prinsip estimasi state dari objek yang berganti untuk setiap waktu t. Dalam hal ini model yang terkait adalah model fungsi dan model pengukuran (Indah, 2007). Particle filter menkonstruksi Probability Densitiy Function (PDF) berdasarkan semua informasi yang tersedia. Metode PF ini mempresentasikan distribusi derajat kepercayaan dengan sejumlah partikel yang dibangkitkan dari distribusi tersebut, maka metode PF tidak terbatas pada kasus-kasus yang berbentuk Gaussian Linier saja. Partikel-partikel di setiap satuan waktu dapat dipandang sebagai hipotesa keberadaan state sebenarnya pada waktu tersebut. Notasi dari partikel-partikel pada [1]
[1]
[π]
[π]
metode PF adalah ππ‘ β π₯π‘ , π₯π‘ , β¦ , π₯π‘ , dimanaπ₯π‘ merupakan partkel ke-m pada waktu ke-t dan m = 1,2, . . ., M, dimana M adalah jumlah partikel yang dibangkitkan untuk tahap koreksi. Nilai bobot tiap partikel yang dibangkitkan, dihitung melalui persamaan berikut: [π]
ππ‘
β π(π§π‘ |π₯π‘ )
(27)
Seperti halnya metode KF dan EKF, maka metode PF juga mempunyai dua tahap untuk permasalahan pemfilteran yaitu prediksi dan koreksi sebagai berikut: 1. Prediksi, yaitu membangkitkan sejumlah M partikel pada waktu ke-t ,ππ‘ β [1]
[1]
[π]
π₯π‘ , π₯π‘ , β¦ , π₯π‘ . Partikel-partikel ini dibangitkan secara acak berdasarkan partikel pada waktu t-1, dengan menggunakan distribusi transisi state π(ππ‘ |ππ‘β1 ), sebagai berikut: [π]
[π]
π₯π‘ ~π(π₯π‘ |π₯π‘β1 )
(28)
2. Koreksi, yaitu memperbaharui hasil prediksi partikel ketika terdapat pengukuran baru. Tahapan koreksi ini melibatkan perhitungan bobot masing-masing partikel (yang mempresentasikan nilai kedekatan partikel tersebut dengan state yang sebenarnya) seperti
yang terdapat pada persamaan sebelumnya dan proses
pensampelan kembali (resampling). Pada proses resampling ini partikel-partikel dengan nilai bobot yang besar mempunyai kemungkinan yang besar pula untuk dibangkitkan kembali begitu juga sebaliknya jika partikel-partikel mempunyai
Universitas Indonesia
17
bobot yang kecil. Partikel-partikel hasil dari proses resampling merupakan representasi dari πππ(ππ‘ ).
Algoriltma PF adalah sebagai berikut(Thurn S. and Burgard W., 2000) Algoritma Particlefilter (ππ‘β1 , π§π‘ ) 1
Μ
Μ
Μ
π‘ = ππ‘ = β
π
2
For m = 1 to M do [π]
[π]
3
Sample π₯π‘ ~π(π₯π‘ |π₯π‘β1 )
4
ππ‘
5
Μ
Μ
Μ
π‘ = π Μ
Μ
Μ
π‘ + β©π₯π‘[π] , π€π‘[π] βͺ π
[π]
6
End for
7
For m = 1 to M do [π]
8
Draw i with probability πΌπ€π‘
9
Add π₯π‘ to π₯π‘
[π]
10 11
β π(π§π‘ |π₯π‘ )
End for
Return ππ‘
Langkah 2-5 adalah tahapan prediksi, sedangkan langkah 7-9 adalah tahapan koreksi yaitu proses resampling. Kompleksitas algoritma PF ini adalah O(n). dimana n merupakan jumlah partikel (m). Iterasi yang dilakukan pada algoritma ini hanya dilakukan sebanyak jumlah partikel yaitu n sehingga kompleksitas algoritma ini adalah O(n).
Universitas Indonesia
18
2.5.Model Tangan Model tangan dibuat sebagi interpretasi pergerakan tangan dalam bentuk 3D. hal ini untuk membuat animasi gerakan tangan manusia yang dapat dilihat dari beberapa sudut pandang seperti bagian depan, belakang, samping, atas dan bawah yang tidak disediakan oleh media 2D. Pemodelan tangan kedalam 3D terdiri dari beberapa bagian tangan. Seperti yang telah di gambarkan oleh Stenger et al(2001) sebagai berikut.
Gambar 2.3. Model tangan Pemodelan sederhana terhadap bentuk tangan pada gambar 1 dapat dibentuk dari membuat suatu bentuk 3D dari tulang tangan yang telah dibuat dalam pelacakan tangan. Tulang-tulang tersebut dibentuk menjadi suatu silinder, sementara titik-titik yang ada pada pada ujung tulang adalah engsel seperti yang telah dilakukan oleh Feng et al. (2012). Bentuk sederhana dari pemodelan tangan ditunjukan oleh gambar berikut.
Gambar 2.4. Model tangan 3D
Universitas Indonesia
19
Pengerakan model tangan ini akan mengikuti pergerak dari setiap titik engsel, dimana titik engsel merupakan titik hasil pelacakan pada tangan. Titik ini bergerak dalam ruang dimensi 3, sehingga pergerakan inilah yang membuat interaksianimasi pergerakan tangan antara komputer dan tangan menjadi hidup. Seperti yang telah dijelaskan dalam pelacakan objek, pergerakan titik merupakan hasil dari prediksi yang telah terkoreksi, yaitu dengan metode particle filter.
2.6.Penangkap Gerakan Jemari Tangan untuk Animasi 3D Animasi adalah serangkaian gambar yang diberikan sehingga membentuk sebuah film. Kualitas film anda dikendalikan oleh semua fitur yang disebutkan di atas termasuk frame per detik (fps), ukuran output, jenis file dan kompresi (Cronister, 2009). Opsi dasar animasi adalah mengubah ukuran, rotasi dan lokasi objek. Sedangkan animasi real-time memungkinkan menambahkan sifat fisik objek dan menggunakan keyboard dan fitur lain untuk mengendalikannya. Salah satu perangkat lunak yang dapat digunakan untuk membuat animasi adalah Blender 3D.
2.6.1. Blender 3D Blender adalah pemodelan 3D dan animasi paket studio. Fitur utamanya berhubungan dengan animasi, fisika dan partikel, pemodelan, rendering, shading, pencitraan, composite dan penciptaan 3D/game realtime (Alecu, 2010). Banyak profesional dan seniman 3D menganggap Blender sebagai solusi open source terbaik untuk komputer grafis 3D. Sistem Blender digunakan untuk 3D pemodelan dan animasi. Blender dapat mengerjakan beberapa hal, diataranya: 1. Perangkat lunak pemodelan 3D untuk membuat karakter film. 2. Memiliki alat yang kuat untuk manipulasi lukisan teksturpermukaan model. 3. Memiliki rigging dan fungsi animasi. Model yang dibuat kemudian dapat digerakan dan melakukan suatu tindakan. 4. Memiliki mesin rendering sendiri dengan sistem pencahayaan lengkap 5. Menyediakan dukungan bagimesin perender eksternal seperti YafaRay dan LuxRender. 6. Tidak seperti paket 3D lainnya, Blender memiliki modul compositing sendiri.
Universitas Indonesia
20
7. Memiliki editor urutan video yang unik, sehingga memungkinkan untuk memotong dan mengedit film strip tanpa harus bergantung pada aplikasi ekstra pihak ketiga untuk pengeditan diakhir tahap produksi. 8. Merupakanpaket perangkat lunak pembuatan 3D konten yang full-blownyang dapat digunakan untuk pembuatan animasi dan juga game (Flavell, 2010). Modifikasi 3D menggunakan sistem pemodelan Blender jug adapat dilakukan untuk membuat hasil yang menarik di bidang interaksi manusia-komputer. Modifikasi ini menggunakan perangkat berbasis stereoskopi yang saat ini tersedia di pasar (Skala, 2012).
2.7.Antarmuka Alami Pada era 1970, 1980 dan 1990 Steve Mann mengembangkan sejumlah antarmuka menggunakan interaksi alami dengan dunia nyata sebagai alternatif dari Command Line Interface (CLI) ataupun Graphical User Interface (GUI) (Mann, 2002). Antarmuka ini adalah antarmuka alami atau Natural User Interface (NUI).
CLI
Dikodekan
GUI
Metafora
Langsung
NUI
Penjelajah
Ketat
Intuitif
Gambar 2.5 Perkembangan Antarmuka
Teknologi NUI membuat antarmuka menjadi lebih alami dan intuitif. Hal ini memudahkan penguna dalam berinterksi dengan komputer. Karena pengguna dapat menggunakan gerak tubuhnya sendiri seperti jari untuk mengoperasikan antarmuka yang dibuat. Tujuan dari NUI adalah untuk menciptakan interaksi yang mulus antara manusia dan mesin, sehingga membuat antarmuka itu sendiri seperti tidak ada. Sebagai contoh, teknologi Touch Screen saat ini, pengguna bebas menggunakan jari mereka untuk mengoperasikan sistem antarmuka. Sebelumnya telah ada teknologi NUI pada sistem operasi windows yaitu menjalankan antarmuka dengan perintah suara. Beberapa contoh lain dari NUI adalah:
Universitas Indonesia
21
1. Perseptif Pixel yaitu berinteraksi dengan konten pada layar menggunakan kedua tangan dan seluruh jemari. 2. Microsoft PixelSense memiliki ide yang sama tentang interaksi dengan konten pada Perseptif Pixel, namun menambahkan kemampuan untuk perangkat optik untuk mengenali obyek yang ditempatkan di atasnya. 3. 3D Immersive Touch merupakan manipulasi langsung dari obyek 3D lingkungan virtual menggunakan hardware permukaan tunggal atau multi-touch di lingkungan multi-user 3D virtual. 4. Kinect merupakan produk dari Xbox yang menggunakan gerakan spasial untuk interaksi bukannya game controller. Karena Kinect memungkinkan penginderaan dari dunia fisik, hal itu menunjukkan potensi untuk desain Reality Based Interface (RBI) sehinga berpotensi untuk NUI. 5. Asus Xtion sama halnya dengan kinect, Asus Xtion memungkinkan penginderaan dari dunia fisik, hal itu menunjukkan potensi untuk desain Reality Based Interface (RBI) sehinga berpotensi untuk NUI.
2.7.1. Kinect Kinect merupakan revolusi karena menyediakan tipe baru dari interaksi dengan komputer. Kinect adalah perangkat yang dapat menangkap, melacak dan menguraikan gerak tubuh dan suara (Mei & Hsu, 2011). Fungsi dari Kinect terdiri dari pelacakan rangka atau skeletal manusia, estimasi gabungan dan pengenalan suara. Pelacakan Skeletal digunakan untuk menentukan posisi pengguna atau objek dari Kinect (Warade et al, 2012). Informasi audio dan video berfungsi sebagai perintah untuk berinteraksi dengan konten digital yang disajikan dalam game atau program perangkat lunak (Mei & Hsu, 2011). Hal ini membuat pengguna tidak perlu terikat oleh keyboard, mouse atau joystick sehingga memiliki pengalaman intuitif dan virtual. Kinect dapat dihubungkan ke komputer pribadi dan untuk digunakan dengan program perangkat lunak selain Microsoft Xbox. Perangkat lunak non-komersial development kit untuk Kinect telah diluncurkan oleh Microsoft untuk Windows dan untuk versi komersial di kemudian hari. Dengan aplikasi ini awal dan kemungkinan masa depan, pengembangan Kinect menarik yang banyak orang perhatian. Akan
Universitas Indonesia
22
tetapi perangkat lunak tersebut masih memberi batasan-batasan dalam pengoperasian kinect. seperti penggunaan untuk fungsi depth pada kinect.
2.7.2. ASUS Xtion ASUS Xtion ada dalam tiga versi: Xtion, Xtion Pro dan Xtion Pro Live. Yang terakhir dua ini yang digabungkan dengan driver, OpenNI NITE Middleware SDK yang kompatibel dan ditujukan kepada para pengembang. Versi Live pada dasarnya menambahkan kamera SXGA RGB untuk gambar hidup / video capture. ASUS Xtion PRO Live menggunakan sensor infra merah, teknologi deteksi kedalaman adaptif, penginderaan citra warna dan audio streaming untuk menangkap gambar real-time pengguna, gerakan, dan suara, membuat pelacakan pengguna yang lebih tepat (Pachoulakis & Kapetanakis, 2012).
BAB 3
Universitas Indonesia
23
METODOLOGI
3.1. Metodologi yang diusulkan Secara umum deskripsi sistem digambarkan sebagai berikut: Preprocessing Depth Threshold
Sequensial process Erosion & Gauss Filt.
Convex Hull
Fingertip detecion (x, y)
Fingertip Tracking (x, y) Implementation
Contour Extraction
Hand Detection (Binary Image) z-Array Map
Syncronizing Unit Calibration
Fingertip detecion (z)
(3D Hand Animation & NUI) Fingertip Tracking (z)
Gambar 3.1 Deskripsi Sistem 3.1.1 Preprocessing Proses ini diawali proses segmentasi tangan dari latar belakangnya yaitu dengan menentukan depth threshold untuk menentukan wilayah tangan berada. Hal ini digunakan untuk mengantisipasi kesalahan dalam menentukan tangan, sebagai contoh segmentasi dengan menggunakan skin filter pada gambar 3.2:
(a)
(b) Gambar 3.2 Segmentasi gagal
Segmentasi dengan menggunakan skin filter sangat dipengaruhi dengan 21 hal tersebut, metode pengenalan gesture masalah pencahayaan. Serupa dengan
sebagai segmentasi tangan, seperti pemanfaatan fungsi gesture recognition
Universitas Indonesia
24
pada openNI pun bergantung pada masalah pencahayaan, dimana meskipun pengguna telah menggerakan telapak tangan namun telapak tangan belum dapat dideteksi. Ketidakpastian dalam menentukan tangan dapat mengganggu sistem untuk animasi dan antar muka alami sederhana. Dalam penelitian ini depth threshold yang digunakan adalah 0-70 cm. Untuk menentukan satuan jarak pada kinect diberikan persamaan 29, π§ = 12,36π‘ππ(π·πππ‘β [π¦ β ππππ‘β + π₯]/ 2842.5 + 1.1863
(25)
oleh Stephane Magnenat. Sehingga dapat ditentukan binary image-nya melalui persamaan 26 yaitu:
π΅πππππ¦ πΌππππ = {
1, 0 < π§ β€ 70 0, π πππππππ¦π
(26)
dimana nilai 1 memberikan warna putih pada piksel dan nilai 0 memberikan warna hitam pada piksel. Berdasarkan persamaan ini objek yang berada pada jarak 0-70 cm diasumsikan sebagai tangan. Kemudian simpan semua nilai z yang didapat pada setiap framenya ke dalam sebuah array-map. Dengan ini preprocessing selesai. Hasil dari binary image untuk segmentasi tangan ditunjukan pada gambar 3.3.
Gambar 3.3 Hand Detection
Terdapat satu buah citra lagi yang ada pada sistem sebagi pembanding antara animasi tangan dengan gerakan tangan yang sebenarnya, yaitu citra warna. Nilai pixel diambil dari camera pada kinect.
Universitas Indonesia
25
Gambar 3.4 Citra Warna Proses dijalanan kondisi 30 fps(frame per second) dan semua citra yang diambil berukuran 640x480 piksel.
3.1.2 Fingertip detection Proses ini dilakukan dengan pendekatan kontur, yaitu mencari kontur dari tangan melalui binary image. Kontur yang diambil adalah kontur tepi dari tangan dan jumlah kontur. Pencarian ujung jari dilakukan terhadap bidang 2D karena pencarian kontur dilakukan dalam bidang 2D. Sehingga untuk nilai z terpisah. Menjadi sebuah pemetaan terhadap posisi-z objek pada sebuah array. Hasil konturisasi pada tangan ditunjukan pada gambar 3.5:
Gambar 3.5 Kontur tepi tangan
Untuk menentukan ujung jari, diterapkan metode convex hull. Metode ini menggambarkan garis pada titik terluar dari kumpulan titik-titik. Sehingga dengan menerapkan pada citra yang mengandung kontur tepi tangan menjadi seperti pada gambar 3.6.
Universitas Indonesia
26
Gambar 3.6 Convex Hull pada kontur tepi tangan
Berikutnya dengan mencari titik awal dari titik terluar yang diambil dan menggambarkannya dengan lingkar, dimana titik terluar yang diambil merupakan pusat lingkaran. Setiap lingkaran akan dianggap sebagai kandidat ujung jari, seperti yang ditunjukan oleh gambar 3.7.
Gambar 3.7 Kandidat ujung jari
Hanya saja terdapat noise dimana ada titik yang digambarkan namun bukan ujung jari, seperti pada gambar 3.7. Oleh karena itu dilakukan pengurutan pada depth point convex hull dan diambil 5 defect start yang memiliki depth point terkecil, sehingga didapat ujung-ujung jari seperti pada gambar 3.8, dimana lingkaran terkecil merupakan awal deteksi ujung jari.
Gambar 3.8 Ujung jari terdeteksi
Universitas Indonesia
27
Untuk menentukan jenis-jenis jari dilakukan dengan cara mengambil urutan dari metode convex hull, dimana urutan dimulai dari kanan. Sehingga jari yang pertama ditentukan adalah kelingking. Dari sini, semua ujung jari telah ditentukan. Berikutnya titik xy-ujung jari yang diketahui menjadi indeks array dari z-array map, sehingga didapat nilai z dari hasil pemetaan depth( depth map). Sehingga didapat nilai pada gambar 3.9:
Gambar 3.9 Nilai xyz-ujung jari
Hal ini terjadi karena ketika ujung jari yang ditentukan melalui titik terluar dari kontur, merupakan titik terluar dari objek tangan yang ada pada depth map sehingga nilai yang didapat bukan merupakan nilai-z dari ujung jari yang sebenarnya. Oleh karena itu, pada binary image tangan yang didapatkan dilakukan morpological filter yaitu erosi dan gaussian blur untuk mengurangi disparitas kontur. Sehingga didapat hasil pada gambar 3.10:
Gambar 3.10 Tepi kontur tangan hasil morphoogical filter dan gaussian blur
Universitas Indonesia
28
Gambar kontur tangan jadi lebih ramping dari sebelumnya namun tidak mengubah bentuk dari tangan itu sendiri. Kemudian dilakukan kembali deteksi ujung jari dengan menggunakan convex hull seperti pada gambar 3.11:
Gambar 3.11 Ujung Jari yang terdeteksi dan nilai xyz-nya
3.1.3 Fingertip tracking Pelacakan ujung jari dilakukan dengan metode particle filter, karena metode ini mampu mengatasi gerakan yang non-gaussian. Metode pelacakan selain particle filter contohnya Kalman filter dilakukan sebagai perbandinga, berikut perbandingan galat dari metode Particle filter dan Kalman filter antara nilai observasi dan prediksi pada tabel 3.1:
Error
Particle filter
Kalman filter
X
0.938909
10.314
Y
0.259499
24.88327
Tabel 3.1 Perbandingan Particle filter dan Kalman filter
Berdasarkan tabel 3.1, digunakan metode particle filter dalam melakukan proses pelacakan. Nilai xyz-ujung jari dijadikan nilai observasi pada metode particle filter, dengan menggunakan 1000 particle pada setiap pelacakanya. Namun penggunaannya terpisah tidak dalam satu dimensi pencarian. Hal ini karena pencarian pertama pada bidang 2D yaitu xy, mengalami kegagalan dalam
Universitas Indonesia
29
menentukan nilai-z. Pelacakan pada bidang 2D berjalan lancar, namun karena nilai-z sensitif, dimana keluar sedikit dari nilai objek yang ada pada depth map maka nilainya akan error seperti yang terjadi pada deteksi ujung jari sebelum dilakukan morphological filter dan gaussian filter. Oleh karena itu nilai-z dilacak secara independen. Sehingga menghasilkan hasil pada gambar 3.12
Gambar 3.12 Posisi xyz-ujung jari observasi dan xyz-prediksi Kemudian untuk gambar hasil proses pelacakanya terlihat pada gambar 3.13 dengan lingkaran merah yang merupakan hasil pelacakan dan lingkaran hitam merupakan nilai observasi, sedangkan untuk lingkaran putih adalah pusat tangan.
Gambar 3.13. Tracking fingertip
3.1.4 3D Hand Animation 3.1.4.1. 3D Object Proses ini merupakan proses pembentukan objek 3D, yaitu tangan. Setiap engsel digambarkan dalam bentuk bola kecil, ruas jari digambarkan sebagai silinder dan telapak tangan adalah bola besar. Hal ini ditunjukan pada gambar 3.14.
Universitas Indonesia
30
Gambar 3.14. Hand Object
3.1.4.2. Moving 3D fingertip Objek tangan 3D akan bergerak berdasarkan nilai dari setiap ujung jari yang diketahui. Dengan menerapkannya pada engsel yang paling dekat pada telapak tangan. Pergerakan dilakukan berdasarkan konsep forward kinematic tangan. Seperti pada gambar 3.15, π¦
(π§π , π¦π ) π2
π2
π1 π1 π§
Gambar 3.15 Forward kinematics dengan π1 dan π2 merupakan nilai z dari ujung jari, yaitu π§ππ€ππ β π§πππππππ π dan π1 dan π2 merupakan ruas jari. 3.1.5 Simple Natural User Interface (NUI) Proses ini bertujuan untuk menerapkan pelacakan ujung jari pada operasi antar muka alami sederhana, yaitu melakukan operasi zoom in/out pada objek
Universitas Indonesia
31
3D. Proses antarmuka alami dilakukan pada komputer yaitu berbasis windows, hal ini ditandai dengan objek 3D yang berada pada window. Objek yang digunakan adalah sebuah bola yang berada dalam bingkai yang dapat diperbesar dan diperkecil melalui proses zoom in/out, seperti pada gambar 3.16
Gambar 3.16 Object untuk antarmuka alami Nilai yang digunakan untuk memperbesar dan memperkecil objek adalah nilai-z dari setiap ujung jari yang didapat dari proses pelacakan, ditunjukan oleh persamaan 27. πππ = (π§ππππππ + π§π‘πππ’πππ’π + π§ππππ π‘ππππβ + π§ππππ πππππ + π§ππππππππππ )πππ/45 (27)
3.2. Skenario pengujian sistem 1. Skenario awal Pengujian sistem dengan menggunakan pelacakan xy-ujung jari. Nilai z-ujung jari berdasarkan indeks xy-ujung jari hasil pelacakan. Uji coba dilakukan pada 100 frame dan nilai observasi diberikan pada setiap frame. Pengujian ini bertujuan untuk mengetahui apakah sistem mampu melacak ujung jari dengan hanya mengandalkan informasi pelacakan xy-ujung jari (2 dimensi).
2. Skenario 1 Pengujian sistem dengan menggunakan pelacakan xy-ujung jari. Nilai z-ujung jari dilacak tersendiri. Uji coba dilakukan pada 100 frame dan nilai observasi diberikan pada setiap frame. Pengujian ini bertujuan untuk mengetahui
Universitas Indonesia
32
kemampuan sistem dalam melacak ujung jari berdasarkan informasi pelacakan xyujung jari (2 dimensi) dan pelacakan z-ujung jari.
3. Skenario 2 Pengujian sistem dengan menggunakan pelacakan xy-ujung jari. Nilai z-ujung jari dilacak tersendiri. Uji coba dilakukan pada 100 frame dan nilai observasi diberikan pada setiap frame kelipatan 5. Pengujian ini bertujuan untuk mengetahui kemampuan sistem dalam melacak ujung jari berdasarkan informasi pelacakan xyujung jari (2 dimensi) dan pelacakan z-ujung jari, dengan kondisi sistem kehilangan informasi aktual sebanyak 4 frame.
4. Skenario 3 Pengujian sistem dengan menggunakan pelacakan xy-ujung jari. Nilai z-ujung jari dilacak tersendiri. Uji coba dilakukan pada 100 frame dan nilai observasi diberikan pada setiap frame kelipatan 10. Pengujian ini bertujuan untuk mengetahui kemampuan sistem dalam melacak ujung jari berdasarkan informasi pelacakan xy-ujung jari (2 dimensi) dan pelacakan z-ujung jari, dengan kondisi sistem kehilangan informasi aktual sebanyak 9 frame.
5. Skenario 4 Pengujian sistem dengan menggunakan pelacakan xy-ujung jari. Nilai z-ujung jari dilacak tersendiri. Uji coba dilakukan pada 100 frame dan nilai observasi diberikan pada setiap frame kelipatan 15. Pengujian ini bertujuan untuk mengetahui kemampuan sistem dalam melacak ujung jari berdasarkan informasi pelacakan xy-ujung jari (2 dimensi) dan pelacakan z-ujung jari, dengan kondisi sistem kehilangan informasi aktual sebanyak 14 frame.
3.3. Kehandalan Particle filter Selain menguji particle filter dengan 5 skenario, dilakukan pengujian particle filter dalam mengatasi gangguan pada saat proses deteksi objek. Gangguan tersebut dikenal dengan istilah occlusion, yaitu adanya objek lain yang menghalangi objek
Universitas Indonesia
33
yang sedang dideteksi. Untuk mengatasi hal ini, peneliti memberikan perubahan nilai observasi, yaitu dengan menggunakan persamaan 28 dan 29: π₯πππ πππ£ππ π = π₯πππππππ πβ1 π¦πππ πππ£ππ π = π₯πππππππ πβ1 β πππππππ β 3 + ππππ π‘ + 3
(28) (29)
3.1. Evaluasi Mean Absolute Scaled Error (MASE) merupakan fungsi kesalahan menggunakan perhitungan kesalahan skala untuk menghindari perhitungan kesalahan relatif. Metode ini cocok digunakan untuk data yang berada pada selang waktu tertentu (Hyndman, RJ., dan A.B. Koehler, 2006).
ππ‘ =
ππ‘ βπΉπ‘ 1 π β |π βππβ1 | πβ1 π=1 π 1
ππ΄ππΈ = π βππ=1|ππ |
(28) (29)
Keterangan: ππ‘ = State ujung jari observasi πΉπ‘ = State ujung jari prediksi ππ‘ = Error Kumulatif n
= Banyaknya frame
t
= frame
Universitas Indonesia
34
BAB 4 IMPLEMENTASI DAN PEMBAHASAN
Untuk menguji kemampuan particle filter dalam melacak ujung jari maka dilakukan beberapa skenario pengujian sebagai berikut:
4.1. Skenario Awal Sistem yang dikembangkan memiliki informasi mengenai posisi ujung jari pada dimensi tiga yaitu x, y, dan z. Pengujian ini mencoba untuk mengetahui kemampuan particle filter dalam melacak posisi ujung jari dengan mengandalkan informasi pada dimensi dua (x, y), selanjutnya nilai z dicocokan dengan nilai (x', y') sebagai hasil pelacakan. Kemudian untuk nilai observasi diberikan pada setiap frame, yang berarti particle filter tidak kehilangan informasi mengenai posisi objek untuk setiap frame. Frame yang diberikan pada pengujian ini sebanyak 200 frame. Pengujian ini tanpa adanya hambatan atau gangguan pada ujung jari ketika proses pendeteksian.
Universitas Indonesia
35
Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut:
600
Pixel
500 400 300 Nilai X Observasi Kelingking
200
Nilai X prediksi kelingking
100
139 148 157 166 175 184 193
120
30 39 48 57 66 75 84 93 102
0
Frame
Gambar 4.1 Grafik X kelingking skenario awal
Pixel
400 350
34
300 250 200
Nilai Y Kelingking observasi
150
Nilai Y kelingking prediksi
100 50
139 148 157 166 175 184 193
120
30 39 48 57 66 75 84 93 102
0
Frame
Gambar 4.2 Grafik Y kelingking skenario awal
Berdasarkan hasil pengujian pada gambar 4.1 dan 4.2, particle filter telah mampu melacak ujung jari pada dimensi dua (x, y) dimana (x', y') sebagai hasil pelacakan mampu mengikuti dengan baik (x, y) yang merukan nilai observasi ujung jari. Grafik yang bergelombang menunjukan adanya gerakan tangan yang tidak linier. Untuk sumbu x berati gerakan kekanan dan kekiri, sedangkan untuk sumbu y gerakan keatas kebawah. Berikutnya dengan pengetahuan pelacakan yang baik dari ujung jari pada dimensi dua, nilai z didapatkan pada gambar 4.3 berikut:
Universitas Indonesia
36
cm
100 80 60 40 20
Frame
120 131 141 151 161 171 181 191
-20
30 40 50 60 70 80 90 100
0
Nilai Z kelingking observasi
-40 -60
Nilai Z kelingking prediksi
-80 -100
Gambar 4.3 Grafik Z kelingking skenario awal
Hasil yang ditunjukan pada gambar 4.3 berbeda jauh dengan gambar 4.1 dan 4.2. Nilai z' yang diperoleh dari skenario ini sangat tidak stabil, banyak nilai z' yang sangat jauh dari z, yaitu negatif. Hal ini terjadi karena nilai z sangat sensitif, seperti yang telah dijelaskan pada Bab 3, yaitu ketika ujung jari (x, y) didapatkan dengan baik oleh convex hull namun nilai z tidak demikian pada saat belum dilakukan proses erosi (morpological filter). Nilai z' didapat dari (x', y') dimana nilai pelacakan dua dimensi ini tidak sama dengan nilai observasi, hanya mendekati. Sebagai contoh nilai observasi (276, 91) sedangkan pelacakan (268, 95), hal ini menunjukan adanya pergeseren posisi ujung jari dari posisi yang sebenarnya yang berada diluar daerah telapak tangan, sehingga nilai z' yang didapatkan bukan merupakan nilai dari ujung jari.
Gambar 4.4 Jari pada ruang 3D
Seperti yang ditunjukan pada gambar 4.3, warna merah merukan nilai ujung jari observasi sedangkan warna biru merupakan nilai ujung jari prediksi dan warna hitam merupakan wilayah jari yang memiliki nilai z, sedangkan warna putih bukan merupakan wilayah jari dan z diberikan bukan objek tangan. Oleh karena itu, z' yang didapat nilainya
Universitas Indonesia
37
menjadi negatif karena berada diluar wilaya jari pada objek tangan. Secara detail galat absolut yang diberikan dari hasil observasi dan prediksi disebutkan pada tabel 4.1 berikut: Skenario awal
X
Y
Z
Kelingking
0.8303813 0.8017772
120.45451
Jari Manis
0.810871
0.872574
104.7191
Jari Tengah
0.869678
0.891743
104.9001
Telunjuk
0.930404
1.158274
101.5076
Jempol
0.952725
0.936474
101.8014
Tabel 4.1 Error skenario awal
Galat untuk sumbu x dan y tidak terlalu besar, masih kurang dari 1, sedangkan untuk sumbu z, nilainya sangat signifikan berbeda, yaitu mencapai lebih dari 100. Hasil ini akan mengganggu kinerja sistem dalam merealisasikanya pada animasi ujung jari. Oleh karena itu pengujian dengan Skema pelacakan hanya dua dimensi saja tidak dilanjutkan lagi, karena telah gagal dalam melacak ujung jari pada sumbu z. Setelah Skema pelacakan ujung jari hanya pada dua dimensi gagal, maka pada pengujian selanjutnya dilakukan pelacakan ujung jari dengan skema: 1. Pelacakan terpisah PF 2D+1D: Ujung jari (x, y) dilacak secara bersama sedangkan z dilacak secar terpisah. 2. Pelacakan terpadu PF 3D: Ujung jari (x, y, z) dilacak secara bersama-sama.
4.2. Skenario 1 Pada skenario ini, nilai observasi diberikan pada setiap frame, sehingga particle filter tidak kehilangan informasi mengenai posisi ujung jari. Frame yang diberikan sebanyak 200 frame. Pengujian ini dilakukan untuk menguji Kemampuan particle filter untuk melacak ujung jari tanpa adanya gangguan dari objek lain yang dapat menyebabkan particle filter kehilangan informasi ujung jari. Pengujian pertama dilakukan pada skema PF 2D+1D. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut:
Universitas Indonesia
38
600 500
Pixel
400 X Kelingking Observasi
300 200
X Kelingking Prediksi
100
Frame 121 129 137 145 153 161 169 177 185 193
25 33 41 49 57 65 73 81 89 97 105
0
Gambar 4.5 Grafik X kelingking skenario 1 PF 2D+1D 350 300
Pixel
250 200
Y Kelingking Observasi
150 100
Y Kelingking Prediksi
50
121 129 137 145 153 161 169 177 185 193
25 33 41 49 57 65 73 81 89 97 105
0
Frame
Gambar 4.6 Grafik Y kelingking skenario 1 PF 2D+1D 90 80 70 60 50 Z Kelingking Observasi
40 30
Z Kelingking Prediksi
20 10
121 129 137 145 153 161 169 177 185 193
0
25 33 41 49 57 65 73 81 89 97 105
cm
Frame
Universitas Indonesia
39
Gambar 4.7 Grafik Z kelingking skenario 1 PF 2D+1D
Hasil pengujian pelacakan ujung jari pada skema 2D+1D ditunjukan pada gambar 4.5, 4.6 dan 4.7. Ditunjukan bahwa particle filter mampu mengikuti pergerakan objek dengan baik, meskipun objek bergerak secara tidak linier, yaitu ditunjukan dengan gelombang grafik yang tidak teratur. Pada skema ini nilai z telah stabil, tidak lagi memiliki nilai negatif seperti yang dialami skema sebelumnya, pelacakan ujung jari dua dimensi saja. Berikutnya pengujian skenario 1 dilakukan pada skema PF 3D. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut: Piksel 600 500 400 300 Kelingking X Observasi Kelingking X prediksi
200 100
17 26 35 44 53 62 71 80 89 98 107 116 125 134 143 152 161 170 179 188 197
0
Frame
Gambar 4.8 Grafik X kelingking skenario 1 PF 3D 400 300 200 Kelingking Y Observasi Kelingking Y prediksi
100 0
17 26 35 44 53 62 71 80 89 98 107 116 125 134 143 152 161 170 179 188 197
Piksel
Frame
Gambar 4.9 Grafik Y kelingking skenario 1 PF 3D
Universitas Indonesia
40
80 70 60 50 40 30 20 10 0
Kelingking Z Observasi Kelingking Z prediksi
17 26 35 44 53 62 71 80 89 98 107 116 125 134 143 152 161 170 179 188 197
cm
Frame
Gambar 4.10 Grafik Z kelingking skenario 1 PF 3D
Hasil pengujian pelacakan ujung jari pada skema 3D ditunjukan pada gambar 4.8, 4.9 dan 4.10. Ditunjukan bahwa particle filter mampu mengikuti pergerakan objek dengan baik, meskipun objek bergerak secara tidak linier, yaitu ditunjukan dengan gelombang grafik yang tidak teratur. Namun, ketika geraknya terlalu ekstrim seperti pada gambar 4.9, ada nilai observasi yang terlalu tinggi, PF 3D tidak megikuti, hal ini karena pelacakan dilakukan pada tiga dimensi, sehingga nilai prediksi yang diberikan pada nilai y' dipengarui oleh nilai x,z observasi.
4.3. Skenario 2 Pengujian ini dilakukan dengan memberikan nilai observasi pada frame kelipatan 5. Hal ini ditujukan untuk menguji particle filter dalam melacak ketika kehilangan informasi posisi ujung jari sebanyak 4 frame. Ketika kehilangan nilai observasi sebanyak 4 frame, maka nilai observasi yang diberikan adalah nilai prediksi sebelumnya sebagai ganti. Berikut hasil pengujian PF 2D+1D pada skenario 2. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut:
Universitas Indonesia
41
600
Pixel500 400 300
X Kelingking Observasi X Kelingking Prediksi
200 100
197
127 134 141 148 155 162 169 176 183
92 99 106
22 29 36 43 50 57 64 71 78
0
Frame
Gambar 4.11 Grafik X kelingking skenario 2 PF 2D+1D 250
Pixel
200 150
Y Kelingking Observasi
100
Y Kelingking Prediksi
50
197
127 134 141 148 155 162 169 176 183
92 99 106
22 29 36 43 50 57 64 71 78
0
Frame
Gambar 4.12 Grafik Y kelingking skenario 2 PF 2D+1D 80
cm 70 60 50 40 Z Kelingking Observasi Z Kelingking Prediksi
30 20 10
197
127 134 141 148 155 162 169 176 183
92 99 106
22 29 36 43 50 57 64 71 78
0
Frame
Gambar 4.13 Grafik Z kelingking skenario 2 PF 2D+1D
Hasil yang ditunjukan pada gambar 4.11, 4.12, dan 4.13 menunjukan bahwa particle filter masih dapat mengikuti pergerakan objek dengan baik pada beberapa frame selanjutnya. Pada beberapa frame awal particle filter masih kehilangan informasi penting mengenai posisi objek yang sebenarnya, sehingga nilai yang diberikan masih belum stabil. Setelah informasi yang diperoleh cukup maka pada proses berikutnya particle filter
Universitas Indonesia
42
memberikan nilai yang mampu mengikuti pergerakan objek dengan baik. Namun untuk gerakan yang terlalu ekstrim seperti pada gambar 4.12, ada perbedaan yang jauh antara observasi dan prediksi, hal ini terjadi ketika informasi yang didapat memberikan perubahan yang terlalu besar namun untuk mengikutinya particle filter kehilangan informasi yang penting. Hal ini terjadi juga pada pengujian PF 3D pada skenario ini. Berikutnya pengujian skenario 2 dilakukan pada skema PF 3D. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut: 600
Piksel 500 400 300 Kelingking X Observasi Kelingking X prediksi
200 100
168 175 182 189
117 124 131 138 154
54 61 68 75 82 89 96
40
12 19 26
0
Frame
Gambar 4.14 Grafik X kelingking skenario 2 PF 3D
250 200 150 100
Kelingking Y Observasi Kelingking Y prediksi
50
168 175 182 189
117 124 131 138 154
54 61 68 75 82 89 96
40
0
12 19 26
Piksel
Frame
Gambar 4.15 Grafik Y kelingking skenario 2 PF 3D
Universitas Indonesia
43
100
cm
80 60 40
Kelingking Z Observasi Kelingking Z prediksi
20
168 175 182 189
117 124 131 138 154
54 61 68 75 82 89 96
40
12 19 26
0
Frame
Gambar 4.18 Grafik Z kelingking skenario 2 PF 3D
Hasil pada gambar 4.15, 4.17 dan 4.18, menunjukan bahwa dengan gerakan yang tidak terlalu ekstrim meskipun kehilangan informasi posisi ujung jari pada empat frame particle filter tetap mampu mengikuti objek dengan baik. Akan tetapi ketika gerakan dari objek mulai ekstrim maka kehilangan informasi mengurangi kemampuan particle filter dalam melacak objek.
4.4. Skenario 3 Pengujian ini dilakukan dengan memberikan nilai observasi pada frame kelipatan 10. Hal ini ditujukan untuk menguji particle filter dalam melacak ketika kehilangan informasi posisi ujung jari sebanyak 9 frame. Ketika kehilangan nilai observasi sebanyak 9 frame, maka nilai observasi yang diberikan adalah nilai prediksi sebelumnya sebagai ganti. Berikut hasil pengujian PF 2D+1D pada skenario 2. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut:
Universitas Indonesia
44
500
Pixel 450 400 350 300 250 200 150 100 50 0
173 180 187 194
145 152 159
117 124 131
89 96 103
61 68 75
19 26 33 40 47
X Kelingking Observasi X Kelingking Prediksi
Frame
Gambar 4.19 Grafik X kelingking skenario 3 PF 2D+1D 250
Pixel
200 150 Y Kelingking Observasi
100 50
Y Kelingking Prediksi
173 180 187 194
145 152 159
117 124 131
89 96 103
61 68 75
19 26 33 40 47
0
Frame
Gambar 4.20 Grafik Y kelingking skenario 3 PF 2D+1D 100
cm 90 80 70 60 50 40 30 20 10 0
173 180 187 194
145 152 159
117 124 131
89 96 103
61 68 75
19 26 33 40 47
Z Kelingking Observasi Z Kelingking Prediksi
Frame
Gambar 4.21 Grafik Z kelingking skenario 3 PF 2D+1D
Hasil yang ditunjukan pada gambar 4.19, 4.20, dan 4.21 menunjukan bahwa particle filter masih dapat mengikuti pergerakan objek. Pada beberapa frame awal particle filter masih kehilangan informasi penting mengenai posisi objek yang
Universitas Indonesia
45
sebenarnya, sehingga nilai yang diberikan masih belum stabil. Setelah informasi yang diperoleh cukup maka pada proses berikutnya particle filter memberikan nilai yang mampu mengikuti pergerakan. Namun untuk gerakan yang terlalu ekstrim, ada perbedaan yang jauh antara observasi dan prediksi, hal ini terjadi ketika informasi yang didapat memberikan perubahan yang terlalu besar namun untuk mengikutinya particle filter kehilangan informasi yang penting. Hal ini terjadi juga pada pengujian PF 3D pada skenario ini. Berikutnya pengujian skenario 3 dilakukan pada skema PF 3D. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut: 700
Piksel 600 500 400 300 200 100 0
67 76 85 94 103 112 121 130 139 148 157 166 175 184
1 10 19 28 37 49
Kelingking X Observasi Kelingking X prediksi
Frame
Gambar 4.22 Grafik X kelingking skenario 3 PF 3D 500
Piksel 400 300 200
Kelingking Y Observasi Kelingking Y prediksi
100
67 76 85 94 103 112 121 130 139 148 157 166 175 184
1 10 19 28 37 49
0
Frame
Gambar 4.23 Grafik Z kelingking skenario 3 PF 3D 100 80 60 Kelingking Z Observasi
40
Kelingking Z prediksi
20
67 76 85 94 103 112 121 130 139 148 157 166 175 184
0
1 10 19 28 37 49
cm
Frame
Gambar 4.24 Grafik Z kelingking skenario 3 PF 3D
Universitas Indonesia
46
Hasil pada gambar 4.22, 4.23 dan 4.24, menunjukan bahwa dengan gerakan yang tidak terlalu ekstrim meskipun kehilangan informasi posisi ujung jari pada empat frame particle filter tetap mampu mengikuti objek dengan baik. Akan tetapi ketika gerakan dari objek mulai ekstrim maka kehilangan informasi mengurangi kemampuan particle filter dalam melacak objek.
4.5. Skenario 4 Pengujian ini dilakukan dengan memberikan nilai observasi pada frame kelipatan 15. Hal ini ditujukan untuk menguji particle filter dalam melacak ketika kehilangan informasi posisi ujung jari sebanyak 14 frame. Ketika kehilangan nilai observasi sebanyak 14 frame, maka nilai observasi yang diberikan adalah nilai prediksi sebelumnya sebagai ganti. Berikut hasil pengujian PF 2D+1D pada skenario 2. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut: 500
Pixel
400 300 200
X Kelingking Observasi
100
164 170 176 182 188 194
146 152
134
104 110 116 122
92
74
56 62
38 44
14 20 26
0
Frame
Gambar 4.24 Grafik X kelingking skenario 4 PF 2D+1D 250
Pixel 200 150 Y Kelingking Observasi Y Kelingking Prediksi
100 50
164 170 176 182 188 194
146 152
134
104 110 116 122
92
74
56 62
38 44
14 20 26
0
Frame
Gambar 4.25 Grafik Y kelingking skenario 4 PF 2D+1D
Universitas Indonesia
47
90 cm 80 70 60 50 40 30 20 10 0
164 170 176 182 188 194
146 152
134
104 110 116 122
92
74
56 62
38 44
14 20 26
Z Kelingking Observasi Z Kelingking Prediksi
Frame
Gambar 4.26 Grafik Z kelingking skenario 4 PF 2D+1D
Hasil pada gambar 4.24, 4.25 dan 4.26 menunjukan particle filter mengalami penurunan kemampuan dalam melacak objek, terutama pada gambar 2.25 dan 4.26. Hal ini dikarenakan particle filter kehilangan informasi yang terlalu banyak, sementara nilai observasi yang diberikan merupakan nilai prediksi sebelumnya dengan nilai yang tidak jauh berbeda. Sehingga grafik prediksi akan menunjukan pergerakan yang lebih stabil berbeda dengan observasi. Meskipun nilai observasi yang diberikan pada frame kelipatan 15 merupakan yang sebenarnya, namun particle filter membutuhkan waktu untuk menuju atau mengikuti dengan benar nilai observasi tersebut, sementara ketika nilai observasi yang sebenarnya kembali diberikan perbedaanya jauh. Hal ini menyebabkan particle filter tertinggal dalam melacak objek. Berikutnya pengujian skenario 3 dilakukan pada skema PF 3D. Sebagai sampel akan diperlihatkan grafik hasil pelacakan ujung jari kelingking berikut: 600
Piksel 500 400 300 Kelingking X Observasi Kelingking X prediksi
200 100
103 112 121 130 139 148 157 166 175 184 193
84
12 21 30 39 48 57 66
0
Frame
Gambar 4.27 Grafik Z kelingking skenario 4 PF 3D
Universitas Indonesia
48
350
Piksel 300 250 200 150
Kelingking Y Observasi
100
Kelingking Y prediksi
50
103 112 121 130 139 148 157 166 175 184 193
84
12 21 30 39 48 57 66
0
Frame
Gambar 4.28 Grafik Y kelingking skenario 4 PF 3D 80
cm
70 60 50 40 30
Kelingking Z Observasi
20
Kelingking Z prediksi
10
103 112 121 130 139 148 157 166 175 184 193
84
12 21 30 39 48 57 66
0
Frame
Gambar 4.29 Grafik Z kelingking skenario 4 PF 3D
Hal yang sama pada PF 2D+1D terjadi pada PF 3D, particle filter mengalami penurunan dalam kemampuan melacak objek. Nilai observasi yang sebenarnya yang diberikan pada frame kelipatan 15 terlalu lama, dalam selang frame-frame sebelumnya yaitu yang bukan kelipatan 15 nilai observasi yang diberikan stabil, sementara pada nilai observasi yang sebenarnya telah terjadi perubahan yang signifikan. Oleh karena itu dalam keadaan ini particle filter tertinggal dalam melacak objek, sehingga terlihat pada gambar 4.27, 4.28 dan 4.29 grafik observasi mengalami nilai yang bergelombang, sementara nilai prediksi relatif stabil. Dengan menggunakan metode Mean Absolute Scaled Error (MASE) diketahui berapa besar absolute error yang dimiliki nilai prediksi untuk setiap jari yang ditunjukan
Universitas Indonesia
49
pada lampiran. Untuk nilai rata-rata pada setiap skenario ditunjukan oleh tabel 4.2 dan 4.3 berikut: Skenario X
Y
Z
1
0.9803484 0.9579278 0.9566952
2
3.7803672 3.2636556 3.7125654
3
3.9644786 3.0465362 4.1603844
4
4.843524
3.4610432 5.3331552
Tabel 4.2 Nilai MASE rata-rata untuk tiap skenario pada PF 2D+1D
Skenario X
Y
Z
1
1.3388706 1.3117964 1.3667888
2
3.0432678 4.5312588 4.505901
3
3.1447792 5.1414476 5.2599064
4
3.752705
3.5474782 8.818496
Tabel 4.3 Nilai MASE rata-rata untuk tiap skenario pada PF 3D
Skenario
Particle Filter 2D+1D
Particle Filter 3D
1
35735 ms
31906 ms
2
32312 ms
31891 ms
3
34172 ms
32578 ms
4
32813 ms
33750 ms
Tabel 4.4 Perbandingan Waktu
Berdasarkan tabel 4.2, tabel 4.3 dan tabel 4.4 kedua skema memiliki kemampuan yang relatif sama dalam melacak ujung jari dengan keempat kondisi yang diberikan oleh masing-masing skenario, begitupun dengan kecepatan yang dimiliki pada tiap skenarionya. Hanya saja Skema PF 2D+1D rata-rata galatnya lebih kecil dibandingkan dengan PF 3D, Hal ini terjadi ketika suatu objek bergerak diruang 3D pergeseran 1 sumbu akan menggeser kedua sumbu lainnya, sedangkan untuk skema PF 2D+1D pergeseran terjadi pada bidang 2D dan 1 dimensi sehingga pergeseran sumbu x hanya akan mempengaruhi sumbu y, sedangkan sumbu z berdiri sendiri. Untuk suatu sistem yang
Universitas Indonesia
50
animasi hal ini sangat baik karena lebih stabil. Oleh karena itu pengembangan sistem selanjutnya untuk menghadapi permasalahan occlusion digunakan skema PF 2D+1D.
4.6. Kehandalan PF Pendeteksian objek tidak selamanya berada dalam keadaan ideal, ada situasi dimana ada objek lain yang menghalangi. Hal ini merupakan derau bagi nilai observasi, sementara particle filter bergantung pada nilai observasi. Oleh karena itu, perlu dilakukan perubahan pada pemberian nilai observasi. Perubahan tersebut adalah pemberian nilai observasi pada frame kelipatan 9 dan penggantian nilai observasi dengan menggunakan nilai gradien dan konstanta pada model linier. Pemilihan frame kelipatan 9 dikarenakan hasil skenario sebelumnya dimana galat yang diberikan pada skenario 3PF 2D+1D masih relatif stabil meskipun kehilangan informasi. Kemudian pemberian gradien dan konstanta pada model linier digunakan untuk mengatasi ketika nilai observasi yang didapat salah akibat derau dari kedatangan objek lain yang menghalangi objek utama. Berikut hasil pengujian PF 2D+1D dengan menggunakan gradien dan konstanta sebagai pengganti nilai obsevasi yang hilang maupun terganggu derau pada tabel 4.4:
Jari
X
Y
Z
Kelingking
3.02026
1.922569
1.701656
Jari Manis
3.563333
1.93692
1.452462
Jari Tengah
3.422932
2.591289
1.342095
Telunjuk
3.185529
2.086022
1.03705
Jempol
3.053802
2.088469
1.327468
Tabel 4.5 Error kehandalan PF
Berdasarkan tabel 4.5 didapat hasil yang baik pada particle filter dalam menghadapi occlusion. Untuk nilai x dan y memberikan galat yang relatif sama seperti
Universitas Indonesia
51
ketika tidak terdapat gangguan pada objek yaitu pada skenario 3, sendangkan untuk z hasil yang didapat sangat baik dengan tingkat kesalahan yang tidak mencapai 2. Grafik contoh untuk kehandalan particle filter dalam menghadapi occlusion ditunjukan pada gambar 4.30 untuk kelingking. 500
Pixel
400 300 200
X Kelingking Observasi
100
X Kelingking Prediksi
171 178 185
122 129 136 143 150 157
108
87 94
66
10 17 24 31 38 45 52
0
Frame
Gambar 4.31 Grafik X kelingking kehandalan PF 250
Pixel
200 150 100
Y Kelingking Observasi
50
Y Kelingking Prediksi
171 178 185
122 129 136 143 150 157
108
87 94
66
10 17 24 31 38 45 52
0
Frame
Gambar 4.32 Grafik Y kelingking kehandalan PF
80
cm 70 60 50 40 Z Kelingking Observasi Z Kelingking Prediksi
30 20 10
171 178 185
122 129 136 143 150 157
108
87 94
66
10 17 24 31 38 45 52
0
Frame
Universitas Indonesia
52
Gambar 4.33 Grafik Z kelingking kehandalan PF
4.7.Animasi tangan 3D Pengujian ini dilakukan untuk menguji sistem dalam merealisasikan nilai ujung jari kedalam animasi 3D, pengujian dilakukan dalam 3 jenis yaitu untuk tangan merentang, tangan tertekuk kedepan dan tangan tertekuk kebelakang. 1. Tangan merentang
(a)
(b) Gambar 4.34 (a) Animasi tangan 3D merentang (b) Citra tangan merentang
Universitas Indonesia
53
Pada gambar 4.34 terlihat posisi tangan sebenarnya pada citra warna (b) yaitu merentang, hal ini serupa dengan posisi tangan pada animasi tangan 3D. Sistem berjalan lancar sesuai masukan yang diberikan oleh ujung-ujung jari terlacak.
2. Tangan tertekuk kedepan
(a)
(b) Gambar 4.35 (a) Animasi tangan 3D tertekuk kedepan (b) Citra tangan tertekuk kedepan
Universitas Indonesia
54
Pada gambar 4.35 terlihat posisi tangan sebenarnya pada citra warna (b) yaitu, tertekuk kedepan. Hal ini serupa dengan posisi tangan pada animasi tangan 3D. Sistem berjalan lancar sesuai masukan yang diberikan oleh ujung-ujung jari terlacak.
3. Tangan tertekuk kebelakang
(a)
(b) Gambar 4.36 (a) Animasi tangan 3D tertekuk kebelakang (b) Citra tangan tertekuk kebelakang
Universitas Indonesia
55
Pada gambar 4.36 terlihat posisi tangan sebenarnya pada citra warna (b) yaitu, tertekuk kebelakang. Hal ini serupa dengan posisi tangan pada animasi tangan 3D. Sistem berjalan lancar sesuai masukan yang diberikan oleh ujung-ujung jari terlacak.
4.8. Antar muka alami sederhana Pengujian ini dilakukan untuk menguji sistem dalam menerapkan antar muka alami sederhana, yaitu mengendalikan proses zoom in/out dengan menggunakan gerakan jari saja. Dimana proses zoom in/out yang digunakan merupakan proses penskalaan objek bukan berdasarkan perspektif kamera pada sistem. Hal ini dikarenakan penggunaan satu windows untuk animasi, ketika menggunakan perspekstif kamera maka keseluruhan objek pada windows akan mengalami proses zoom in/out. Penskalan dilakukan berdasarkan jumlah dari ujung-ujung jari yang didapat, yaitu jumlah nilai dari sumbu z atau depth dari ujung-ujung jari.
1. Zoom in
Universitas Indonesia
56
(a)
(b) Gambar 4.24 (a) Objek mengalami Zoom in (b) Citra tangan tertekuk kedepan
Proses ini terjadi karena adanya pertambahan nilai pada ujung-ujung jari sehingga memperbesar ukuran objek bola.
2. Zoom out
Universitas Indonesia
57
(a)
(b) Gambar 4.25 (a) Objek mengalami Zoom out (b) Citra tangan tertekuk kebelakang
Proses ini terjadi karena berkurangnya nilai pada ujung-ujung jari sehingga memperbesar ukuran objek bola.
BAB 5
Universitas Indonesia
58
KESIMPULAN DAN SARAN
5.1.Kesimpulan Pada penelitian ini dapat disimpulkan beberapa hal, yaitu: 1. Pendeteksian objek dalam hal ini ujung jari sebagai tahap untuk memberikan nilai observasi pada proses pelacakan dengan particle filter(PF) tidak selalu berjalan ideal. Ada kondisi dimana objek yang dideteksi mengalami gangguan, seperti misalnya ada objek lain yang menghalangi objek yang dideteksi. Hasilnya, pendeteksian menjadi terganggu, sehingga nilai observasi yang diberikan salah, bukan hanya sekedar derau namun salah posisi, melenceng jauh. Pelacakan objek dengan menggunakan informasi frame per frame sangat baik dan cepat dalam melacak, namun ketika pemberian informasi diberi jedah mengurangi kemampuan pelacakan. Hal ini terjadi karena nilai prediksi yang sebelumnya diberikan belum cukup sebagai pengganti nilai observasi. Oleh karena itu penggantian nilai observasi harus dilakukan dengan cara lain, yaitu dengan menggunakan model linier. Hal ini karena, pergerakan jari untuk beberapa saat atau frame dalam kasus ini dapat diasumsikan memiliki tren, sehingga kita bisa menebak pergerakan jari naik atau turun maupun kesamping dengan melihat tren dari prediksi sebelumnya. Oleh karena itu, dengan menggunakan model linier sebagai pengganti nilai observasi untuk beberapa frame efektif untuk mengatasi gangguan ketika deteksi objek mengalami gangguan. 2. Tanpa adanya gangguan dari objek lain yang menutupi telapak tangan particle filter telah baik dalam mengikuti objek, yaitu dengan error kurang dari 2 ketika observasi diberikan setiap frame, Baik menggunakan pelacakan PF 2D+1D maupun PF 3D. Kecepatan PF 2D+1D dan PF 3D tanpa adanya objek yang menghalangi adalah 35735 ms dan 31906 ms. Hal ini merupakan kemampuan dari particle filter itu sendiri dalam menangani pelacakan objek untuk gerakan yang linier maupun non linier. 3. Secara keseluruan PF 2D+1D dan PF 3D memiliki kemampuan yang relatif sama baik dalam akurat dan kecepatan 56 pada kondisi nilai observasi diberikan pada setiap frame. 4. Keakuratan PF lebih baik dibandikan dengan KF.
Universitas Indonesia
59
5. Kemampuan sistem dalam merealisasikan informasi pelacakan ujung jari kedalam animasi tangan 3D baik, ditunjukan dengan kemampuan menirukan gerakan tangan. 6. Kemampuan sistem dalam mengontrol operasi zoom in/out sebagai studi kasus antarmuka alami baik, ditunjukan dalam proses zoom in ketika tangan tertekuk kedepan dan zoom out ketika tangan tertekuk kebelakang.
5.2. Saran Saran untuk penelitian selanjutnya adalah sebagai berikut: 1. Untuk sistem animasi yang membutuhkan presisi yang baik pada setiap frame, maka sebaiknya memberikan nilai observasi untuk setiap frame pada metode particle filter. 2. Untuk sistem yang menangani gesture pemberian nilai observasi tidak harus dilakukan pada setiap frame. 3. Sistem pendeteksi dan pelacakan ujung jari yang berjalan baik dapat dikembangkan untuk penerapan antar muka alami yang lebih kompleks
Daftar Referensi
Universitas Indonesia
60
Al-amri, Salem Saleh et. al. (2010). A Comparative Study for Deblured Average Blurred Images. International Journal on Computer Science and Engineering (IJCSE). Vol. 02, No. 03. Hal(731-733). Alecu, F. (2010). Blender Institute β the Institute for Open 3D Projects. Open Source Science Journal. Vol. 2, No. 1, 2010. Arulampalam, M. Sanjeev., Maskell S., Gordon N and Clapp T. (2002). A tutorial on particle Filter for Online Nonlinier/Non Gaussian Bayesian Tracking. IEEE Transaction on Signal Processing. Vol 40 No 2. Bimbo, D and Dini, F. (2011). Particle Filter-Based Visual Tracking With a First Order DynamicModel and Uncertainty Adaptation.Computer Vision and Image Understanding, Vol. 115, No. 6. Hal(771β786). Boyoon Jung &Gaurav S. Sukhatme. (2004). A Generalized Region-based Approach for Multitarget Tracking in Outdoor Environments. IEEE International Conference on Robotics and Automation. Hal(2189-2195). Bradski, G. &Adrian. (2008). Kehler Learning OpenCV Computer vision with OpenCV Library. O,βReilly B. Stenger, P. Mendonca, and R. Cipolla. (2001). Model-based 3D tracking of an articulated hand. CVPR. Chronister, J. (2009). Blender Basics. D. Serby, E. K. Meier & L. V. Gool. (2004). Probabilistic Object Tracking UsingMultiple Features. Proceedings of the17th International Conference on Pattern Recognition (ICPRβ04).Hal(43-53). Feng et al. (2012). Initialization of 3D Human Hand Model and Its Applications in Human Hand Tracking. Journal Of Computers. Vol. 7, No. 2. .Hal(419-426) Flavell, L. (2010). Beginning Blender. New York. Hyndman, RJ., dan A.B. Koehler. (2006). Another look at measures of forecast accuracy. International Journal of Forecasting 22, no. 4. Hal(679-688). Mann, S. (2002). Intelegent Image Procesing. Masduqi, Ali dan Apriliani, E. (2008). Estimation of Surabaya River Water Quality Using Kalman Filter Algorithm.The Journal for Technology and Science, Vol. 19, No. 3, 2008, halaman 87-91 Mei, H. & Hsu, J. (2011). The Potential of Kinect as Interactive Educational Technology. 2nd International Conference on Education and Management Technology IPEDR. vol.13
Universitas Indonesia
61
Pachoulakis, I & Kapetanakis, K. Augmented Reality Platforms For Virtual Fitting Rooms. The International Journal of Multimedia & Its Applications (IJMA). Vol.4, No.4, August 2012 P. Kumar, H. Weimin, I. U. Gu & Q. Tian. (2004). Statistical modeling of complex backgrounds for foregroundobject detection. IEEE Transaction on Image Processing. Vol 13, No. 1. Hal(43-53). Siradjuddin, Indah A. (2007). Object Tracking in Image Sequence Using Particle Filter. International Conference on Soft Computing, Intelegent System and Information of Technology (ICSIIT). Hal (260-265). Skala, V. (2012). Holography, Stereoscopy and Blender 3D. Proceeding Recent Research in Communications and Computers. Hal (172-176). Thurn ,S. and Burgard ,W. (2000). Probabilistic Robotics. Vezhnevets , Vladimir., Vassili Sazonov, & Alla Andreeva. (2003). A Survey on PixelBased Skin Color Detection Techniques. Proceeding Graphicon. Warade, S. et al. (2012). Automated Training And Maintenance Through Kinect. International Journal of Computer Science, Engineering and Applications (IJCSEA). Vol.2, No.3. Welch, G.,& Bishop, G. (2001). An Introduction to the Kalman Filter. ACM SIGGRAPH Course 8, pada http://www.cs.unc.edu/_welch/kalman/kalmanIntro.html Zhimin Fan, Jie Zhou, Dashan Gao and Zhiheng Li. (2002) Contour Extraction And Tracking Of Moving Vehicles For Traffic Monitoring. Proceedings IEEE International Conference on Intelligent Transportation Systems. Hal(84-87).
Universitas Indonesia