PEMECAHAN MASALAH PENGENALAN CITRA WAJAH SECARA REALTIME DENGAN VARIASI POSE MENGGUNAKAN METODE EIGENFACES Reza A Prasetyo Binus University, Jakarta, DKI Jakarta, Indonesia
Benny Senjaya BinusUniversity, Jakarta, DKI Jakarta, Indonesia
Alexander A S Gunawan BinusUniversity, Jakarta, DKI Jakarta, Indonesia
Abstract There are so many human jobs that can be replaced by computer in the age of advanced technology, one of them is face recognition. Face recognition is often used at places that need a high security. Generally, face recognition is done with controlled variables like light intensity, poses, and expression. Uncontrolled variables would decrease the performance of face recognition. This journal examines how to handle pose variations in face recognition using EigenFaces method. Testing was conducted with inputs of face images in multi-poses based on yaw head movement. The result was obtained with different shooting angles and threshold values to get the optimal results. At the end of testing, the EigenFaces method could be used for face recognition with pose variations, with the help of multi-pose face detection and division of PCA modules based on the captured pose. Keyword: recognition, face, variation, poses, EigenFaces, Principal Component Analysis
Abstrak Banyak pekerjaan manusia yang dapat digantikan oleh komputer dalam teknologi maju sekarang ini, salah satunya adalah pengenalan wajah. Pengenalan wajah banyak digunakan pada tempat-tempat yang membutuhkan sekuritas tinggi. Pengenalan wajah umumnya dilakukan dengan beberapa variabel terkontrol seperti intensitas cahaya, pose wajah, dan ekspresi. Tidak terkontrolnya variabel-variabel tersebut dapat menurunkan performa dari pengenalan wajah. Skripsi ini membahas mengenai pendekatan untuk menangani masalah variasi pose pada pengenalan wajah menggunakan metode EigenFaces. Pengujian dilakukan dengan masukan berupa citra wajah dengan variasi pose berdasarkan perputaran axis sejajar dengan bidang rata (yaw head movement). Hasil pengujian divariasikan dengan berbagai sudut pengambilan dan nilai threshold untuk mendapatkan nilai yang optimal. Setelah pengujian dilakukan dengan beberapa sampel, dapat disimpulkan bahwa metode EigenFaces dapat digunakan untuk menyelesaikan masalah pengenalan citra wajah dengan variasi pose, dengan bantuan pendeteksian wajah secara multi-pose dan pembagian tugas kerja modul PCA berdasarkan pose yang ditangkap. Kata kunci: pengenalan, wajah, variasi, pose, EigenFaces, Principal Component Analysis
1. Pendahuluan Dalam masa teknologi maju sekarang ini, banyak pekerjaan manusia yang telah digantikan oleh komputer. Dengan adanya penggantian posisi manusia oleh komputer, pekerjaan dapat diselesaikan dengan biaya lebih murah dan lebih optimal, namun tetap dapat diandalkan. Salah satunya adalah teknologi untuk pengenalan citra wajah untuk mengetahui identitas seseorang. Pengenalan citra wajah diawali dari deteksi wajah, di mana komputer dapat mengetahui adanya citra wajah dan menemukan semua citra wajah yang ada dari sebuah citra atau video. Dari hasil deteksi citra wajah tersebut, selanjutnya dikembangkan agar dapat mengenali atau mengidentifikasi siapa yang memiliki wajah tersebut. Meskipun pengenalan wajah tidak seakurat metode pengenalan lain seperti sidik jari, hal ini tetap menarik perhatian besar banyak peneliti di dalam bidang computer vision (Eleyan & Demirel, 2007, p. 93). Pengenalan citra wajah ini umumnya digunakan di beberapa tempat yang memerlukan identifikasi wajah secara cepat, biasanya di tempat-tempat yang membutuhkan sekuritas tinggi dan digunakan oleh banyak orang seperti pada mesin ATM, imigrasi, bank, dan sebagainya. Hal ini dikarenakan tidak mungkin manusia dapat mengingat citra wajah setiap orang dan mengenali identitasnya secara cepat. Teknologi ini dapat digunakan untuk mempermudah identifikasi seseorang, atau bahkan menghindari hal yang tidak diinginkan, seperti identifikasi atas orang yang dicari, identifikasi residivis, dan identitas yang dipalsukan.
2. Pembahasan Identifikasi (pengenalan) wajah atau face recognition adalah sebuah tugas yang dilakukan oleh manusia secara rutin dan mudah dalam kehidupan sehari-hari. Penelitian dan pengembangan ilmu pengenalan wajah berkembang secara otomatis atas dasar ketersediaan desktop kuat dan rendah biaya serta embedded-system yang telah menciptakan minat yang sangat besar dalam pengolahan citra digital dan video. Motivasi penelitian dan pengembangan dari pengenalan wajah termasuk dalam lingkup otentikasi biometrik, pengawasan, interaksi manusia-komputer, dan manajemen multimedia (Li & Jain, 2005, p. 1). Sistem pengenalan citra wajah umumnya mencakup empat modul utama (Li & Jain, 2005, p. 2), yaitu: deteksi, alignment, ekstraksi fitur, dan pencocokan. Proses lokalisasi dan normalisasi (deteksi wajah dan alignment) adalah langkah-langkah sebelum proses pengenalan wajah (ekstraksi fitur wajah dan pencocokan) dilakukan. Deteksi wajah adalah langkah awal untuk melakukan identifikasi wajah atau face recognition. Sebuah pendeteksi wajah yang ideal seharusnya mampu mengidentifikasi dan menemukan lokasi dan luas semua wajah yang ada di dalam sebuah gambar tanpa memperhatikan pose, skala, orientasi, umur, dan ekspresi (Li & Jain, 2005, p. 13). Deteksi wajah melakukan segmentasi area citra wajah dengan bagian latar (background). Proses alignment bertujuan untuk memperoleh akurasi yang lebih tinggi untuk lokalisasi dan normalisasi citra wajah karena deteksi wajah menyediakan estimasi lokasi dan skala dari setiap citra wajah yang terdeteksi. Setelah sebuah wajah dinormalisasi, ekstraksi fitur dilakukan untuk mengambil data efektif yang berguna untuk memisahkan antara citra-citra wajah dan orang-orang yang berbeda dan cukup stabil untuk variasi geometrik dan fotometrik. Pencocokan wajah dilakukan dengan cara melakukan pencocokan fitur yang telah diekstraksi dari citra wajah masukan dengan kumpulan data training citra wajah yang telah disimpan sebagai basis data wajah. Principal Component Analysis (PCA) adalah teknik standar yang digunakan dalam pengenalan pola statistikal dan pemrosesan sinyal untuk data reduction dan ekstraksi fitur (Eleyan & Demirel, 2007, p. 94). Kemampuan ekstraksi fitur ini dapat digunakan untuk melakukan pengenalan wajah. Metode PCA dikenal juga dengan nama Karhunen-Loeve Transformation (KLT). PCA memberikan transformasi ortogonal yang disebut juga dengan eigenimage yang di mana sebuah citra akan direpresentasikan ke dalam bentuk proyeksi linier searah dengan eigenimage yang bersesuaian dengan nilai Eigen terbesar dari matriks covariance. Dalam prakteknya, matriks covariance ini dibangun dari sekumpulan image training yang diambil dari berbagai objek. Sebuah citra 2D dengan dimensi kolom dan baris dapat direpresentasikan ke dalam bentuk citra 1D. Dalam penelitian ini ukuran jumlah kolom dan baris pixel citra adalah sama, sehingga nantinya akan terbentuk dimensi .
Gambar 1 Contoh citra wajah
Misalnya ada sejumlah individu yang dijadikan sampel. Dari setiap individu diambil citra, sehingga total citra di dalam training set adalah:
Semua citra yang diproses adalah matriks n× n , direpresentaikan menjadi vektor n ×1 dimensi. Contohnya, dalam penelitian ini semua citra wajah disimpan dalam ukuran 100 × 100 pixel. Data citra tersebut akan direpresntasikan menjadi sebuah vektor berdimensi 10000 atau sebuah titik di dalam ruang berdimensi 10000 . Untuk setiap citra yang mewakili wajah digambarkan sebagai sebuah matriks 100 × 100 . 2
⎡ a1 1 ⎢a 21 Ii = ⎢ ⎢ M ⎢ ⎢⎣a100 1
a1 2 a2 2 M a100 2
⎤ ⎥ ⎥ ⎥ ⎥ K a100 100 ⎥⎦ 100×100
K K O
a1 100 a 2 100 M
Matriks I i berisikan informasi setiap pixel di dalam citra wajah berukuran 100 × 100 . Informasi pixel tersebut telah dikonversi ke dalam nilai intensitas cahaya (grayscale). Matriks I i kemudian dikonkatenasi menjadi sebuah titik di dalam ruang berdimensi 10000 .
⎡ a1 1 ⎤ ⎢ M ⎥ ⎢ ⎥ ⎢ a1 100 ⎥ ⎢ ⎥ Γi = ⎢ M ⎥ ⎢ a 2 100 ⎥ ⎢ ⎥ ⎢ M ⎥ ⎢a ⎥ ⎣ 100 100 ⎦
100 2 ×1
Dari kumpulan data training tersebut, dicari nilai vektor rata-rata dari wajah dengan rumus: 1 M Ψ= ∑ Γi M i =1
Gambar 2 Citra average face Kemudian nilai rata-rata dari wajah tersebut dikurangi dengan setiap vektor wajah Γi untuk mendapatkan vektor Φ i .
Φi = Γi − Ψ
Kumpulan vektor yang sangat besar ini kemudian mengikuti pada aturan PCA, yang mencari sejumlah vektor-vektor ortonormal dan nilai Eigen yang terbaik dalam dan nilai-nilai adalah menggambarkan distribusi dari data tersebut. Vektor-vektor vektor-vektor Eigen dan nilai-nilai Eigen dari matriks covariance 1
di mana
Φ Φ …Φ
Φ ΦT
.
Matriks C adalah matriks berukuran n 2 × n 2 atau 1002 ×1002 dalam penelitian ini dan A adalah sebuah matrix berukuran n 2 × M , di mana M adalah jumlah data. Dari hasil perhitungan matriks C , diambil vektor-vektor Eigen terbaik sebanyak jumlah data ( M ). Kemudian dipilih vektor-vektor Eigen sebanyak K , yang dilakukan secara heuristik. Nilai-nilai vektor Eigen pada langkah sebelumnya jika dikonversi menjadi matriks n × n (dalam penelitian ini 100 × 100 ) akan menghasilkan citra seperti wajah jika ditampilkan sebagai citra digital. Oleh karena itu, nilai vektor Eigen ini disebut juga Eigenface.
Gambar 3 Citra eigenfaces Ketika sebuah citra wajah Γ harus dikenali, maka dilakukan langkah berikut: 1. Data citra wajah masukan Γ dinormalisasi dengan rumus Φ = Γ − Ψ . 2. Hasil normalisasi pada langkah pertama diproyeksikan ke dalam ruang Eigen (kumpulan dari vektor-vektor Eigen) dan dihitung bobotnya. Nilai hasil normalisasi dapat digambarkan sebagai berikut. ⎡ w1 ⎤ ⎢w ⎥ Ω=⎢ 2⎥ ⎢ M ⎥ ⎢ ⎥ ⎣ wK ⎦ 3. Setelah data bobot didapat, perlu dilakukan proses klasifikasi untuk melakukan perhitungan jarak. Pada penelitian ini, perhitungan jarak dilakukan dengan menggunakan Euclidean Distance. Metode ini memiliki perhitungan sebagai berikut.
x− y e =
xi − yi
2
4. Kemudian dicari nilai terkecil dari kumpulan jarak data citra wajah masukan dengan data training yang telah disimpan sebelumnya. Δ = min Ω − Ω i Keputusan diambil setelah nilai jarak yang didapat dibandingkan dengan nilai threshold θ dengan ketentuan sebagai berikut. Jika Δ < θ , di mana θ adalah nilai threshold yang ditentukan secara heuristik, maka citra wajah masukan dapat dikatakan telah dikenali sebagai citra wajah dalam data training dengan nilai jarak terkecil. Jika Δ > θ , di mana θ adalah nilai threshold yang ditentukan secara heuristik, maka citra wajah masukan dapat dikatakan tidak ditemukan di dalam basis data training. Penggunaan PCA sangat mengurangi kalkulasi yang perlu dilakukan, dari sejumlah pixel di dalam citra ( ) menjadi sejumlah citra di dalam training set ( ). Dalam prakteknya, jumlah citra wajah di dalam training set biasanya lebih kecil dibandingkan dengan jumlah pixel di dalam citra (Eleyan & Demirel, 2007, p. 96). Pendekatan metode PCA untuk pengenalan wajah ditunjukkan pada Gambar 4.
Gambar 4 Pendekatan PCA untuk pengenalan wajah (Eleyan & Demirel, 2007, p. 98) Dengan kata lain metode PCA memproyeksikan ruang asal menjadi ruang baru yang berdimensi lebih rendah, dengan berpegang bahwa sebanyak mungkin informasi yang dimiliki dimensi asal dipertahankan dan tidak terlalu banyak yang hilang setelah diproyeksikan ke ruang yang baru. Dengan memperkecil dimensi dari sebuah ruang, tentu akan meringankan proses komputasi yang perlu dilakukan oleh sistem. Penulis menggunakan fitur yang telah disediakan oleh EmguCV untuk menerapkan algoritma ini di dalam aplikasi dengan menggunakan bantuan class bernama HaarCascade sebagai classifier dari pendeteksian objek. Masalah yang dihadapi dalam penggunaannya adalah data pengklasifikasi yang berhasil didapat oleh penulis untuk pendeteksian wajah terpisah antara wajah bagian depan (frontal face) dan wajah bagian samping (profile face). Selain itu, data pengklasifikasi untuk wajah bagian samping hanya
tersedia untuk sisi wajah bagian kiri. Hal ini mengacu kepada sumber data pengklasifikasi untuk metode Viola-Jones yang penulis dapat dari penelitian Seo (2008). Viola & Jones (2003) telah melakukan pengembangan terhadap penelitian pendeteksian wajah sebelumnya (2001) dengan membangun pohon keputusan untuk mendeteksi citra wajah dari samping (profile face). Penelitian ini menghasilkan pengklasifikasi yang memiliki tingkat keakuratan sebesar 95.4% untuk data di dalam training set. Masalah dalam pendeteksian wajah dengan lebih dari satu data pengklasifikasi yang digunakan dapat diatasi dengan melakukan pendeteksian sebanyak jumlah data pengklasifikasi yang ingin digunakan. Sedangkan masalah pendeteksian wajah bagian samping yang hanya tersedia untuk wajah bagian kiri diatasi dengan membalik gambar secara horisontal, kemudian melakukan pendeteksian menggunakan pengklasifikasi untuk wajah bagian kiri. Dengan demikian, sistem akan tetap dapat mendeteksi citra wajah bagian kanan. Pengenalan wajah untuk pose yang bervariasi menggunakan metode yang biasa digunakan untuk melakukan pengenalan citra wajah dari depan, yaitu menggunakan metode Principal Component Analysis, hanya saja data training atas identitas citra wajah disimpan dengan berbagai pose. Namun dalam penerapannya, ditemukan kendala keakuratan identifikasi jika data training citra wajah dengan pose wajah yang bervariasi dirata-rata tanpa memperhatikan kesamaan pose yang ditangkap. Untuk meningkatkan tingkat keakuratan dari sistem, maka pengidentifikasi dipisahkan berdasarkan pose yang ditangkap, yaitu dari citra wajah dari depan, dari sisi kanan, dan dari sisi kiri.
Gambar 5 Proses solusi deteksi dan pengenalan citra wajah dengan variasi pose
Proses deteksi dan pengenalan citra wajah yang dipisah menjadi tiga ini membuat waktu proses yang diperlukan oleh sistem menjadi lebih lama. Hal ini menyebabkan aplikasi tidak dapat berjalan secara realtime saat melakukan proses deteksi dan pengenalan citra wajah dengan sumber masukan menggunakan webcam. Oleh karena itu, pada tahapan ini diterapkan konsep parallel processing yang disediakan oleh .NET Framework 4. Penggunaan parallel processing membuat tugas pemrosesan data disebarkan ke beberapa core di dalam processor (CPU) yang membuat banyak tugas dapat diselesaikan dengan lebih cepat. Penggunaan parallel processing ini begantung pada spesifikasi CPU yang digunakan. Koleksi citra wajah yang digunakan dalam penelitian ini ditangkap dengan latar belakang terkontrol (dalam penelitian ini menggunakan kertas karton berwarna putih), dengan kondisi ruangan yang memiliki intensitas cahaya sebesar kurang lebih antara 150 sampai 300 lux. Namun setiap citra wajah yang diambil baik sebagai data training dan data input dilakukan proses grayscaling dan histogram equalization agar diperoleh hasil citra dengan nilai tingkat keabuan yang mirip. Putaran sudut diambil dengan putaran axis tegak lurus bidang datar (yaw head movement). Pengambilan data untuk setiap sampel identitas dalam data training ditangkap dengan ketentuan sudut seperti ditunjukkan pada Gambar 6. Pengukuran sudut diukur dengan menggunakan selembar kertas dengan garis-garis sudut yang diletakkan di atas titik pusat kepala.
Gambar 6 Contoh pengambilan pose (citra telah mengalami proses grayscaling dan histogram equalization) Pada akhir penelitian akan ditentukan sudut yang mana saja yang cukup optimal untuk digunakan sebagai data training. Adapun spesifikasi komputer yang digunakan penulis dalam melakukan simulasi pada aplikasi penelitian pengenalan citra wajah dengan variasi pose ini adalah sebagai berikut: 1. Intel® Core™ i5-460M Processor (2.54 Ghz, Cache 3MB) 2. Memory 4 GB DDR3 SODIMM 1066 MHz 3. Graphic ATI Mobility Radeon HD 5730 2GB 4. Microsoft® LifeCam VX-5500 5. OS: Microsoft® Windows 7 Professional 6. IDE: Microsoft Visual Studio 2010 Ultimate 7. Library: EmguCV 2.0.5077 Pada penelitian ini diambil citra wajah dari sepuluh orang dengan masing-masing sebanyak sebelas citra pengambilan. Proses simulasi pertama dilakukan dengan menggunakan nilai threshold sebesar -1 atau setiap hasil pengenalan atas citra wajah selalu dikembalikan oleh sistem (nilai threshold tidak membatasi hasil yang didapat dari proses pengenalan). Hasil simulasi ditunjukkan pada Tabel 1.
Tabel 1 Hasil simulasi untuk setiap sampel No.
Sampel
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
A B C D E F G H I J
Jumlah Dikenali 158 201 214 147 101 71 158 64 185 150 1449
Total
Jumlah Berhasil 89 130 156 102 74 38 133 62 138 91 1013
Berdasarkan hasil simulasi di atas, maka dapat dihitung keakuratan sistem dalam mengenali setiap wajah yang terdeteksi adalah: % keakuratan
∑ berhasil ∑ dikenali
% %
.
%
Keakuratan pengenalan dilihat dari variasi jumlah sudut yang tersedia sebagai data training ditunjukkan pada Tabel 3 dengan perhitungan berikut: % keakuratan
∑ berhasil ∑ dikenali
%
Tabel 2 Variasi data training Variasi I II III IV V
Variasi Sudut Pengambilan Sisi Kiri Sisi Depan Sisi Kanan 45o 0o 45o o o o 30 , 60 0 30o, 60o 30o, 60o -15o, 15o 30o, 60o o o o o o 45 , 60 , 75 -15 , 15 45o, 60o, 75o o o o o o o o 30 , 45 , 60 , 75 -15 , 0 , 15 30o, 45o, 60o, 75o
Tabel 3 Hasil simulasi berdasarkan variasi data training Jumlah Dikenali 1396 1450 1472 1451 1449
Variasi I II III IV V
Jumlah Berhasil 650 848 950 917 1013
% keakuratan 46.56% 58.48% 64.54% 63.20% 69.91%
Keakuratan pengenalan dilihat dari keberhasilan pengenalan berdasarkan nilai threshold dihitung dengan rumus berikut: % keakuratan
∑ berhasil ∑ dikenali dalam batas threshold
%
Hasil perhitungan keakuratan berdasarkan nilai threshold ditunjukkan pada Tabel 4. Tabel 4 Hasil simulasi berdasarkan variasi nilai threshold
No.
Nilai Threshold Maksimum
1. 2. 3. 4. 5.
5000 4000 3000 2000 1000
Jumlah Dikenali dalam Batas Threshold 1417 1276 926 337 15
Jumlah Berhasil
% keakuratan
1006 944 743 332 15
71.00% 73.98% 80.24% 98.52% 100%
Waktu proses membaca data citra wajah dilihat dari jumlah citra wajah ditunjukkan pada Tabel 5. Tabel 5 Perbandingan waktu proses membaca citra wajah Variasi I II III IV V
Waktu Load Frontal Face 17 ms 19 ms 43 ms 42 ms 81 ms
Waktu Load Left Profile Face 9 ms 33 ms 32 ms 72 ms 126 ms
Waktu Load Right Profile Face 9 ms 33 ms 32 ms 72 ms 128 ms
Kegagalan dalam pengenalan dapat disebabkan oleh beberapa hal berikut: 1. Citra digital yang kurang jelas atau mengalami gangguan (noise) yang berlebihan. 2. Adanya kemiripan antara wajah yang satu dengan yang lainnya. 3. Sudut putaran kepala yang tidak tersedia di dalam data training.
3. Penutup Berdasarkan hasil analisis terhadap data yang telah diperoleh pada penelitian ini, maka diambil kesimpulan sebagai berikut: 1. Semakin banyak citra wajah yang digunakan dalam melakukan training untuk setiap sampel, maka pengenalan akan semakin baik, tetapi waktu proses untuk training data wajah meningkat. 2. Semakin rendah nilai threshold, kemiripan citra wajah masukan dengan citra wajah di dalam data training semakin tinggi, tetapi semakin sulit mengenali (untuk high security). 3. Semakin tinggi nilai threshold, semakin tinggi kemungkinan mengenali citra wajah masukan dengan citra wajah di dalam data training, tetapi semakin tinggi kemungkinan kesalahan (untuk visual surveillance). 4. Kesalahan dalam melakukan pengenalan dapat terjadi karena kemiripan antara dua atau lebih sampel yang berbeda. 5. Metode Principal Component Analysis dapat digunakan untuk menyelesaikan masalah pengenalan citra wajah dengan pose yang bervariasi, dengan bantuan pendeteksian wajah secara multi-pose dan pembagian tugas kerja modul PCA berdasarkan pose yang ditangkap. Dengan menggunakan data training set sebanyak mungkin, hasil terbaik penggunaan PCA dalam penelitian ini adalah melakukan pengenalan dengan akurasi sebesar 100% untuk nilai threshold sebesar 1000, dan hasil terendahnya adalah melakukan pengenalan dengan akurasi sebesar 71% untuk nilai threshold sebesar 5000. Berikut beberapa saran yang diajukan untuk penggunaan ataupun pengembangan aplikasi ini adalah: 1. Pengambilan citra masih dilakukan dengan variabel-variabel yang masih terkontrol. Perlu adanya pengembangan dari sisi proses normalisasi (alignment wajah) dengan algoritma yang lebih baik. 2. Pada penelitian ini, pengambilan citra dilakukan dengan posisi kamera ditempatkan sejajar dengan rata-rata ketinggian kepala manusia. Dalam prakteknya, perlu dikembangkan pose wajah yang diambil. Tingkat akurasi pengenalan dapat ditingkatkan dengan menggunakan algoritma yang lebih baik untuk penerapan klasifikasi class yang memiliki banyak data, misalnya metode Support Vector Machines (dalam penelitian ini satu sampel dapat memiliki beberapa citra wajah di dalam data training set, tetapi setiap data berdiri secara independen).
Daftar Pustaka Andoko. (2007). Perancangan Program Simulasi Deteksi Wajah dengan Support Vector Machines - Viola Jones. Anonim. (2011, December 28). Emgu CV Main Page. Retrieved December 2011, from Emgu CV: OpenCV in .NET (C#, VB, C++ and more): http://www.emgu.com/wiki/index.php/Main_Page
Bernard, & Surya Liestiawan, B. (2006). Pengenalan Wajah dengan Menggunakan Metode EigenFaces. Dzulkarnain, A. D., Dewantara, B. S., & Besari, A. R. (2011). PENGENDALIAN ROBOT LENGAN BERODA DENGAN KAMERA UNTUK PENGAMBILAN OBYEK. Eleyan, A., & Demirel, H. (2007). PCA and LDA based Neural Networks for Human Face Recognition. In K. Delac, & M. Grgic, Face Recognition. Vienna: I-Tech Education and Publishing. Fairhurst, M. C. (1988). Computer Vision for Robotic Systems an Introduction. New Jersey: Prentice Hall. Gonzalez, R. C., & Woods, R. E. (2002). Digital Image Processing (2nd Edition ed.). New Jersey: Prentice-Hall, Inc. Hendrik, I. (2007). Perancangan Program Aplikasi Pengenalan Wajah dengan Metode LaplacianFaces. Jones, M. J., & Viola, P. (2003). Fast Multi-view Face Detection. Jones, M. J., & Viola, P. (2001). Robust Real-time Object Detection. Li, S. Z., & Jain, A. K. (2005). Handbook of Face Recognition. New York: Springer Science+Business Media, Inc. Pissarenko, D. (2002). Eigenface-based Facial Recognition. Pusat Bahasa. (2008). In Kamus Besar Bahasa Indonesia. Jakarta: Gramedia Pustaka Utama. Selva, P., Morlier, J., & Gourinat, Y. (2009). Development of a Dynamic Virtual Reality Model of the Inner Ear Sensor System as a Learning and Demonstrating Tool. Seo, N. (2006). EigenFaces and FisherFaces. Seo, N. (2008, 10 16). Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features). Retrieved 12 2011, from Naotoshi Seo: http://note.sonots.com/SciSoftware/haartraining.html Shakhnarovich, G., & Moghaddam, B. (2005). Face Recognition in Subspaces. In S. Z. Li, & A. K. Jain, Handbook of Face Recognition. New York: Springer Science+Business Media, Inc. Szeliski, R. (2011). Computer Vision Algorithms and Applications. New York: Springer. Yolanda. (2009). Perancangan Program Aplikasi Absensi dengan Identifikasi Wajah Karyawan PD. Mustika Logam Menggunakan Metode Gabor Wavelet.
PROBLEM SOLVING OF REALTIME FACE RECOGNITION WITH VARIOUS POSES USING EIGENFACES METHOD Reza A Prasetyo Binus University, Jakarta, DKI Jakarta, Indonesia
Benny Senjaya BinusUniversity, Jakarta, DKI Jakarta, Indonesia
Alexander A S Gunawan BinusUniversity, Jakarta, DKI Jakarta, Indonesia
Abstract There are so many human jobs that can be replaced by computer in the age of advanced technology, one of them is face recognition. Face recognition is often used at places that need a high security. Generally, face recognition is done with controlled variables like light intensity, poses, and expression. Uncontrolled variables would decrease the performance of face recognition. This journal examines how to handle pose variations in face recognition using EigenFaces method. Testing was conducted with inputs of face images in multi-poses based on yaw head movement. The result was obtained with different shooting angles and threshold values to get the optimal results. At the end of testing, the EigenFaces method could be used for face recognition with pose variations, with the help of multi-pose face detection and division of PCA modules based on the captured pose. Keyword: recognition, face, variation, poses, EigenFaces, Principal Component Analysis
1. Introduction On the age of advanced technology, there are so many human jobs that could be replaced by computer. By replacing human with computer, a task can be done with cheaper price and more optimum, but still can be reliable. One of them is a technology of face recognition to know someone’s identity. Face recognition begins with face detection, where the computer can know the existence of face images and find all face images in an image or a video. From the result of face detection, further development is recognizing or identificating to whom the face images belong to. Althought face recognition is not as accurate as other recognition method like finger print, this thing still attracts attention of a lot of researchers in computer vision (Eleyan & Demirel, 2007, p. 93). Generally, face recognition is used at places that need a rapid face-identification, the places that need high security and used by many people, like ATM, immigration, bank, etc. This is caused that it is difficult for human to remember all faces of every person and know the identity quickly. A technology can be used to make it easier to identify someone, or even to avoid undesired things, like identification of wanted people, recidivists identification, and fake identity.
2. Discussion Face identification or recognition is a task that done by human routinely and easily in daily life. Research and development of face recognition method evolves automatically based on the avaibiltiy of high-performance and low-cost desktop, and embedded-system that create huge interest in image and video processing. Research and development motivation of face recognition are included in biometric authentication area, surveillance, human-computer interaction, and multimedia management (Li & Jain, 2005, p. 1). Generally, face recognition system consists four main modules (Li & Jain, 2005, p. 2), which are: detection, alignment, feature extraction, and matching. Localization and normalization process (face detection and alignment) are steps before face recognition process (face feature extraction and matching) can be done. Face detection is the early step to do a face identification. An ideal face identification should be able to indetify and find location and area of all faces in an image regardless of the poses, scale, orientation, age, and expression (Li & Jain, 2005, p. 13). Face detection does the segmentation of face area from the background. Alignment process aims to get higher accuracy in localizing and normalizing face image because face detection provides the estimation of location and scale of every detected face image. After a face image is normalized, feature extraction is being done to get the effective data which is useful for separating between face imges and different people and fairly stable for geometric and fotometric variation. Face matching is done by doing feature matching of extracted features from input face image with the training data of face images that have been saved as face database. Principal Component Analysis (PCA) is a standard method that used in statistical pattern recognition and signal processing for data reduction and feature extraction (Eleyan & Demirel, 2007, p. 94). This feature extraction ability can be used to do face recognition. PCA method is also known as Karhunen-Loeve Transformation (KLT). PCA gives ortoghonal transformation which is also called as eigenimage where an image will
be represented as a form of a linear projection of the direction of the eigenimage corresponding to the largest eigenvalue of the covariance matrix. Practically, this covariance matrix is built from training images that taken from a lot of objects. A 2D image in size -columns and -rows can be represented as a 1D image. In this study, the size of column and row of image are the same, so that will be formed an size image.
Figure 1 Face image example For example, there are individuals that become samples. From each individual is taken images, so that total images in the training set is:
All images that processed are n× n matrices, represented as n2 ×1-dimension vectors. For example, in this study all the images are stored in size 100 × 100 pixels. The image data will be represented as a 10000 -dimension vector or a point in a 10000 –dimension space. For every image that represent the face is formed as a 100 × 100 matrices. ⎡ a1 1 ⎢a 21 Ii = ⎢ ⎢ M ⎢ ⎢⎣a100 1
a1 2 a2 2 M a100 2
a1 100 ⎤ a 2 100 ⎥⎥ O M ⎥ ⎥ K a100 100 ⎥⎦ 100×100 K K
The I i matrix contains the information of every pixel in a 100 × 100 face image. The pixel information has been converted to grayscale value. I i matrix will be concatenated to a point in a 10000 -dimension space.
⎡ a1 1 ⎤ ⎢ M ⎥ ⎢ ⎥ ⎢ a1 100 ⎥ ⎢ ⎥ Γi = ⎢ M ⎥ ⎢ a 2 100 ⎥ ⎢ ⎥ ⎢ M ⎥ ⎢a ⎥ ⎣ 100 100 ⎦
100 2 ×1
From the training data, average vector is count using the formula: Ψ=
1 M
M
∑Γ i =1
i
Figure 2 Average face image After that the average value of the images is subtracted by face vector Γi to receive vector Φ i .
Φi = Γi − Ψ These very large set of vectors then followed the rules of PCA, which finding the best orthonormal vectors and Eigen value that describe the data distribution. Vectors and values are Eigen vectors and Eigen values of the covariance matrix 1
which
Φ Φ …Φ
Φ ΦT
.
Matrix C is a matrix with n 2 × n 2 size, or 1002 ×1002 in this study, and A is a matrix with n 2 × M size, where M is count of the data. From the matrix C, the best Eigen vectors will be taken as many as the data count ( M ). After that, K Eigen vectors will be chosen heuristically. If the values of Eigen vectors from previous step are converted to n × n matrices (in this study they are 100 × 100 ), they will create face-like images. This is why, the Eigen vector value is also called as Eigenface.
Figure 3 Eigenfaces image When an image of face Γ must be recognized, then these are the steps that must be done: 1. The input data Γ is normalized with the formula Φ = Γ − Ψ . 2. The normalization result from the first step is projected to Eigen space and the weight is counted. The value of normalization result can be described as:
⎡ w1 ⎤ ⎢w ⎥ Ω=⎢ 2⎥ ⎢ M ⎥ ⎢ ⎥ ⎣ wK ⎦ 3. After the weight is counted, classification is needed to do calculation of the distance. In this study, the distance is calculated using Euclidean Distance. This method has the formula:
x− y e =
xi − yi
2
4. After that, the smallest value is selected between the image input and the training data saved before. Δ = min Ω − Ω i Conclusion is taken after comparing the distance value with threshold value θ with the following: If Δ < θ , where θ is threshold value that decided heuristically, then the input face image is recognized as a face image in training data with the smallest distance value. If Δ > θ , where θ is threshold value that decided heuristically, then the input face is not recognized as a face image in training data. The use of PCA reduces the calculation that needed to be done, from some pixels in an image ( ) to some images in training set ( ). Practically, total of face images in training set is smaller than total of pixels in the image (Eleyan & Demirel, 2007, p. 96). PCA method approach for face recognition is shown in Figure 4.
Figure 4 PCA approach for face recognition (Eleyan & Demirel, 2007, p. 98)
In other words, PCA method projects the origin space to a new space with smaller dimension, by holding that as many as possible that information of the origin dimension is maintained and not missing too much. By reducing the dimension of a space, of course the computation process that need to be done by system will be more easier. The author used the feature that provided by EmguCV library to implement this algorithm in an application using support of a class named HaarCascade as the classifier of object detection. The problem Penulis menggunakan fitur yang telah disediakan oleh EmguCV untuk menerapkan algoritma ini di dalam aplikasi dengan menggunakan bantuan class bernama HaarCascade sebagai classifier dari pendeteksian objek. The problem that encountered in using it is the classifier data only provided for frontal face and left profile face. It refers to classifier data source for Viola-Jones method from Seo (2008) and Viola & Jones (2003) who have done research and development of face detection before (2001) by building a decision tree to detect profile face image. This research resulted in classifier with accuracy rate of 95.4% for the data in the training set. The problem in detecting faces with more than one data classifiers can be overcome by performing the detection processes as much as the amount of classifier data that need to be used. While the problem in detection the side profile face is only available to the left face resolved by flipping the image horizontally, and then perform face detection using the classifier of left profile face. Thus, the system will still be able to detect a right profile face image. Face recognition for various poses using the method that often used to do frontal face recognition, using Principal Component Analysis method, but only the identities of the training data are stored in various pose. But in practice, it is found that the accuracy of identification will decrease if the faces arranged without regarding the similiarities of the poses. To improve the accuracy of the system, the identifiers are separated based on the captured pose, which are face image from the front, from the right side, and from the left side.
Figure 5 Solution process of face detection and recognition with various poses
The face detection and recognition processes that are splitted into three make the processing time required by the system becomes longer. This causes the application can not run in realtime during the face detection and recognition process of facial images with the input source using a webcam. Therefore, at this stage applied the concept of parallel processing provided by .NET Framework 4. The use of the parallel processing is to distribute the data processing tasks to multiple cores in the processor (CPU), which makes many tasks can be completed more quickly. Use of this parallel processing will depend on the specification of the CPU used. Collection of face images used in this study was captured with a controlled background (using a huge white paper), with the condition of the room that has a light intensity of approximately between 150 to 300 lux. However, each facial image taken whether as training data or input data is grayscaled and histogram equalized in order to obtain images with similar gray level value. The angle taken for the facial images based on yaw head movement. Retrieval of data for each sample identity in the training data was captured by rule of angle shown in Figure 6. Angle measurement was measured using a piece of paper with angle lines placed on the center point of the head.
Figure 6 Poses example (grayscaled and histogram equalized) At the end of this study, it will be determined which angles that are quite optimal to be used as training data. The computer specification used by author in doing the simulation of this face recognition with various poses study is: 1. Intel® Core™ i5-460M Processor (2.54 Ghz, Cache 3MB) 2. Memory 4 GB DDR3 SODIMM 1066 MHz 3. Graphic ATI Mobility Radeon HD 5730 2GB 4. Microsoft® LifeCam VX-5500 5. OS: Microsoft® Windows 7 Professional 6. IDE: Microsoft Visual Studio 2010 Ultimate 7. Library: EmguCV 2.0.5077 In this study, the facial images were taken from ten individuals with each of them are eleven taken images. The first simulation process was done by using a threshold value of -1 or any recognition result of the facial image will always be returned by the system (no threshold limits the value of the result obtained from the recognition). The simulation result is shown in Table 1.
Table 1 Simulation result for every sample Num.
Sample
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
A B C D E F G H I J
Amount of Recognizable 158 201 214 147 101 71 158 64 185 150 1449
Total
Amount of Successful 89 130 156 102 74 38 133 62 138 91 1013
Based on the simulation result above, the accuracy of the system in recognizing every detected face can be calculated as: % accuracy
∑ successful ∑ recognizable
%
% .
%
The accuracy of recognition based on the variation of available angles as the traning data shown in Table 3. % accuracy
∑ successful ∑ recognizable
%
Table 2 Training data variation Variaton I II III IV V
Left Side 45o 30o, 60o 30o, 60o 45o, 60o, 75o 30o, 45o, 60o, 75o
Angle Variation Front Side 0o 0o -15o, 15o -15o, 15o -15o, 0o, 15o
Right Side 45o 30o, 60o 30o, 60o 45o, 60o, 75o 30o, 45o, 60o, 75o
Table 3 Simulation result based on training data variation Variation I II III IV V
Amount of Recognizeable 1396 1450 1472 1451 1449
Amount of Successful 650 848 950 917 1013
% accuracy 46.56% 58.48% 64.54% 63.20% 69.91%
The accuracy of success recognition by the threshold value is calculated using the formula: % accuracy
∑ successful ∑ successful under threshold
%
The result of accuracy calculation based on threshold value is shown in Table 4. Table 4 Simulation result based on threshold value variation Num. 1. 2. 3. 4. 5.
Maximum Threshold Value 5000 4000 3000 2000 1000
Amount of Recognizeable under Threshold Value 1417 1276 926 337 15
Jumlah Berhasil
% keakuratan
1006 944 743 332 15
71.00% 73.98% 80.24% 98.52% 100%
Processing time of loading the face image training data is shown in Table 5. Tabke 5 Processing time difference in loading training data Variaton I II III IV V
Frontal Face Load Time 17 ms 19 ms 43 ms 42 ms 81 ms
Left Profile Face Load Time 9 ms 33 ms 32 ms 72 ms 126 ms
The failure of recognizing could be caused by: 1. The digital image is not clear or has excessive noise. 2. The similiarity between one face with another. 3. Head angle that is not provided in training data.
Right Profile Face Load Time 9 ms 33 ms 32 ms 72 ms 128 ms
3. Conclusion Based on the analysis of the result data in this study, then the conclusions are drawn as follow: 1. The more facial images used as training data of every sample, the better recognition result, but it will increasing the processing time to load the face training data. 2. The lower threshold value, the harder to recognize a face image, but it can increase the accuracy of the recognition (high security). 3. The higher threshold value, the easier to recognize a face imge, but it can reduce the accuracy of the recognition (visual surveillance). 4. Failure of recognition can be caused by the similiarity between one face with another. 5. Principal Component Analysis method can be used to handle problem of face recognition using various poses, with the use of multi-pose face detection and splitting the PCA task modules based on the captured pose. By using a lot of training data as possible, the best result of using PCA in this study is doing recognition with 100% accuracy rate for threshold value of 1000, and the worst is doing recognition with 71% accuracy rate for threshold value of 5000. Here is some suggestion in using or developing this application: 1. Facial images collection was still done with controlled variables. The alignment process need to be developed using a better algorithm. 2. In this study, image capturing was done by placing the camera in the same height as the average human head height. Practically, it is needed to develop the captured face poses. The accuracy rate of recognition can be increased using better algorithm that provides classification of multiple data, like Support Vector Machines method.
References Andoko. (2007). Perancangan Program Simulasi Deteksi Wajah dengan Support Vector Machines - Viola Jones. Anonim. (2011, December 28). Emgu CV Main Page. Retrieved December 2011, from Emgu CV: OpenCV in .NET (C#, VB, C++ and more): http://www.emgu.com/wiki/index.php/Main_Page Bernard, & Surya Liestiawan, B. (2006). Pengenalan Wajah dengan Menggunakan Metode EigenFaces. Dzulkarnain, A. D., Dewantara, B. S., & Besari, A. R. (2011). PENGENDALIAN ROBOT LENGAN BERODA DENGAN KAMERA UNTUK PENGAMBILAN OBYEK. Eleyan, A., & Demirel, H. (2007). PCA and LDA based Neural Networks for Human Face Recognition. In K. Delac, & M. Grgic, Face Recognition. Vienna: I-Tech Education and Publishing.
Fairhurst, M. C. (1988). Computer Vision for Robotic Systems an Introduction. New Jersey: Prentice Hall. Gonzalez, R. C., & Woods, R. E. (2002). Digital Image Processing (2nd Edition ed.). New Jersey: Prentice-Hall, Inc. Hendrik, I. (2007). Perancangan Program Aplikasi Pengenalan Wajah dengan Metode LaplacianFaces. Jones, M. J., & Viola, P. (2003). Fast Multi-view Face Detection. Jones, M. J., & Viola, P. (2001). Robust Real-time Object Detection. Li, S. Z., & Jain, A. K. (2005). Handbook of Face Recognition. New York: Springer Science+Business Media, Inc. Pissarenko, D. (2002). Eigenface-based Facial Recognition. Pusat Bahasa. (2008). In Kamus Besar Bahasa Indonesia. Jakarta: Gramedia Pustaka Utama. Selva, P., Morlier, J., & Gourinat, Y. (2009). Development of a Dynamic Virtual Reality Model of the Inner Ear Sensor System as a Learning and Demonstrating Tool. Seo, N. (2006). EigenFaces and FisherFaces. Seo, N. (2008, 10 16). Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features). Retrieved 12 2011, from Naotoshi Seo: http://note.sonots.com/SciSoftware/haartraining.html Shakhnarovich, G., & Moghaddam, B. (2005). Face Recognition in Subspaces. In S. Z. Li, & A. K. Jain, Handbook of Face Recognition. New York: Springer Science+Business Media, Inc. Szeliski, R. (2011). Computer Vision Algorithms and Applications. New York: Springer. Yolanda. (2009). Perancangan Program Aplikasi Absensi dengan Identifikasi Wajah Karyawan PD. Mustika Logam Menggunakan Metode Gabor Wavelet.