Hi, guest ! welcome to banditz-cyber.blogspot.com. | About Us | Contact | Register | Sign In

Rabu, 11 April 2012

Algoritma membuat Aplikasi Deteksi Wajah menggunakan metode 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%.

Share this article now on :

Posting Komentar

:)) ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} :)] ~x( :-t b-( :-L x( :-p =))