PostHeaderIcon 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 :

fitur Viola-Jones

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 :

Citra Integral

Dengan mendapatkan citra integral, penghitungan nilai area dapat dilakukan dengan cara  :

Penghitungan Nilai Area

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.

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%.

14 Responses to “Deteksi Wajah menggunakan Algoritma Viola-Jones”

  • Nanda mengatakan:

    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.

  • Wulandari mengatakan:

    @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

  • luthar mengatakan:

    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

  • mazuma mengatakan:

    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

  • ivan mengatakan:

    Klo dalam satu citra terdapat 2 wajah apakah kedua wajah tersebut dapat terdeteksi dengan metode viola jones?
    klo bisa di deteksi tolong pak penjelasannya..

  • Wulandari mengatakan:

    @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.

  • Hendy mengatakan:

    saya mo tny klo mendeteksi objek dengan metode haar cascade tu gmn ya?saya kurang paham..mohon bantuannya.

  • yodie mengatakan:

    saya mau tanya tentang algoritma ada boost.apakah algoritma ada boost merupakan salah satu bagian dari algoritma viola jones
    terimakasih

  • dini mengatakan:

    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..??

  • aianna mengatakan:

    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 :)

  • akbar mengatakan:

    boleh tau referensi diatas didapat dari mana??
    boleh minta link papernya??
    terima kasih

  • adhip mengatakan:

    maaf, blh tau gak untuk deteksi wajah viola jone sini menggunakan software apa??? apakah matlab???

  • laely mengatakan:

    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 :D

  • ardi mengatakan:

    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?

Leave a Reply