karya tulis ilmiah pengenalan sidik jari dengan …
TRANSCRIPT
KARYA TULIS ILMIAH
PENGENALAN SIDIK JARI DENGAN JARINGAN SYARAF TIRUAN
HETEROASSOCIATIVE MEMORY
Oleh :
I Gusti Agung Widagda, S.Si, M.Kom
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2019
ii
Pengenalan Sidik Jari dengan Jaringan Syaraf Tiruan
Heteroassociative Memory
I G.A. Widagda
RINGKASAN
Jaringan syaraf tiruan (JST) merupakan salah metode yang dipakai dalam
kecerdasan buatan. Salah satu aplikasi dari kecerdasan buatan adalah pengenalan objek
(object recognition). Pengenalan sidik jari (finger print) adalah salah satu bidang kajian
dalam pengenalan objek. Tujuan dari pengenalan objek yaitu untuk mengidentifikasi
objek pada citra uji dengan jalan mengecek apakah citra tersebut cocok dengan salah
satu citra yang ada dalam database. Proses pengenalan dilakukan dengan mencocokkan
ciri (feature) citra uji dengan ciri citra yang tersimpan dalam database. Pengenalan
sidik jari 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 sidik jari berdasarkan hasil pencocokan
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 24 buah citra sidik
jari, 4 buah citra tanpa noise dan sisanya ber-noise. Dalam tahap pelatihan dipakai 4
citra tanpa noise sedangkan dalam tahap pengujian baik citra ber-noise maupun tanpa
noise akan diujikan. Hasil penelitian menunjukkan JST HM dapat mengenali semua 4
citra sidik jari tanpa noise dan 19 dari 20 citra sidik jari yang ber-noise.
Kata kunci : jaringan syaraf tiruan, Heteroassociative Memory , sidik jari, citra digital
iii
Fingerprint Recognition by using Heteroassociative Memory Neural
Network
I G.A. Widagda
SUMMARY
Artificial neural network (ANN) is one of the methods used in artificial
intelligence. One application of artificial intelligence is object recognition. Fingerprint
recognition is one of the fields of study in object recognition. The aim of object
recognition is to identify objects in the test image by checking whether the image
matches one of the images in the database. The Training process is resolved by
matching the features of the test image with the features of ones stored in the database.
Fingerprint recognition with ANN contains of two stages, namely, both training and
testing. The training phase aims to calculate the weight of the network while the other
one is to recognize fingerprints based on the results of matching weights 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 computational time needed is also faster. In this study 24 fingerprint images
were used, 4 images without noise and the remaining with noise. In the training stage 4
images are used without noise while in the testing stage both noise and no noise images
will be tested. The results showed HM can recognize all 4 fingerprint images without
noise and 19 of 20 fingerprint images that are noise.
Keywords : Neural Network, Heteroassociative Memory , fingerprint, digital image
iv
KATA PENGANTAR
Kami mengucapkan rasa syukur kepada Tuhan Yang Maha Esa, karena atas
rahmat-Nya maka tulisan ilmiah yang berjudul ”Pengenalan Sidik Jari dengan
Jaringan Syaraf Tiruan Heteroassociative Memory” dapat kami selesaikan.
Kami juga mengucapkan terima kasih yang sedalam-dalamnya kepada berbagai
pihak yang telah mendukung penyelesaian karya tulis ini diantaranya yaitu :
-Bapak Dekan FMIPA, Universitas Udayana
-Bapak Koordinator Program Studi Fisika, FMIPA, Universitas Udayana
-Rekan - rekan dosen Jurusan Fisika, FMIPA, Universitas Udayana
Kami meyakini bahwa karya tulis ini masih banyak kekurangannya. Oleh karena
itu kami sangat berharap adanya masukan, saran dan kritik dari berbagai pihak untuk
menyempurnakan karya ilmiah ini.
Jimbaran, Juli 2019
Penyusun
v
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 13
IV METODE PENELITIAN 14
V HASIL DAN PEMBAHASAN 24
VI KESIMPULAN DAN SARAN 29
VII DAFTAR PUSTAKA 30
vi
DAFTAR TABEL
halaman
Tabel 4.1 Data Pelatihan JST HM 14
Tabel 4.2 Data uji sidik jari bernoise 15
Tabel 5.1 Hasil testing citra sidik jari pelatihan (tanpa noise) 25
Tabel 5.1 Hasil testing citra sidik jari bernoise 27
vii
DAFTAR GAMBAR
halaman
Gambar 2.1 Struktur neuron manusia 3
Gambar 2.2 Struktur neuron jaringan syaraf 4
Gambar 2.3 Model JST 5
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
9
Gambar 4.1 Arsitektur JST HM untuk Pengenalan sidik Jari 16
Gambar 4.2 Diagram Alir Pelatihan JST HM
17
Gambar 4.3 Diagram Alir testing JST HM 17
Gambar 4.4 Rancangan GUI Aplikasi JST HM 18
Gambar 5.1 Tampilan Aplikasi untuk proses pelatihan JST HM 24
Gambar 5.2 Hasil testing dengan citra sidik jari no.1 25
Gambar 5.3 Hasil testing dengan citra sidik jari no.3 25
Gambar 5.4 Hasil testing dengan citra sidik jari bernoise no.1 26
Gambar 5.5 Hasil testing dengan citra sidik jari bernoise no.4
27
1
I. PENDAHULUAN
Jaringan syaraf tiruan (Artificial Neural Network) merupakan salah metode yang dipakai
dalam kecerdasan buatan. Salah satu aplikasi dari kecerdasan buatan adalah pengenalan objek
(object recognition). Pengenalan sidik jari (finger print) adalah salah satu bidang kajian dalam
pengenalan objek. Tujuan dari pengenalan objek yaitu untuk mengidentifikasi objek pada
citra uji dengan jalan mengecek apakah citra tersebut cocok dengan salah satu citra yang ada
dalam database. Proses pengenalan dilakukan dengan mencocokkan ciri (feature) citra uji
dengan ciri citra yang tersimpan dalam database. Pengenalan objek tersebut merupakan proses
yang sangat komplek. Manusia dapat melakukan proses pengenalan objek dengan mudah dan
cepat. Sebaliknya jika algoritma pengenalan tersebut dikerjakan oleh mesin (komputer) maka
pengenalan objek akan menjadi sangat komplek (Sinkar dan Deshpande, 2015). Metode yang
banyak dipergunakan untuk pengenalan objek yaitu momen invarian (invariant momen).
Penelitian sebelumnya yang terkait dengan pengenalan objek yaitu : Zhihu dan Jinsong (2010)
serta Abu-Mostafa dan Psaltis (1984). Kekurangan dari metode momen invarian adalah peka
terhadap cacat (noise). Tingkat kerentanan ini akan semakin tinggi jika orde dari momen
invarian semakin tinggi (Teh dan Chin, 1988). Metode lain yang juga banyak diaplikasikan
dalam pengenalan objek yaitu metode Jaringan Syaraf Tiruan (JST). Metode ini pada
dasarnya terdiri dari dua proses yaitu: pelatihan (trainning) dan pengujian (testing). Hasil
proses pelatihan berupa nilai bobot (weight). Selanjutnya nilai bobot ini akan dipakai dalam
tahap pengujian. Dalam proses pengujian, JST akan diuji untuk mengenali citra uji. Beberapa
penelitian yang terkait dengan aplikasi JST untuk pengenalan obyek yaitu : penelitian yang
dilakukan oleh Sinkar dan Deshpande (2015), Dileep dan Danti (2016), serta Verma dan
Khunteta (2017). Dari beberapa penelitian ini didapatkan bahwa objek yang mengandung
noise masih bisa dikenali oleh metode JST. Oleh karena itu metode JST lebih unggul jika
dibandingkan dengan metode momen invarian dalam kaitannya dengan pengenalan objek
yang mengandung cacat atau noise. Atas dasar pertimbangan kelebihan atau keunggulan ini
maka dalam penelitian ini dipilih JST. Metode JST yang dipakai adalah Heteroassociative
Memory (HM). Algoritma HM lebih sederhana dan singkat jika dibandingkan dengan
2
algoritma JST lainnya seperti : Perceptron dan Backpropagation. Sehingga waktu komputasi
yang diperlukan oleh metode HM lebih efisien.
3
II. TINJAUAN PUSTAKA
2.1 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan (JST) merupakan sebuah metode untuk mengolah
informasi yang diilhami (insipired) oleh sistem kerja sistem syaraf biologis yaitu otak
mahluk hidup. JST meniru cara kerja otak manusia dalam proses belajar (learning).
Untuk meningkatkan kecerdasan maka manusia perlu belajar atau berlatih (training).
Sehingga JST perlu dilatih agar bisa menyerupai kepintaran manusia. Awalnya JST
dilatih untuk mengidentifikasi pola-pola misalnya : sidik jari, wajah, suara, kornea dan
lain-lain. Kemudian jika JST tersebut dites untuk mengenali pola-pola yang sudah
dilatihkan padanya maka dia akan mampu mengenalinya dengan baik.
Otak manusia mengandung sekitar 10 milyar sel syaraf (neuron) yang saling
terhubung. Gambar 2.1 menggambarkan 2 buah neuron yang terdapat dalam otak.
Neuron secara umum terbagi menjadi 3 bagian yaitu : input, proses, dan output.
Gambar 2.1 Struktur neuron manusia
Denrite merupakan unit input yang bertugas sebagai jalur masuknya sinyal, inti
(nucleus) bertugas sebagai pemroses (pengolah) sinyal menjadi informasi. Sedangkan
axon berfungsi untuk jalur output untuk mengirimkan sinyal (infomasi) dari inti menuju
denrite neuron lainnya. Gambar 2.1 memperlihatkan sinyal yang keluar dari axon
neuron 1 akan dikirim ke denrite neuron 2. Axon neuron 1 dan denrite neuron 2
terhubung lewat synapses. Sinyal dari neuron 1 dapat terkirim ke neuron 2 jik sinyal
tersebut harus memenuhi nilai ambang tertentu (threshold). Keadaan ketika 2 buah
4
neuron saling berhubungan maka neuron tersebut dikatakan dalam keadaan teraktivasi.
Proses hubungan antara 2 buah neuron biasanya terjadi secara adaptif yang artinya
hubungan itu terjadi secara dinamis. Dalam proses belajar maka otak selalu memiliki
kemampuan untuk beradaptasi sehingga menjadi lebih cerdas.
2.2 Komponen penyusun JST
JST mengandung neuron-neuron yang saling berhubungan satu sama lain.
Hubungan antara neuron ini bertujuan untuk mengolah sinyal 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.
Input berupa sinyal akan dikirimkan 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.2 Struktur neuron jaringan syaraf
5
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.
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).
Gambar 2.3 Model JST
Gambar 2.4 Model JST satu lapisan
6
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
Fungsi aktivasi yang biasaya dipakai diantaranya yaitu:
a) Fungsi Linear
Fungsi aktivasi linear dinyatakan dengan persamaan :
)1.2()( xxfy ==
Dimana α adalah gradien atau kemiringan fungsi. Bentuk fungsi aktivasi linear
diperlihatkan pada Gambar (2.6).
Gambar 2.5 Model JST banyak lapisan
7
b) Fungsi threshold biner
Fungsi aktivasi threshold biner dinyatakan dengan persamaan :
)2.2(01
00)(
==
xjika
xjikaxfy
Bentuk fungsi aktivasi threshold biner ditunjukkan pada Gambar (2.7).
c) Fungsi threshold bipolar
Fungsi aktivasi threshold bipolar dinyatakan dengan persamaan :
)3.2(01
01)(
+
−==
xjika
xjikaxfy
Bentuk fungsi aktivasi threshold bipolar ditunjukkan pada Gambar (2.8).
d) Fungsi linear piecewise
Gambar 2.6 Fungsi linear
Gambar 2.7 Fungsi threshold biner
Gambar 2.8 Fungsi threshold bipolar
8
Fungsi aktivasi linear piecewise dinyatakan dengan persamaan :
)4.2(
11
11
11
)(
−
−−
==
xjika
xjikax
xjika
xfy
Bentuk fungsi aktivasi linear piecewise ditunjukkan pada Gambar (2.9).
e) Fungsi Sigmoid biner
Fungsi aktivasi Sigmoid biner dinyatakan dengan persamaan :
)5.2(1)(01
1)(
+==
−xfuntuk
exfy
x
Bentuk fungsi aktivasi Sigmoid biner ditunjukkan pada Gambar (2.10).
f) Fungsi Sigmoid bipolar
Fungsi aktivasi Sigmoid bipolar dinyatakan dengan persamaan :
)6.2(1)(1)( −+
−==
−
−
xfuntukee
eexfy
xx
xx
Bentuk fungsi aktivasi Sigmoid bipolar ditunjukkan pada Gambar (2.11).
Gambar 2.9 Fungsi linear piecewise
Gambar 2.10 Fungsi Sigmoid biner
9
2.5 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 :
)7.2()()( jiijij yxlamawbaruw +=
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.11 Fungsi Sigmoid bipolar
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 :
( ) ( )1 1,..., ,... dan t= ,..., ,...i n j ms s s s t t t=
Jika S = st dan T = t maka bobot w dapat ditentukan dari perkalian S.T yaitu :
( )
1 1 1 11
11
1
. .
w =ST
. .
j m
i i j i mi j m
n n j n mn
s t s t s ts
s t s t s ts t t t
s t s t s ts
= =
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 :
11
Langkah 0 : gunakan bobot (wij) yang didapat dari proses pelatihan
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 :
1
_n
j i ij
i
y in x w=
=
Langkah 4 : hitung output yj dengan menggunakan fungsi aktivasi. Untuk target
bipolar maka output yj ditentukan dengan fungsi aktivasi threshold
bipolar berikut ini :
1 _ 0
( _ ) 0 _ 0
1 _ 0
j
j j j
j
jika y in
y f y in jika y in
jika y in
= = =−
Sedangkan untuk target biner maka output yj ditentukan dengan
fungsi aktivasi threshold biner yaitu :
_ 01
( _ )_ 00
j
j j
j
jika y iny f y in
jika y in
= =
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 ( ) ( )1 1,..., ,... dan s= ,..., ,...i n j mx x x x s s s=
Langkah 3 : hitung vektor input jaringan ke unit output y_in dengan persamaan :
_ .y in x w=
Dimana vektor ( )1_ _ ,..., _ ,... _j my in y in y in y in=
Langkah 4 : hitung output yj dengan menggunakan fungsi aktivasi. Untuk target
bipolar maka output yj ditentukan dengan fungsi aktivasi threshold
12
bipolar berikut ini :
1 _ 0
( _ ) 0 _ 0
1 _ 0
j
j j j
j
jika y in
y f y in jika y in
jika y in
= = =−
Sedangkan untuk target biner maka output yj ditentukan dengan
fungsi aktivasi threshold biner yaitu :
_ 01
( _ )_ 00
j
j j
j
jika y iny f y in
jika y in
= =
dimana vektor yj :
( )1 1y = ,..., ,... ( ( _ ),...., ( _ ),..., ( _ ))j j m j my y y f y in f y in f y in=
13
III. TUJUAN DAN MANFAAT PENELITIAN
Tujuan dari penelitian adalah :
Untuk merancang dan mengimplementasikan program aplikasi komputer pengenalan
sidik jari dengan JST Heteroassociative Memory
Hasil dari penelitian ini diharapkan dapat memberikan manfaat yaitu :
Program Aplikasi yang dihasilkan dapat diaplikasikan untuk mengenali pola sidik jari
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 2017a
- Sistem operasi : Microsoft Windows 10
c. Data citra berupa :
- file citra dengan format jpg
- ukuran file citra 75 x 100 pixel
3. Pelaksanaan Penelitian
3.1 Data Pelatihan JST
Data pelatihan dari JST HM berupa citra sidik jari dengan resolusi 75x100 pixel.
Data citra ini dapat dinyatakan dalam bentuk matrik dua dimensi dengan 75 kolom dan
100 baris. Sehingga jumlah input atau sumber (s) sebanyak 75x100 = 7500 elemen yaitu :
s1, s2, ..., s7500. Jumlah target (t) sebanyak 4 elemen yaitu : t1, t2, t3, t4. Jumlah citra sidik
jari yang dipakai dalam pelatihan ini yaitu 4 citra seperti diperlihatkan pada Tabel 4.1.
No. Pola input (s)
(s1,s2,…s7500)
S
s
Target (t)
( t1, t2, t3, t4)
1
1111
2
111 -1
Tabel 4.1 Data pelatihan JST HM
15
3.2 Data Pengujian JST
Data citra sidik jari yang dipakai dalam proses pengujian 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 adalah
versi lain citra tanpa noise (Tabel 4.1) dengan penambahan beberapa noise atau cacat
seperti diperlihatkan pada Tabel 4.2 berikut ini. Jumlah citra uji yang dipakai dalam
penelitian ini yaitu sebanyak 20 citra. Ukuran atau resolusi citra uji sama dengan citra
pelatihan yaitu 75x100 pixel.
3
11-1 1
4
11-1 -1
No. Pola
input (s)
S
s
No. Pola
input (s)
S
s
No. Pola
input (s)
S
s
No. Pola
input (s)
S
s
1
6
11
16
2
7
12
17
3
8
13
18
4
9
14
19
5
10
15
20
Tabel 4.2 Data uji sidik jari bernoise
16
Wij =0, P=1
Jml_pola
3.3 Arsitektur JST HM
Berdasarkan ukuran citra yang dipakai dalam pelatihan atau pengujian maka, secara
berurutan, jumlah input dan target yaitu 7500 dan 4, maka rancangan arsitektur JST HM
yang dipakai dalam penelitian seperti diperlihatkan pada Gambar 4.1.
Dari arsitektur JST HM dapat dilihat bahwa jumlah elemen vektor input x yaitu 7500.
Elemen dari vektor input x yaitu : x1, x2, …, x7500. 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,….w75004.
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
P<=jml_pola? ya
xi = si
wij( baru) = wij(lama) + xiyj
P = P +1
Gambar 4.1 Arsitektur JST HM untuk pengenalan sidik jari
17
Wij , P= 1
Jml_pola
3.5 Perancangan Graphical User Interface (GUI)
Rancangan GUI aplikasi pengenalan sidik jari dengan JST HM dapat dilihat
pada Gambar 4.4 berikut ini :
selesai
Gambar 4.2 Diagram Alir Pelatihan JST HM
tidak
mulai
selesai
Gambar 4.3 Diagram Alir testing JST HM
P<=jml_pola? ya
tidak
xi = si
y_inj = ∑xiwij
yj = f(y_inj)
P = P +1
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);
Gambar 4.4 Rancangan GUI Aplikasi JST HM
19
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
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
20
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
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);
21
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
%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);
22
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
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;
23
else
if y_temp(j)==0
y(j)=0;
end
end
end
end
s_vektor
y
handles.s_target_bipolar(1,:)
handles.s_target_bipolar(2,:)
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 implementasi aplikasi pengenalan sidik jari dengan JST HM ditampilkan pada
Gambar 5.1. Tahap pertama merupakan proses pelatihan, dimana JST HM dilatih dengan 4
buah citra sidik jari seperti diperlihatkan pada Tabel 4.1. Hasil dari proses pelatihan yaitu
menentukan nilai bobot w (w11,w12,... w75004).
Gambar 5.1 Tampilan Aplikasi untuk Proses Pelatihan JST HM
Setelah proses pelatihan maka dilanjutkan dengan tahap pengujian (testing). Proses testing
bertujuan untuk menguji aplikasi dengan citra sidik jari baik yang dipakai dalam proses
pelatihan (Tabel 4.1) maupun citra sidik jari bernoise yang tidak dipakai selama pelatihan
(Tabel 4.2).
5.1 Hasil Pengujian dengan data citra sidik jari pelatihan
Hasil pengujian untuk citra sidik jari yang dipakai dalam proses pelatihan dapat
dilihat dalam Gambar 5.2 dan Gambar 5.3.
25
Gambar 5.2 Hasil testing dengan citra sidik jari no. 1
Gambar 5.3 Hasil testing dengan citra sidik jari no. 4
Hasil testing dengan memakai citra sidik jari pelatihan selengkapnya diperlihatkan dalam
tabel 5.1.
Tabel 5.1 Hasil testing citra sidik jari pelatihan (tanpa noise)
No. Citra testing
(query)
Citra hasil
testing
keterangan
1
cocok
26
2
cocok
3
cocok
4
cocok
Dari tabel 5.1 didapatkan bahwa jst HM dapat mengenali semua citra sidik jari pelatihan
dengan sempurna. Hal ini berarti bahwa jst HM memiliki kemampuan untuk mengingat
(memorization) pola – pola sidik jari pelatihan yang sudah dilatihkan kepada jst tersebut.
5.2 Hasil testing dengan citra sidik jari bernoise
Data-data citra sidik jari bernoise (Tabel 4.2) merupakan data citra sidik jari yang
tidak dipakai dalam proses pelatihan. Contoh hasil testing untuk citra bernoise ini
ditunjukkan dalam Gambar 5.4 dan Gambar 5.5
Gambar 5.4 Hasil testing citra sidik jari bernoise nomer 1
27
Gambar 5.5 Hasil testing citra sidik jari bernoise nomer 4
Hasil testing untuk citra sidik jari bernoise selengkapnya pada 20 citra dirangkum
dalam tabel 5.2.
Tabel 5.2 Hasil testing citra sidik jari bernoise
No. Citra
testing
(query)
Citra
hasil
testing
keterangan No. Citra
testing
(query)
Citra
hasil
testing
keterangan
1
cocok 6
cocok
2
cocok 7
cocok
3
cocok 8
cocok
4
cocok 9
cocok
5
cocok 10
cocok
28
11
cocok 16
cocok
12
cocok 17
cocok
13
tidak
cocok
18
cocok
14
cocok 19
cocok
15
cocok 20
cocok
Dari tabel 5.2 didapatkan bahwa jst HM dapat mengenali sebagian besar citra sidik jari
yang diujikan. Hasil pengujian menunjukkan JST HM dapat mengenali 19 citra dari 20
citra yang diujikan padanya. Jadi tingkat keberhasilan JST HM untuk mengenali pola
sidik jari bernoise yaitu sebesar 95 %. Hal ini menunjukkan bahwa jst HM memiliki
kemampuan generalisasi (generalization), 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. JST HM dapat diaplikasikan untuk mengenali citra sidik jari
b. JST HM bisa mengenali citra sidik jari yang dilatihkan kepadanya dengan sempurna.
Dari 4 citra yang dilatihkan, semuanya dapat dikenali dengan sempurna
c. JST HM dapat mengenali sebagian besar citra sidik jari ber-noise yang diujikan.
Dari 20 pola yang diuji 19 pola dapat dikenali dengan baik.
2. Saran
a. Pengenalan pola dengan JST HM dapat dikembangkan penerapannya seperti :
pengenalan suara, kornea, wajah dan lain-lain.
b. Perlu dilakukan penelitian untuk mengenali sidik jari dengan metode JST selain HM
seperti : Backpropagation, Convolution Neural Network 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.
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.
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.
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.
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.
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.