Deteksi Wajah menggunakan Algoritma Viola-Jones
Saat ini telah banyak berkembang aplikasi-aplikasi yang menggunakan fitur deteksi wajah. Deteksi wajah sendiri dapat dilakukan dengan berbagai cara, salah satunya menggunakan algoritma Viola-Jones.
Algoritma Viola-Jones merupakan algoritma yang paling banyak digunakan untuk mendeteksi wajah. Proses pendeteksian wajah dilakukan dengan mengklasifikasikan sebuah gambar setelah sebelumnya sebuah pengklasifikasi dibentuk dari data latih. Data latih yang digunakan oleh algoritma ini berjumlah 5000 citra wajah dan 9400 citra non-wajah sehingga menghasilkan akurasi sistem sebesar 95% dengan data positif salah sebesar 1 : 14084.
Klasifikasi citra dilakukan berdasarkan nilai dari sebuah fitur. Penggunaan fitur dilakukan karena pemrosesan fitur berlangsung lebih cepat dibandingkan pemrosesan citra perpiksel. Terdapat 3 jenis fitur berdasarkan jumlah persegi panjang yang terdapat di dalamnya, seperti yang dapat dilihat pada gambar di bawah ini :
Pada gambar di atas dapat dilihat bahwa fitur (a) dan (b) terdiri dari dua persegi panjang, sedangkan fitur (c) dan (d) terdiri dari tiga persegi panjang dan fitur (e) empat persegi panjang. Cara menghitung nilai dari fitur ini adalah mengurangkan nilai piksel pada area hitam dengan piksel pada area putih. Untuk mempermudah proses penghitungan nilai fitur, algoritma Viola-Jones menggunakan sebuah media berupa citra integral.
Citra integral adalah sebuah citra yang nilai tiap pikselnya merupakan akumulasi dari nilai piksel atas dan kirinya. Sebagai contoh, piksel (a,b) memiliki nilai akumulatif untuk semua piksel (x,y) dimana x ≤ a dan y ≤ b. Contoh citra integral dapat dilihat di bawah :
Dengan mendapatkan citra integral, penghitungan nilai area dapat dilakukan dengan cara :
Proses pencarian nilai fitur ini dilakukan secara iteratif mulai dari ujung kiri atas citra hingga ujung kanan bawah dengan pergeseran sebesar ∆x dan ∆y. Semakin kecil nilai ∆x dan ∆y, maka semakin akurat pula proses deteksi. Nilai ∆x dan ∆y yang sering digunakan adalah 1.
Penghitungan nilai fitur diulangi hingga 12 kali dengan skala 1,25. Pemrosesan fitur terbaik diperoleh pada subcitra berukuran 24 x 24 sehingga pada setiap iterasi, subcitra dikonversi terlebih dahulu menjadi berkuran 24 x 24. Sebagai contoh, pertama-tama iterasi dilakukan dengan ukuran subcitra 24 x 24. Subcitra ini tidak perlu dikonversi sehingga langsung dapat dilakukan penghitungan nilai fitur. Setelah iterasi tahap ini selesai, dilakukan iterasi dengan subcitra berukuran 1,25 x 24 = 30. Subcitra berukuran 30 x 30 dikonversi menjadi 24 x 24 sebelum dilakukan penghitungan nilai fitur. Proses ini diulangi hingga 12 kali.
Permasalahan yang terdapat dalam penghitungan fitur ini adalah Viola – Jones memiliki 60.000 jenis fitur yang berbeda. Jumlah ini terlalu besar sehingga tidak mungkin dilakukan penghitungan untuk semua fitur. Hanya fitur-fitur tertentu sajalah yang dipilih untuk diikutsertakan. Pemilihan fitur-fitur ini dilakukan menggunakan algoritma Ada-Boost.
Algoritma Ada-Boost berfungsi untuk mencari fitur-fitur yang memiliki tingkat pembeda yang tinggi. Hal ini dilakukan dengan mengevaluasi setiap fitur terhadap data latih dengan menggunakan nilai dari fitur tersebut. Fitur yang memiliki batas terbesar antara wajah dan non-wajah dianggap sebagai fitur terbaik.
Karakteristik dari algoritma Viola-Jones adalah adanya klasifikasi bertingkat. Klasifikasi pada algoritmna ini terdiri dari 3 tingkatan dimana tiap tingkatan mengeluarkan subcitra yang diyakini bukan wajah. Hal ini dilakukan karena lebih mudah untuk menilai subcitra tersebut bukan wajah ketimbang menilai apakah subcitra tersebut berisi wajah. Di bawah ini adalah alur kerja dari klasifikasi bertingkat.
Pada klasifikasi tingkat pertama, tiap subcitra akan diklasifikasi menggunakan satu fitur. Klasifikasi ini kira-kira akan menyisakan 50% subcitra untuk diklasifikasi di tahap kedua. Seiring dengan bertambahnya tingkatan klasifikasi, maka diperlukan syarat yang lebih spesifik sehingga fitur yang digunakan menjadi lebih banyak. Jumlah subcitra yang lolos klasifikasi pun akan berkurang hingga mencapai jumlah sekitar 2%.




Saya mahasiswa jurusan informatika yang sedang menyusun tugas akhir tentang deteksi wajah, yang didalamnya membahas tentang integral image/ citra integral. saya masih belum begitu jelas dengan pembahasan anda. mohon bantuannya untuk menjelaskan secara lebih rinci(step by step) tentang algoritma ini. terima kasih sebelumnya.
@Nanda : seperti yang telah saya jelaskan di atas, citra integral adalah sebuah citra yang nilai tiap pikselnya merupakan hasil penjumlahan seluruh nilai piksel yang ada di sebelah kiri dan atasnya..
Sebagai contoh, jika terdapat citra dgn nilai piksel :
1 2 3
4 5 1
2 3 4
maka citra integralnya adalah :
1 (1+2) (1+2+3)
(1+4) (1+2+4+5) (1+2+3+4+5+1)
(1+4+2) (1+2+4+5+2+3) (1+2+3+4+5+1+2+3+4)
yang hasilnya :
1 3 6
5 12 16
7 17 25
saya mau bertanya pak..
lalu ketika membandingkan dua citra bagaimana pak prosesnya??
saya juga sedang skripsi tentang face detection..
dan bingung ketika membandingkan citranya prosesnya bagaimana?
thx pak
Pak, saya mau nanya,
Deteksi wajah dilakukan secara real – time,bukan merupakan wajah dalam bentuk image. jadi dalam bentuk apa?
apa yg harus di input (frame/image)berapa ukurannya, apa formatnya dst — bagaimana langkahnya — apa output?
kl boleh saya minta flowchart nya dikirim ke email saya pak.
terima kasih
Klo dalam satu citra terdapat 2 wajah apakah kedua wajah tersebut dapat terdeteksi dengan metode viola jones?
klo bisa di deteksi tolong pak penjelasannya..
@luthar : untuk cara membandingkan dua buah citra sebenarnya metodenya ada banyak, bergantung pada tingkat akurasi dan kecepatan proses yang diinginkan.
@mazuma : pada intinya baik walaupun diproses dalam format video, tetap akan diproses per frame jika ingin menggunakan metoe ini. Namun, jika menggunakan video terdapat beberapa metode lain yang mempergunakan perubahan gelombang (pergerakan) jadi tidak usah diproses seperti layaknya sebuah image.
@ivan : algoritma viola-jones ini dapat digunakan untuk gambar dengan banyak wajah di dalamnya, selama ukuran dan posisi wajah memenuhi syarat.
saya mo tny klo mendeteksi objek dengan metode haar cascade tu gmn ya?saya kurang paham..mohon bantuannya.
saya mau tanya tentang algoritma ada boost.apakah algoritma ada boost merupakan salah satu bagian dari algoritma viola jones
terimakasih
bapak, mohon pencerahannya.. saya mhsiswi yg sdang TA dgn topik pedeteksian wajah, mohon pencerahannya pak.. untuk membuat aplikasi deteksi wajah ini pake apa ya pak..??
saya mahasiswi sedang menyusun TA tentang face detection, saya bingung algoritma yang harus dipake buat ngebedain warna kulit atau bukan, apa bisa pke algoritma ada boost? bisa tolong dijelaskan lebih detail lagi? terimakasih
boleh tau referensi diatas didapat dari mana??
boleh minta link papernya??
terima kasih
maaf, blh tau gak untuk deteksi wajah viola jone sini menggunakan software apa??? apakah matlab???
Di artikel disebutkan, Karakteristik dari algoritma Viola-Jones adalah adanya klasifikasi bertingkat.
SY mau nanya, klasifikasi di tiap tingkat itu berdasar apa y? thanks b4
Pemrosesan fitur terbaik diperoleh pada subcitra berukuran 24 x 24 sehingga pada setiap iterasi, subcitra dikonversi terlebih dahulu menjadi berkuran 24 x 24.
pemrosesan fitur seperti apa ya yg dimaksud diatas? knp yg terbaik di 24×24 tidak di 50×50 misalnya?