Algoritma Face Tracking menggunakan metode Particle Filter

Bosen dengan yang galau-galau sekarang mau kembali menuju jalan yang benar. Menulis sesuatu yang berhubungan dengan programming.

Face tracking merupakan suatu metode untuk melacak posisi wajah. Apa sih kegunaannya melacak posisi wajah. Koordinat posisi wajah dapat di gunakan untuk mengontrol device atau alat yang ditanamkan program face tracking. Contohnya pada Smart TV. pada saat kita menonton, Smart TV akan berada pada posisi “ON” alias menyala. Tetapi ketika kita ketiduran, maka otomatis Smart TV akan mematikan dirinya sendiri. Contoh lain yaitu pada interaksi manusia dan komputer.  Face Tracking bisa di aplikasikan pada game komputer khusunya yang berjenis FPS(First Person Shooter) misalnya Counter Strike. Pada saat kita ingin bergerak ke kanan, maka cukup gerakkan kepala anda ke kanan. Pada hal ini posisi wajah dan input dari tangan akan mengontrol game tersebut.

Berikut saya jelaskan flow chart dari algoritma Particle Filter [1]. Particle filter juga mempunyai nama lain yaitu Condensation (Conditional Density Propagation for Visual Tracking). Biar ngga keliatan aneh istilah-istilah tetap saya pertahankan menggunakan bahasa inggris.

Flow Chart

Flow Chart

1. Face Detection.

Suatu metode untuk mendeteksi adanya wajah di dalam sebuah gambar atau video. Metode yang cukup terkenal yaitu metode Viola Jones [2]. Untuk mengurangi performa dari algoritma, maka face detection cukup dilakukan sekali saja. Atau bisa juga di lakukan setiap 3 detik.

2. Model Histogram.

Area wajah yang sudah di deteksi di lakukan perhitungan histogram. Untuk lebih lanjut mengetahui tentang histogram bisa mempelajari artikel di wikipedia. Menurut penjelasan saya pribadi. Histogram mendeskripsikan karakteristik dari suatu gambar yang meliputi intensitas pixel dan juga warna. CMIIW.

3. Pada setiap frame. Kita menjalankan metode ini pada sebuah video atau live camera dimana suatu video terdiri dari beberapa frame/gambar. Contoh dalam suatu video yang berdurasi 1 detik terdapat 24 frame. Pada setiap frame lakukan Gaussian distribution. Gaussian distribution adalah distribusi dimana penyebarannya dilakukan terpusat atau dengan kata lain di sekitar pusat area. Hal ini berbeda dengan Normal distribution dimana distribusinya menyeluruh. Distribusi Gaussian dilakukan untuk menyebar kemungkinan dimana posisi wajah berikutnya. Distribusi di lakukan hanya di sekitar wajah saja.

Face Tracking

Particle Filter

Pada gambar diatas bisa di lihat saya melakukan distribusi sampling sebanyak 20. Dengan kata lain saya menggunakan 20 partikel. Semakin banyak jumlah partikel maka tingkat akurasi dan “smooth” akan menjad  lebih baik. Disisi lain jumlah partikel yang banyak akan menambah waktu proses.

kotak biru merupakan area face detection. Perhatikan bahwa sampling hanya di berikan pada area sekitar wajah, tidak ke seluruh area frame.

4. Pada setiap distribusi partikel(saya menggunakan 20 partikel) lakukan perhitungan histogram sama seperti langkah 2

5. Hitung Likelihood.

Untuk menghitung likelihood saya menggunakan Bhattacharyya similarity [3] antara model histogram dan target histogram. Dengan kata lain saya membandingkan antara histogram sampling dengan histogram model pada saat face detection. Untuk mempelajari Bhattacharyaa distance bisa di baca di artikel wikipedia.. Setelah mendapatkan hasil dari Bhattacharyya distance kita pilih yang memiliki nilai maksimal.

6. Resample
Resample digunakan untuk membuang partikel yang mempunyai nilai kecil dan tetap mempertahankan partikel partikel yang mempunyai nilai besar. Nilai ini kita dapatkan pada perhitungan diatas no. 5.

Perhitungan akan terus dilakukan sampai pada akhir frame atau video.

Program face tracking ini saya kerjakan pada saat saya kuliah semester 2. Semoga bisa membantu teman-teman yang membuat program yang serupa.

Untuk yang mau mendownload programnya silakan menuju TKP

Reference

[1] M. Isard and A Blake, “Condensation : conditional density propagation for visual tracking”, International Journal of Computer Vision, 1998, vol. 29(1), p. 5-28
[2] M. Jones and P. Viola, “Fast and robust classification using asymmetric AdaBoost and a detector cascade”, Proc. of NIPS, 2002.
[3] T.Kailath, “The Divergence and Bhattacharyya Distance Measures in Signal Selection”, IEEE Transactions on Communication Technology, vol. 15 (1), p. 52-62.

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*
Website