1Mahasiswa Jurusan Teknik Elektro dan Teknologi Informasi, FT UGM. Jln. Wonorejo Asri XII/27 Rungkut Surabaya KODEPOS : 60296.
(tlp : 085733099884, e-mail : nafier.rahmantha@gmail.com)
2, 3 Dosen Jurusan Teknik Elektro dan Teknologi Informasi,
FT UGM. Jln Grafika No.2 Kampus UGM Yogyakarta
PENERAPAN ALGORITME VIOLA-JONES
DAN EIGENFACE PADA SISTEM
PENGENALAN WAJAH
Nafier Rahmantha
1, Indah Soesanti
2, Hanung Adi Nugroho
3Abstract—Research in face recognition system
becomes very complex and complicated. Face recognition system that has been developed turn out to be difficult since it is sensitive to illumination, expression, orientation, occlusion etc. At least, there are 2 main components in face recognition system such as face detector and face recognition. This paper presents face recognition system which is used Viola-Jones and eigenface algorithm as the main method. By combining both of these algorithms, the automated face recognition system can be made. In this paper was used 7 faces each with 10 different expression. Test results gave a accuracy of system by 95,45%.
Intisari—Penelitian mengenai sistem pengenalan
wajah merupakan permasalahan yang kompleks dan
rumit. Sistem pengenalan wajah yang telah
dikembangkan saat ini memiliki beberapa batasan-batasan untuk menghasilkan hasil akurasi yang cukup tinggi seperti : efek pencahayaan, ekspresi wajah, orientasi wajah, penghalang dan lain-lain. Setidaknya terdapat dua bagian utama dalam sistem pengenalan wajah yang baik, yaitu proses pendeteksian wajah dan pengenalan wajah. Dalam tulisan ini digunakan algoritme Viola-Jones dan eigenface sebagai algoritme utama dalam sistem pengenalan wajahnya. Dengan menggabungkan kedua metode ini, sistem pengenalan wajah yang otomatis dapat dibuat. Dalam penelitian yang dilakukan dengan menggunakan 7 wajah dengan 10 pose berbeda, Dihasilkan akurasi sistem yang telah dirancang sebesar 95,45%.
Kata kunci : Algoritme Viola-Jones, eigenface,
eigenvector, pengenalan wajah, pendeteksi wajah. I PENDAHULUAN
Teknologi pengenalan wajah sudah banyak diimplementasikan dalam kehidupan sehari-hari seperti contohnya menemukan teroris dalam ruang publik yang dilengkapi dengan kamera CCTV, sistem keamanan pengguna pada smartphone serta sistem absensi. Sistem keamanan yang menggunakan sistem pengenalan wajah mempunyai
keuntungan yang lebih apabila dibandingkan dengan sistem keamanan yang lain (kode PIN, password atau smart card) yaitu lebih praktis, pengguna tidak perlu repot mengingat sandi-sandi atau membawa kartu tertentu.
Dalam sistem pengenalan wajah terdapat 2 unsur yang penting, yaitu pendeteksian wajah dan proses pengenalan wajah. Dalam proses pendeteksian wajah atau face detection, keberadaan dan lokasi dari wajah pada citra masukan dapat ditentukan sehingga dapat memudahkan proses selanjutnya yaitu proses pengenalan wajah atau face recognition. Algoritma Viola-Jones telah banyak digunakan dan terbukti mampu mendeteksi wajah dengan tepat. Pada proses face recognition, citra wajah yang telah diketahui posisinya dikenali dan dicocokkan dengan citra wajah referensi.
Terdapat banyak pendekatan yang dapat dilakukan dalam mendeteksi wajah, contoh yang cukup sederhana yaitu dengan mencari warna kulit atau mendeteksi gerakan pada video dengan latar belakang yang telah dikondisikan. Namun hingga saat ini, pendeteksian wajah dengan pendekatan jaringan syaraf tiruan dan appearance based menunjukkan keunggulan yang lebih karena tidak terlalu sensitif dengan latar belakang yang ada pada citra [1].
Pada penelitian ini akan digunakan metode pendeteksian wajah atau face detection dengan menggunakan algoritme Viola-Jones. Algoritme ini menggunakan pendekatan appearance based dan telah menjadi framework dari berbagai metode face detector modern saat ini.
Dalam pengenalan wajah terhadap 2 pendekatan utama yaitu feature based dan information theory concept atau appearance based [2][1]. Pada pendekatan feature based, proses recognition dilakukan dengan mencari fitur-fitur wajah seperti jarak antar mata, jarak mata dengan hidung dan lain-lain. Pendekatan feature based memiliki kelebihan yaitu tidak sensitif terhadap variasi pencahayaan dan sudut pandang. Namun, pendekatan ini semakin ditinggalkan karena rentan terhadap penghalang atau occlusion dan banyak informasi yang hilang dan diabaikan dari tekstur wajah.
Sementara itu pada pendekatan appearance based, citra wajah dianalisis sebagai satu kesatuan wajah yang tidak dapat dipisahkan. Algoritme
eigenface termasuk dalam pendekatan appearance based / information theory based.
Pada penelitian ini digunakan metode eigenface sebagai algoritme dasar untuk melakukan face recognition. Algoritme ini digunakan berdasarkan penelitian yang telah dilakukan, bahwa algoritme eigenface sudah menghasilkan akurasi yang cukup baik yaitu sebesar 96% pada keadaan dengan variasi pencahayaan yang berbeda, 85% pada keadaan kemiringan wajah yang berbeda dan 64% pada keadaan ukuran background terhadap citra wajah yang berbeda [3]. Algoritma ini pada dasarnya merupakan pengembangan dari [4] yang menerapakan persamaan Karhunen-Loeve sebagai dasar pengenalan wajahnya. Tujuan penelitian ini adalah melakukan deteksi dan pengenalan wajah dengan akurasi yang tinggi.
II METODE
A. Bahan dan Alat Penelitian
Dibutuhkan beberapa perangkat guna menunjang penelitian ini. Perangkat keras yang digunakan yaitu satu perangkat laptop ASUS K43SJ dengan spesifikasi sistem operasi Windows 7, dengan prosesor Intel ® Core i3 2330M CPU 2.2 GHz dan RAM 2.00 GB.
Perancangan sistem dan simulasi dilakukan dengan perangkat lunak Matlab R2009A. Perangkat lunak Matlab R2009A telah menyediakan kemudahan dan beberapa fitur dalam melakukan proses pengolahan citra digital sehingga software Matlab digunakan dalam penelitian ini.
Citra wajah didapatkan dengan menggunakan kamera belakang 3MP pada smartphone Samsung Galaxy Tab 2 (7.0) GT-P3100.
Jumlah citra uji yang digunakan sebanyak 70 buah dengan 7 jenis wajah dalam 10 ekspresi yang berbeda.
B. Perancangan Sistem Secara Umum
Secara umum, sistem pengenalan wajah yang diterapkan pada penelitian ini dapat diamati pada Gbr 1. PENDETEKSIAN WAJAH PENGENALAN WAJAH PRE-PROCESSING
CITRA MASUKAN CITRA
KELUARAN
CITRA REFERENSI
Gbr 1 Blok Diagram Sistem Secara Umum
Citra masukan yang mengandung komponen wajah dan bukan wajah dimasukkan ke dalam blok pendeteksian wajah. Dengan melewatkan citra masukan ke dalam blok ini, daerah yang mengandung wajah dapat dipisahkan dari latar belakangnya. Keluaran dari blok pendeteksian wajah kemudian dilewatkan pada blok pre-processing dan blok pengenalan wajah untuk dicocokkan dengan citra referensi sehingga wajah dapat dikenali.
C. Blok Pendeteksian Wajah
Pendeteksian wajah ini mengunakan algoritma Viola Jones[5]. Pada blok ini citra masukan yang masih mengandung komponen wajah dan bukan wajah dipisahkan, sehingga hanya komponen wajah saja yang dilewatkan oleh blok ini. Gbr 2 menunjukkan cara kerja dari pendeteksian wajah secara umum. CITRA MASUKAN UBAH KE INTEGRAL IMAGE CASCADING Haarcascade_fron talface_alt CITRA KELUARAN
Gbr 2 Blok Diagram Proses Pengenalan Wajah
Citra wajah masukan yang masih dalam bentuk grayscale diubah menjadi integral image dengan perumusan,
y ' y dan x ' ' , ' , x y x i y x ii . (2. 1)Dengan ii ,
x y merupakan integral image pada koordinat baris x dan kolom y, i
x' y, '
merupakan citra masukan.Untuk menentukan ada atau tidaknya wajah dalam sebuah citra, Paul Viola dan Michael Jones menggunakan haar-like features seperti pada Gbr 3.
Gbr 3 Contoh Haar-like features [5].
Haar-like feature merupakan fitur yang cukup sederhana (bujur sangkar) yang mempunyai 3 nilai, yaitu bernilai 1 untuk daerah kotak berwarna hitam, bernilai -1 untuk daerah kotak berwarna putih, dan bernilai 0 untuk daerah yang lain.
Pada intinya, sifat dari haar-like feature hampir sama dengan filter yang digunakan pada deteksi tepi, yaitu menunjukkan nilai intensitas yang tinggi apabila nilai-nilai piksel masukan filter selaras dengan pola yang ditunjukkan pada filter itu sendiri. Haar-like feature umumnya masing-masing berukuran 24 x 24 piksel (ada juga yang berukuran 20 x 20 piksel) yang didalamnya terdapat pola fitur tertentu.
Daerah yang ditunjukkan oleh haar-like feature dianggap wajah apabila, jumlah dari seluruh daerah citra masukan yang diberi bobot nilai sesuai dengan yang ditunjukkan oleh haar-like feature ke-j melebihi batas threshold j tertentu seperti yang ditunjukkan pada persamaan.
lain yang 0 jika 1 j j sum x h
(2. 2)Dengan hj
x merupakan haar-like feature ke-j yang diberi masukan daerah citra ke-x dansum
merupakan jumlah dari seluruh daerah citra masukan yang diberi bobot nilai sesuai dengan yang ditunjukkan oleh haar-like feature ke-j.Pengambilan keputusan bahwa bagian citra tersebut merupakan wajah apabila sekumpulan haar-like feature yang digunakan memenuhi persamaan,
T j j jh x x h 1
(2. 3) Dengan ,
lain yang 0 2 1 jika 1 1 T j j x h x h Dengan h
x merupakan sekumpulan kombinasi linear dari haar-like features, jadalah bobot kombinasi haar-like feature ke-j,hj
x merupakan haar-like feature ke-j yang diberi masukan daerah citra ke-x, dan T banyaknya haar-like feature yang digunakan dalam kombinasi linear.Berdasarkan persamaan (2. 3), pencarian fitur dan lokasi wajah pada proses cascading membutuhkan 3 komponen utama dalam perhitungannya yaitu : sebanyak j haar-like features yang digunakan, bobot kombinasi j dari haar-like feature ke-j, dan thresholdj dari haar-like feature ke-j. Ketiga informasi penting ini telah disediakan oleh opencv pada “haarcascade_frontalface_alt”. Melalui informasi yang telah disediakan oleh “haarcascade_frontalface_alt”, proses cascading dapat dilakukan sehingga wajah dapat dideteksi. D. Blok Pre-processing
Blok pre-processing digunakan untuk meningkatkan akurasi dari blok pengenalan wajah dengan cara melakukan seleksi lebih lanjut citra masukan dari blok pendektesian wajah.
Citra keluaran blok pendeteksian wajah umumnya masih mengandung banyak unsur bukan wajah. Untuk menghilangkan unsur bukan wajah tersebut, citra keluaran pendeteksian wajah dilakukan segmentasi berdasarkan warna kulit manusia.
Warna kulit manusia menempati rentang nilai intensitas tertentu pada color space YCbCr dan HSV. Sensasi warna ditentukan oleh kanal Cb (croma blue) dan Cr (croma red) pada color space YCbCr dank anal H (Hue) pada color space HSV. Pada penelitian yang telah dilakukan, warna kulit manusia menempati rentang nilai 110 hingga 125 pada kanal Cb, 130 hingga 145 pada kanal Cr, dan 10 hingga 25 pada kanal H. Ilustrasi hasil dari blok ini diperlihatkan pada Gbr 4.
(a) (b) (c)
Gbr 4 Ilustrasi Hasil Blok Pre-processing(2) (a) citra hasil pendeteksi wajah (b) segmentasi warna kulit (c)
Hasil Keluaran
E. Blok Pengenalan Wajah
Proses yang berlangsung pada blok ini secara umum merupakan proses perhitungan algoritme eigenface. Inti dari blok ini adalah proses pencarian fitur yang diperlukan untuk pengenalan wajah.
Pengenalan wajah dengan metode eigenface dilakukan dengan cara melakukan rotasi sebesar [W] terhadap citra wajah yang ingin dikenali dan kemudian hasil rotasi tersebut dibandingkan kedekatannya dengan citra wajah referensi yang juga telah ditransformasikan sebesar [W].
Pertama-tama citra wajah referensi diubah menjadi vektor kolom xN dengan N merupakan
banyaknya citra wajah referensi sehingga terbentuk matriks X seperti pada persamaan,
T N x x x X 1 2 .
(2. 4)Rata-rata dari citra wajah referensi / average face dihitung berdasarkan perumusan,
N n n x N X 1 1 (2. 5) Matriks transformasi [W] didapatkan berdasarkan eigenvector dari kovarian matriks [C]x yang dihitung berdasarkan perumusan pada persamaan,
T x E X X X X C (2. 6)Andaikan citra wajah referensi yang akan kita uji mempunyai ukuran sebesar 100 x 100 pixel. Sehingga berdasarkan persamaan (2. 6), kita membutuhkan 100x100 pasang eigenvector dan eigenvalue. Berdasarkan hotelling transform atau yang biasa disebut dengan principal component analysis [6][3][4] kita cukup membutuhkan N pasang eigenvector dan eigenvalue yang paling signifikan (mempunyai varians terbesar) tanpa kehilangan banyak informasi penting.
Mengingat dimensi dari
XX XX
E T
jauh lebih kecil apabila dibandingkan dengan
dimensi dari
T X X X X E dan A =
XX
. Dengan menganggap bahwa eigenvektordari
XX XX E T adalah vi sehingga, i T Av A = i iv . (2. 7)
Dengan mengalikan A pada persamaan (2. 7
)
sehingga : i TAv AA = iAvi (2. 8)
C xAvi = iAviBerdasarkan pada persamaan (2. 8),
Av
i merupakan eigenvector dari [C]x dengan vi merupakan eigenvector dari ATA yang merupakan eigenvector paling signifikan dari [C]x. Dengan metode ini, dimensi dari matriks transformasi [W] akan lebih kecil sehingga beban komputasi akan semakin berkurang. Lebih lanjut, matriks transformasi [W] ini juga biasa disebut sebagai eigenface.Proses pengenalan wajah dilakukan dengan memanfaatkan perumusan pada persamaan,
W Xy T . (2. 9)
Algoritme eigenface atau PCA dapat bekerja dengan baik apabila setiap dimensi data masukan dikurangi dengan nilai rata-ratanya [7]. Sehingga y merupakan masukan
XX
yang telah ditransformasi sebesar [W], dengan X merupakan citra wajah referensi danX
merupakan rerata citra wajah referensi.Citra wajah yang akan dikenali juga ditransformasikan sebesar [W] agar menempati bidang yang sama dengan y. Berdasarkan pada persamaan (2. 9) sehingga,
WT
XX
ˆ
(2. 10)
Dengan
merupakan citra wajah yang akan dikenaliXˆ
yang telah ditransformasikan sebesar [W]. Citra wajahXˆ
kemudian akan dicocokkan dengan citra wajah referensi berdasarkan nilai minimum dari euclidean distance nya. Perumusannya adalah, 2 2 k k
y
. (2. 11)Dengan k2 merupakan nilai euclidean distance dan
k
y
merupakan citra wajah referensi yang telah ditransformasikan sebesar [W].III HASIL DAN PEMBAHASAN
Pada bab ini akan dilakukan pengujian sistem pengenalan wajah yang telah disimulasi dan diimplementasikan pada perangkat lunak MATLAB R2009A.
A. Pengujian Pendeteksian Wajah
Pengujian ini dilakukan untuk mengetahui akurasi dari face detector yang telah diimplementasikan. Akurasi dari face detector dihitung berdasarkan perbandingan jumlah citra wajah yang berhasil dideteksi dengan banyaknya citra wajah yang tidak berhasil dideteksi (tidak mampu mendeteksi wajah atau mengalami kesalahan dalam mendeteksi wajah).
Dari percobaan yang telah dilakukan algoritme Viola-Jones dapat mendeteksi wajah dengan tingkat akurasi yang cukup tinggi yaitu sebesar 94,3% (4 buah citra masukan tidak berhasil dideteksi dari total 70 citra masukan).
Berikut pada Gbr 5 ditunjukkan contoh hasil pengujian dari pendeteksi wajah.
Gbr 5 Hasil Pengujian Pendeteksi Wajah
B. Pengujian Pengenalan Wajah
Pengujian ini dilakukan untuk mengetahui akurasi dari proses pengenalan wajah yang telah diimplementasikan. Akurasi dari proses pengenalan wajah dihitung berdasarkan jumlah citra wajah yang berhasil dikenali dengan benar dibandingkan dengan banyaknya citra wajah yang dikenali dengan salah.
Contoh citra yang digunakan sebagai citra uji dari sistem pengenalan wajah diperlihatkan pada Gbr 6.
(a) (b) (c)
(d) (e) (f)
(g)
Gbr 6 Contoh Citra Uji yang Digunakan.
Berdasarkan hasil pengujian, sistem pengenalan wajah yang tidak menggunakan blok pre-processing menghasilkan akurasi sebesar 86,36%. Sedangkan berdasar pada sistem pengenalan wajah yang ditambahkan dengan blok pre-processing, mengalami peningkatan akurasi sebesar 9% . Lebih
lanjut, dengan menggunakan blok pre-processing akurasi sistem menjadi 95,45%.
Hal ini dikarenakan dari sifat metode eigenface yang membandingkan fitur wajah referensi dengan wajah citra masukan. Fitur yang dibandingkan ini sebenarnya merupakan data pada koordinat kartesian yang telah ditransformasikan sebesar [W] yang mempunyai varians paling tinggi dari sekumpulan citra referensi.
Tiap sumbu pada koordinat kartesian yang telah ditransformasikan sebesar [W] ini merupakan nilai tiap-tiap piksel pada citra referensi. Jadi, keluaran dari proses pengenalan wajah akan menghasilkan hasil yang lebih akurat apabila posisi tiap fitur wajah seperti mata, hidung, mulut berada pada koordinat yang sama.
Dengan adanya blok pre-processing, posisi fitur mata, hidung, mulut diusahakan dalam posisi yang sama dengan citra referensi. Hal ini disebabkan oleh sifat dari blok pre-processing yang berusaha menghasilkan citra dengan hanya berisi wajah sepenuhnya dengan cara melakukan segmentasi berbasis warna kulit manusia.
IV KESIMPULAN
Berdasarkan hasil penelitian yang telah dilakukan, dapat diambil beberapa kesimpulan sebagai berikut :
1. Metode Viola-Jones dan eigenface dapat dikombinasikan sehingga mampu membentuk sistem pengenalan wajah yang otomatis. 2. Algoritme Viola-Jones yang digunakan dalam
proses pendeteksian wajah sudah mampu berjalan dengan baik pada kondisi wajah tegak ke depan dengan akurasi sebesar 94,3%. 3. Algoritme eigenface yang digunakan dalam
proses pengenalan wajah sudah mampu berjalan dengan baik pada kondisi wajah tegak ke depan dengan akurasi sebesar 95,45%. 4. Algoritme eigenface sangat bergantung pada
posisi fitur pada wajah seperti mata, hidung, dan mulut sehingga peran dari blok pre-processing cukup vital dalam sistem pengenalan wajah yang telah dibuat, terbukti dengan meningkatnya akurasi sistem sebesar 9% dengan penambahan blok pre-processing.
REFERENSI
[1] S. Z. Li dan A. K. Jain, Handbook of Face Recognition, New York: Springer Science+Business Media, Inc 2005, 2005. [2] M. Agarwal, H. Agrawal, N. Jain dan M. Kumar, “Face
Recognition using Principal Component Analysis, Eigenface and Neural Network,” dalam 2010 International Conference
on Signal Acquisition and Processing, 2010.
[3] M. Turk dan A. Pentland, “Eigenfaces for Recognition,” dalam Journal of Cognitive Neuroscience, vol. 3, 1991. [4] M. Kirby dan L. Sirovich, “Application of the
Karhunen-Loeve Procedure for the Characterization of Human Faces,” dalam IEEE PAMI Vol 12, 1990.
[5] P. Viola dan M. Jones, “Robust Real-Time Object Detection,” Vancouver, 2001.
[6] R. Dony, The Transform and Data Compression Handbook, Boca Raton: CRC Press LLC, 2001.
[7] L. I. Smith, “A Tutorial on Principal Component Analysis,” 2002.