/  6
 
1
Penerapan Jaringan Syaraf Tiruan untuk Mendeteksi PosisiWajah Manusia pada Citra Digital
Setyo Nugroho
1
, Agus Harjoko
2
 
1
 Jurusan Teknik Informatika - STMIK STIKOM Balikpapan Jl Kapten P Tendean 2A Balikpapan 76121
2
Program Pascasarjana Ilmu Komputer - Universitas Gadjah MadaYogyakarta
Abstrak
Salah satu bagian penting dalam proses pengenalan wajah adalah mendeteksi posisi wajah. Dalam makalah inikami merancang dan mengimplementasikan sistem pendeteksi posisi wajah dengan menggunakan jaringansyaraf tiruan. Sistem ini dilatih dengan menggunakan contoh-contoh wajah yang diberikan. AlgoritmaQuickprop dan metode active learning digunakan untuk mempercepat proses pelatihan sistem. Dari hasileksperimen dengan menggunakan 23 file citra berisi 149 wajah, sistem pendeteksi wajah ini memberikan hasil
detection rate
71,14% dan
 false positive
62.
 Kata kunci
: deteksi wajah, jaringan syaraf tiruan, quickprop, active learning
1. Pendahuluan
Dengan semakin tingginya kemampuan komputeruntuk memproses data dalam jumlah besar dengankecepatan yang tinggi, sistem biometrik semakinbanyak diaplikasikan dalam kehidupan manusia.Sistem biometrik adalah sistem untuk melakukanidentifikasi dengan cara menggunakan ciri-ciri fisik atau anggota badan manusia, seperti sidik jari, retinamata, suara. Teknologi biometrik ini memilikibeberapa kelebihan seperti tidak mudah hilang, tidak dapat lupa, tidak mudah dipalsukan, dan memilikikeunikan yang berbeda antara manusia satu denganyang lain.Salah satu cara yang digunakan dalam sistembiometrik adalah pengenalan wajah. Sistempengenalan wajah bertujuan untuk mengidentifikasiwajah seseorang dengan cara membandingkan wajahtersebut dengan database wajah yang sudah ada.Dalam sistem pengenalan wajah, pendeteksian posisiwajah merupakan salah satu tahap yang pentingkarena di dunia nyata wajah dapat muncul di dalamcitra dengan berbagai ukuran dan posisi, dan denganlatar belakang yang bervariasi [Hjelmas, 2001].Dalam makalah ini kami merancang danmengimplementasikan sistem pendeteksi wajahmanusia yang dapat memberikan output berupa jumlah, posisi, dan ukuran wajah manusia yangditemukan di dalam suatu citra digital.
2. Jaringan Syaraf Tiruan
Jaringan syaraf tiruan adalah suatu sistempemrosesan informasi yang cara kerjanya memilikikesamaan tertentu dengan jaringan syaraf biologis[Fausett, 1994]. Jaringan syaraf tiruandikembangkan sebagai model matematis dari syaraf biologis dengan berdasarkan asumsi bahwa:1. Pemrosesan terjadi pada elemen-elemensederhana yang disebut neuron.2. Sinyal dilewatkan antar neuron melaluipenghubung.3. Setiap penghubung memiliki bobot yang akanmengalikan sinyal yang lewat.4. Setiap neuron memiliki fungsi aktivasi yangakan menentukan nilai sinyal output.Jaringan syaraf dapat digolongkan menjadi berbagai jenis berdasarkan pada arsitekturnya, yaitu polahubungan antara neuron-neuron, dan algoritmatrainingnya, yaitu cara penentuan nilai bobot padapenghubung.
2.1. Multi-Layer Perceptron
Multi-Layer Perceptron adalah jaringan syaraf tiruan
 feed-forward 
yang terdiri dari sejumlah neuron yangdihubungkan oleh bobot-bobot penghubung.Neuron-neuron tersebut disusun dalam lapisan-lapisan yang terdiri dari satu lapisan input (
input layer 
), satu atau lebih lapisan tersembunyi (
hiddenlayer 
), dan satu lapisan output (
output layer 
).Lapisan input menerima sinyal dari luar, kemudianmelewatkannya ke lapisan tersembunyi pertama,yang akan diteruskan sehingga akhirnya mencapailapisan output [Riedmiller, 1994].Setiap neuron
i
di dalam jaringan adalah sebuah unitpemrosesan sederhana yang menghitung nilaiaktivasinya yaitu
s
i
 
terhadap input eksitasi yang jugadisebut net input
net 
i
.
=
)(
i pred  jiij ji
wsnet 
θ  
(1)
 
2dimana
 pred(i)
melambangkan himpunan predesesordari unit
i
,
w
ij
 
melambangkan bobot koneksi dariunit
 j
ke unit
i
, dan
θ  
i
adalah nilai bias dari unit
i
.Untuk membuat representasi menjadi lebih mudah,seringkali bias digantikan dengan suatu bobot yangterhubung dengan unit bernilai 1. Dengan demikianbias dapat diperlakukan secara sama dengan bobotkoneksi.
2.2. Supervised Learning
Tujuan pada pembelajaran
supervised learning
 adalah untuk menentukan nilai bobot-bobot koneksidi dalam jaringan sehingga jaringan dapatmelakukan pemetaan (
mapping
) dari input ke outputsesuai dengan yang diinginkan. Pemetaan iniditentukan melalui satu set pola contoh atau datapelatihan (
training data set 
).Setiap pasangan pola
 p
terdiri dari vektor input
 x
 p
 
dan vektor target
 p
. Setelah selesai pelatihan, jikadiberikan masukan
 x
 p
seharusnya jaringanmenghasilkan nilai output
 p
. Besarnya perbedaanantara nilai vektor target dengan output aktualdiukur dengan nilai error yang disebut juga dengan
cost function
:
=
P pn pn pn
s E 
2
)(21
(2)di mana
n
adalah banyaknya unit pada
output layer 
.Tujuan dari training ini pada dasarnya sama denganmencari suatu nilai minimum global dari
 E 
.
2.3. Algoritma Backpropagation
Salah satu algoritma pelatihan jaringan syaraf tiruanyang banyak dimanfaatkan dalam bidang pengenalanpola adalah backpropagation. Algoritma iniumumnya digunakan pada jaringan syaraf tiruanyang berjenis multi-layer feed-forward, yangtersusun dari beberapa lapisan dan sinyal dialirkansecara searah dari input menuju output.Algoritma pelatihan backpropagation pada dasarnyaterdiri dari tiga tahapan [Fausett, 1994], yaitu:1. Input nilai data pelatihan sehingga diperolehnilai output2. Propagasi balik dari nilai error yangdiperoleh3. Penyesuaian bobot koneksi untuk meminimalkan nilai errorKetiga tahapan tersebut diulangi terus-menerussampai mendapatkan nilai error yang diinginkan.Setelah training selesai dilakukan, hanya tahappertama yang diperlukan untuk memanfaatkan jaringan syaraf tiruan tersebut.Secara matematis [Rumelhart, 1986], ide dasar darialgoritma backpropagation ini sesungguhnya adalahpenerapan dari aturan rantai (
chain rule
) untuk menghitung pengaruh masing-masing bobotterhadap fungsi error:
ijiiij
wss E w E 
=
(3)dan
 jiijiiiiji
snet  f wnet net sws
)(
log
==
(4)dimana
ij
w
adalah bobot penghubung dari neuron
 j
ke neuron
i
,
i
s
adalah output, dan
i
net 
adalah jumlah hasilkali pada input dari neuron
i
.
2.4. Algoritma Quickprop
Pada algoritma Quickprop dilakukan pendekatandengan asumsi bahwa kurva fungsi error terhadapmasing-masing bobot penghubung berbentuk parabola yang terbuka ke atas, dan gradien darikurva error untuk suatu bobot tidak terpengaruh olehbobot-bobot yang lain [Fahlman, 1988]. Dengandemikian perhitungan perubahan bobot hanyamenggunakan informasi lokal pada masing-masingbobot. Perubahan bobot pada algoritma Quickpropdirumuskan sebagai berikut:
)1(* )()1( )()()(
+=
ww E w E w E w E w
ε 
(5)di mana:
)(
w
: perubahan bobot
)1(
w
: perubahan bobot pada epochsebelumnya
ε 
: adalah learning rate
)(
w E 
: derivatif error
)1(
w E 
: derivatif error pada epoch sebelumnyaPada eksperimen dengan masalah XOR danencoder/decoder [Fahlman, 1988], terbukti bahwaalgoritma Quickprop dapat meningkatkan kecepatantraining. Eksperimen dari [Schiffmann, 1993] jugamenunjukkan peningkatan kecepatan training danunjuk kerja yang signifikan.
3. CARA PENELITIAN
Dalam penelitian ini kami menggunakan data yangterdiri dari satu set citra untuk pelatihan (
trainingdata set 
) dan satu set citra untuk pengujian (
testingdata set 
). Untuk data pelatihan digunakan citrawajah berukuran 20x20 pixel sebanyak 3000 buah.Sedangkan untuk citra non-wajah diperoleh dari file-file citra yang tidak terdapat wajah manusia didalamnya.
 
3Sistem ini menggunakan jaringan syaraf tiruan (JST)dengan jenis multi-layer perceptron. Arsitektur yangdigunakan diadaptasi dari hasil penelitian [Rowley,1998], namun lebih disederhanakan.Lapisan input terdiri dari 400 unit input, yangmenerima masukan dari nilai grayscale pixel 20x20dari subcitra yang akan dideteksi. Sebelum dijadikaninput untuk JST, nilai grayscale yang berkisar dari 0sampai 255 dinormalisasi menjadi antara –1 dan 1.Lapisan output terdiri dari sebuah unit dengan nilaikeluaran berkisar antara –1 dan 1. Pada training dataset didefinisikan nilai 1 untuk data wajah dan –1untuk data non-wajah.Lapisan tersembunyi (
hidden layer 
) terdiri dari total25+16=41 unit. Bagian pertama terhubung denganlapisan input yang membentuk 25 area berukuran4x4 pixel. Bagian kedua terhubung dengan lapisaninput yang membentuk 16 area berukuran 5x5 pixel.Secara keseluruhan jaringan ini memiliki 883 bobotpenghubung, sudah termasuk bias. Jaringan ini lebihsederhana dibandingkan dengan sistem [Rowley,1998] yang jumlah bobot penghubungnya mencapai4357.
3.1. Teknik Active Learning
Training dilakukan secara bertahap denganmenggunakan metode
active learning
[Sung, 1994].Pada tahap pertama training dimulai denganmenggunakan sedikit data non-wajah. Pada tahapberikutnya, data training non-wajah ditambah sedikitdemi sedikit. Namun data tambahan tersebutdiseleksi hanya untuk data tertentu saja, yaitu datayang yang dideteksi sebagai wajah (
 false positive
)pada hasil training tahap sebelumnya. Dengandemikian jumlah data training yang digunakan untuk  jaringan syaraf tiruan akan lebih sedikit. Karena datatraining yang digunakan lebih sedikit, waktu yangdiperlukan untuk proses training juga akan lebihsingkat. Gambar 1 menunjukkan teknik 
activelearning
yang digunakan untuk sistem pendeteksiwajah.
3.2. Detektor Wajah
Bagian detektor wajah menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakanuntuk training. Bobot penghubung yang digunakandiambil dari bobot terakhir yang dihasilkan padaproses training. Hasil deteksi akan diputuskansebagai wajah jika output dari JST lebih dari 0, dandiputuskan sebagai non-wajah jika output JSTkurang dari atau sama dengan 0.
Gambar 1: Teknik Active Learning untuk SistemPendeteksi Wajah
3.3. Ekstraksi Subcitra
Posisi wajah bisa berada di mana saja pada citrayang akan dideteksi. Untuk itu digunakan windowberukuran 20x20 pixel yang akan digeser melaluiseluruh daerah citra. Daerah citra yang dilewati olehwindow tersebut akan diperiksa satu persatu apakahada wajah atau tidak di area tersebut.Untuk mengantisipasi ukuran wajah yang bervariasidi dalam citra yang dideteksi, citra diperkecil secarabertahap dengan skala perbandingan 1:1,2sebagaimana dilakukan pada [Rowley, 1998]. Padasetiap ukuran citra yang diperkecil, window 20x20pixel akan digeser melalui seluruh area citra.
3.4. Preprocessing
Sebelum digunakan sebagai
training data set 
, citraakan melalui tahap-tahap preprocessing berikut:
Histogram Equalization, untuk memperbaikikontras citra.
Masking, yaitu menghilangkan bagian sudut-sudut citra untuk mengurangi variasi citrasehingga memperkecil dimensi data.
Normalisasi, yaitu mengkonversi nilaiintensitas grayscale citra sehingga memilikirange antara –1 sampai dengan 1.Tahap-tahap preprocessing ini juga digunakan padasaat proses pendeteksian wajah.
False PositiveHasil DeteksiDeteksiWajah
 
TrainingJST
 
Data TrainingBobot JSTHasil TrainingPilihrandom
 
Koleksi ContohData Non-WajahKoleksi ContohData Wajah

Share & Embed

More from this user

Recent Readcasters

Add a Comment

Characters: ...

snpages.infoleft a comment

info demo program deteksi wajah dengan opencv ada di http://deteksiwajah.blogspot.com/

snpages.infoleft a comment

demo program dan source code deteksi wajah bisa diperoleh melalui http://www.snpages.info/content/sourc...

snpages.info replied:

demo program dg opencv ada di http://deteksiwajah.blogspot.com/
11 / 20 / 2011

Nunung Az Zahra replied:

ga kebuka neh...
03 / 05 / 2011