JARINGAN SARAF TIRUAN BACKPROPAGATION UNTUK...
Transcript of JARINGAN SARAF TIRUAN BACKPROPAGATION UNTUK...
JARINGAN SARAF TIRUAN BACKPROPAGATION UNTUK PENGENALAN WAJAH METODE EKSTRAKSI FITUR
Sigit Kusmaryanto Teknok Elektro FTUB, [email protected]
ABSTRAKSI
Salah satu kelemahan umum pada pengenalan pola untuk pengenalan wajah adalah keharusan pola masukan yang akurat terhadap pola teridentifikasi. Hal tersebut menyebabkan masukan sering tidak dikenali/tidak teridentifikasi sehingga harus di-input secara berulang-ulang. Aplikasi pengenalan wajah dengan menggunakan kecerdasan buatan dengan komponen utama jaringan saraf tiruan untuk pemrosesan dan identifikasi wajah diharapkan mengatasi kelemahan sistem pengenalan pola untuk pengenalan wajah. Penelitian ini akan mengimplementasikan Jaringan Saraf Tiruan (JST) Backpropagation dengan MATLAB 7.0 untuk pengenalan wajah. Pengenalan wajah menggunakan citra wajah yang diambil dari pose frontal dengan variasi ukuran piksel dan jarak . Citra wajah dilatih pada variasi ukuran piksel 640 x 480 piksel dan 600 x 800 piksel serta masing-masing wajah memiliki dua jarak pengambilan yaitu sedang(2-5m), dekat (<2m). Proses pelatihan menggunakan algoritma backpropagation. Hasil yang didapatkan dari uji JST menggunakan 18 citra dengan wajah frontal: dihasilkan jumlah unit pada lapisan tersembunyi 18, jumlah unit input 225, jumlah unit output 10, maksimum epoh 2500, target error 0.001 dan learnng rate=0.9 dengan prosentase pengenalan wajah 63 % Kata Kunci : Jaringan Saraf Tiruan, Backpropagation, Pengenalan Wajah
ABSTRACT
One common weakness on pattern recognition for face recognition is imperative that accurate input pattern to the pattern identified . This causes the input is often not recognized / not identified so it must be input repeatedly . Face recognition applications using artificial intelligence with the main component neural networks for processing and identification of faces is expected to overcome the weaknesses of pattern recognition systems for face recognition . This study will implement Artificial Neural Networks ( ANN ) backpropagation with MATLAB 7.0 for face recognition . Face recognition using face images taken from the frontal pose variations pixel size and distance . Trained face images in various sizes 640 pixels x 480 pixels and 600 x 800 pixels and each face has two making the distance is ( 2-5m ) , close ( < 2m ) . The process of training using the backpropagation algorithm . The results obtained from testing the ANN using 18 frontal face image with: resulting number of units in the hidden layer 18, the number of input unit 225, the number of output unit 10, the maximum epoch 2500, 0001 and learnng the target error rate = 0.9 with 63% percentage of face recognition. Keywords : Neural Networks , Backpropagation , Face Recognition
PENDAHULUAN
Latar Belakang
Salah satu kelemahan umum pada pengenalan pola untuk pengenalan
wajah adalah keharusan pola masukan yang akurat terhadap pola teridentifikasi.
Hal tersebut menyebabkan masukan sering tidak dikenali/tidak teridentifikasi
sehingga harus di-input secara berulang-ulang. Aplikasi pengenalan wajah dengan
menggunakan kecerdasan buatan dengan komponen utama jaringan saraf tiruan
untuk pemrosesan dan identifikasi wajah diharapkan mengatasi kelemahan sistem
pengenalan pola untuk pengenalan wajah.
Aplikasi pengenalan wajah dengan menggunakan kecerdasan buatan
sebagai komponen utama khususnya jaringan saraf tiruan untuk pemrosesan dan
identifikasi wajah masih belum banyak ditemui. Dalam penelitian yang sudah ada
sebelumnya, [DEWI R., 2007] aplikasi pengenalan wajah menggunakan citra
wajah yang diambil dari pose frontal dan memiliki jarak pengambilan citra yang
relatif sama dan kekurangannya adalah apabila kita melakukan pemrosesan
terhadap citra wajah yang sama dengan pengambilan jarak citra yang berbeda
maka aplikasi tidak dapat mengekstraksi fitur wajah dengan sempurna dan
hasilnya tidak akurat. Penelitian sebelumnya juga belum mengadaptasi kecerdasan
buatan. Berdasarkan penelitian tersebut, Peneliti bermaksud membuat sebuah
aplikasi pengenalan wajah yang dapat menyelesaikan masalah dengan
menggunakan jaringan saraf tiruan.
Tujuan
Tujuan dalam usulan penelitian ini adalah implementasi Program
MATLAB untuk membuat sistem pengenalan wajah. Program aplikasi ini dilatih
dengan memasukkan citra wajah. Setelah proses pelatihan selesai, citra wajah
yang ingin dicari informasinya dimasukkan ke dalam aplikasi dan dilihat apakah
aplikasi mampu mengenali citra wajah tersebut.
METODE PENELITIAN
Metode dalam pelaksanaan penelitian ini adalah dengan langkah-langkah sebagai
berikut :
• Melakukan kajian studi pustaka, yaitu dengan mengumpulkan data, artikel
yang berhubungan dengan pengolahan citra, model warna, deteksi wajah, teori
dasar matriks, kecerdasan buatan, jaringan saraf tiruan dan bahasa
pemrograman MATLAB yang berhubungan dengan pengolahan citra.
• Pengambilan objek sebagai data dilakukan dengan menggunakan kamera
dijital
• Implementasi JST Backpropagation untuk pengenalan wajah melalui bebrapa
tahap yaitu tahap prepsosesing citra wajah, tahap ekstraksi citra wajah dan
tahap pengenaan wajah menggunakan JST backpropagation.
Gambar 1. PROSES IMPLEMENTASI JST BACKPROPAGATION UNTUK PENGENALAN WAJAH
• Tahap preprosesing citra wajah bertujuan mendapatkan aras keabuan dari citra
wajah. Pada tahap ini digunakan pendekatan berbasis gambar dengan
menghapus data yang berlebihan dari gambar wajah melalui kompresi gambar
dengan menggunakan Microsoft Office Picture Manager. Untuk selanjutnya
dilakukan perubahan aras keabuan pada citra dengan fungsi default MATLAB
7.0: rgb2gray(citra_wajah.png). Pada tahap ini citra gambar yang akan
diproses terdiri tiga orang dengan jenis citra: 1. citra wajah jarak dekat 2. citra
wajah jarak dekat piksel 800 x 600 3. citra wajah jarak dekat piksel 640 x 480
4. citra wajah jarak sedang 2. citra wajah jarak sedang piksel 800 x 600 3. citra
wajah jarak sedang piksel 640 x 480. Sementara jarak dekat didefinisikan
pengambilan citra wajah pada jarak kurang 2 m, untuk jarak sedang 2-5 m
Gambar 2. PROSES PREPROSESING CITRA WAJAH
1. Proses Croping dengan Microsoft Office Picture Manager 2. Proses Grayscale citra dg fungsi default MATLAB: rgb2gray(citra.png)
• Tahap ekstrasi citra wajah dilakukan untuk proses menentukan ciri citra
wajah. Pada penelitian ini digunakan ekstraksi fitur tekstur yang berbasis pada
histogram citra wajah. Ekstraksi fitur tekstur akan menentukan ciri citra wajah
berdasarkan 6 parameter yaitu: 1. rerata intensitas, 2. rerata kontras, 3.
skewness , 4. energi, 5. entropi, 6. smoothness. Selanjutnya data ekstraksi ciri
sebagai database citra wajah.
Gambar 3. PROSES EKSTRAKSI CIRI BERBASIS HISTOGRAM
1. Proses histeq menggunakan perintah: histeq (citra grayscale) 2. Ekstraksi fitur tekstur dengan program MATLAB: function [Stat] = stattekstur(F)
• Tahap pengenalan citra wajah dengan JST. JST yg dibentuk adalah jaringan
Backpropagation.
Backpropagation melatih jaringan untuk mendapatkan keseimbangan antara
kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan
serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola
masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama
pelatihan.
Arsitektur Backpropagation
Backpropagation memiliki beberapa unit yang ada dalam satu atau lebih layar
tersembunyi. Arsitektur backpropagation dengan n buah masukan (ditambah
satu bias), dan sebuah layar tersembunyi yang terdiri dari p unit (ditambah
satu bias), dan juga m buah unit keluaran, terdapat pada gambar
Gambar 4. ARSITEKTUR JARINGAN BACKPROPAGATION
Sumber: Kusumadewi, 2004
Dari gambar ARSITEKTUR JARINGAN BACKPROPAGATION dapat
dijelaskan bahwa Vji adalah bobot garis dari unit masukan Xi ke unit layar
tersembunyi Zj (Vj0 adalah bobot garis yang menghubungkan bias di unit
masukan ke unit layar tersembunyi Zj). Sedangkan Wkj adalah bobot dari unit
layar tersembunyi Zj ke unit keluaran Yk (Wk0 adalah bobot dari bias di layar
tersembunyi ke unit keluaran Yk).
Fungsi Aktivasi
Dalam backpropagation ini, fungsi aktivasi yang dipakai harus memenuhi
beberapa syarat yaitu : kontinyu, terdeferensial dengan mudah dan merupakan
fungsi yang tidak turun. fungsi yang dipakai adalah sigmoid biner, tansig dan
purelin, dengan persamaan sebagai berikut:
Fungsi sigmoid:
𝑦𝑦 = 𝑓𝑓(𝑥𝑥) =1
1 + 𝑒𝑒−𝜃𝜃𝑥𝑥
𝑑𝑑𝑒𝑒𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑦𝑦′ = 𝑓𝑓′(𝑥𝑥) = 𝜃𝜃𝑓𝑓(𝑥𝑥)[1 − 𝑓𝑓(𝑥𝑥)]
Fungsi tansig:
𝑦𝑦 = 𝑓𝑓(𝑥𝑥) =1 − 𝑒𝑒−2𝑥𝑥
1 + 𝑒𝑒−2𝑥𝑥
𝑑𝑑𝑒𝑒𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑦𝑦′ = 𝑓𝑓′(𝑥𝑥) = [1 + 𝑓𝑓(𝑥𝑥)][1 − 𝑓𝑓(𝑥𝑥)]
Fungsi purelin
𝑦𝑦 = 𝑓𝑓(𝑥𝑥) = 𝑥𝑥
𝑑𝑑𝑒𝑒𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 𝑦𝑦′ = 𝑓𝑓′(𝑥𝑥) = 1
Algoritma Pelatihan JST Backpropagation
a. Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil)
b. Kerjakan langkah-langkah berikut selama kondisi berhenti bernilai false :
1. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran,
kerjakan :
Feedforward :
a. Tiap-tiap unit input (Xi, i=1,2,3,…n) menerima sinyal xi dan
meneruskan sinyal tersebut ke semua unit pada lapisan yang ada
diatasnya (lapisan tersembunyi)
b. Tiap-tiap unit tersembunyi (Zi, j=1,2,3,…p) menjumlahkan sinyal-sinyal
input terbobot : ∑=
+=n
iijijj VXVoinz
1_
gunakan fungsi aktivasi untuk menghitung sinyal outputnya: Zj =
f(Z_inj)
Dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit
output).
c. Tiap-tiap unit output (Yk,, K=1,2,3,…m) menjumlahkan sinyal-sinyal
input terbobot.
∑=
+=p
ijkikk WZWoinY
1_
gunakan fungsi aktivasi untuk menghitung sinyal outputnya:
Yk = f(Y_ink)
Dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit
output).
Backpropagation
d. Tiap-tiap unit output (Yk, K=1,2,3,…m) menerima target pola yang
berhubungan dengan pola input pembelajaran, hitung informasi errornya
:
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk
memperbaiki nilai Wjk) :
hitung juga koreksi bias (yang nantinya akan digunakan untuk
memperbaiki nilai Wok):
kokW δα=∆ kirimkan ini kδ ke unit-unit yang ada dilapisan
bawahnya.
e. Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…p) menjumlahkan delta
inputnya (dari unit-unit yang berada pada lapisan diatasnya):
∑=
=m
kjkkj Win
1_ δδ
Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk
menghitung informasi error :
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk
memperbaiki nilai V1j) : ijjk XV αδ=∆
Hitung juga koreksi bias (yang nantinya akan digunakan untuk
memperbaiki nilai V0j): jjV αδ=∆ 0
f. Tiap-tiap unit output (Yk=1,2,3,…m) memperbaiki bias dan bobotnya
(i=1,2,3,…p) :
Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…p) memperbaiki bias dan
bobotnya (i=0,1,2,…n) :
2. Tes kondisi berhenti :
3. Langkah-langkah diatas adalah untuk satu kali siklus pelatihan (satu
epoch). Proses pelatihan diulang sampai jumlah epoch tertentu atau telah
tercapai target error yang diinginkan.
4..Hasil akhir pelatihan jaringan adalah didapatkannya bobot-bobot W1…. Wn
yang kemudian disimpan untuk pengujian jaringan.
Dua fase dilakukan pada tahap pengenalan wajah dengan JST yaitu pelatihan
dan pengujian. Pelatihan menggunkan sebagian data hasil ekstraksi fitur
tekstur, sementara pengujian dilakukan dengan citra wajah lainnya
Gambar 5. DIAGRAM ALIR IMPLEMENTASI JST UNTUK PENGENALAN WAJAH
Pembahasan dan Analisis Hasil Pengujian
Pada prakteknya, perancangan arsitektur JST Backpropagation sangat
tergantung pada masalah yang akan diselesaikan. Untuk himpunan masukan
berdimensi besar atau jumlah kelas keluaran yang dinginkan besar, maka
diperlukan jumlah node pada lapisan tersembunyi yang lebih banyak. Atau
diperlukan lebih dari satu lapisan tersembunyi, tetapi tentu saja ada batas
optimumunya untuk kedua parameter tersebut.
Pengujian pertama kita lakukan pengujian terhadap jumlah lapisan
tersembunyi yaitu dengan mengubah-ngubah jumlah unit pada lapisan
tersembunyi :
Table 1. Pengujian Terhadap Jumlah Unit Pada Lapisan Tersembunyi.
Berikut adalah grafik dari setiap jumlah unit pada lapisan :
Grafik 1 Grafik Kuadrat Error Dengan Jumlah Lapisan Tersembunyi 15.
Grafik 2 Grafik Kuadrat Error Dengan Jumlah Lapisan Tersembunyi 16.
Grafik 3 Grafik Kuadrat Error Dengan Jumlah Lapisan Tersembunyi 17.
00.10.20.30.40.50.60.70.80.9
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81
epoh
kuad
ratv
err
or
00.10.20.30.40.50.60.70.80.9
1
1 20 39 58 77 96 115
134
153
172
191
210
229
248
kuad
rat e
rror
epoh
00.10.20.30.40.50.60.70.80.9
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97
epoh
kuad
rat e
rror
Input : 225 Maksimum epoh : 2500
Output : 10 Target error : 0.0001
Learning rate (α ) : 0.9
Jumlah
lapisan
tersembunyi
Epoh Dikenali Tidak
Dikena
li
Persentase (%)
15 85 9 1 90 %
16 256 10 0 100 %
17 98 10 0 100 %
18 290 10 0 100 %
Grafik 4 Grafik Kuadrat Error Dengan Jumlah Lapisan Tersembunyi 18.
Pada pengujian selanjutnya penulis akan menggunakan jumlah unit pada
lapisan tersembunyi 18, jumlah unit input 225, jumlah unit output 10, maksimum
epoh 2500, target error 0.0001 dan dengan nilai learning rate (α ) yang diubah-
ubah. Pada pengujian ini penulis menguji tiap citra wajah sebanyak 10 kali meng-
input-kan pola wajah yang akan dikenali.
1. Nilai learning rate (α ) = 0.5
Citra Wajah
Dikenali Tidak dikenali
Persentase (%)
1 9 9 50% 2 7 11 39% 3 7 11 40% 4 10 8 55% 5 11 7 60% 6 7 11 40% 7 11 7 61% 8 9 9 50% 9 11 7 60%
10 11 7 60% 11 9 9 50% 12 7 11 40% 13 7 11 38% 14 9 9 50% 15 9 9 49% 16 9 9 50% 17 13 5 70% 18 11 7 60%
Rerata 51%
00.10.20.30.40.50.60.70.80.9
1
1 17 33 49 65 81 97 113
129
145
161
177
193
209
225
241
257
273
289
epohku
adra
t err
or
Grafik 5 Grafik Kuadrat Error Dengan Nilai Learning Rate (α ) = 0.5
2. Nilai learning rate (α ) = 0.6
Citra Wajah
Dikenali Tidak dikenali
Persentase (%)
1 10 8 55% 2 10 8 53% 3 11 7 60% 4 11 7 62% 5 13 5 70% 6 7 11 40% 7 10 8 55% 8 10 8 53% 9 10 8 58%
10 11 7 60% 11 9 9 48% 12 9 9 50% 13 7 11 38% 14 9 9 50% 15 9 9 49% 16 9 9 50% 17 13 5 70% 18 11 7 60%
Rerata 55%
Grafik 6 Grafik Kuadrat Error Dengan Nilai Learning Rate (α ) = 0.6
00.10.20.30.40.50.60.70.80.9
1
1 11 21 31 41 51 61 71 81 91 101
111
121
131
141
151
161
171
181
epoh
kuad
rat e
rror
0
0.2
0.4
0.6
0.8
1
1 20 39 58 77 96 115
134
153
172
191
210
229
248
267
286
305
324
343
Epoh
Kua
drat
Err
or
3. Nilai learning rate (α ) = 0.7
Citra Wajah
Dikenali Tidak dikenali
Persentase (%)
1 10 8 58% 2 10 8 54% 3 12 6 65% 4 11 7 62% 5 13 5 70% 6 7 11 40% 7 10 8 54% 8 10 8 53% 9 10 8 58%
10 11 7 61% 11 9 9 48% 12 9 9 50% 13 7 11 38% 14 11 7 60% 15 9 9 49% 16 9 9 50% 17 12 6 69% 18 12 6 68%
Rerata 56%
Grafik 6 Grafik Kuadrat Error Dengan Nilai Learning Rate (α ) = 0.7
4. Nilai learning rate (α ) = 0.8
Citra Wajah
Dikenali Tidak dikenali
Persentase (%)
1 11 7 60% 2 11 7 60% 3 12 6 68%
00.10.20.30.40.50.60.70.80.9
1
1 18 35 52 69 86 103
120
137
154
171
188
205
222
239
256
273
290
307
324
Epoh
Kua
drat
Err
or
4 12 6 65% 5 13 5 70% 6 9 9 48% 7 11 7 59% 8 11 7 60% 9 10 8 58%
10 11 7 61% 11 9 9 48% 12 9 9 50% 13 7 11 38% 14 11 7 60% 15 9 9 49% 16 9 9 50% 17 12 6 69% 18 12 6 68%
Rerata 58%
Grafik 8 Grafik Kuadrat Error Dengan Nilai Learning Rate (α ) = 0.8
5. Nilai learning rate (α ) = 0.9
Citra Wajah
Dikenali Tidak dikenali
Persentase (%)
1 11 7 62% 2 11 7 61% 3 11 7 63% 4 11 7 60% 5 12 6 64% 6 11 7 62% 7 11 7 61% 8 9 9 50% 9 13 5 70%
10 11 7 60% 11 13 5 70% 12 11 7 60% 13 13 5 70% 14 11 7 60%
00.10.20.30.40.50.60.70.80.9
1
1 19 37 55 73 91 109
127
145
163
181
199
217
235
253
271
289
307
325
Epoh
Kua
drat
Err
or
15 13 5 70% 16 11 7 60% 17 13 5 70% 18 11 7 60%
Rerata 63%
Grafik 9 Grafik Kuadrat Error Dengan Nilai Learning Rate (α ) = 0.9
PENUTUP
Kesimpulan
Implementasi Jaringan Saraf Tiruan Backpropagation untuk Pengenalan
wajah dapat dibuat dengan program MATLAB 7.0 pada Penelitian ini. Tahapan
Penelitian terdiri atas Preprosesing Citra Wajah, Ekstraksi Citra Wajah dan
Pengenalan Citra Wajah dengan JST. Citra Wajah yang diuji tiga orang dengan: 1.
Variasi jarak yaitu dekat (<2m) dan sedang (2-5m), 2. Variasi piksel 800x600
piksel dan 640x480 piksel. Pada ekstraksi citra wajah dilakukan dengan ekstraksi
fitur tekstur yang berbasis histogram, sedangkan JST menggunakan jaringan
Backpropagation
Dari hasil pengamatan dikaitkan dengan permasalahan dan tujuan dilakukannya
pembuatan penelitian ini maka dapat diambil beberapa hal:
1. Perangkat lunak ini dapat mengelompokkan citra dengan menggunakan
segmentasi citra dengan metode ekstraksi fitur tekstur.
2. Pola Citra Wajah tersebut dapat dikenali sebagai Citra Wajah dengan
Jaringan Syaraf Tiruan dengan menggunakan Backpropagation.
3. Pengenalan pola Citra Wajah akan mengalami kesalahan jika jaringan syaraf
tiruan yang kita bangun tidak sesuai dengan input data yang kita masukkan.
00.10.20.30.40.50.60.70.80.9
1
1 17 33 49 65 81 97 113
129
145
161
177
193
209
225
241
257
273
289
epoh
kuad
rat e
rror
4. Implementasi Jaringan Saraf Tiruan Backpropagation untuk Pengenalan
wajah dapat dibuat dengan program MATLAB pada Penelitian ini.
5. Pada Pelatihan JST kondisi terbaik dihasilkan jumlah unit pada lapisan
tersembunyi 18, jumlah unit input 225, jumlah unit output 10, maksimum
epoh 2500, target error 0.001
6. Pada Pelatihan JST kondisi terbaik dihasilkan jumlah unit pada lapisan
tersembunyi 18, jumlah unit input 225, jumlah unit output 10, maksimum
epoh 2500, target error 0.001 dan learnng rate=0.9
Saran
Banyaknya jumlah data citra untuk setiap wajah orang yang dilatih dapat
mempengaruhi hasil proses pengenalan. Semakin banyak data yang dilatih,
jaringan akan semakin baik mengenali pola sehingga hasil pengenalan akan
lebih akurat, namun akan berdampak dengan melambatnya proses pelatihan.
DAFTAR PUSTAKA
[1] Darma, Putra. 2013. Pengolahan Citra Digital. Penerbit Andi
[2] Hsu, R.L., Abdel-Mottaleb, M. dan Jain, A.K. 2001. "Face Detection in
Color Images". Proceedings of the IEEE International Conference on
Image Processing1.
[3] Kadir, Abdul. Susanto, Adi. 2012. Teori dan Aplikasi Pengolahan Citra.
Yogyakarta-Penerbit ANDI.
[4] Kusumadewi, Sri. 2003. Artificial Intellegence. Yogyakarta-Graha Ilmu.
[5] Kusumadewi, Sri. 2004. Membangun Jaringan Saraf Tiruan
Menggunakan MATLAB&Exel Link. Yogyakarta-Graha Ilmu.
[6] Sianipar. R.H. dkk. 2013. MATLAB untuk Pemrosesan Citra Digita.
Bandung- Penerbit Informatika.
[7] Sianipar. R.H. dkk. 2013. Pemrograma MATLAB dalam Contoh dan
Penerapan. Bandung-Penerbit Informatika.
[8] Siang, Jong Jek. 2005. “Jaringan Syaraf Tiruan & Pemrogramannya
Menggunakan Matlab”. Yogyakarta-Penerbit ANDI.