BAB III PERANCANGAN DAN IMPLEMENTASI SISTEM
Pada bab ini akan dijelaskan mengenai tahapan dan algoritma yang akan digunakan pada sistem pengenalan wajah. Bagian yang menjadi titik berat dari tugas akhir ini adalah perancangan sistem ekstraksi fitur dan pengenalan wajah. Hal-hal yang dijelaskan meliputi perancangan sistem, tahap pelatihan yang meliputi ektraksi fitur dan tahap klasifikasi menggunakan JST.
3.1. Perancangan Sistem
Sistem yang dirancang ini terbagi menjadi dua bagian utama, yaitu bagian pelatihan dan bagian klasifikasi. Pembagian ini dapat dilihat dari Gambar (3.1) di bawah. Pada masing-masing bagian terdapat 2 tahap yang hampir identik, yaitu pengolahan citra (preprocessing) dan ekstraksi fitur (feature extraction). Perbedaannya hanyalah pada bagian akhir, pada bagian pelatihan tujuan akhirnya adalah menghasilkan suatu pemilah (classifier) yang paling tepat untuk sistem ini. Pada bagian klasifikasi, tujuan akhirnya adalah menggunakan pemilah (classifier) yang telah dilatih tersebut agar mampu mengenali citra apakah terdapat dalam database atau tidak.
Gambar 3.1. Diagram Blok Sistem Pengenalan Wajah.
Sistem pengenalan wajah merupakan bagian akhir dari sistem deteksi dan pengenalan wajah. Pada sistem deteksi wajah dilakukan proses pengolahan citra dan deteksi wajah. Sistem deteksi wajah bertugas mengolah citra dan menyesuaikan dengan database dan hanya melewatkan citra yang terdapat wajah didalamnya. Sistem deteksi melakukan klasifikasi wajah dan non-wajah terhadap citra masukan. Masukan pada sistem deteksi wajah berupa citra berwarna (format jpg atau jpeg) yang diambil dengan kamera digital Sony DSC-9. Keluaran dari sistem deteksi wajah adalah citra wajah grayscale berukuran 112 x 92 piksel yang sudah distandarisasi sesuai database. Diagram blok sistem pengolahan citra dan deteksi wajah dapat dilihat pada gambar(3.2).
Kelas Wajah Citra Masukan
Pengolahan Citra
SVM Kelas Non-wajah
Gambar 3.2 Sistem pengolahan citra dan deteksi wajah.
Sistem pengenalan wajah bertugas untuk mengenali citra masukan sebagai wajah orang yang ada dalam database atau tidak dikenali. Citra yang merupakan wajah dalam database maka akan ditentukan sebagai wajah ke-n. Sistem pengenalan wajah terdiri dari dua bagian, yaitu bagian ekstraksi fitur dan bagian klasifikasi (pengenalan). Bagian ekstraksi fitur bertujuan untuk reduksi data sehingga dihasilkan fitur penting yang mewakili citra wajah sedangkan bagian klasifikasi akan mengenali fitur wajah sebagai orang yang dikenali atau tidak berada dalam database. Diagram blok sistem ekstraksi fitur dan pengenalan wajah dapat dilihat pada gambar(3.3).
Wajah Dikenali Ekstraksi Fitur
Citra Wajah
JST Wajah Tidak Dikenal
Gambar 3.3 Sistem Pengenalan Wajah.
3.2 Sistem Pelatihan
Sistem pengenalan meliputi tahap pembuatan database, ekstraksi fitur dan juga pembuatan pemilah berbasis JST. Prosedur dalam sistem pengenalan wajah terdiri dari pembuatan sistem pelatihan dan klasifikasi: Pembuatan sistem pelatihan : 1. Membuat database yang terdiri dari 16 orang dengan 15 pose. Citra tersebut dinormalisasi cahaya dan normalisasi dimensi sehingga dihasilkan citra wajah grayscale berukuran 112 x 92 piksel. 2. Ekstraksi fitur yaitu menghitung Fisherface dari training set tersebut. Pengambilan fitur Fisherface dibatasi pada fitur yang signifikan. Jadi setiap citra diwakili oleh sejumlah fitur dari Fisherface. 3. Penghitungan bobot dari masing-masing fitur Fisherface tersebut. Masing masing citra dalam database akan memiliki bobot yang khas. 4. Dilakukan training JST terhadap nilai bobot tersebut untuk menghasilkan sebuah pemilah. Pemilah ini menggeneralisasi pola wajah berdasar fitur-fitur yang dihasilkan dengan metoda Fisherface. Selain itu ditentukan threshold sebagai batas citra dikenali sebagai wajah atau tidak dikenali
3.2.1 Prosedur Pembuatan Database
Data base yang digunakan terdiri dari 16 individu dengan variasi 15 pose. Pembentukan citra dilakukan dengan cropping secara manual citra yang mengandung wajah individu yang akan dimasukkan dalam database (format jpg). Setelah dilakukan cropping, dilakukan normalisasi dimensi dan konversi citra dari format RGB ini menjadi grayscale. Pada database dilakukan perhitungan untuk menentukan nilai mean dan standar deviasi dari keseluruhan citra. Nilai mean dan standar deviasi ini digunakan untuk normalisasi citra pada database sehingga citra memiliki intensitas yang serupa. Hal ini mempengaruhi kinerja database yang digunakan. Database terdiri dari 16 orang dengan variasi 15 pose yang berbeda-beda. Terdapat dua jenis database yang akan dianalisis pada tugas akhir ini. Database I adalah database citra yang memperlihatkan seluruh wajah dan rambut sedangkan pada database yang kedua adalah citra yang terdiri dari wajah saja. Contoh citra wajah pada kedua jenis database ini dapat dilihat pada Gambar (3.4) di bawah. Ukuran database yang digunakan distandarisasi menjadi citra dengan ukuran 112x92 pixel. Tipe citra yang digunakan untuk database adalah citra dengan format grayscale.
(a)
(b)
Gambar 3.4. Contoh citra yang digunakan (a)database I (b) database II.
Sesudah diperoleh database yang dibutuhkan dalam proses pengenalan wajah, langkah selanjutnya adalah pengujian database. Dari dua jenis database yang dimiliki dilakukan pengujian untuk mengetahui kinerja masing-masing. Pengujian kinerja database juga dilakukan dengan berbagai jumlah citra pelatihan. Hal ini dilakukan untuk melihat
kemampuan database dalam mewakili variasi pose dan juga mengenali citra di luar database yang memiliki perbedaan ekspresi. Hal ini juga bertujuan untuk menguji kemampuan JST dalam mengenali pola dan mengetahui keberhasilan proses pelatihan. Database yang memiliki kinerja terbaik akan digunakan dalam sistem pengenalan yang terintegrasi.
3.2.2 Ekstraksi Fitur
Tahap ekstraksi fitur bertujuan menghasilkan fitur tiap citra wajah dalam database. Fitur ini akan digunakan dalam membentuk pemilah jaringan syaraf tiruan. Tahapan dalam ektraksi fitur ada tiga yaitu ekstraksi PCA, FLD pada hasil ekstraksi PCA dan terakhir menghitung Fisherface. •
PCA
Pada sistem, ektraksi fitur PCA dilakukan oleh fungsi m-file PCA.m yang dipanggil pada program utama. Algoritma matematis yang digunakan pada fungsi PCA seperti yang dikembangkan M. Turk and A. Pentland. Citra wajah yang berupa matriks 112x92 diubah ke dalam bentuk vektor berukuran 10304 x 1.Yang pertama dilakukan yaitu menghitung mean semua citra yang ada dalam data base, kemudian dihitung deviasi vektor wajah dari mean data base. Setelah itu dilakukan penghitungan matriks kovarian : N
C = ∑ ( xk − μ )T ( xk − μ )
(3.1)
k =1
Dari citra wajah berukuran 112 x 92 yang diubah menjadi 10304 x 1. Matrik kovarian akan berukuran 10304 x 10304. Algoritma Eigenface yang dikemukakan M. Turk and A. Pentland menghasilkan matrik kovarian berukuran 240 x 240 (240 adalah jumlah semua pose dalam data base).
Setelah matrix kovarian dihitung, kita dapat menghitung nilai eigen (λ) dan vektor eigen (u ) yang memenuhi persamaan (3.2) di bawah. Cun = λn un
(3.2)
u = eigenvector λ = eigenvalue Fitur PCA yang diperoleh memiliki nilai eigen yang berbeda. Sesuai persamaan (2.6) dapat diambil beberapa nilai fitur PCA sesuai kebutuhan. Dengan batasan 90% diperoleh 53 fitur, 95% diperoleh 93 fitur,98% 147 fitur,99% 179 fitur.
Gambar 3.5. Fitur PCA yang menggambarkan variansi database.
•
LDA
Setelah didapat fitur PCA dilakukan perhitungan FLD dengan fungsi FLD.m. Pada FLD dilakukan penghitungan nilai matrik penyebaran antar kelas dan matrik penyebaran dalam kelas digunakan persamaan (3.3) dan (3.4). •
Menghitung kovarian antar-kelas
SB =
C
∑ ( P 1 ') N ( μ k =1
k
k
−μ
)( μ k
−μ
)
T
( P 1)
(3.3)
•
Menghitung kovarian dalam kelas
SW =
C
∑∑
k = 1 x∈ X k
( P1 ') ( x k − μ k )( x k − μ k ) ( P1) T
(3.4)
Keterangan : P1 = fitur wajah PCA (eigenfaces) Setelah mendapatkan matrix penyebaran antar kelas dan matrix penyebaran dalam kelas, kemudian dilakukan penghitungan LDA dengan mencari nilai eigen dan vektor eigennya, seperti persamaan (3.5) di bawah.
S B ui = λi SW ui
(3.5)
Gambar 3.6. Fitur LDA yang menggambarkan variansi database.
Dari perhitungan fitur LDA dengan batasan nilai 90% diperoleh 9 fitur, 95% diperoleh 11 fitur, 98% diperoleh 13 fitur, 99% diperoleh 14 fitur.
uopt = uPCAuLDA
(3.5)
Nilai Uopt adalah fitur wajah gabungan dari fitur PCA dan fitur LDA. Fitur gabungan inilah yang disebut dengan Fisherface. Pada sistem, fitur ini dihasilkan dari fungsi fisher.m.
•
Menghitung bobot
Setelah sistem mendapatkan fitur Fisherface, bobot tiap wajah dihitung. Bobot wajah dari database dihitung membandingkan dengan wajah yang akan di tes. Bobot ini akan menjadi masukan bagi pemilah JST. Penghitungan bobot dilakukan dengan fungsi bobot.m. Pada dasarnya fungsi bobot ini merupakan transformasi citra wajah yang menjadi masukannya ke dalam Eigenspace.
3.3 Proses Perancangan JST
Setelah mendapatkan bobot dari wajah pada database, kemudian tahap selanjutnya perancangan JST yang sesuai dengan fitur yang diberikan sehingga dapat melakukan klasifikasi dengan baik. Klasifikasi yang baik bermakna JST dapat membedakan citra wajah yang ada dalam database baik dengan perbedaan pose maupun ekspresi secara sederhana dan mengetahui citra yang tidak ada dalam database. JST yang digunakan adalah multilayer backpropagation. JST jenis ini banyak dipakai dalam klasifikasi pola[8]. Menurut Kolmogorov[8] tiga layer JST (dua hidden layer dan satu layer output) dapat memisahkan pola dengan baik. Yang perlu diperhatikan adalah jumlah neuron pada hidden layer , semakin banyak jumlah hidden layer yang digunakan maka JST semakin bagus dalam klasifikasi pola, namun perhitungan jadi lebih lama. Penentuan jumlah neuron ini dilakukan dengan percobaan. Spesifikasi JST yang diinginkan yaitu mampu mengenali perbedaan pose dan ekspresi secara sederhana. Pengujian dilakukan dengan pelatihan jaringan dan menguji dengan citra uji yang berbeda ekspresi. Citra pelatihan yang digunakan sejumlah database sedangkan citra uji merupakan citra uji (citra ke-16 dan ke-17). Hal ini didasari pertimbangan pada proses deteksi wajah, citra yang dihasilkan tidak identik dengan citra database, dimungkinkan terjaddi pergeseran dan perbedaan pose. Pelatihan JST dilakukan dengan pengambilan bobot dari proses ekstraksi fitur citra wajah. Nilai bobot masing-masing wajah menjadi masukan bagi sistem JST. Keluaran JST berupa 16 neuron (sejumlah subjek data base).
Jaringan dibangun dengan menggunakan instruksi net
=
newff(PR,[S1
S2
…
SN1],{TF1
TF2
…
TFN1},BTF,BLF,PF), di mana :
PR
: Rx2 matriks yang berisi nilai minimum dan maksimum dari R input
Si
: jumlah neuron pada lapisan ke-I, dengan i=1,2,…,N1
TFi
: fungsi aktivasi pada pada lapisan ke-i
BTF
: fungsi pelatihan jaringan
BLF
: fungsi pelatihan untuk bobot
PF
: fungsi kinerja
Pada tugas akhir ini digunakan JST dengan 2 hidden layer. Fungsi aktivasi yang digunakan adalah sigmoid biner. Hal ini disebabkan karena nilai keluaran berupa biner 0 sampai 1, pelatihan jaringan menggunakan traingdx Fungsi pelatihan traingdx dipilih karena fungsi ini menggunakan momentum dalam perubahan bobot dan memiliki nilai learning rate yang adaptif. Pelatihan pada JST ini menggunakan metode batch— perubahan terhadap bobot dan bias dilakukan setelah semua input dan target dipresentasikan. Fungsi kinerja yang digunakan untuk backpropagation adalah mean squared error (mse). Jumlah neuron input yaitu 14 sesuai dengan jumlah fitur hassil ekstraksi dengan metoda Fisherface. Jumlah neuron output 16 sesuai dengan jumlah subyek dalan database. Neuron output ke-n akan bernilai 1 jika citra masukan adalah orang ke-n dalam database. Jika citra tidak terdapat dalam database maka neuron output akan bernilai 0. Langkah-langkah desain arsitektur jaringan •
jumlah layer dan neuron sesedikit mungkin namun dapat mengklasifikasi pola uji yang ada.
•
Pemilihan fungsi aktivasi, fungsi pembelajaran, perubahan bobot dan juga fungsi performa (analisis kesalahan)
Hasil pengujian dievaluasi untuk memperbaiki kinerja JST. Kinerja ditingkatkan dengan perubahan fitur atau peningkatan batas performa. Proses pelatihan akan diuji. Langkah ini diulang sampai didapatkan JST dengan akurasi pengklasifikasian yang cukup tinggi. Setelah itu barulah JST dicoba untuk pengujian dengan menggunakan citra wajah dengan variasi pose dan ekspresi. Pengujian dilakukan dengan mencoba jumlah neuron pada hidden layer. Database yang digunakan adalah database II dengan jumlah citra pelatihan 15, citra yang diuji adalah citra dengan perbedaan ekspresi (citra ke 16 dan ke-17 dari masing-masing subyek). Hal ini untuk mengantisipasi keluaran dari sistem deteksi wajah yang sangat beragam. Citra uji yang digunakan sejumlah 32 (16 x 2 citra). Hasil pengujiannya sebagai berikut : •
Arsitektur 1 hidden layer
Pada arsitektur ini tidak diperoleh jaringan yang mampu menggeneralisasi pola. •
Arsitektur 40-80-16
JST ini terdiri dari 40 neuron pada hidden layer pertama dan 80 neuron pada hidden layer kedua. Parameter laju pembelajaran yang diigunakan 0,0019. Performa jaringan ini tidak memenuhi target mse yanng ditetapkan. Citra uji ke 22,25 dan 30 menghasilkan nilai output yang kecil 0.30758, 0.0712, 0.21139
Gambar 3.7 Performa JST Arsitektur 40-80-16.
•
Arsitektur 70-150-16
JST ini terdiri dari 70 neuron pada hidden layer pertama dan 150 hidden layer kedua. Parameter laju pembelajaran yang diigunakan 0,007. Performa jaringan ini tidak memenuhi target mse yanng ditetapkan. Nilai output yang didapat masih kurang meyakinkan. Nilai yang yang didapat 0,5043, 0,063 dan 0,419 untuk citra uji ke 18, 24 dan 26.
Gambar 3.8 Performa JST Arsitektur 70-150-16.
•
Arsitektur 200-300-16
JST ini terdiri dari 200 neuron pada hidden layer pertama dan 300 hidden layer kedua. Parameter laju pembelajaran yang diigunakan 0,007. Performa jaringan ini tidak memenuhi target mse yanng ditetapkan. Nilai
output yang didapat masih kurang
meyakinkan. Terdapat nilai 0.22708 dan 0.077328 citra ke-16 dan ke-28 (nilai pada citra ke 28 salah merujuk pada orang ke 16)
Gambar 3.9 Performa JST Arsitektur 200-300-16.
•
Arsitektur 250-400-16
JST ini terdiri dari 250 neuron pada hidden layer pertama dan 400 neuron hidden layer kedua. Parameter laju pembelajan 0,0012. Target performa sebesar 2 10-7. Target performa ini dipilih dengan tujuan agarjaringan mampu mengenali pola dengan tangguh. Pada waktu digunakan target yang rendah jaringan yang dihasilkan tidak memiliki kemampuan generalisasi pola yang baik Pada jaringan ini nilai output terendah yang didapat 0,22795 pada citra ke-28
Gambar 3.10 Performa JST Arsitektur 250-400-16.
•
Jaringan yang dipakai adalah 300-450-16 (300 neuron pada hidden layer pertama dan 450 neuron hidden layer kedua).
Gambar 3.11 Performa JST arsitektur 300-450-16.
Setelah JST melalui proses pelatihan dan mencapai target mse yang diinginkan, maka tahap selanjutnya dalam perancangan sistem ini adalah tahap klasifikasi. JST yang telah selesai dilatih digunakan dalam pengujian (klasifikasi) citra berbagai kondisi Hal ini bermanfaat untuk menguji sistem pengenalan wajah secara terintegrasi.
3.4 Klasifikasi Proses klasifikasi terdiri dari 3 proses yaitu: 1) Citra wajah dihitung bobotnya dan diproyeksikan dalam Fisherface Bobot yang dihitung pada tahap ini sama caranya seperti pada tahap penghitungan bobot pada tahap pelatihan, yaitu dengan menggunakan fungsi bobot.m. Tujuan dari penghitungan bobot ini adalah untuk memproyeksikan citra yang didapat dari proses sebelumnya ke dalam ruang eigen wajah. Dengan menghitung bobot dari citra masukan ini, sistem akan dapat membandingkan bobot citra masukan ini dengan bobot dari citra pada basis data. Setelah mendapatkan bobot citra, sistem kemudian mengkalkulasi fiturfitur yang digunakan seperti pada tahap pelatihan. 2) Memasukkan bobot ini sebagai input ke dalam JST Bobot ini akan menjadi masukan bagi jaringan yang sudah dilatih dalam tahap pelatihan. 3) JST ini akan memberikan keputusan apakah citra wajah adalah orang dalam database atau tidak dikenal. Keberhasilan proses klasifikasi ditentukan oleh keberhasilan deteksi wajah dan juga pemilah JST yang dibuat. JST harus bisa mengenali wajah dalam database dan mengenali suatu wajah tidak berada dalam database.