PELACAKAN DAN PENGENALAN WAJAH MENGGUNAKAN WEBCAM & METODE GABOR FILTER Resmana Lim Fakultas Teknologi Industri, Jurusan Teknik Informatika – Universitas Kristen Petra e-mail:
[email protected] Yulia Roy Otniel Pantouw Fakultas Teknologi Industri, Jurusan Teknik Informatika – Universitas Kristen Petra e-mail:
[email protected] ABSTRAK Pelacakan dan pengenalan wajah manusia merupakan salah satu bidang penelitian yang penting, dan dewasa ini banyak aplikasi yang dapat menerapkannya, baik dibidang komersial maupun bidang penegakan hukum. Teknik pengenalan wajah pada saat ini telah mengalami kemajuan yang sangat berarti. Melalui pengembangan suatu teknik seperti Gabor Filter, komputer sekarang dapat menyerupai kemampuan otak manusia dalam berbagai tugas pengenalan wajah, terutama tugas-tugas yang membutuhkan pencarian pada database wajah yang besar. Tujuan penelitian ini adalah untuk membuat suatu perangkat lunak yang menggabungkan pelacakan wajah manusia dengan menggunakan algoritma CamShift dan pengenalan wajah dengan menggunakan Gabor Filter. Dalam penelitian ini, perangkat lunak yang dibuat menggunakan gambar bergerak sebagai inputnya, yaitu dari video kamera (webcam). Bahasa pemrograman yang dipakai adalah Microsoft Visual C++ 6.0® dan dibantu dengan berbagai library dari Intel Performance Library dan Open Source Computer Vision Library. Hasil pengujian sistem menunjukkan bahwa pelacakan berdasarkan warna kulit dengan algoritma CamShift cukup baik. Respon sistem terhadap obyek warna kulit yang melintas juga cukup baik. Sistem pengenalan wajah manusia menggunakan metode Gabor Filter mencapai tingkat keakuratan sebesar 79.31% dengan database wajah sejumlah 341 citra yang terdiri dari 31 citra individu dengan 11 pose, dan dengan citra penguji sebanyak 29 citra wajah. Sistem pengenalan tersebut juga tetap akurat terhadap adanya noise hingga 50% Kata kunci: Gabor Filter, algoritma CamShift, pengenalan wajah, biometric, OpenCV. 1. PENDAHULUAN Pada penelitian ini akan dibuat suatu sistem yang dapat mendeteksi, melacakan, dan kemudian mengenali wajah seseorang dengan bantuan kamera digital (web cam). Sistem ini mula-mula akan melakukan pendeteksian atau pencarian obyek manusia secara terus menerus terhadap semua obyek yang ditangkap oleh kamera digital. Pendeteksian atau pencarian obyek dilakukan berdasarkan hue warna kulit manusia.
Selama sistem tidak menemukan warna kulit manusia, maka pendeteksian akan terus menerus dilakukan. Jika sistem telah menemukan daerah warna kulit manusia, maka daerah tersebut akan dilacak keberadaannya. Selama obyek tersebut dapat ditangkap oleh kamera digital, ke manapun obyek tersebut berpindah, akan selalu dilacak oleh sistem. Sementara sistem melakukan pelacakan, dalam selang waktu tertentu sistem akan mengenali obyek yang terlacak tersebut berdasarkan database wajah yang ada. Output
dari sistem berupa wajah dalam database yang telah dikenali dengan nilai perbandingan yang paling tinggi.
Citra dari webcam
Pelacakan Wajah
Pengenalan Wajah
Identitas
Database Wajah
Gambar 1. Garis Besar Sistem 2. TEORI DASAR 2.1 Metode Pelacakan Obyek Ada berbagai macam pendekatan algoritma yang dapat digunakan untuk melakukan pelacakan obyek, misalnya: pelacakan obyek dengan kontur, menggunakan teknik Eigenspace, menggunakan suatu set hipotesa statistik, mengkonvolusi citra dengan fitur detektor, dan masih banyak lagi lainnya. Pada penelitian ini digunakan pendekatan algoritma yang berbasiskan warna obyek, yaitu algoritma CamShift yang diambil dari Open Source Computer Vision Library. CamShift singkatan dari Continuously Adaptive Mean-Shift. Algoritma CamShift merupakan pengembangan dari algoritma dasar Mean-Shift yang dilakukan secara berulang untuk dapat melacak pergerakan dari obyek. Algoritma Mean-Shift beroperasi berdasarkan distribusi probabilitas dari citra. Untuk melacak citra berwarna pada video sequence, maka citra berwarna tersebut harus direpresentasikan dalam bentuk distribusi probabilitas citra dengan menggunakan distribusi histogram dari citra tersebut. Distribusi warna dari video sequence selalu berubah tiap waktu, maka algoritma MeanShift harus dikembangkan supaya dapat digunakan untuk melacak obyek.
Perkembangan dari algoritma ini dinamakan algoritma CamShift. Tahap pertama dari algoritma CamShift adalah dengan melakukan penghitungan terhadap nilai hue dari obyek sampel warna kulit manusia. Nilai histogram hue sebagai hasil perhitungan tersebut selanjutnya akan disimpan untuk digunakan sebagai lookup table. Lookup table histogram tersebut dapat digunakan untuk semua orang dari berbagai ras (kecuali albino). Ada pendapat yang menyatakan bahwa jika citra model dengan citra yang akan dibandingkan berbeda ras warna, maka diperlukan lookup table histogram yang baru, misalnya: citra model berkulit putih sedangkan citra yang akan dibandingkan berkulit hitam. Pendapat tersebut sama sekali salah sebab meskipun warna kulit berbeda, nilai hue-nya tetap sama. Perbedaan warna ras yang ada disebabkan karena perbedaan saturation. Karena lookup table histogram menggunakan nilai hue, maka tidak diperlukan lookup table baru jika citra yang akan dibandingkan mempunyai warna yang berbeda. Tahap kedua, dilakukan pemilihan lokasi awal dari Mean-Shift 2D search window. Kemudian dilakukan penghitungan nilai histogram hue yang menjadi nilai probabilitas untuk tiap-tiap pixel pada citra. Tahap ketiga, dijalankan algoritma Mean-Shift untuk mencari pusat dan besar search window yang baru. Lokasi tengah dan besar daerah yang dihasilkan disimpan. Lalu dilakukan looping ke tahap dua dimana lokasi awal dan search window menggunakan hasil algoritma Mean-Shift pada tahap tiga. Tahap algoritma Mean-Shift dapat dijabarkan sebagai berikut: 1. Tentukan ukuran dari search window. 2. Tentukan lokasi awal dari search window. 3. Hitung lokasi mean dalam search window. 4. Pusatkan search window pada lokasi mean yang sudah dihitung dengan langkah ke-3. 5. Ulangi langkah ke-3 dan langkah ke-4 sampai search window konvergen, yaitu sampai window tersebut berpindah dengan jarak yang kurang dari nilai
ambang yang sudah ditentukan (preset threshold) Untuk mencari titik pusat (moment) dan besar daerah search window pada alogritma Mean Shift, dilakukan beberapa perhitungan. 2.2 Metode Pengenalan Obyek Metode pengenalan obyek dapat didefinisikan sebagai proses penentuan identifikasi obyek berdasarkan database citra yang ada. Pada tugas akhir ini digunakan pendekatan algoritma Gabor Filter. Tujuan digunakannya Gabor Filter adalah untuk memunculkan ciri-ciri khusus dari citra yang telah dikonvolusi terhadap kernel. Sebagai filter digunakan Gabor Filter kernel 2D yang diperoleh dengan memodulasi gelombang sinus 2D pada frekuensi dan orientasi tertentu dengan Gaussian envelope. Persamaan dasar fungsi Gabor Filter kernel 2D ditunjukkan pada persamaan (2.1), dimana σx dan σy adalah standar deviasi dari Gaussian envelope pada dimensi x dan y. λ dan θk adalah panjang gelombang dan orientasi dari gelombang sinus 2-D. Penyebaran dari Gaussian envelope didefinisikan dalam bentuk dari gelombang sinus λ. Rotasi dari x – y sebesar sudut θk menghasilkan Gabor filter pada orientasi θk.
f ( x, y , θ k , λ ) = ( x cos θ k + y sin θ k ) 2 + σ x2 1 exp − • 2 ( sin cos ) θ θ − x + y 2 k k σ y2 2π ( x cos θ k + y sin θ k ) exp i λ
σx = σy = λ = θk =
diterapkan pada satu titik tertentu (x,y), maka didapatkan banyak respon filter untuk titik tersebut, misal: digunakan empat panjang gelombang (λ = 3, 5, 7, 10) dan delapan orientasi, maka akan dihasilkan 32 respon filter untuk tiap titik citra yang dikonvolusikan dengan filter tersebut. Citra database dan citra yang akan dikenali dikonvolusi lebih dahulu dengan Gabor Filter. Konvolusi tersebut akan menghasilkan titik-titik dengan nilai tertentu yang disebut sebagai gabor jet response. Titik-titik gabor jet response dari citra database dan citra yang akan dikenali dibandingkan dengan menerapkan prosedur graph matching pada citra yang akan dikenali, yaitu dengan memaksimalkan kemiripan magnitude Gabor antara graph model wajah yang sudah ditransformasi dengan representasi graph dari citra yang akan dikenali tersebut. Penerapan graph matching tersebut dapat didefinisikan dengan persamaan (2.4), dimana J adalah gabor jet model dari citra database dan J’ adalah gabor jet model dari citra yang akan dikenali.
max S ( J , J ′)
(2.2)
∀J
Fungsi kemiripan S(J, J’) didefinisikan dengan persamaan (2.3), dimana aj dan a’j masing-masing adalah titik-titik response dari gabor jet model citra database dan citra yang akan dikenali.
S ( J , J ') =
∑a
j
aj
j
∑a ∑a 2
j
j
(2.1)
Standar deviasi Gaussian envelope pada dimenxi x Standar deviasi Gaussian envelope pada dimenxi y Panjang gelombang sinus 2D Orientasi gelombang sinus 2D
Jika semua Gabor filter dengan variasi panjang gelombang (λ) dan orientasi (θk)
(2.3)
'
'2 j
j
3. PERENCANAAN SISTEM 3.1 Pembangunan Kernel Gabor kernel dibangun dengan pemrograman menggunakan MATLAB. Pada pembuatan Gabor kernel ini digunakan bidang (x,y) sebesar 81 x 81 yang dinotasikan sebagai matriks dua dimensi berukuran 81 x 81 dengan nilai mulai dari 40 sampai dengan 40. Sebagai batasan hasil
kernel yang akan diperoleh, digunakan threshold sebesar 3e-4 atau 0,0003. Untuk scaling digunakan lima nilai, yaitu: 0,3927; 0,5554; 0,7854; 1,1107; 1,5708. Untuk rotasi digunakan delapan nilai, yaitu: 0; 0,3927; 0,7854; 1,1781; 1,5708; 1,9635; 2,3562; 2,7489. Hasil penampakan Gabor Kernel ditunjukkan pada Gambar 3.
Gambar 3. Gabor Kernel 3.2 Pembangunan Database Wajah Database wajah dibagi menjadi tiga bagian besar, yaitu: database citra, database nilai gabor jet dari citra tersebut, dan database nama yang merujuk pada database citra. Database citra disimpan dengan format .jpg dan diberi nomor urut yang sekaligus menjadi nama file-nya, misalnya: 1.jpg, 2.jpg, 3.jpg, dan seterusnya. Perlu diketahui bahwa nomor urut yang sekaligus menjadi nama file tersebut tidak boleh ada yang terlewatkan atau terloncati, dimulai dari nomor urut 1. Hal ini dimaksudkan untuk memudahkan proses pembacaan file.
Database nilai gabor jet dari database citra disimpan dengan format file teks dan diberi nama file sama seperti database citra, misalnya: nama file gabor jet untuk citra 1.jpg adalah 1.txt, nama file gabor jet untuk citra 2.jpg adalah 2.txt, dan seterusnya. Database nama adalah daftar nama pemilik wajah dari database citra yang disimpan dalam bentuk file teks dengan nama db.txt. Ukuran citra dalam database citra boleh bermacam-macam. Kalkulasi nilai gabor jet untuk tiap citra dilakukan pada ukuran 100 x 100 (pixel). Jika ukuran citra baik panjang ataupun lebar lebih dari seratus pixel, maka akan dilakukan resizing terlebih dahulu. Database citra, database nilai gabor jet, dan database nama disimpan dalam folder images yang terletak di dalam folder source program utama. Di dalam folder tersebut juga ada file jml_images.txt yang berisi jumlah file citra yang ada dalam database. Pertama kali dilakukan pembacaan terhadap file jml_images.txt untuk mengetahui berapa jumlah citra yang ada dalam database. Kemudian dilakukan looping sebanyak jumlah citra tersebut. Dalam looping tersebut dilakukan pembacaan file citra dan sekaligus membangun database gabor jet untuk tiaptiap citra. Citra yang telah dibaca diubah ke mode grayscale. Kedalaman bit dari citra tersebut diubah menjadi 32 bit floating point. Citra yang telah diproses tersebut kemudian dimasukkan dalam looping sebanyak scale x rotasi yang digunakan pada Gabor Kernel. Untuk tiap looping, dilakukan resizing ke ukuran 100x100 pixel. Selanjutnya disiapkan dua bagian matriks citra untuk menampung hasil konvolusi kernel untuk bagian real dan bagian imajiner. Masing-masing hasil konvolusi tersebut dikuadratkan, kemudian dijumlahkan. Hasil penjumlahan tersebut diakarkuadrat. Matriks citra hasil perhitungan tersebut dibagi menurut grid 5x5 sehingga akan diambil 36 titik. Titik-titik itulah yang disimpan ke dalam teks file sebagai database nilai gabor jet respon.
3.3 Perencanaan Sistem Pelacakan Sebagai langkah awal, dilakukan penghitungan nilai lookup tabel histogram dengan mengkalkulasi citra model warna kulit. Citra model dalam RGB ini diubah terlebih dahulu ke mode HSV kemudian dilakukan pemisahan antara nilai hue, saturation, dan brightness. Nilai hue dari citra tersebut dikalkulasi histogramnya dan kemudian disimpan sebagai lookup tabel histogram. Sebelum melakukan pelacakan, ditentuan terlebih dahulu posisi titik tengah, lebar, dan panjang search window. Input citra dari kamera digital diubah dari mode RGB ke mode HSV, kemudian dilakukan pemisahan antara nilai hue, saturation, dan brightness. Dilakukan thresholding terhadap nilai saturation dan brightness hasil pemisahan tersebut, kemudian hasil thresholding tersebut dikombinasi dengan bitwise And. Dilakukan kalkulasi backproject terhadap nilai hue hasil pemisahan tersebut. Hasil kalkulasi backproject dengan hasil perhitungan saturation dan brightness dikombinasikan dengan bitwise And.
Gambar 4. Citra Asal Hasil pengkombinasian tersebut akan dimasukkan dalam perhitungan CamShift untuk menghasilkan posisi titik tengah, lebar, dan panjang window search yang baru. Selama obyek ditangkap oleh kamera digital, proses ini dilakukan terus menerus.
Gambar 5. Citra Hasil Kalkulasi Backproject 3.4 Perencanaan Sistem Pengenalan Proses pengenalan wajah diawali dengan melakukan cropping terhadap daerah yang telah dilacak oleh algoritma CamShift. Daerah citra hasil pelacakan ini diubah lebih dahulu ke mode grayscale dan dilakukan resizing ke ukuran 100x100 pixel. Citra tersebut dikonvolusikan dengan gabor kernel dan dilakukan grid yang akan menghasilkan 36 titik nilai respon gabor jet. Titik-titik nilai respon gabor jet tersebut akan dibandingkan menggunakan persamaan (2.3) dengan nilai respon gabor jet yang ada dalam database. Untuk itu dilakukan looping terhadap seluruh citra yang ada dalam database. Proses perbandingan tersebut akan menghasilkan nilai similarity atau kesamaan yang berbeda-beda untuk tiap citra dalam database. Selanjutnya akan diambil citra dengan nilai similarity terbesar sebagai hasil proses pengenalan. 4. IMPLEMENTASI SISTEM 4.1. Implementasi Pelacakan Obyek Untuk implementasi perangkat lunak, digunakan kamera digital dengan resolusi 320 x 240 pixel. Untuk mengetahui perkiraan nilai hue dari warna kulit manusia dilakukan penghitungan rata-rata nilai hue dari beberapa sampel citra warna kulit seperti yang ditunjukkan pada Gambar 6.
Gambar 6. Sampel Citra Warna Kulit Sampel citra tersebut diubah lebih dahulu ke mode HSV, kemudian dikalkulasi histogram dari nilai hue untuk kemudian dicari nilai rata-ratanya. Dari hasil perhitungan citra di atas, nilai rata-rata derajat hue sebesar 210. Proses inisialisasi pendeteksian obyek dilakukan dari lima arah, yaitu: kiri atas, kanan atas, kiri bawah, kanan bawah, dan titik tengah. Jika tidak ada obyek yang melintas, maka pendeteksian tersebut dilakukan dengan urutan mulai kiri atas, kanan atas, kanan bawah, kiri bawah, tengah, dan kembali lagi ke kiri atas, dan seterusnya. Hasil pelacakan obyek bergerak cukup baik. Window search akan mengikuti daerah yang dilacak selama obyek tersebut berada penangkapan kamera digital seperti yang ditunjukkan pada Gambar 7.
Gambar 7. Pelacakan Wajah Bergerak 4.2 Pengenalan Wajah Non Variasi Uji coba untuk pengenalan wajah non variasi dibagi menjadi dua bagian, yaitu: untuk pose frontal dan pose non frontal. Uji coba pengenalan wajah non variasi dengan pose frontal menggunakan 29 wajah model dengan 341 (31 x 11 pose) wajah dalam database. Hasil pengenalan menunjukkan 23 wajah dengan pengenalan yang benar dan 6 wajah dengan pengenalan yang salah sehingga prosentase keberhasilannya adalah (23/29)*100% = 79.31%. Uji coba pengenalan wajah non variasi dengan pose non frontal dilakukan dengan pose patah kiri dan patah kanan. Uji coba tersebut dilakuka terhadap 31 model yang masing-masing model mempunyai dua citra, yaitu: citra patah kiri dan patah kanan. Hasil pengujian menunjukkan 15 citra dari 62 citra model benar, dan sisanya salah sehingga prosentase kebenarannya adalah: (15/62)*100% = 24.19%
4.3 Pengenalan Wajah Dengan Variasi
DAFTAR PUSTAKA
Uji coba untuk pengenalan wajah dengan variasi menggunakan variasi iluminasi dan variasi noise. Untuk uji coba dengan variasi iluminasi menggunakan sumber cahaya dari arah depan obyek, belakang obyek, dan tanpa cahaya. Untuk uji coba dengan variasi noise menggunakan perangkat lunak pembantu Adobe Photoshop yang akan memberikan noise berwarna pada citra model dengan prosentase 20%, 35%, dan 50% menggunakan distribusi uniform.
1. Sardy, Sar. Salman, Muhammad, et al. Klasifikasi Tekstur Dengan Menggunakan Analisa Paket Wavelet. Jakarta: ViScom Group, Jurusan Elektro Fakultas Teknik Universitas Indonesia.
5. KESIMPULAN
4. Bradski, R, Gary. Computer Vision Face Tracking For Use in a Perceptual User Interface. Microcomputer Research Lab, Intel Corporation, Santa Clara, CA
Berdasarkan hasil pengujian dapat disimpulkan sebagai berikut: Sistem pelacak wajah manusia berdasarkan informasi warna kulit dapat dilakukan dengan keterbatasan warnawarna yang mendekati warna kulit, misalnya: kulit kayu akan dideteksi sebagai warna kulit. Adanya keterbatasan pada penangkapan obyek oleh kamera yang bergerak terlalu cepat. Obyek yang demikian dapat lepas dari pelacakan. Algoritma Gabor Filter dengan pengambilan nilai Gabor jet berdasarkan grid dapat digunakan untuk mengenali wajah frontal dengan cukup akurat, yaitu dengan tingkat kebenaran sampai dengan 79.31% dengan jumlah citra sebanyak 341 citra dalam database yang terdiri dari 31 citra individu dengan 11 pose, dan dengan citra pengujian sebanyak 29 citra. Untuk wajah non frontal masih kurang baik, yaitu sebesar 24.19%.. Pengenalan dengan variasi cahaya mempunyai pengaruh yang cukup besar terhadap keakuratan pengidentifikasian wajah. Pengaruh variasi noise kecil terhadap keakuratan pengidentifikasian. Keseluruhan sistem berjalan cukup baik dengan keterbatasan penangkapan citra oleh kamera yang tidak real time sehingga citra video terlihat terputusputus. Hal ini mempengaruhi proses pelacakan.
2. Zhang, Hao. Xing Poe, Eric, et al. Facial Image Correspondence by Elastic Graph Matching. Pp. 2-6 3. Forsyth, David. Ponce, Jean. Computer Vision a Modern Approach. Prentice Hall. 2002
5. Gregory A. Baxes. Digital Image Processing : Principles and Applications. New York: John Wiley & Sons, Inc., 1994. 6. Lim, Resmana, et al. “Facial Landmark Detection using a Gabor Filter Representation and a Genetic Search Algorithm”, 2000. 7. Wiskott, L., Fellous, J.M., Kruger, N., and von der Malsburg, C., “Face Recognition by Elastic Bunch Graph Matching”, IEEE Transaction on Pattern Analysis and Machine Intelligence, 19(7), pp.775-779, 1997. 8. Open Source Computer Vision Library – Reference Manual. Intel Corporation, U.S.A, 2001 9. Intel Image Processing Library – Reference Manual. Intel Corporation, U.S.A, 2000