Kamis, 01 Oktober 2009

Pengenalan Wajah Menggunakan Metode Fisherface

Tulisan ini menjelaskan tentang pengenalan wajah manusia dengan metode fisherface untuk mengidentifikasikan seseorang. Keluarannya adalah dikenali atau tidaknya sebuah gambar masukan sebagai salah satu individu pada database.

Terdapat empat langkah utama dalam metode pengenalan wajah ini, yaitu

  1. deteksi wajah,
  2. perhitungan PCA (Principal Component Analysis),
  3. perhitungan FLD (Fisher.s Linear Discriminant), dan
  4. klasifikasi. 

Dalam modul deteksi wajah, segmentasi warna dilakukan untuk mendapatkan bagian dari gambar masukan yang memiliki warna kulit. Modul perhitungan PCA dan modul perhitungan FLD digunakan untuk membentuk satu set fisherface dari suatu training set yang digunakan. Seluruh gambar wajah dapat direkonstuksi dari kombinasi fisherface dengan bobot yang berbeda-beda. Pada modul terakhir, dilakukan proses pengenalan identitas dengan cara membandingkan bobot fisherface yang dibutuhkan untuk merekonstruksi gambar masukan terhadap gambar pada training set. Perhitungan bobot dilakukan dengan metode jarak Euclidian. Pengujian dilakukan terhadap 66 gambar masukan dan tingkat keberhasilan pengenalan wajah sebesar 81,82%.

Berikut ini diagram blok dari pengenalan wajah menggunakan metode fisherface :


1.    Deteksi Wajah (Face Detection)

Langkah pertama pada pengenalan wajah secara otomatis adalah mendeteksi keberadaan wajah dari gambar masukan. Setelah wajah terdeteksi, tugas feature extraction adalah untuk memperoleh ciri-ciri dari wajah yang diperlukan pada klasifikasi wajah. Bergantung pada tipe pengenalan wajahnya, ciri-ciri yang diperlukan dapat berupa ciri-ciri lokal wajah seperti hidung, mata, mulut, dan lainnya, maupun ciri-ciri global wajah (seluruh bagian wajah). Metode fisherface menggunakan seluruh bagian wajah sebagai data dalam pengenalannya.

Segmentasi Warna Kulit

Proses yang dilakukan pertama kali pada algoritma deteksi wajah yang digunakan adalah membuang sebanyak mungkin bagian bukan wajah dari gambar input. Hal ini dapat dilakukan dengan memberikan batasan pada nilai intensitas warna (color thres-holding) pada gambar input karena pada dasarnya seluruh manusia memiliki range atau cakupan nilai warna (chrominance value) yang hampir sama untuk warna kulitnya. Yang membedakannya adalah variasi pada nilai intensitas cahayanya (luminance value).

Salah satu cara memisahkan nilai intensitas cahaya dari komponen warna gambar masukan adalah dengan mentransformasi komponen warna gambar masukan yang merupakan gambar berwarna (RGB) ke dalam komponen warna YCbCr (Iluminance, Chrominance-blue, Chrominance-red). Jika pada komponen warna RGB masih terdapat informasi mengenai intensitas pencahayaan pada setiap komponen warnanya (Red, Green, Blue), untuk komponen warna YCbCr, komponen Cb dan Cr merupakan komponen warna yang bebas dari intensitas cahaya, karena seluruh informasi mengenai cahaya pada gambar disimpan pada komponen Y.


Proses Morfologi

Hasil dari proses segmentasi kulit adalah topeng (mask) yang berupa gambar hitam putih (binary image) yang menunjukkan bagian kulit dari gambar masukan. Akan tetapi topeng hasil segmentasi kulit masih terdapat noise dan potongan dari beberapa benda lainnya pada gambar, seperti latar belakang gambar. Oleh karena itu, perlu dilakukan beberapa tahapan proses morfologi untuk membersihkan gambar dari noise dan potongan tersebut

Teknik morfologi dapat dilakukan untuk suatu gambar biner maupun gambar pada level grayscale (abu-abu). Untuk gambar biner, piksel berwarna putih bernilai biner .1. (ON) dan piksel berwarna hitam bernilai biner .0. (OFF).

Proses morfologi untuk gamber biner adalah proses erosi dan dilasi. Proses erosi membuang piksel dari gambar atau ekivalen dengan membuat piksel ON menjadi OFF, yaitu piksel putih yang melekat pada daerah background, sehingga akan menyebabkan piksel putih berkurang luasnya (shrinking) dengan tujuan untuk menghilangkan piksel yang merupakan noise pada topeng. Proses dilasi merupakan kebalikan dari proses erosi, membuat piksel OFF menjadi ON, sehingga akan menyebabkan piksel putih bertambah luasnya (growing). Tujuan dilakukan proses dilasi adalah karena saat proses erosi dilakukan pada topeng, daerah yang merupakan kulit juga ikut mengalami shrinking sehingga perlu dilakukan suatu proses yang mengembalikan daerah tersebut agar bagian wajah nantinya akan terdeteksi dengan benar.


Region Analysis

Gambar topeng hasil proses morfologi akan tetap terdapat bagian bukan wajah yang merupakan bagian tubuh lainnya seperti tangan dan bagian lainnya yang memiliki intensitas warna yang menyerupai intensitas warna kulit. Pada proses region analysis akan dianalisa bagian-bagian tersebut untuk mendapatkan satu bagian yang merupakan bagian wajah, yaitu dengan menghitung nilai Euler dari tiap-tiap bagian yang terdapat pada topeng. Nilai Euler pada gambar biner adalah selisih antara region (daerah yang memiliki nilai piksel 1) dengan hole (daerah yang memilki nilai piksel 0) yang ada pada region tersebut. Pada umumnya untuk wajah manusia setidaknya akan memiliki satu region dan tiga buah hole pada region tersebut yang menunjukkan sepasang mata dan satu mulut


Ekstraksi Wajah

Setelah didapat satu bagian yang merupakan wajah, proses selanjutnya adalah mengambil (cropping) wajah tersebut dari gambar input dengan ukuran yang sesuai dengan posisi wajah pada gambar topeng dan mengubah ukurannya menjadi ukuran yang sama dengan ukuran gambar wajah pada training set yang digunakan untuk pengenalan wajah



2.    Perhitungan PCA

Perhitungan PCA dilakukan dengan langkah-langkah sebagai berikut :

  1. Mengambil satu set gambar training dan kemudian mentransformasikan setiap gambar tersebut menjadi vektor kolom, sehingga akan didapat satu matriks yang tiap kolomnya mewakili gambar yang berbeda, face space.
  2. Membentuk average face (Ψ), yaitu nilai rata-rata dari seluruh gambar wajah pada training set, dan mengurangi seluruh gambar pada training set terhadap average face untuk mencari deviasinya (φ).
  3. Menghitung matriks kovarian (A), yaitu dengan melakukan operasi perkalian transpose dari training set yang telah dinormalisasikan.
  4. Menghitung nilai eigen (λ ) dan vektor eigen (ν) dari matriks kovarian.
  5. Mengurutkan vektor eigen berdasarkan dengan besarnya nilai eigen masing-masing vektor.
  6. Menghitung matriks proyeksi PCA (Wpca) yaitu dengan mengalikan nilai deviasi dengan vektor eigen.
  7. Mengambil N-C komponen Wpca yang diperlu-kan untuk mengkonstruksi fisherface.


3.    Perhitungan FLD

Perhitungan FLD dilakukan dengan langkah-langkah sebagai berikut :

  1. Mentransformasikan training set ke dalam vektor kolom (face space).
  2. Membentuk average face (Ψ) dari face space, dan nilai wajah rata-rata masing-masing kelas (class average face)
  3. Melakukan perhitungan matriks sebaran dalam kelas (within-calss scatter-matrix) dan ma-triks sebaran antar kelas (between-class scatter-matrix).
  4. Memproyeksikan matriks sebaran (WS dan) ke dalam matriks proyeksi PCA (Wpca).
  5. Menghitung nilai eigen dan vektor eigen dari matriks sebaran.
  6. Menghitung matriks proyeksi fisher dengan mengurutkan vektor eigen berdasarkan besarnya nilai eigen masing-masing vektor eigen dan mengambil komponen vektor eigen yang memiliki nilai eigen tidak nol.Untuk C kelas, akan selalu didapat C-1 vektor eigen yang memiliki nilai eigen tidak nol
  7. Menghitung matriks proyeksi optimal.
  8. Melakukan normalisasi pada matriks proyeksi optimal.
  9. Menghitung bobot tiap fisherface terhadap masing-masing gambar wajah pada training set (face key) dengan memproyeksikan nilai deviasi face space terhadap average face ke dalam matriks proyeksi optimal.


4.    Klasifikasi Identitas

Klasifikasi identitas yang digunakan adalah dengan membandingkan bobot dari masing-masing fisherface pada gambar wajah pada training set dan gambar wajah masukan dengan menghitung jarak Euclidian-nya. Langkah-langkah klasifikasi identitas adalah sebagai berikut :

  1. Mengubah gambar wajah masukan menjadi vektor kolom
  2. Menormalisasikan gambar wajah masukan terhadap nilai rata-rata training set (average face,Ψ).
  3. Menghitung bobot fisherface pada gambar wajah masukan, yaitu dengan memproyeksikan gambar masukan ke dalam matriks proyeksi optimal (Wopt).
  4. Menghitung jarak euclidian (Emin) antara bobot input dan bobot training set (Udatabase).
  5. Mencari dan membandingkan jarak minimum (Emin) dengan satu nilai batas (θ). Sebuah wajah dikatakan cocok jika jarak minimumnya lebih kecil dari nilai batas yang diterapkan. Semakin kecil jarak minimum yang diperoleh, semakin besar kesamaan (similarity) gambar masukan dengan pasangan gambar pada training set. Nilai batas diperoleh dari hasil percobaan-percobaan hingga ditemukan satu nilai yang memuaskan



Sumber : http://puslit2.petra.ac.id/ejournal/index.php/elk/article/shop/16598/16590










2 komentar:

  1. hallo..
    saya Anggie...
    saya mau buat pendeteksi wajah menggunakan visual basic 6.0..
    boleh bantu saya?
    ato bisa share programnya...
    terima kasih banyak.. sukses untuk blognya...

    God Bless^^

    BalasHapus