Anda di halaman 1dari 38

KARYA TULIS ILMIAH

PENGENALAN KARIKATUR WAJAH DENGAN JARINGAN SYARAF TIRUAN

HETEROASSOCIATIVE MEMORY

Oleh :
I Gusti Agung Widagda, S.Si, M.Kom

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM


UNIVERSITAS UDAYANA
2018
Pengenalan Karikatur Wajah dengan Jaringan Syaraf Tiruan
Heteroassociative Memory

I G.A. Widagda

RINGKASAN

Pengenalan wajah (face recognition) merupakan salah satu bidang kajian dari
pengenalan objek (object recognition). Pengenalan karikatur wajah merupakan salah
satu implementasi dari pengenalan wajah berbasis sketsa (sketch-based face recognition
(SBFR)). SBFR biasanya diaplikasikan di bidang penegakan hukum untuk mengenali
terduga pelaku kriminal. Sketsa wajah dari terduga akan dicocokkan dengan beberapa
wajah foto yang tersimpan dalam database kepolisian. Jaringan Syaraf Tiruan (JST)
merupakan salah satu metode yang biasanya dipakai untuk pengenalan wajah termasuk
karikatur wajah. Pengenalan wajah dengan JST terdiri dari dua tahapan yaitu : pelatihan
(training) dan pengujian (testing). Tahap pelatihan bertujuan untuk menghitung bobot
(weight) jaringan sedangkan tahap pengujian untuk mengenali wajah berdasarkan bobot
yang dihasilkan dalam proses pelatihan. JST Heteroassociative Memory (HM)
merupakan JST yang lebih efisien dibanding JST lainnya seperti : Perceptron dan
Backpropagation. Algoritma dari JST HM lebih singkat sehingga waktu komputasi yang
diperlukan juga semakin cepat. Dalam penelitian ini dipergunakan 8 buah citra karikatur
wajah, 4 buah citra tanpa noise dan sisanya ber-noise. Noise berupa penambahan detil
pada wajah berupa : rambut, kumis, jambang dan jenggot. Dalam tahap pelatihan
dipakai 4 citra tanpa noise sedangkan dalam tahap testing baik citra ber-noise maupun
tanpa noise akan diujikan. Hasil penelitian menunjukkan JST HM dapat mengenali 8
buah karikatur wajah tersebut, baik yang ber-noise maupun tanpa noise.

Kata kunci : jaringan syaraf tiruan, Heteroassociative Memory , karikatur wajah

ii
Facial-Caricature Recognition by means of Heteroassociative
Memory’s Neural Network

I G.A. Widagda

SUMMARY

Face recognition is one of the field of study of object recognition. The


identification of caricature facial is one of the implementation of sketch-based face
recognition (SBFR). SBFR is usually applied in the field of law enforcement to identify
the suspects of criminals. Face sketches of the suspects will be matched with some face
photos stored in police databases. Artificial Neural Network (ANN) is one of the
methods normally used for face recognition including caricature faces. Facial
recognition by using ANN consists of two stages: training and testing. The training
stage aims to calculate the weight (weight) of the network while the testing phase to
recognize the face based on the weight generated in the training process.
Heteroassociative Memory (HM) is a more efficient ANN than other one such as
Perceptron and Backpropagation. The algorithm of HM is shorter so that the
computation time required is also faster. In this study used 8 images of caricature face,
4 images without noise and the rest of the noise. Noise in the form of additional details
on the face of: hair, mustache and beard. In the training step used 4 images without
noise while in the testing stage both the image with noise and without noise will be
tested. The results showed that HM can recognize the 8 caricature faces, both noise and
no noise.
Keywords : Neural Network, Heterassociative Memory , facial caricature

iii
KATA PENGANTAR

Kami memanjatkan puji syukur kepada Tuhan Yang Maha Esa, karena berkat
rahmat-Nya maka karya tulis ilmiah yang berjudul ”Pengenalan Karikatur Wajah
dengan Jaringan Syaraf Tiruan Heteroassociative Memory” dapat kami rampungkan.
Kami menyampaikan rasa terima kasih yang sebesar-besarnya kepada pihak-
pihak yang telah membantu penyelesaian karya tulis ini diantaranya :
-Bapak Dekan FMIPA, Universitas Udayana
-Bapak Koordinator Program Studi Fisika, FMIPA, Universitas Udayana
-Rekan - rekan dosen Jurusan Fisika, FMIPA, Universitas Udayana
kami menyadari bahwa karya tulis ini masih mengandung banyak kekurangan.
Sehingga kami sangat mengharapkan masukan, saran dan kritik dari semua pihak demi
kesempurnaan hasil karya tulis ini.

Jimbaran, Juni 2018

Penyusun

iv
DAFTAR ISI

Halaman

HALAMAN JUDUL i

RINGKASAN/SUMMARY ii

KATA PENGANTAR iv

DAFTAR ISI v

DAFTAR TABEL vi

DAFTAR GAMBAR vii

I PENDAHULUAN 1

II TINJAUAN PUSTAKA 3

III TUJUAN DAN MANFAAT PENELITIAN 14

IV METODE PENELITIAN 15

V HASIL DAN PEMBAHASAN 25

VI KESIMPULAN DAN SARAN 30

VII DAFTAR PUSTAKA 31

v
DAFTAR TABEL

halaman

Tabel 4.1 Data Pelatihan JST HM 15


Tabel 4.2 Data Pengujian bernoise 16
Tabel 5.1 Hasil testing dengan citra wajah pelatihan (tanpa noise) 26
Tabel 5.1 Hasil testing dengan citra wajah bernoise 28

vi
DAFTAR GAMBAR

halaman

Gambar 2.1 Struktur neuron manusia 3


Gambar 2.2 Struktur neuron jaringan syaraf 4
Gambar 2.3 Model JST 4
Gambar 2.4 Model JST satu lapisan 5
Gambar 2.5 Model JST banyak lapisan 6
Gambar 2.6 Fungsi linear 7
Gambar 2.7 Fungsi threshold biner 7
Gambar 2.8 Fungsi threshold bipolar 7
Gambar 2.9 Fungsi linear piecewise 8
Gambar 2.10 Fungsi Sigmoid biner 8

Gambar 2.11 Fungsi Sigmoid bipolar 9


Gambar 2.12 Arsitektur JST Heteroassociative Memory 10
Gambar 2.13 Arsitektur JST Hebb 2 input, 1 output 12
Gambar 4.1 Arsitektur JST HM untuk Pengenalan Wajah 17
Gambar 4.2 Diagram Alir Pelatihan JST HM 17
Gambar 4.3 Diagram Alir testing JST HM 18
Gambar 4.4 Rancangan GUI Aplikasi JST HM 18
Gambar 5.1 Tampilan Aplikasi untuk proses pelatihan JST HM 25
Gambar 5.2 Hasil testing dengan citra wajah no.2 26
Gambar 5.3 Hasil testing dengan citra wajah no.3 26
Gambar 5.4 Hasil testing dengan citra wajah bernoise no.2 27
Gambar 5.5 Hasil testing dengan citra wajah bernoise no.3 28

vii
I. PENDAHULUAN

Pengenalan wajah (face recognition) merupakan salah satu bidang kajian dalam

pengenalan objek (object recognition). Pengenalan objek bertujuan untuk mendeteksi dan

mengenali sebuah objek dengan jalan mengolah daerah tertentu pada citra masukan dan

mengecek apakah citra tersebut cocok dengan salah satu citra yang ada dalam database.

Proses pengenalan dilakukan dengan memakai model-model objek yang sudah diketahui

sebelumnya. Pengenalan objek tersebut merupakan proses yang sangat komplek. Manusia

dapat melakukan proses pengenalan objek dengan mudah dan cepat. Bertolak belakang jika

algoritma pengenalan tersebut diimplementasikan pada mesin maka pengenalan objek akan

menjadi sangat sulit (Sinkar dan Deshpande, 2015). Metode yang sering dipakai dalam

pengenalan objek yaitu momen invarian (invariant momen). Pengenalan objek dengan momen

invarian dilakukan dengan menghitung jarak Euclidian (Euclidian distance) antara momen

invarian citra uji dan seluruh citra yang ada dalam database. Jarak Euclidien terkecil akan

dipilih sebagai objek yang cocok dengan objek uji. Beberapa penelitian terdahulu yang telah

mempergunakan momen invarian untuk pengenalan objek adalah Ming-Kuei (1962), Zhihu

dan Jinsong (2010) serta Abu-Mostafa dan Psaltis (1984). Kelemahan metode momen

invarian yaitu sensitif terhadap noise. Semakin tinggi orde dari momen invarian maka

semakin rentan terhadap noise (Teh dan Chin, 1988). Metode lain untuk pengenalan objek

adalah Jaringan Syaraf Tiruan (JST). Metode JST secara garis besar terdiri dari dua tahapan

yaitu : pelatihan (trainning) dan pengujian (testing). Data pelatihan berupa nilai intensitas

pixel citra objek. Dari proses pelatihan akan didapatkan nilai bobot (weight) dari JST.

Selanjutnya nilai bobot ini akan dipakai dalam tahap pengujian. Dalam tahapan pengujian,

JST akan diuji untuk mengenali citra uji. JST telah dipakai dalam beberapa penelitian yang

berkaitan dengan objek termasuk wajah. Penelitian yang dilakukan oleh Sinkar dan

Deshpande (2015), memakai JST Multilayer Perceptron (MLP) untuk mengenali objek.

Dileep dan Danti (2016) melakukan penelitian dengan JST Feed-Forward untuk memprediksi

umur dan gender berbasis wajah. Talele dkk. (2016) melaporkan hasil penelitiannya tentang

pengenalan ekspresi wajah dengan menggunakan jaringan syaraf General Regression Neural

1
Network (GRNN). Verma dan Khunteta (2017) telah melakukan riset tentang pengenalan

ekspresi wajah dengan jaringan syaraf multilayer Feed-Forward. Disamping itu penelitian

tentang pengenalan wajah juga oleh dilakukan Adini dkk. (1997). Metode yang dipakai yaitu

dengan mengubah representasi citra dengan jalan menentukan tepian (edge), turunan

(derivative) dan perkalian dengan filter Gabor. Representasi ini diharapkan tidak akan

berpengaruh pada kondisi citra jika terjadi perubahan penyinaran (illumination), sudut

pandang (viewpoint) dan ekspresi wajah. Dari beberapa penelitian ini didapatkan bahwa

pengenalan objek yang mengandung cacat (noise) masih dapat dilakukan dengan JST. Jadi

metode JST memiliki kelebihan jika dibandingkan dengan metode momen invarian dalam

kaitannya dengan pengenalan objek yang mengandung cacat atau noise. Berdasarkan

kelebihan ini maka dalam penelitian ini digunakan JST. Metode JST yang dipakai adalah

Heteroassociative Memory (HM). Algoritma HM lebih sederhana dan singkat jika

dibandingkan dengan algoritma JST lainnya seperti : Perceptron dan Backpropagation.

Sehingga waktu komputasi yang diperlukan oleh metode HM lebih efisien.

Pengenalan karikatur wajah merupakan salah satu implementasi dari pengenalan wajah

berbasis sketsa (sketch-based face recognition (SBFR)). Salah satu aplikasi dari SBFR yaitu

di bidang penegakan hukum, untuk mengenali wajah terduga pelaku kriminal. Sketsa wajah

dari terduga akan dicocokkan dengan beberapa citra wajah yang tersimpan dalam database

kepolisian (Ouyang dkk., 2016). Penelitian yang dilakukan oleh Yuen dan Man (2007)

ditujukan untuk mengenali citra wajah dengan memakai citra sketsa. Metode yang dipakai

yaitu principle component analysis (PCA) dan linear discriminant analysis (LDA). Klare dkk.

(2011) juga melakukan penelitian untuk mengenali citra sketsa forensik dengan metode local

feature-based discriminant analysis (LFDA).

2
II. TINJAUAN PUSTAKA

2.1 Jaringan Syaraf Tiruan (Artificial Neural Network (ANN))

Jaringan syaraf tiruan (JST) adalah model pengolahan informasi yang

terinsipirasi dari sistem kerja sistem syaraf biologis yaitu otak dalam mengolah

informasi. JST berusaha untuk meniru cara kerja otak manusia terutama dalam proses

belajar. Agar menjadi cerdas maka manusia perlu berlatih (training) atau belajar.

Demikian juga JST perlu dilatih sehingga menjadi pintar seperti manusia. JST awalnya

dilatih mengenali pola-pola misalnya : sidik jari, wajah, suara, kornea dan lain-lain.

Selanjutnya JST tersebut diuji untuk mengenali pola-pola tersebut maka dia akan

mampu mengenalinya dengan baik.

Di dalam otak manusia tersusun atas 10 milyar sel syaraf (neuron) yang saling

berhubungan satu sama lain. Gambar 2.1 memperlihatkan 2 buah neuron pada otak

manusia. Neuron secara garis besar terdiri dari 3 unit yaitu : input, proses, dan output.

Gambar 2.1 Struktur neuron manusia

Denrite merupakan unit input yang berfungsi sebagai tempat masuknya sinyal. Inti sel

(nucleus) adalah unit yang berfungsi untuk memproses sinyal menjadi informasi.

Sedangkan axon berfungsi sebagai unit output untuk mengirim sinyal dari inti menuju

denrite neuron lainnya. Tampak dalam Gambar 2.1 sinyal yang keluar dari axon neuron

1 akan dikirim ke denrite neuron 2. Hubungan antara axon neuron 1 dan denrite neuron

2 terkoneksi lewat synapses. Agar sinyal dari neuron 1 dapat terkirim ke neuron 2 maka

sinyal tersebut harus memenuhi batasan atau nilai ambang tertentu (threshold). Keadaan

dimana 2 buah neuron saling berhubungan maka neuron tersebut dalam keadaan

teraktivasi. Hubungan antara 2 buah neuron terjadi secara adaptif yang artinya

3
hubungan itu terjadi secara dinamis. Dalam proses belajar maka otak selalu memiliki

kemampuan untuk beradaptasi sehingga menjadi lebih cerdas.

2.2 Komponen Jaringan Syaraf

Jaringan syaraf terdiri dari neuron-neuron yang saling berhubungan. Hubungan

antara neuron ini berfungsi untuk mentransformasikan informasi yang diterima lewat

unit input untuk dikirim ke unit keluaran dan menuju ke neuron yang lain. Hubungan

antar neuron ini dinyatakan dengan bobot (weight). Gambar 2.2 memperlihatkan

struktur neuron jaringan syaraf.

Gambar 2.2 Struktur neuron jaringan syaraf

Input berupa informasi akan dikirim neuron dengan nilai bobot kedatangan tertentu.

Informasi dari berbagai neuron ini akan dijumlahkan ( ∑ ). Hasil penjumlahan ini akan

dibandingkan dengan nilai ambang (threshold) tertentu dengan memakai fungsi aktivasi.

Fungsi aktivasi akan dibahas lebih lanjut di sub bab berikutnya. Jika hasil fungsi

aktivasi melewati nilai ambang tertentu maka neuron tersebut akan diaktifkan sedang

jika tidak maka neuron tersebut tidak akan diaktifkan. Neuron yang aktif akan

mengirimkan output melalui bobot ke neuron lainnya.

2.3 Model JST

Untuk menyatakan topologi dari hubungan neuron-neuron dalam jaringan syaraf

maka dibuat model JST seperti diperlihatkan dalam gambar 2.3.

Gambar 2.3 Model JST


4
Jika dinyatakan dalam notasi matematika maka :

y = f(x.w)=f(x1w1+x2w2+…+xmwm)

dimana

y = output

f = fungsi aktivasi

x1, x2,...xm = input

w1, w2,...wm = bobot

Secara garis besar ada 2 model atau arsitektur JST yaitu JST satu lapisan (single layer)

dan JST banyak lapisan (multi layer). JST satu lapisan ditunjukkan dalam Gambar 2.4.

Gambar 2.4 Model JST satu lapisan

Dalam JST satu lapisan ini terdiri dari m input (x1,x2,...xm) dan n output (y1,y2,...ym)

dimana :

y1 = f(x1w11+x2w21+…+xmwm1)

y2 = f(x1w12+x2w22+…+xmwm2)

ym = f(x1w1n+x2w2n+…+xmwmn)

JST banyak lapisan merupakan gabungan dari JST satu lapisan seperti diperlihatkan

pada Gambar 2.5. JST terdiri dari n lapisan dari lapisan ke-1 sampai lapisan ke-n.

Lapisan antara lapisan ke-1 dan lapisan ke-n disebut lapisan tersembunyi (hidden layer).

5
Gambar 2.5 Model JST banyak lapisan

Output dari suatu lapisan menjadi input bagi lapisan berikutnya seperti dinyatakan

dalam persamaan berikut ini. Untuk lapisan ke-1 outputnya yaitu : z1,z2,...zn

z1 = f(x1w11+x2w21+…+xmwm1)

z2 = f(x1w12+x2w22+…+xmwm2)

zm = f(x1w1n+x2w2n+…+xmwmn)
Untuk lapisan ke-2 outputnya yaitu : q1,q2,...qk

q1 = f(z1v11+z2v21+…+znvn1)

q2 = f(z1v12+z2v22+…+znvn2)

qk = f(z1v1k+z2v2k+…+znvnk)

Dan untuk lapisan terakhir, lapisan ke-n outputnya yaitu : y1,y2,...yn. Jika diandaikan

jaringan ini hanya 3 lapisan (n=3) maka :

y1 = f(q1u11+q2u21+…+qkui1)

y2 = f(q1u12+q2u22+…+qkui2)

yn = f(q1u1k+q2u2k+…+qkuin)

2.4 Fungsi Aktivasi

Beberapa fungsi aktivasi yang umumnya dipakai dalam JST diantaranya adalah :

a) Fungsi Linear

Fungsi aktivasi linear dinyatakan dengan persamaan :


y = f ( x) = x (2.1)

Dimana α adalah gradien atau kemiringan fungsi. Bentuk fungsi aktivasi linear

diperlihatkan pada Gambar (2.6).

6
Gambar 2.6 Fungsi linear

b) Fungsi threshold biner

Fungsi aktivasi threshold biner dinyatakan dengan persamaan :

0 jika x  0
y = f ( x) =  (2.2)
 1 jika x  0

Bentuk fungsi aktivasi threshold biner ditunjukkan pada Gambar (2.7).

Gambar 2.7 Fungsi threshold biner

c) Fungsi threshold bipolar

Fungsi aktivasi threshold bipolar dinyatakan dengan persamaan :

− 1 jika x  0
y = f ( x) =  (2.3)
 + 1 jika x  0

Bentuk fungsi aktivasi threshold bipolar ditunjukkan pada Gambar (2.8).

Gambar 2.8 Fungsi threshold bipolar

d) Fungsi linear piecewise


7
Fungsi aktivasi linear piecewise dinyatakan dengan persamaan :

 − 1 jika x  −1

y = f ( x) =  x jika − 1  x  1 (2.4)
1 jika x 1

Bentuk fungsi aktivasi linear piecewise ditunjukkan pada Gambar (2.9).

Gambar 2.9 Fungsi linear piecewise

e) Fungsi Sigmoid biner

Fungsi aktivasi Sigmoid biner dinyatakan dengan persamaan :

1
y = f ( x) = untuk 0  f ( x)  1 (2.5)
1 + e −x
Bentuk fungsi aktivasi Sigmoid biner ditunjukkan pada Gambar (2.10).

Gambar 2.10 Fungsi Sigmoid biner

f) Fungsi Sigmoid bipolar

Fungsi aktivasi Sigmoid bipolar dinyatakan dengan persamaan :

e  x − e − x
y = f ( x) = untuk − 1  f ( x) 1 (2.6)
ex + e −x

Bentuk fungsi aktivasi Sigmoid bipolar ditunjukkan pada Gambar (2.11).

8
Gambar 2.11 Fungsi Sigmoid bipolar

2.5 Metode Pembelajaran JST

Otak manusia agar menjadi cerdas maka perlu berlatih atau belajar. Demikian

juga JST perlu diberi pelatihan atau pembelajaran agar menjadi cerdas. Neuron-neuron

dalam JST saling berhubungan satu sama lain. Seberapa besar hubungan antara satu

neuron dengan neuron lainnya dinyatakan dengan bobot. Selama proses pembelajaran

nilai bobot ini akan berubah secara dinamis. Jika informasi diterima oleh sebuah neuron

dapat terkirim ke neuron tujuan maka nilai bobot yang menghubungkan kedua neuron

tersebut akan bertambah. Demikian sebaliknya jika informasi tidak terkirim maka nilai

bobot akan berkurang. Pada saat pelatihan maka sebuah JST diberikan data atau input

yang berbeda-beda sehingga nilai bobot akan terus mengalami perubahan sampai

tercapai nilai yang seimbang. Jika nilai ini sudah tercapai berarti semua input sudah

terhubung dengan target atau output yang diharapkan.

Metode pembelajaran pada JST secara garis besar terdiri dari dua bagian :

terawasi (supervised learning) dan tidak terawasi (unsupervised learning).

a) Metode pembelajaran terawasi

Dalam metode pembelajaran terawasi maka target atau output yang diharapkan

sudah diketahui sebelumnya. Pola input akan diberikan pada neuron pada lapisan

input kemudian dirambatkan ke neuron lapisan berikutnya sampai lapisan output.

Lapisan output akan menghasilkan output yang akan dibandingkan dengan targetnya.

Jika terjadi perbedaan antara output dengan target maka masih terjadi error. Jika

perbedaan ini cukup besar berarti JST perlu diberikan pembelajaran lagi.

9
b) Metode pembelajaran tidak terawasi

Dalam metode pembelajaran tidak terawasi tidak memerlukan target sehingga

kita tidak dapat menentukan hasil seperti apakah yang diharapkan selama proses

pembelajaran. Nilai bobot diatur dalam suatu range nilai tertentu tergantung dari nilai

input yang diberikan dan selanjutnya akan menghasilkan outputnya secara mandiri.

Metode ini biasanya sangat cocok dipakai untuk kasus pengelempokan pola (pattern

classification)

2.6 Metode Heteroassociative Memory

Metode Heteroassociative Memory (HM) merupakan salah satu metode dalam

pengenalan pola berbasis Jaringan Syaraf Tiruan. Pelatihan dalam metode HM dilakukan

dengan memperbaiki bobot (weight) dari JST. JST HM ini dapat menyimpan sekumpulan

pola (P). Tiap-tiap kumpulan pola adalah pasangan vektor input dan target (s(p), t(p)),

dimana p = 1,2,…,P. Tiap vektor input atau sumber s(p) terdiri dari n komponen, dan tiap

vector target atau output t(p) terdiri dari m komponen. Nilai bobot dpt dicari dg memakai

aturan Hebb (Hebb Rule) atau aturan Delta (Delta Rule). Jika dinyatakan dalam bentuk

persamaan :

wij (baru) = wij (lama) + xi y j (2.7)

dimana,

wij = bobot dari input ke-i menuju output ke-j

xi = input atau sumber ke-i

yj = output atau target ke-j

a) Arsitektur JST Heteroassociative Memory

Arsitektur JST HM diperlihatkan pada Gambar (2.12) .

Gambar 2.12 Arsitektur JST Heteroassociative Memory

10
dimana

xi = input ke-i (i=1,2, ...n)

wij = bobot dari input ke-i ke output ke-j

yj = output ke-j (j = 1,2,...m)

b) Algoritma Pelatihan (training) JST HM

Algoritma pelatihan dalam JST HM terdiri dari beberapa langkah yaitu

(Fausset, 1998) :

Langkah 0 : Bobot diberi nilai awal :

wij = 0 dimana i = 1,2,…,n dan j = 1,2,...m

Langkah 1 : untuk tiap pasangan input dan target s : t, lakukan langkah 2 sampai 4 :

Langkah 2 : set aktivasi untuk unit input :

xi = si (i = 1,2,…,n)

Langkah 3 : set aktivasi untuk unit output :

yj = tj dimana j = 1, 2, ...,m

Langkah 4 : perbaiki nilai bobot :

wij(baru) = wij(lama) +xiyj

Algoritma pelatihan JST HM juga dapat dinyatakan dengan perkalian matrik (Outer

Product) antara vektor input s(p) dan target t(p) seperti berikut ini :

s = ( s1 ,..., si ,...sn ) dan t= ( t1 ,..., t j ,...tm )

Jika S = st dan T = t maka bobot w dapat ditentukan dari perkalian S.T yaitu :

 s1   s1t1 s 1t j s1tm 
   
 . . 
 
w = ST =  si  ( t1 tj tm ) =  si t1 s itj s i tm 
   
   . . 
s   snt1 s nt j s n tm 
 n 
c) Algoritma Pengujian (testing) JST HM

Setelah proses pelatihan maka akan dilanjutkan dengan proses pengujian

dengan menggunakan nilai bobot yang dihasilkan dari proses pelatihan. Algoritma

testing JST HM terdiri dari beberapa langkah yaitu :

Langkah 0 : gunakan bobot (wij) yang didapat dari proses pelatihan


11
Langkah 1 : untuk tiap pasangan input dan target s : t ,lakukan langkah 2 sampai 4 :

Langkah 2 :

xi = si (i = 1,2,…,n)

Langkah 3 : hitung masukan jaringan ke unit output y_inj dengan persamaan :


n
y _ in j =  xi wij
i =1

Langkah 4 : hitung output yj dengan menggunakan fungsi aktivasi. Untuk target

bipolar maka output yj ditentukan dengan fungsi aktivasi threshold

bipolar berikut ini :

 1 jika y _ in j  0

y j = f ( y _ in j ) =  0 jika y _ in j = 0
 −1 jika y _ in  0
 j

Sedangkan untuk target biner maka output yj ditentukan dengan

fungsi aktivasi threshold biner yaitu :

 1 jika y _ in j  0
y j = f ( y _ in j ) = 
 0 jika y _ in j  0

Sedangkan proses pengujian dari hasil pelatihan yang didapatkan lewat perkalian

matrik outer product yaitu :

Langkah 0 : gunakan matrik bobot w yang didapat dari proses pelatihan

Langkah 1 : untuk tiap pasangan input dan target s : t ,lakukan langkah 2 sampai 4 :

Langkah 2 : vektor input x sama dengan vektor sumber s

x=s

dimana x = ( x1 ,..., xi ,...xn ) dan s= ( s1 ,..., s j ,...sm )

Langkah 3 : hitung vektor input jaringan ke unit output y_in dengan persamaan :
y _ in = x.w

Dimana vektor y _ in = ( y _ in1 ,..., y _ in j ,... y _ inm )

Langkah 4 : hitung output yj dengan menggunakan fungsi aktivasi. Untuk target

bipolar maka output yj ditentukan dengan fungsi aktivasi threshold

bipolar berikut ini :


12
 1 jika y _ in j  0

y j = f ( y _ in j ) =  0 jika y _ in j = 0
 −1 jika y _ in  0
 j

Sedangkan untuk target biner maka output yj ditentukan dengan

fungsi aktivasi threshold biner yaitu :

 1 jika y _ in j  0
y j = f ( y _ in j ) = 
 0 jika y _ in j  0

dimana vektor yj :

y j = ( y1 ,..., y j ,... ym ) = ( f ( y _ in1 ),...., f ( y _ in j ),..., f ( y _ inm ))

13
III. TUJUAN DAN MANFAAT PENELITIAN

Tujuan dari penelitian adalah :

Untuk merancang program aplikasi komputer pengenalan karikatur wajah dengan JST

Heteroassociative Memory

Hasil dari penelitian ini diharapkan dapat memberikan manfaat yaitu :

Aplikasi komputer yang dihasilkan dapat dipergunakan untuk mengenali pola wajah

baik yang tanpa noise maupun bernoise

14
IV. METODE PENELITIAN

1. Tempat Penelitian : Lab. Fisika Komputasi, jurusan Fisika, FMIPA, UNUD

2. Peralatan yang digunakan dalam penelitian ini adalah :

a. Perangkat keras :

-Komputer : Notebook intel core i3 2.30 GHz, 4 GB RAM

b. Perangkat lunak :

- Matlab versi 2016a

- Sistem operasi : Microsoft Windows 10 Pro

c. Data citra berupa :

- file citra dengan format jpg

- ukuran file citra 150 x 100 pixel

3. Pelaksanaan Penelitian

3.1 Data Pelatihan JST

Data input dari JST HM berupa citra karikatur wajah dengan ukuran lebar 150 pixel

dan tinggi 150 pixel. Citra ini dapat dinyatakan dalam bentuk matrik dua dimensi dengan

150 baris dan 100 kolom. Sehingga jumlah input atau sumber s sebanyak 15000 elemen

yaitu : s1, s2, ..., s15000. Jumlah target t sebanyak 4 elemen yaitu : t1, t2, t3, t4. Jumlah data

citra wajah yang dipakai dalam pelatihan ini yaitu 4 buah seperti diperlihatkan pada Tabel

4.1.

Tabel 4.1 Data pelatihan JST HM

No. Pola input (s) Target (t)


(s1,s2,…s15000) ( t1 , t2 , t3 , t4 )
S
1111
1 s

111 -1
2

15
11-1 1
3

11-1 -1
4

3.2 Data Pengujian JST

Dalam proses pengujian maka data citra wajah yang diujikan adalah data citra yang

tidak bernoise dan bernoise. Data citra tidak bernoise adalah data citra yang dipakai

dalam proses pelatihan seperti tercantum dalam Tabel 4.1. Sedangkan data citra bernoise

diperlihatkan pada Tabel 4.2. Data citra bernoise adalah versi lain citra tanpa noise

(Tabel 4.1) dengan penambahan seperti : rambut, kumis, jambang dan jenggot.

Tabel 4.2 Data Pengujian bernoise

No. Pola input (s)

S
1
s

3.3 Arsitektur JST HM

Dari data pelatihan maka rancangan arsitektur JST HM seperti diperlihatkan pada

Gambar 4.1.

16
Gambar 4.1 Arsitektur JST HM untuk pengenalan wajah

Dari arsitektur JST HM dapat dilihat bahwa jumlah elemen vektor input x yaitu 15000.

Elemen dari vektor input x yaitu : x1, x2, …, x15000. Sedangkan jumlah output y adalah 4.

Elemen vektor output y yaitu : y1, y2, y3 dan y4. Jumlah elemen vektor bobot w yaitu

60000. Elemen dari vektor w yaitu : w11, w12,….w150004.

3.4 Perancangan Diagram Alir (Flow Chart)

Diagram alir proses pelatihan JST HM diperlihatkan pada Gambar 4.2

sedangkan proses testing diperlihatkan pada Gambar 4.3.

mulai

Wij =0, P=1


Jml_pola

xi = si
wij( baru) = wij(lama) + xiyj
P = P +1

P<=jml_pola? ya

tidak

selesai

Gambar 4.2 Diagram Alir Pelatihan JST HM


17
mulai

Wij , P= 1
Jml_pola

xi = si
y_inj = ∑xiwij
yj = f(y_inj)
P = P +1

P<=jml_pola? ya

tidak

selesai

Gambar 4.3 Diagram Alir testing JST HM

3.5 Perancangan Graphical User Interface (GUI)

Rancangan GUI aplikasi pengenalan wajah dengan JST HM dapat dilihat pada

Gambar 4.4 berikut ini :

Gambar 4.4 Rancangan GUI Aplikasi JST HM

18
3.6 Implementasi kode program (source code)

Kode program Aplikasi pengenalan karikatur wajah dengan JST HM adalah :

a) Kode program Pelatihan :

function start_training_pushbutton_Callback(hObject, eventdata, handles)

num_im=size(handles.im_original,2); %number of images

for i=1:1:num_im

s(i,:,:)=im2bw(handles.im_original(Kumar dan Rao));

% s(i,:,:)=rgb2gray(handles.im_original{i});

end

%s(1,:,:)

%size(s)

for i=1:1:num_im

s_target(i,:,:)=im2bw(handles.im_original_target{i});

%s_target(i,:,:)=rgb2gray(handles.im_original_target{i});

end

%s_target(1,:,:)

%size(s_target)

jml_citra=size(s,1);

jml_baris=size(s,2);

jml_kolom=size(s,3);

%ubah citra asli bw menjadi bipolar[1,-1]

for k=1:1:jml_citra

for i=1:1:jml_baris

for j=1:1:jml_kolom

if s(k,i,j)>0 %putih

s_temp(k,i,j)=-1;

else %hitam

s_temp(k,i,j)=1;

end
19
end

end

end

%ubah citra "target" bw menjadi bipolar[1,-1]

handles.jml_citra_target=size(s_target,1);

handles.jml_baris_target=size(s_target,2);

handles.jml_kolom_target=size(s_target,3);

for k=1:1:handles.jml_citra_target

for i=1:1:handles.jml_baris_target

for j=1:1:handles.jml_kolom_target

if s_target(k,i,j)> 0 %putih

s_target_temp(k,i,j)=-1;

else %hitam

s_target_temp(k,i,j)=1;

end

handles.s_target_bipolar(k,i,j)=s_target_temp(k,i,j);

end

end

end

%handles.s1_target_bipolar

%ubah citra 'source' format matrik baris kolom(i,j) jadi format baris

%citra 1

for m=1:1:jml_citra

k=0;

for i=1:1:jml_baris

for j=1:1:jml_kolom

20
k=k+1;

source(m,k)=s_temp(m,i,j);

end

end

end

%ubah citra 'target' format matrik baris kolom(i,j) jadi format baris

%citra target 1

for k=1:1:handles.jml_citra_target

m=0;

for i=1:1:handles.jml_baris_target

for j=1:1:handles.jml_kolom_target

m=m+1;

target(k,m)=s_target_temp(k,i,j);

end

end

end

%hitung bobot w dengan perkalian (inner product) matrik s dan t

jml_pola=size(source,1);

jml_input = size(source,2);

jml_output=size(target,2); %handles.jml_baris_target*handles.jml_kolom_target;

handles.w=0;

for i=1:1:jml_pola

handles.w= handles.w+source(i,:)'*target(i,:);

end

%%tampilkan bobot dan bias hasil pelatihan dalam command window

%for j=1:1:jml_output

% for i=1:1:jml_input

% disp(strcat('w',num2str(i),num2str(j),' = ',num2str(handles.w(i,j))));

% end

%end

21
%Tampilkan bobot dalam list box

n=0;

for j=1:1:jml_output %index dari bobot w

for i=1:1:jml_input

n=n+1;

in(n)=i;

jn(n)=j;

wn(n)=handles.w(i,j);

end

end

set(handles.show_listbox,'String',strcat('w',num2str(in'),num2str(jn'),' = ',num2str(wn')));

guidata(hObject,handles);

b) Kode program Testing :

function start_testing_pushbutton_Callback(hObject, eventdata, handles)

s=im2bw(handles.im_testing);

%s=rgb2gray(handles.im_testing);

%ubah data menjadi bipolar[1,-1]

jml_baris=size(s,1);

jml_kolom=size(s,2);

for i=1:1:jml_baris

for j=1:1:jml_kolom

if s(i,j)>0 %putih

s_temp(i,j)=-1;

else %hitam

s_temp(i,j)=1;

end

end

end

%s_temp

%ubah matrik citra baris-kolom s_temp jadi matrik baris

22
k=0;

for i=1:1:jml_baris

for j=1:1:jml_kolom

k=k+1;

s_vektor(k)=s_temp(i,j);

end

end

jml_input = k;

jml_output=handles.jml_baris_target*handles.jml_kolom_target;

y_temp=s_vektor*handles.w;

for j=1:1:jml_output

if y_temp(j)>0

y(j)=1;

else

if y_temp(j)<=0

y(j)=-1;

else

if y_temp(j)==0

y(j)=0;

end

end

end

end

s_vektor

handles.s_target_bipolar(1,:)

handles.s_target_bipolar(2,:)

23
handles.s_target_bipolar(3,:)

handles.s_target_bipolar(4,:)

%bandingkan output dengan target

axes(handles.axes4);

for k=1:handles.jml_citra_target

if y==handles.s_target_bipolar(k,:);

imshow(handles.im_original{k});

break;

end

end

24
V. HASIL DAN PEMBAHASAN

Hasil akhir aplikasi pengenalan wajah dengan JST HM diperlihatkan pada Gambar

5.1. Tahap pertama adalah proses pelatihan. JST HM dilatih dengan 4 buah citra wajah seperti

diperlihatkan pada Tabel 4.1. Tujuan dari proses pelatihan untuk menentukan nilai bobot w

(w11,w12,... w150004).

Gambar 5.1 Tampilan Aplikasi untuk Proses Pelatihan JST HM

Setelah tahapan pelatihan maka dilanjutkan dengan proses pengujian (testing). Untuk proses

testing maka JST diuji dengan citra wajah yang dipakai dalam proses pelatihan (Tabel 4.1)

dan citra wajah bernoise (Tabel 4.2).

5.1 Hasil Pengujian dengan data citra wajah pelatihan

Hasil pengujian untuk citra wajah yang dipakai dalam proses pelatihan dapat dilihat

dalam Gambar 5.2 dan Gambar 5.3.

25
Gambar 5.2 Hasil testing dengan citra wajah no. 2

Gambar 5.3 Hasil testing dengan citra wajah no. 3

Hasil testing dengan memakai pola pelatihan selengkapnya diperlihatkan dalam tabel 5.1.

Tabel 5.1 Hasil testing dengan citra wajah pelatihan (tanpa noise)
No. Citra testing Citra hasil keterangan
(query) testing

1 cocok

26
2 cocok

3 cocok

4 cocok

Dari tabel 5.1 didapatkan bahwa jst HM dapat mengenali semua pola pelatihan yang

dilatihkan dengan sempurna. Hal ini berarti bahwa jst HM memiliki kemampuan untuk

mengingat (memorization) pola – pola pelatihan yang sudah dilatihkan kepada jst

tersebut.

5.2 Hasil testing dengan citra wajah bernoise

Data-data citra wajah bernoise (Tabel 4.2) merupakan data citra yang tidak dipakai

dalam proses pelatihan. Beberapa citra wajah ini mengandung noise berupa penambahan

rambut, kumis, jambang dan jenggot. Hasil testing untuk citra wajah bernoise ini

ditunjukkan dalam Gambar 5.4 dan Gambar 5.5

Gambar 5.4 Hasil testing citra wajah bernoise nomer 2

27
Gambar 5.5 Hasil testing citra wajah bernoise nomer 3

Hasil testing untuk citra wajah bernoise dirangkum dalam tabel 5.2.

Tabel 5.2 Hasil testing dengan citra wajah bernoise


No. Citra testing Citra hasil testing keterangan
(query)

1 cocok

2 cocok

3 cocok

4 cocok

Dari tabel 5.2 didapatkan bahwa jst HM dapat mengenali semua citra wajah yang

diujikan. Jadi tingkat keberhasilan JST untuk mengenali pola wajah bernoise sebesar 100

28
%. Hal ini berarti bahwa jst HM memiliki kemampuan generalisasi yaitu mampu

mengenali pola-pola yang mengandung noise yang belum pernah dilatihkan padanya.

29
VI. KESIMPULAN DAN SARAN

1. Kesimpulan

Dari penelitian ini dapat disimpulkan yaitu :

a. Program aplikasi JST HM dapat dipakai untuk mengenali citra karikatur wajah

b. JST HM dapat mengenali citra wajah yang dilatihkan kepadanya dengan sempurna.

Dari 4 citra tanpa noise yang dilatihkan semuanya dapat dikenali dengan sempurna

c. JST HM dapat mengenali pola ber-noise yang diujikan. Dari 4 pola yang diuji

semuanya dapat dikenali dengan baik.

2. Saran

a. Pengenalan pola dengan JST HM dapat dikembangkan penerapannya seperti :

pengenalan sidik jari, suara, kornea dan lain-lain.

b. Perlu dilakukan penelitian untuk mengenali wajah karikatur dengan metode JST

selain HM seperti : perceptron, hopfield, Backpropagation, dan lain-lain.

30
VII. DAFTAR PUSTAKA

Abu-Mostafa, Y.S., dan Psaltis, D. 1984. Recognitive Aspects of Moment Invariants. IEEE
Transactions on Pattern Analysis and Machine Intelligence PAMI-6(6): 698-706.
Adini, Y., Moses, Y., dan Ullman, S. 1997. Face recognition: the problem of compensating
for changes in illumination direction. IEEE Transactions on Pattern Analysis and
Machine Intelligence 19(7): 721-732.
Dileep, M.R., dan Danti, A. 2016. Multiple hierarchical decision on neural network to predict
human age and gender. 2016 International Conference on Emerging Trends in
Engineering, Technology and Science (ICETETS), 24-26 Feb. 2016.
Fausset, L. 1998. Fundamentals of Neural Network Architectures, Algorithm, and
Applications. New York: Prentice Hall Inc.
Klare, B., Li, Z., dan Jain, A.K. 2011. Matching Forensic Sketches to Mug Shot Photos. IEEE
Transactions on Pattern Analysis and Machine Intelligence 33(3): 639-646.
Kumar, D.S.D., dan Rao, P.V. 2015. Analysis and Design of Principal Component Analysis
and Hidden Markov Model for Face Recognition. Procedia Materials Science 10: 616-
625.
Ming-Kuei, H. 1962. Visual pattern recognition by moment invariants. IRE Transactions on
Information Theory 8(2): 179-187.
Ouyang, S., Hospedales, T., Song, Y.-Z., Li, X., Loy, C.C., dan Wang, X. 2016. A survey on
heterogeneous face recognition: Sketch, infra-red, 3D and low-resolution. Image and
Vision Computing 56: 28-48.
Sinkar, S.V., dan Deshpande, A.M. 2015. Object recognition with plain background by using
ANN and SIFT based features. 2015 International Conference on Information
Processing (ICIP), 16-19 Dec. 2015.
Talele, K., Shirsat, A., Uplenchwar, T., dan Tuckley, K. 2016. Facial expression recognition
using general regression neural network. 2016 IEEE Bombay Section Symposium
(IBSS), 21-22 Dec. 2016.
Teh, C.H., dan Chin, R.T. 1988. On image analysis by the methods of moments. IEEE
Transactions on Pattern Analysis and Machine Intelligence 10(4): 496-513.
Verma, K., dan Khunteta, A. 2017. Facial expression recognition using Gabor filter and
multi-layer artificial neural network. 2017 International Conference on Information,
Communication, Instrumentation and Control (ICICIC), 17-19 Aug. 2017.
Yuen, P.C., dan Man, C.H. 2007. Human Face Image Searching System Using Sketches.
IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans
37(4): 493-504.
Zhihu, H., dan Jinsong, L. 2010. Analysis of Hu's moment invariants on image scaling and
rotation. 2010 2nd International Conference on Computer Engineering and Technology,
16-18 April 2010.

31

Anda mungkin juga menyukai