PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PENGENALAN CITRA HURUF BERDERAU DENGAN JARINGAN SYARAF TIRUAN BERDASARKAN SIFAT-SIFAT STATISTIS
Tesis untuk memenuhi sebagian persyaratan untuk mencapai derajat Sarjana S-2
Program Studi Teknik Elektro Jurusan Ilmu-ilmu Teknik
diajukan oleh Linggo Sumarno 8422/I-1/526/96
Kepada PROGRAM PASCA SARJANA UNIVERSITAS GADJAH MADA 1998
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PRAKATA
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa atas segala karunia yang telah diberikanNya hingga selesainya tesis ini, yang merupakan salah satu syarat untuk mencapai derajat Sarjana S-2 di Program Studi Teknik Elektro Jurusan Ilmu-ilmu Teknik Universitas Gadjah Mada. Walaupun telah diusahakan sebaik mungkin, penulis menyadari tesis ini masih terdapat kekurangan di sana sini. Untuk itu, saran untuk perbaikan lebih lanjut sangat penulis harapkan. Pada kesempatan ini, penulis ucapkan terima kasih yang sebesar-besarnya kepada pihak-pihak yang telah sangat membantu kelancaran studi S2 hingga selesainya tesis ini: 1. Bapak Adhi Susanto MSc. PhD., selaku pembimbing pertama yang dengan penuh perhatian membimbing tesis ini 2. Ibu Ir. Litasari MSc., selaku pembimbing kedua yang juga dengan penuh perhatian membimbing tesis ini. 3. Dr. M. Sastrapratedja SJ., selaku Rektor Universitas Sanata Dharma yang telah memberikan kesempatan untuk menempuh studi S2 di UGM. 4. Yayasan Sanata Dharma dan EEDP yang telah membantu pembiayaan studi S2. 5. Karyawan administrasi Jurusan Teknik Elektro Universitas Gadjah Mada yang telah membantu kelancaran studi S2.
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6. Pihak-pihak lain yang tidak dapat penulis sebutkan satu persatu dalam kesempatan ini.
Yogyakarta, Nopember 1998 penulis
Linggo Sumarno
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
halaman Halaman Judul
……………………………………………………………
Halaman Pengesahan Prakata Daftar Isi
…………………………………………………….
ii
……………………………………………………………………
iii
………………………………………………………………….
v
Daftar Tabel
………………………………………………………………
ix
………………...………………………………………….
x
……………………………………………………………………
xi
Daftar Gambar Intisari
i
BAB 1 PENDAHULUAN 1.1
Latar Belakang
……………………………………………
1.1.1
Perumusan masalah
………………………………
1
1.1.2
Keaslian penelitian
………………………………….
2
1.1.3 Faedah yang diharapkan 1.2
1
……………………………
3
……………………………………….….
3
……………………..……………………………
4
Tujuan Penelitian
BAB 2 TINJAUAN PUSTAKA 2.1
Pengantar
2.2
Landasan Teori
…………………………………………….
4
2.2.1
Jaringan syaraf tiruan
……………………………
4
2.2.2
Pengklasifikasi Bayes
………………………………
7
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.2.3 Jendela Parzen 2.2.4
…………………………………….
Optimasi faktor penyekala
8
………………………….
11
……………………………………………………
13
2.3
Hipotesis
2.4
Langkah Penelitian
………………………………………
14
………………………………………….
15
BAB 3 CARA PENELITIAN 3.1
Bahan Penelitian
3.2
Alat Penelitian
……………………………………………
17
3.3
Jalan Penelitian
…………………………………………….
17
3.3.1
Perancangan keseluruhan sistem
…………………
17
3.3.2
Perancangan jaringan syaraf tiruan
……………….
19
3.3.3
Pelatihan dan pengujian jaringan syaraf tiruan
3.3.4
Implementasi keseluruhan sistem
3.3.5
Pengujian keseluruhan sistem
3.3.6
Pengambilan data hasil pengujian
…….
25
…………………
25
……………………...
26
………………….
27
……………………………
27
……………………………………
28
………………………………………
29
…………………………………………...
30
….....
31
3.3.7 Analisis hasil pengujian 3.4
Variabel yang Diamati
3.5
Kesulitan-kesulitan
BAB 4 HASIL PENELITIAN 4.1
Hasil Penelitian 4.1.1
Pengujian mayor terhadap citra masukan yang berderau
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.1.2
Pengujian minor terhadap citra masukan yang mengalami deformasi proporsi, pergeseran, dan perputaran
….....
32
4.1.3
Pengujian gabungan terhadap citra masukan yang berderau dan mengalami deformasi proporsi, pergeseran dan perputaran
….....
35
4.1.4
Panjang waktu pelatihan dan pengenalan
………….
37
4.1.5 Pengujian pengaruh derau dan faktor penyekala 4.1.6 4.2
37
……….
38
………………………………………………
39
Pengujian pengaruh derau dan bentuk huruf
Pembahasan 4.2.1
…..
Pengaruh derau terhadap tingkat pengenalan
………
39
4.2.2 Pengaruh deformasi proporsi, pergeseran, dan perputaran terhadap tingkat pengenalan
…….
40
4.2.3
Pengaruh derau serta deformasi proporsi, pergeseran, dan perputaran terhadap tingkat pengenalan
…….
41
4.2.4
Panjang waktu pelatihan dan pengenalan
………….
42
4.2.5
Pengaruh derau dan faktor penyekala
……………..
42
………………….
43
………………………………………………
45
………………………………………………………
47
4.2.6 Pengaruh derau dan bentuk huruf
BAB 5 KESIMPULAN DAN SARAN 5.1
Kesimpulan
5.2
Saran
BAB 6 RINGKASAN 6.1
Latar Belakang
……………………………………………
vii
49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6.2
Tinjauan Pustaka
……………………………………………
49
6.3
Landasan Teori
…………………………………………….
50
6.4
Cara Penelitian
……………………………………………
50
6.5
Hasil Penelitian
…………………………………………….
51
………………………………………………………….
52
Daftar Pustaka
LAMPIRAN L.1
Daftar Kode Sumber
………………………………………..
54
L.2
Listing Kode Sumber
………………………………………
54
L.3
Contoh Hasil Eksekusi Kode Sumber
viii
……………………...
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
halaman Tabel 4.1 Pengaruh deformasi proporsi terhadap tingkat pengenalan.
………
33
Tabel 4.2 Pengaruh deformasi pergeseran terhadap tingkat pengenalan.
………
34
Tabel 4.3 Pengaruh deformasi perputaran terhadap tingkat pengenalan.
………
35
Tabel 4.4 Pengaruh derau terhadap tingkat pengenalan, pada citra yang mengalami deformasi proporsi, pergeseran, dan perputaran.
………
36
Tabel 4.5 Panjang waktu pelatihan dan pengenalan, pada jaringan yang terkonstruksi atas 26 kelas pola, dengan dua sampel di setiap kelasnya.
………
37
Tabel 4.6 Tingkat pengenalan jaringan (%) pada keadaan σ dan derau yang beragam.
………
37
Tabel 4.7 Rerata kerapatan probabilitas pada keadaan σ dan derau yang beragam.
………
37
Tabel 4.8 Tingkat pengenalan jaringan untuk citra huruf masukan yang seragam, pada keadaan tingkat derau 40%.
………
38
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
halaman Gambar 2.1 Model dasar neuron.
………………………………………..
Gambar 2.2 Contoh jaringan umpanmaju tiga-lapis.
……………………
Gambar 3.1 Dua macam jenis huruf: Roman dan Arial.
6 7
………………...
16
……………………
18
………………………………..
20
Gambar 4.1 Contoh citra huruf berderau; (a) dan (g) citra asli; (b) dan (h) berderau 5 %; (c) dan (i) berderau 15%; (d) dan (j) berderau 25%; (e) dan (k) berderau 30%; (f) dan (l) berderau 35%.
…….
31
Gambar 4.2 Grafik pengaruh derau terhadap tingkat pengenalan untuk citra huruf masukan yang beragam.
…….
32
Gambar 4.3 Contoh citra yang mengalami deformasi proporsi, dengan (a) dan (d) citra asli, (b) dan (e) kurus, (c) dan (f) gemuk.
…….
33
Gambar 4.4 Contoh citra yang mengalami deformasi pergeseran, dengan (a) dan (d) citra asli, (b) tergeser ke kiri satu piksel, (c) tergeser ke kanan 2 piksel, (e) tergeser ke atas dua piksel dan (f) tergeser ke bawah tiga piksel.
…….
34
Gambar 4.5 Contoh citra yang mengalami deformasi perputaran, dengan (a) dan (d) citra asli, (b) dan (e) terputar -5 o , (c) dan (f) terputar 5 o.
…….
35
Gambar 4.6 Contoh citra berderau yang mengalami deformasi proporsi, pergeseran dan perputaran; (a) dan (d) citra asli; (b) dan (e) berderau 10 %, kurus, tergeser ke kiri satu piksel dan terputar 5 o ; (c) dan (f) berderau 10 %, gemuk, tergeser ke kanan satu piksel dan terputar -5 o.
…….
36
Gambar 4.7 Grafik pengaruh derau yang bertingkat terhadap tingkat pengenalan untuk bentuk huruf ‘B’,’X’,’Z’,dan ‘W’. x
…….
39
Gambar 3.2 Sistem pengenalan citra huruf berderau. Gambar 3.3 Jaringan syaraf probabilitas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI
Pengenalan citra merupakan suatu proses pengolahan citra aras-tinggi yang bertujuan untuk mengenali informasi yang terkandung dalam suatu citra. Untuk dapat melakukan proses pengenalan tersebut, penggunaan metode pengenalan yang berdasarkan pada sifat-sifat statistis merupakan metode yang telah umum digunakan. Disamping metode tersebut, dewasa ini, terdapat pula metode pengenalan lain yang sedang berkembang pesat, yang dinamakan metode jaringan syaraf tiruan. Dengan menggunakan jaringan syaraf tiruan yang berdasarkan pada sifatsifat statistis, maka pada penelitian ini dilakukan perancangan suatu model sistem pengenalan citra yang dapat mengenali huruf pada suatu citra berderau. Hasil pengujian jaringan syaraf tiruan yang dirancang memperlihatkan bahwa, huruf pada suatu citra berderau yang tingkat deraunya mencapai 35% dapat dikenali, dengan kesalahan tingkat pengenalan kurang dari 5%.
ABSTRACT Image recognition is a high-level image processing which is targeted to recognize information contained in the image. In performing this recognition, methods based on statistical properties are the common use. Beside those methods, nowadays, another method which utilizes the artificial neural networks has grown extensively. By using the artificial neural network which is based on some statistical properties, in this research a model of image recognition system was designed to have the ability to recognize letter from a noisy image. Test results of this model have shown that letter from a noisy image with noise level up to 35% can be recognized, with error recognition rate less than 5%.
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 1 PENDAHULUAN
1.1 Latar Belakang Pengenalan citra merupakan bagian bidang ilmu pengolahan citra, yang pada dasarnya bermaksud untuk meniru kemampuan sistem penglihatan manusia dalam menganalisis dan memahami suatu citra. Untuk mencapai maksud tersebut, metode yang berdasarkan sifat-sifat statistis merupakan metode yang telah dipakai secara
luas.
Penggunaan
regresi
linear,
pengelompokan,
korelasi,
dan
pengklasifikasi Bayes merupakan standar yang telah umum dipakai. Dewasa ini, jaringan syaraf tiruan yang pada dasarnya adalah meniru sistem otak manusia, telah memperlihatkan sejumlah sifat yang menarik seperti unjukkerja yang tangguh ketika menghadapi pola berderau, tolerans yang tinggi terhadap kesalahan, laju komputasi paralel yang tinggi, serta kemampuan generalisasi. Berdasar pada sifat-sifat statistis dan jaringan syaraf tiruan di atas, pada penelitian ini dirancang suatu jaringan syaraf tiruan yang mampu mengenali citra huruf berderau.
1.1.1 Perumusan masalah Manusia dapat mengenali dengan mudah suatu citra huruf berderau, dengan kandungan derau hingga suatu tingkat derau tertentu. Akan tetapi, tidak demikian halnya dengan komputer, karena komputer memerlukan adanya model-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
model pengenalan citra tertentu untuk dapat melakukan proses pengenalan citra tersebut. Pada penelitian ini, akan dibuat suatu model pengenalan citra yang dapat dilakukan oleh komputer. Model pengenalan citra yang akan dibuat merupakan model dengan jaringan syaraf tiruan yang berdasarkan sifat-sifat statistis.
1.1.2 Keaslian penelitian Pengenalan citra huruf berderau ukuran 5x7 piksel dengan jaringan syaraf tiruan yang berdasarkan pada perambatan galat mundur telah diusulkan oleh Demuth dan Beale (1994). Dengan jaringan syaraf tiruan tersebut, kandungan derau hingga 20% masih dapat ditanggulangi. Model jaringan syaraf tiruan untuk pengenalan citra berderau ukuran 7x9 piksel, dengan berdasarkan perseptron dan pengingat heteroasosiatif, telah diusulkan. Model yang dikenalkan oleh Fausett (1994) tersebut, mampu mengenali citra huruf yang mempunyai kandungan derau hingga 30%. Suatu model jaringan syaraf tiruan yang berdasarkan sifat-sifat statistis yang mampu mengenali citra huruf berderau ukuran 32x32 piksel, dengan kandungan derau sekitar 20% telah dikenalkan oleh Watanabe (1996). Pemodelan jaringan syaraf tiruan tersebut dilakukan dengan menggunakan jaringan syaraf kompetisi probabilitas. Penelitian yang dilakukan di sini, dimaksudkan untuk mengembangkan dan memberikan suatu alternatif lain jaringan syarat tiruan yang berdasarkan sifatsifat statistis yang lain. Jaringan syaraf ini diharapkan mampu menangani citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
huruf berukuran 32x32 piksel yang mempunyai kandungan derau hingga lebih dari 30%.
1.1.3 Faedah yang dapat diharapkan Dengan adanya penelitian ini dapat diharapkan akan dihasilkan suatu model alternatif pengenalan citra huruf berderau dengan jaringan syarat tiruan yang berdasarkan sifat-sifat statistis, yang kemampuan pengenalan citranya lebih tinggi dari yang pernah ada sebelumnya sebelumnya.
1.2 Tujuan Penelitian Tujuan yang ingin dicapai dalam penelitian ini adalah tersusunnya perangkat-lunak suatu model jaringan syaraf tiruan yang berdasarkan sifat-sifat statistis, yang mampu mengenali citra huruf berderau. Watak dan unjukkerja jaringan syaraf tiruan dalam melakukan pengenalan citra huruf berderau, akan diselidiki dalam penelitian ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 2 TINJAUAN PUSTAKA
2.1 Pengantar Jaringan syaraf tiruan yang berdasarkan sifat-sifat statistis pertama kali diperkenalkan oleh Donald Specht di tahun 1990-an. Jaringan yang dinamakan Jaringan Syaraf Probabilistis ini, mendasarkan diri pada pengklasifikasi BayesParzen. Specht memperlihatkan bahwa algoritma jaringan syaraf ini dapat dipecah ke dalam sejumlah besar pemroses-pemroses mandiri sederhana, yang dapat beroperasi secara paralel. Adanya pemrosesan paralel inilah yang merupakan dasar jaringan syaraf tiruan.
2.2 Landasan Teori 2.2.1 Jaringan syaraf tiruan Jaringan syaraf tiruan yang berkembang sejak tahun 1940-an, telah memperlihatkan kemajuan yang sangat pesat. Dewasa ini, model-model jaringan syaraf tiruan tersebut telah secara sukses diterapkan pada sistem-sistem untuk mengerjakan tugas-tugas seperti pengenalan pola, kendali robot, dan prediksi runtun waktu. Pada dasarnya, jaringan syaraf tiruan dimodelkan berdasarkan ciri organisasi otak manusia, yang mampu melakukan pengolahan secara paralel dan non-linear serta mampu pula mengangani informasi-informasi yang kompleks.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
Definisi jaringan syaraf tiruan menurut Lin dan Lee (1996). Jaringan syaraf tiruan adalah generasi baru sistem pemrosesan informasi yang dikonstruksi dengan berdasarkan pada beberapa ciri yang ada pada otak manusia, yaitu: 1) adanya elemen-elemen pemroses (simpul-simpul) yang saling tersambung, yang biasanya beroperasi secara paralel, dan 2) adanya kelakuan kolektif seperti kemampuan untuk belajar, mengingat kembali dan melakukan generalisasi atas pola pelatihan atau data.
Dalam implementasinya, jaringan syaraf tiruan merupakan paduan tiga hal dasar sebagai berikut. 1. Elemen-elemen pemroses (simpul-simpul) yang disebut sebagai neuronneuron. 2. Arsitektur sambungan antar elemen-elemen pemroses yang disebut sebagai arsitektur jaringan. 3. Aturan penyimpanan informasi ke dalam jaringan yang disebut sebagai aturan pelatihan.
Setiap neuron pada jaringan syaraf tiruan mempunyai tiga fungsi utama sebagai berikut. 1. Mengumpulkan nilai-nilai masukan dan nilai-nilai pada sambungan yang disebut sebagai bobot. 2. Melakukan operasi matematis tertentu yang telah ditentukan sebelumnya. 3. Mengeluarkan nilai hasil operasi matematis di atas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
Secara sederhana neuron ini diperlihatkan pada Gambar 2.1 di bawah ini.
x1 x2
w1 w2 g(f(x,w))
…
y
wn xn
Gambar 2.1 Model dasar neuron
Pada Gambar 2.1 di atas, keluaran neuron dirumuskan secara umum sebagai y = g(f(x, w)), dengan x = [x1, x2, …, xn] adalah vektor nilai masukan dan w = [w1, w2, …, wn] adalah vektor nilai bobot.
Neuron-neuron yang saling tersambung akan dapat membentuk banyak macam arsitektur jaringan seperti diperlihatkan oleh Fausett (1994), Lin dan Lee (1996), dan
Patterson (1996). Gambar 2.2 memperlihatkan contoh arsitektur
jaringan umpanmaju tiga-lapis yang merupakan dasar arsitektur jaringan syaraf tiruan yang digunakan dalam penelitian ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
keluaran lapis ke-3
lapis ke-2
lapis ke-1 masukan
Gambar 2.2 Contoh jaringan umpanmaju tiga-lapis.
Bobot-bobot sambungan dalam jaringan merupakan tempat jaringan syaraf menyimpan informasi. Terdapat banyak ragam algoritma pelatihan untuk mengeset nilai-nilai bobot ini. Pada penelitian ini, algoritma yang dipakai adalah algoritma pelatihan terbimbing jaringan syaraf probabilistis. Algoritma pelatihan ini pada dasarnya adalah, pembentukan neuron pada lapis ke-1 yang merupakan anak (turunan) neuron pada lapis ke-2, pada Gambar 2.2 di atas.
2.2.2 Pengklasifikasi Bayes Jaringan syaraf tiruan yang dipergunakan dalam penelitian ini didasarkan pada pengklasifikasi Bayes, yang melakukan klasifikasi dengan berdasarkan pada sifat-sifat statistis sekelompok data (informasi). Secara sederhana, pengklasifikasi Bayes untuk kasus klasifikasi dua-kelas diperlihatkan sebagai berikut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
hA cA fA (x) > hB cB fB (x)
dengan
hA , hB
: probabilitas apriori kelas A dan B
cA , cB
: risiko pemilihan kelas A dan B
(2.1)
fA (x) , fB (x) : kerapatan probabilitas kelas A dan B untuk masukan x.
2.2.3 Jendela Parzen Kerapatan probabilitas kelas pada pengklasifikasi Bayes di atas, biasanya tidak diketahui. Oleh karena itu, digunakan suatu cara untuk mengestimasi kerapatan probabilitas dengan berdasarkan pada jendela Parzen, yang dirumuskan sebagai:
f ( x) =
dengan
1 n ⎛ D ( x, x i ) ⎞ ⎟⎟ ∑ K⎜ n i =1 ⎜⎝ σ ⎠
n
: jumlah sampel
σ
: faktor penyekala
(2.2)
⎛ D ( x, x i ) ⎞ ⎟⎟ : fungsi kernel dengan D(x,xi) adalah fungsi jarak K ⎜⎜ ⎝ σ ⎠ antara vektor masukan x dan sampel xi.
Fungsi kernel di atas, pada dasarnya bertujuan untuk menghitung nilai kemiripan antara masukan dengan sampel yang ada. Nilai kemiripan ini akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
makin tinggi bila masukannya makin mirip dengan sampel yang ada dan sebaliknya, makin rendah bila masukannya makin tidak mirip dengan sampel yang ada. Bentuk fungsi kernel di atas dapat beragam, namun fungsi tersebut harus memenuhi kriteria-kriteria sebagaimana ditulis oleh Masters (1995) sebagai berikut.
1. Fungsi kernel harus berhingga:
sup | K (ϕ ) | dϕ < ∞ ϕ
(2.3)
2. Fungsi kernel harus dengan cepat menuju nol bila argumennya meningkat dalam nilai absolutnya:
∞
∫ K (ϕ ) dϕ < ∞
−∞
lim ϕK (ϕ ) = 0
ϕ →∞
(2.4)
3. Fungsi kernel harus dinormalisasi, bila yang akan diestimasi adalah fungsi kerapatan: ∞
∫ K (ϕ )dϕ = 1
−∞
(2.5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
4. Untuk mendapatkan kelakuan asimtotik yang tepat, jendela (faktor penyekala) harus menyempit bila jumlah sampelnya meningkat:
lim σ n = 0
n →∞
lim nσ n = ∞
(2.6)
n →∞
Salah satu contoh fungsi kernel yang memenuhi empat kriteria di atas adalah fungsi Gaussian, yang diperlihatkan pada persamaan:
K (ϕ ) = e −ϕ
2
(2.7)
Dalam fungsi kernel di atas, tercakup adanya fungsi jarak. Fungsi jarak tersebut merupakan fungsi untuk menghitung jarak antara dua buah vektor. Terdapat banyak macam fungsi jarak yang dapat dipergunakan untuk keperluan tersebut (Wilson et al, 1997). Salah satu macam fungsi jarak tersebut adalah fungsi jarak Minkowsky yang diperlihatkan pada persamaan:
⎛ n D( x, y ) = ⎜⎜ ∑ x i − y i ⎝ i =1
r
⎞ ⎟ ⎟ ⎠
1/ r
(2.8)
dengan r adalah bilangan bulat (1,2, …), yang merupakan orde fungsi jarak tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
2.2.4 Optimasi faktor penyekala Besar nilai faktor penyekala pada persamaan (2.2), dicari dengan melalui proses optimasi yang memperhatikan hal-hal sebagai berikut. 1. Bila masukan x diketahui merupakan sampel kelas ω, maka diharapkan nilai f(x) yang maksimum. Nilai yang maksimum ini dapat terjadi bila keadaan kandungan derau pada masukan x tersebut adalah 0 %. 2. Bila masukan x diketahui bukan merupakan sampel kelas ω, maka diharapkan nilai f(x) yang minimum. Nilai yang minimum ini dapat terjadi bila keadaan kandungan derau pada masukan x tersebut adalah 50 % 1)
Berdasarkan hal-hal di atas proses optimasi yang memaksimumkan nilai f(x) pada kandungan derau 0 %, dapat ditulis sebagai:
g1 (σ ) = maks( f ( x) | derau =0% )
(2.9)
Karena nilai f(x)|derau=0% di atas selalu lebih kecil dari 1, maka persamaan (2.9) di atas dapat ditulis dalam bentuk minimisasi fungsi:
g1 (σ ) = min (1 − f ( x) | derau =0% )
1)
(2.10)
Dalam hal ini, dipilih derau 50 %, karena dengan derau setinggi itu, citra masukannya benarbenar sangat tidak mirip dengan citra yang disimpan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Selanjutnya, proses optimasi untuk meminimumkan f(x) pada kandungan derau 50 % adalah:
g 2 (σ ) = min( f ( x) | derau =50% )
(2.11)
Akhirnya, proses optimasi keseluruhannya adalah minimisasi gabungan persamaan (2.10) dan (2.11):
g (σ ) = g1 (σ ) + g 2 (σ )
{(
)
g (σ ) = min 1 − f ( x) derau=0% + f ( x) derau=50%
(2.12)
}
(2.13)
Dalam penelitian ini, proses minimisasi pada fungsi g(σ) di atas dilakukan dengan menggunakan pencarian kuadratis (Buchanan dkk., 1992), yang algoritmanya ditulis sebagai berikut.
Algoritma 2.1 Pencarian Kuadratis Masukan
Kalang
Tetapkan batas minimum σ 0 dan batas maksimum σ 2 untuk fungsi g. Tetapkan toleransi ε σ +σ 2 Hitung σ 1 = 0 dan h = σ 1 - σ 0 2 Ulangi jika g(σ 0) < g(σ 1), maka (geser kiri) σ 2 = σ 1 ; σ 1 = σ 0 ; σ0 = σ1 - h jika g(σ 2) < g(σ 1), maka (geser kanan) σ0 = σ1 ; σ 1 = σ 2 ; σ 2 = σ1 + h
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
σ * = σ1 +
h.[ g (σ 0 ) − g (σ 2 )] 2.[ g (σ 0 ) − 2.g (σ 1 ) + g (σ 2 )]
jika g(σ *) < g(σ 1), maka σ 1 = σ * h ; σ0 = σ1 – h ; σ2 = σ1 + h 2 hingga h < ε h=
Keluaran
Minimum fungsi g pada σ 1 dengan galat lebih kecil dari h.
2.3 Hipotesis Model jaringan syaraf tiruan untuk pengenalan huruf yang dirancang, mempunyai 26 macam kelas, yaitu dari A hingga Z. Setiap kelas mempunyai sejumlah sampel dari 1 hingga n. Masukan huruf berderau yang telah diubah menjadi vektor, selanjutnya dihitung kerapatan probabilitasnya untuk setiap kelas, dengan menggunakan jendela Parzen. Penghitungan dengan jendela Parzen ini pada dasarnya dilakukan dalam dua tahap berikut. 1. Tahap pertama, penghitungan nilai kemiripan masukan setiap sampel di setiap kelas. Penghitungan nilai kemiripan ini dilakukan dengan menggunakan fungsi kernel yang telah ditentukan sebelumnya. 2. Tahap kedua, penjumlahan ternormalisasi nilai-nilai kemiripan yang terdapat di setiap kelas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Dengan berdasarkan pada aturan klasifikasi Bayes, maka keluaran jaringan syaraf tiruan adalah kelas yang mempunyai nilai kerapatan probabilitas terbesar 2).
2.4 Langkah Penelitian Penelitian dilakukan dengan melalui tahap-tahap sebagai berikut. 1. Perancangan sistem pengenalan citra huruf berderau secara keseluruhan. 2. Perancangan model jaringan syaraf tiruan, dengan berdasarkan pada jaringan syaraf probabilistis. 3. Pengimplementasian model jaringan syaraf tiruan dalam bentuk program, dengan menggunakan MATLAB. 4. Pengimplementasian
sistem
pengenalan
citra
huruf
berderau
secara
keseluruhan dalam bentuk program, dengan menggunakan MATLAB. 5. Pengujian watak dan unjukkerja sistem pengenalan citra huruf berderau secara keseluruhan. 6. Analisis hasil pengujian. 7. Pembuatan laporan penelitian.
2)
Hal ini berlaku bila jumlah sampel dan risiko pemilihan untuk setiap kelas, sama besarnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 3 CARA PENELITIAN
Penelitian dilakukan dengan cara merancang sistem pengenalan citra huruf berderau, yang masukan dan keluarannya berupa citra dengan format bitmap. Implementasi sistem dituliskan dalam bentuk program dengan menggunakan MATLAB.
3.1 Bahan Penelitian Bahan yang dipakai untuk menjalankan penelitian ini berupa citra huruf dengan spesifikasi sebagai berikut. 1. Format citra
: Bitmap
2. Ukuran citra
: 32x32 piksel
3. Huruf
: A hingga Z
4. Jenis huruf
: Roman dan Arial
Dalam penelitian ini, citra huruf dengan spesifikasi di atas dibuat dengan menggunakan program PAINT yang terdapat dalam sistem operasi WINDOWS 95. Hasil pembuatan citra huruf tersebut tersebut, secara visual diperlihatkan dalam Gambar 3.1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
(a) Jenis huruf Roman
(b) Jenis huruf Arial
Gambar 3.1 Dua macam jenis huruf: Roman dan Arial.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
3.2 Alat Penelitian Alat yang dipakai untuk menjalankan penelitian ini dibedakan menjadi dua macam sebagai berikut. 1. Perangkat-keras: Komputer berbasiskan mikroprosesor AMD5X86/133MHz dengan memori 16 MB, harddisk 850 MB, monitor VGA dan pencetak. 2. Perangkat-lunak: MATLAB versi 5.0 yang dilengkapi dengan Image Processing Toolbox.
3.3 Jalan Penelitian Jalannya penelitian yang dilakukan diuraikan seperti berikut.
3.3.1 Perancangan keseluruhan sistem Keseluruhan sistem pengenalan citra huruf berderau yang dirancang diperlihatkan secara blok pada Gambar 3.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Citra keluaran
Asosiasi citra
Klasifikasi dengan jaringan syaraf tiruan
Vektorisasi citra
Sumber derau Deformasi citra
Citra masukan
Gambar 3.2 Sistem pengenalan citra huruf berderau.
Pada Gambar 3.2 di atas, citra masukan berupa citra huruf ukuran 32x32 piksel dengan format bitmap. Sebelum dikontaminasi dengan derau, citra huruf ini sebelumnya dideformasi dahulu dalam hal proporsi, perputaran, dan pergeseran. Selanjutnya, dilakukan vektorisasi citra, yaitu mengubah citra 32x32 piksel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
menjadi suatu vektor dengan 1024 elemen. Hal ini dilakukan karena komputasi data dalam bentuk vektor lebih cepat daripada komputasi data dalam bentuk matriks bujursangkar. Vektor dengan 1024 elemen, merupakan informasi masukan bagi jaringan syaraf tiruan. Dengan informasi ini, jaringan syaraf tiruan mengenali informasi huruf yang ada dalam vektor tersebut. Hasil pengenalan jaringan syaraf tiruan berupa informasi nomor huruf dari 1 hingga 26, yang merupakan urutan nomor alfabet dari A hingga Z. Untuk mendapatkan keluaran sistem yang berupa citra, selanjutnya dilakukan asosiasi citra terhadap keluaran dari jaringan syaraf tiruan.
3.3.2 Perancangan jaringan syaraf tiruan Arsitektur jaringan syaraf yang dirancang, pada dasarnya bersumber pada jaringan syaraf probabilistis yang dikenalkan oleh Donald Specht. Akan tetapi, dalam penelitian ini dilakukan modifikasi dalam fungsi kernelnya, untuk mendapatkan komputasi yang lebih cepat. Untuk lebih jelasnya, arsitektur jaringan syaraf tiruan ini diperlihatkan dalam Gambar 3.3 sebagai berikut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
y
Lapis maksimum
maks
…
fA
ωA1
wA1
σ
…
ωAn
…
Lapis penjumlahan
fZ
ωZ1
…
ωZn
wZn
1
Lapis pola
1024
… x1
x2
x1024
Gambar 3.3 Jaringan syaraf probabilistis.
Jaringan syaraf probabilistis pada Gambar 3.2 di atas, pada dasarnya mempunyai 3 lapis, yaitu lapis pola, lapis penjumlahan, dan lapis maksimum. Berikut ini penjelasan untuk setiap lapis jaringan syaraf tiruan di atas. 1.
Lapis pola terdiri atas 26 kelas dari ωA hingga ωZ. Setiap kelas mempunyai sampel dari 1 hingga n. Oleh karena itu dalam lapis ini akan ada 26xn elemen pemroses. Setiap elemen pemroses berfungsi untuk mencari besar nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
kemiripan masukan terhadap sampel di setiap kelas, dengan menggunakan fungsi kernel yang telah ditentukan sebelumnya. 2.
Lapis penjumlahan terdiri atas 26 elemen pemroses. Setiap elemen pemroses pada lapis ini berfungsi untuk melakukan penjumlahan ternormalisasi atas nilai-nilai kemiripan di setiap kelas. Hasil penjumlahan ternormalisasi ini adalah nilai fungsi kerapatan probabilitas kelas.
3.
Lapis maksimum hanya terdiri atas satu elemen pemroses. Keluaran dari lapis ini berupa nomor kelas yang nilai fungsi kerapatan probabilitas kelasnya tertinggi.
3.3.2.1 Pelatihan Pelatihan jaringan syaraf probabilistis pada dasarnya hanya terdiri atas dua tahap pengkonstruksian lapis pola sebagai berikut. 1. Tahap pertama: pembentukan elemen pemroses dan penyimpanan bobotnya. 2. Tahap kedua: pencarian nilai faktor penyekala σ yang merupakan nilai prasikap pada lapis pola. Dua lapis yang lain yaitu lapis penjumlahan dan lapis maksimum tidak mengalami perubahan. Algoritma untuk pengkonstruksian lapis pola di atas diperlihatkan di bawah ini.
Algoritma 3.1 Pelatihan jaringan syaraf tiruan Langkah 1.
Pelatihan tahap pertama:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Untuk setiap pola masukan x(p) (p=1 … 1024) yang telah ditentukan kelas polanya ωi, (i=A, B, C,…,Y, atau Z) lakukan Langkah 2-3. Langkah 2.
Konstruksi kelas pola ωi Vektor bobot masukan kelas i, untuk sampel ke j (j =1 … n) : wij_p = x(p)
Langkah 3.
(3.1)
Sambungkan keluaran pemrosesan pada kelas pola ωi ke lapis penjumlahan di fi.
Langkah 4.
Pelatihan tahap kedua: Untuk pelatihan tahap kedua ini, lakukan Langkah 5-6.
Langkah 5.
Cari besar nilai faktor penyekala optimum σopt dengan melalukan operasi minimisasi:
σ opt
⎛ 26 n ⎞ ⎜ ∑∑ g ij (σ ) ⎟ ⎜ i =1 j =1 ⎟ = min⎜ ⎟ 26n ⎜ ⎟ ⎜ ⎟ ⎝ ⎠
(3.2)
dengan
(
g ij (σ ) = 1 − f i ( x j )
derau =0%
)+ f ( x ) i
j derau =50%
(3.3)
dan
( )
fi x j =
⎛ x −x ⎜ j i −⎜ n ⎜ σ e ⎝
∑ i =1
n
⎞ ⎟ ⎟⎟ ⎠
2
(3.4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
adalah nilai kerapatan probabilitas kelas i terhadap masukan xj, yang merupakan salah satu anggota kelas tersebut. Gunakan Algoritma 2.1 (Algoritma pencarian kuadratis pada halaman 12) untuk operasi minimisasi fungsi gij(σ) di atas. Langkah 6.
Sambungkan nilai σopt yang didapat, ke setiap elemen pemroses yang terdapat pada lapis pola.
3.3.2.2 Implementasi komputasi
Implementasi komputasi jaringan syaraf tiruan adalah berupa langkahlangkah komputasi yang dilakukan jaringan bila menerima pola masukan. Langkah-langkah ini dijelaskan dengan algoritma sebagai berikut.
Algoritma 3.2 Implementasi komputasi jaringan syaraf tiruan
Langkah O.
Inisialisasi bobot w dan faktor penyekala σ dari hasil pelatihan.
Langkah 1.
Untuk setiap pola masukan yang akan diklasifikasi, kerjakan Langkah 2-4.
Langkah 2.
Lapis pola: Untuk setiap sampel j (j=1 … n) dari kelas i (i = A … Z): hitung masukan jaringan dengan rumus jarak Minkowsky orde-1 yang ternormalisasi (lihat persamaan (2.8)):
m
Dij =
∑ xk − wij _ k
k =1
m
(3.5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
dengan m adalah jumlah elemen vektor x atau wij. Karena masukan jaringan dan bobotnya berupa bilangan biner, m
maka komputasi
∑x k =1
k
− wij _ k dalam MATLAB dapat dilakukan
lebih cepat, dengan menggunakan hal-hal sebagai berikut. 1. Tipe data 1 byte pada xk dan wij_k, sebagai pengganti tipe data default 8 byte. 2. Operasi logika (xk xor wij_k), sebagai pengganti operasi aritmatika x k − wij _ k . 3. Operasi pencarian banyaknya elemen tidak nol pada vektor hasil operasi (xk xor wij_k), sebagai pengganti operasi penjumlahan elemen vektor. Hitung keluaran lapis ini dengan fungsi kernel Gaussian:
K ij = Langkah 3.
⎛ Dij − ⎜⎜ σ e ⎝
⎞ ⎟ ⎟ ⎠
2
(3.6)
Lapis penjumlahan: hitung penjumlahan ternormalisasi untuk setiap kelas i (i = A… Z). n
∑ K ij fi =
j =1
n
(3.7)
dengan n adalah jumlah sampel di setiap kelas. Langkah 4.
Lapis maksimum: hitung keluaran jaringan sebagai: y = max( f i )
(3.8)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
3.3.3
Pelatihan dan pengujian jaringan syaraf tiruan
Pelatihan jaringan syaraf tiruan dilakukan dengan melatihkan pola huruf dalam bentuk vektor. Pola huruf ini terdiri atas huruf A hingga Z, dengan dua macam jenis huruf, yaitu Roman dan Arial untuk setiap hurufnya, sebagaimana yang diperlihatkan pada Gambar 3.1. Dengan adanya pelatihan, maka pada lapis pola akan terdapat sejumlah 52 elemen pemroses, yang terdiri atas 26 kelas elemen pemroses dengan 2 sampel tiap kelasnya. Selain adanya pengkonstruksian elemen-elemen pemroses pada lapis pola, pelatihan juga akan memberikan nilai faktor penyekala, yang merupakan salah satu variabel elemen pemroses pada lapis pola. Setelah pelatihan selesai, selanjutnya dilakukan pengujian pengenalan jaringan. Untuk itu, jaringan dimasuki citra-citra huruf secara beruntun dari A hingga Z yang terdiri atas dua jenis huruf yaitu Roman dan Arial. Bila semua citra huruf tersebut kemudian dapat dikenali, maka berarti jaringannya telah terlatih.
3.3.4
Implementasi keseluruhan sistem
Sistem pengenalan citra huruf berderau yang telah dirancang di atas, selanjutnya diimplementasikan dalam bentuk program MATLAB. Dalam implementasi ini, terdapat dua macam basis implementasi program sebagai berikut. 1. Implementasi berbasiskan teks, yang bertujuan untuk memperlihatkan unjukkerja sistem dalam hal tingkat pengenalan, serta lama waktu pelatihan dan pengujian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
2. Implementasi berbasiskan GUI (Graphical User Interface), yang bertujuan untuk memvisualisasikan sistem pengenalan citra berderau ini. Dua macam basis implementasi program di atas dan contoh hasil eksekusinya, diperlihatkan pada lampiran L2 dan L3.
3.3.5
Pengujian keseluruhan sistem
Pengujian sistem pengenalan citra huruf berderau secara keseluruhan, dilakukan dengan melakukan pengujian-pengujian sebagai berikut. 1. Pengujian mayor, merupakan pengujian utama tingkat pengenalan jaringan, bila citra huruf masukannya berderau. 2. Pengujian minor, merupakan pengujian tambahan tingkat pengenalan jaringan, bila citra huruf masukannya mengalami deformasi proporsi, perputaran dan pergeseran. 3. Pengujian gabungan, merupakan gabungan pengujian mayor dan minor di atas, untuk menguji tingkat pengenalan jaringan bila citra huruf masukannya selain berderau juga mengalami deformasi proporsi, pergeseran, dan perputaran. 4. Pengujian lama waktu pelatihan dan pengenalan. 5. Pengujian pengaruh derau dan faktor penyekala. 6. Pengujian pengaruh derau dan bentuk huruf.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
3.3.6 Pengambilan data hasil pengujian
Pengambilan data hasil pengujian pada pengujian mayor, pengujian minor, pengujian gabungan dan pengujian pengaruh derau dan faktor penyekala, dilakukan dengan cara mengambil data tingkat pengenalan, terhadap jaringan yang diberi masukan beragam 300 huruf secara sekuensial, pada keadaan tingkat derau yang beragam. Ketigaratus huruf yang dimasukkan ini, tersusun secara acak baik urutannya (A hingga Z) maupun jenisnya (Roman atau Arial). Hasil pengujian pengaruh derau dan bentuk huruf diperoleh dengan mengambil data tingkat pengenalan jaringan, bila jaringan tersebut diberi masukan seragam 300 huruf secara sekuensial, pada keadaan tingkat derau yang beragam. Jenis huruf Arial digunakan dalam pengujian ini. Pada pengujian terhadap lama waktu pelatihan, pengambilan datanya dilakukan dengan mengambil data lama waktu yang diperlukan jaringan syaraf tiruan untuk dilatih dengan menggunakan 26 kelas pola, dengan dua sampel di setiap kelas polanya. Sedangkan pengujian terhadap lama waktu pengujian dilakukan dengan mengambil data lama waktu yang diperlukan oleh jaringan syaraf tiruan, untuk mengenali setiap pola yang diberikan kepadanya.
3.3.7 Analisis hasil pengujian
Pengujian yang dilakukan di atas, pada dasarnya hendak menyelidiki empat macam watak jaringan. Watak yang pertama adalah, tingkat pengenalan jaringan bila citra masukannya beragam dan mempunyai tiga macam bentuk gangguan yaitu :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
1. Tingkat derau yang beragam. 2. Tingkat deformasi proporsi, pergeseran, dan perputaran yang beragam. 3. Tingkat derau serta deformasi proporsi, pergeseran, dan perputaran yang beragam. Watak yang kedua adalah, lama waktu yang diperlukan jaringan untuk melakukan eksekusi sebagai berikut: 1. Pelatihan dengan 26 kelas pola dengan 2 sampel di setiap kelasnya. 2. Pengenalan terhadap setiap citra masukan. Watak yang ketiga adalah, tingkat pengenalan jaringan serta rerata kerapatan probabilitas pada keadaan faktor penyekala dan derau yang beragam. Akhirnya watak yang keempat adalah, tingkat pengenalan jaringan bila citra huruf masukannya seragam dan mempunyai tingkat derau yang beragam.
3.4 Variabel yang diamati
Variabel yang diamati pada penelitian ini adalah sebagai berikut: 1. Tingkat pengenalan jaringan bila citra masukannya beragam dan mempunyai tingkat derau yang beragam pula. 2. Tingkat pengenalan jaringan bila citra masukannya beragam dan mengalami deformasi proporsi, perputaran dan pergeseran. 3. Tingkat pengenalan jaringan bila citra masukannya beragam, berderau dan juga mengalami deformasi proporsi, pergeseran, dan perputaran. 4. Lama waktu pelatihan dan pengenalan jaringan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
5. Tingkat pengenalan dan rerata kerapatan probabilitas, pada keadaan faktor penyekala dan derau yang beragam. 6. Tingkat pengenalan jaringan bila citra masukannya seragam dan mempunyai tingkat derau yang beragam.
3.5 Kesulitan-kesulitan
Kesulitan-kesulitan yang muncul selama penelitian ini terutama terjadi pada saat pengujian keseluruhan sistem. Jaringan syaraf probabilistis yang digunakan dalam penelitian ini mempunyai ciri beban komputasi yang tinggi, akibat adanya pelatihan prinsipnya adalah menyimpan semua data pelatihan. Oleh karena itu, jika tidak terdapat komputer yang berkecepatan tinggi, komputer yang berkecepatan rendah akan memerlukan waktu pengujian yang panjang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 4 HASIL PENELITIAN
4.1 Hasil Penelitian
4.1.1 Pengujian mayor terhadap citra masukan yang berderau Pengujian mayor jaringan syaraf tiruan yang diteliti, dilakukan terhadap masukan citra huruf
berderau. Contoh citra huruf berderau untuk pengujian
mayor ini diperlihatkan pada Gambar 4.1. Hasil pengujian mayor jaringan syaraf tiruan untuk keadaan derau yang bertingkat dari 0 % hingga 50 % terhadap tingkat pengenalan, diperlihatkan pada Gambar 4.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
a
b
c
d
e
f
g
h
i
j
k
l
Gambar 4.1 Contoh citra huruf berderau; (a) dan (g) citra asli; (b) dan (h) berderau 5 %; (c) dan (i) berderau 15%; (d) dan (j) berderau 25%; (e) dan (k) berderau 30%; (f) dan (l) berderau 35%.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Tingkat pengenalan (%)
100
100
100
100
99.3
99
100 90 80 70 60 50 40 30 20 10 0
95.7 76
34.7
4.3
5
10
15
20
25
30
35
40
45
50
Tingkat derau (%)
Gambar 4.2 Grafik pengaruh derau terhadap tingkat pengenalan untuk citra huruf masukan yang beragam.
4.1.2
Pengujian minor terhadap citra masukan yang mengalami deformasi
proporsi, pergeseran, dan perputaran
4.1.2.1 Pengujian terhadap citra yang mengalami deformasi proporsi Pada pengujian minor jaringan terhadap citra masukan yang mengalami deformasi proporsi, contoh citranya diperlihatkan pada Gambar 4.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
a
b
c
d
e
f
Gambar 4.3 Contoh citra yang mengalami deformasi proporsi, dengan (a) dan (d) citra asli, (b) dan (e) kurus, (c) dan (f) gemuk.
Hasil pengujian minor terhadap citra yang mengalami deformasi proporsi di atas, diperlihatkan pada Tabel 4.1.
Tabel 4.1. Pengaruh deformasi proporsi terhadap tingkat pengenalan. Proporsi Tingkat pengenalan (%)
Kurus
Normal
Gemuk
76,7
100
85,0
4.1.2.2 Pengujian terhadap citra yang mengalami deformasi pergeseran Contoh citra yang dipergunakan untuk pengujian minor terhadap citra yang mengalami deformasi pergeseran diperlihatkan pada Gambar 4.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
a
b
c
d
e
f
Gambar 4.4 Contoh citra yang mengalami deformasi pergeseran, dengan (a) dan (d) citra asli, (b) tergeser ke kiri satu piksel, (c) tergeser ke kanan 2 piksel, (e) tergeser ke atas dua piksel dan (f) tergeser ke bawah tiga piksel.
Hasil pengujian minor untuk menyelidiki pengaruh deformasi pergeseran terhadap tingkat pengenalan diperlihatkan pada Tabel 4.2.
Tabel 4.2 Pengaruh deformasi pergeseran terhadap tingkat pengenalan. Jarak geser (piksel) Tingkat pengenalan pada arah geser ke … (%)
0
1
2
3
kiri
100
80,3
40,0
6,3
kanan
100
79,3
22,0
5,3
atas
100
82,0
71,0
41,4
bawah
100
90,3
76,0
40,0
4.1.2.3 Pengujian terhadap citra yang mengalami deformasi perputaran Citra masukan yang mengalami deformasi perputaran, yang dipergunakan dalam penelitian ini diperlihatkan contohnya pada Gambar 4.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
a
b
c
d
e
f
Gambar 4.5 Contoh citra yang mengalami deformasi perputaran, dengan (a) dan (d) citra asli, (b) dan (e) terputar -5 o , (c) dan (f) terputar 5 o.
Hasil pengujian jaringan untuk pengaruh deformasi perputaran terhadap tingkat pengenalan, diperlihatkan pada Tabel 4.3.
Tabel 4.3 Pengaruh deformasi perputaran terhadap tingkat pengenalan. Perputaran ( … o)
-15
-10
-5
0
5
10
15
Tingkat pengenalan (%)
76,7
93,0
100
100
96,7
91,3
76,0
4.1.3 Pengujian gabungan terhadap citra masukan yang berderau dan mengalami deformasi proporsi, pergeseran dan perputaran Pengujian gabungan, merupakan gabungan dari pengujian mayor dengan pengujian minor. Contoh citra yang dipergunakan untuk pengujian gabungan ini diperlihatkan pada Gambar 4.6.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
a
b
c
d
e
f
Gambar 4.6. Contoh citra berderau yang mengalami deformasi proporsi, pergeseran dan perputaran; (a) dan (d) citra asli; (b) dan (e) berderau 10 %, kurus, tergeser ke kiri satu piksel dan terputar 5 o ; (c) dan (f) berderau 10 %, gemuk, tergeser ke kanan satu piksel dan terputar -5 o.
Hasil pengujian pengaruh derau terhadap tingkat pengenalan jaringan, pada citra yang mengalami deformasi proporsi, pergeseran, dan perputaran diperlihatkan pada Tabel 4.4.
Tabel 4.4 Pengaruh derau terhadap tingkat pengenalan, pada citra yang mengalami deformasi proporsi, pergeseran, dan perputaran. Derau (%)
0
5
10
15
20
25
30
35
40
45
50
Tingkat pengenalan pada citra huruf yang kurus, tergeser ke kiri 52,3 51,7 51,0 50,0 48,7 45,7 43,7 34,3 21,0 12,7 4,0 satu piksel dan terputar 5o (%) Tingkat pengenalan pada citra huruf yang gemuk, tergeser ke 82,0 81,7 81,0 80,0 76,7 75,3 72,0 58,0 39,0 16,7 4,3 kanan satu piksel dan terputar -5o (%)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
4.1.4
Panjang waktu pelatihan dan pengenalan Panjang waktu pelatihan dan pengenalan jaringan yang terkonstruksi atas
26 kelas pola, dengan dua sampel di setiap kelasnya, diperlihatkan pada Tabel 4.5.
Tabel 4.5
Panjang waktu pelatihan dan pengenalan, pada jaringan yang terkonstruksi atas 26 kelas pola, dengan dua sampel di setiap kelasnya. Panjang waktu (detik)
Pelatihan
Tahap I
4,6
Tahap II
161,4
Pengenalan/huruf
0,7
4.1.5 Pengujian pengaruh derau dan faktor penyekala Pengaruh derau dan faktor penyekala (σ) pada jaringan syaraf tiruan terhadap tingkat pengenalan dan kerapatan probabilitas, diperlihatkan pada Tabel 4.6 dan 4.7.
Tabel 4.6
Tingkat pengenalan jaringan (%) pada keadaan σ dan derau yang beragam.
Derau ( % )
σ = 0,01
0 50
100 3,7
σ = 0,24 (optimum) 100 4,3
σ = 100 100 4
Tabel 4.7 Rerata kerapatan probabilitas pada keadaan σ dan derau yang beragam. Derau ( % )
σ = 0,01
σ = 0,24
σ = 100
0 50
0,502 0,000
(optimum) 0,933 0,018
1,000 0,999
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
4.1.6
Pengujian pengaruh derau dan bentuk huruf Pengaruh derau dan bentuk huruf (‘A’, ‘B’, ‘C’, …, ‘Z‘) terhadap tingkat
pengenalan, diperlihatkan pada Tabel 4.7.
Tabel 4.7 Tingkat pengenalan jaringan untuk citra huruf masukan yang seragam, pada keadaan tingkat derau 40%. (a) Urut huruf. Huruf
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Tingkat pengenalan (%) 88,7 62,0 65,0 64,7 73,0 84,0 76,3 86,0 86,0 87,0 80,0 83,0 88,3 72,0 86,0 79,7 79,3 81,7 84,7 73,7 65,3 81,7 96,7 75,7 84,7 84,0
(b) Urut tingkat pengenalan. Huruf
B D C U N E T X G Q P K R V L F Z S Y H I O J M A W
Tingkat pengenalan (%) 62,0 64,7 65,0 65,3 72,0 73,0 73,7 75,7 76,3 79,3 79,7 80,0 81,7 81,7 83,0 84,0 84,0 84,7 84,7 86,0 86,0 86,0 87,0 88,3 88,7 96,7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Dengan mengacu pada Tabel 4.7(b), dipilih huruf-huruf ‘B’, ‘X’, ‘Z’, dan ‘W’ dengan berdasarkan pada peringkat tingkat pengenalannya, yaitu dari peringkat terbawah hingga peringkat teratas. Pengujian lebih lanjut keempat huruf
Tingkat pengenalan (%)
ini diperlihatkan hasilnya pada Gambar 4.7.
100 80 60 40 20 0
5
10
15
20
25
30
35
40
45
Huruf 'B' 100 100 100 100 99.7 98.7 91.3 62 23.7 Huruf 'X' 100 100 100 100 100 100 96.3 75.7 33 Huruf 'Z' 100 100 100 100 100 100 98
50
3 3
84 39.7 4.3
Huruf 'W' 100 100 100 100 100 100 100 96.7 61
9.7
Tingkat derau (%)
Gambar 4.7. Grafik pengaruh derau yang bertingkat terhadap tingkat pengenalan untuk bentuk huruf ‘B’,’X’,’Z’,dan ‘W’.
4.2 Pembahasan 4.2.1
Pengaruh derau terhadap tingkat pengenalan Hasil pengujian pada Gambar 4.1 memperlihatkan bahwa pada keadaan
derau yang mencapai 20% jaringan syaraf masih dapat mengenali semua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
masukannya. Pada keadaan derau antara 20 % hingga 35 %, jaringan syaraf mengalami kemerosotan tingkat pengenalan yang kecil, yaitu kurang dari 5 %. Selanjutnya pada keadaan antara 35 % hingga 50 %, kemerosotan tingkat pengenalannya menjadi sangat besar, yaitu hingga mencapai 93 %. Berdasarkan uraian di atas, dapat dikatakan bahwa jaringan syaraf yang diteliti tidak begitu terpengaruh (tidak sensitif) terhadap derau, pada keadaan tingkat derau dari 0 % hingga 35 %. Hal ini diindikasikan dengan adanya kesalahan tingkat pengenalan yang kurang dari 5 %.
4.2.2
Pengaruh deformasi proporsi, pergeseran dan perputaran terhadap
tingkat pengenalan Pengaruh deformasi proporsi pada citra masukan diperlihatkan pada Tabel 4.2. Pada tabel tersebut diperlihatkan bahwa proporsi huruf yang kurus maupun gemuk sangat mempengaruhi tingkat pengenalan jaringan. Proporsi huruf yang kurus mempunyai tingkat pengenalan yang lebih rendah sekitar 10 % dari pada yang gemuk. Tabel 4.3 memperlihatkan pengaruh pergeseran terhadap tingkat pengenalan jaringan. Pada tabel tersebut terlihat bahwa tingkat pengenalan jaringan syaraf sangat terpengaruh walaupun pergeserannya hanya sejauh satu piksel. Selain itu terlihat juga bahwa pergeseran ke bawah dan ke atas lebih bisa diterima oleh jaringan syaraf daripada pergeseran yang ke kiri dan ke kanan. Pengaruh perputaran terhadap tingkat pengenalan yang diperlihatkan pada Tabel 4.4 mengindikasikan bahwa, untuk perputaran hingga sekitar +/- 5o, tingkat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
pengenalan jaringan syaraf masih tidak begitu terpengaruh, karena kesalahan tingkat pengenalan kurang dari 5 %. Akan tetapi, jika perputarannya makin lebih besar dari 5o, tingkat pengenalan jaringan syarafnya makin terpengaruh oleh perputaran tersebut. Dengan menggunakan perkataan yang lebih umum, Tabel 4.2 hingga 4.4 memperlihatkan bahwa jaringan syaraf yang diteliti sangat terpengaruh (sensitif) terhadap proporsi, pergeseran dan perputaran yang dialami masukannya.
4.2.3 Pengaruh derau serta deformasi proporsi, pergeseran, dan perputaran terhadap tingkat pengenalan Pengujian gabungan untuk menyelidiki pengaruh derau serta deformasi proporsi, pergeseran, dan perputaran yang diperlihatkan pada Tabel 4.5, mengindikasikan bahwa kemerosotan tingkat pengenalan jaringan dari tingkat derau 0 % hingga 20 % masih relatif kecil, yaitu kurang dari 5 %. Bila hal ini dibandingkan dengan tingkat pengenalan jaringan pada citra yang tanpa mengalami penyekalaan, pergeseran dan perputaran pada Tabel 4.1, maka kemerosotan tingkat pengenalan jaringan yang kurang dari 5 % ini berkurang rentangnya sebanyak 15 %. Dari uraian di atas, dapat diindikasikan pula bahwa ketidaksensitifan jaringan terhadap derau pada rentang tingkat derau tertentu masih nampak. Namun, akibat pengaruh deformasi proporsi, perputaran dan pergeseran ini, ketidaksensitifan jaringan pada rentang derau tertentu berkurang sebanyak 15 %.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
4.2.4
Panjang waktu pelatihan dan pengenalan Panjang waktu pelatihan dan pengujian, selain ditentukan oleh konfigurasi
jaringan syaraf pada lapis pola yang menyimpan sampel-sampel pola, juga ditentukan oleh konfigurasi komputer yang digunakan. Pada Tabel 4.5, konfigurasi jaringan syaraf yang lapis polanya terdiri atas 26 kelas, dengan dua sampel di setiap kelasnya, serta menggunakan komputer yang konfigurasinya berbasiskan prosesor AMD5X86/133MHz, panjang waktu pengujian untuk setiap citra huruf hanya 0,7 detik. Selain itu, Tabel 4.5 juga memperlihatkan bahwa dalam hal pelatihan, panjang waktu pelatihan tahap I paling pendek, karena pada tahap tersebut hanya berlangsung proses penyimpanan semua citra yang dilatihkan dalam bentuk vektor pada lapis pola, sedangkan pelatihan tahap II lebih lama, pada tahap ini berlangsung proses iterasi untuk mencari nilai faktor penyekala yang optimum.
4.2.6
Pengaruh derau dan faktor penyekala Derau dan faktor penyekala menurut Tabel 4.6(a), terlihat tidak
mempunyai pengaruh yang signifikan terhadap tingkat pengenalan jaringan. Namun, pada Tabel 4.6(b), derau dan faktor penyekala ini terlihat mempunyai pengaruh yang signifikan terhadap rerata kerapatan probabilitas. Pada keadaan derau 0 % hingga 50 %, nilai faktor penyekala yang makin jauh dari nilaa optimumnya, memberikan rentang rerata kerapatan probabilitas yang makin sempit. Proses komputasi pada rentang rerata kerapatan probabilitas yang makin sempit ini, memerlukan bilangan pecahan (floating point) yang makin panjang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Bila bilangan pecahan ini terlalu panjang sampai melebihi yang dapat ditangani oleh komputernya, hasil penghitungan kerapatan probabilitasnya akan selalu 0 (untuk faktor penyekala yang terlalu kecil) atau selalu 1 (untuk faktor penyekala yang terlalu besar), pada semua tingkatan derau. Ini berarti, jaringan syaraf sudah benar-benar tidak dapat mengenali lagi masukannya.
4.2.6 Pengaruh derau dan bentuk huruf Derau dan bentuk huruf mempunyai pengaruh terhadap tingkat pengenalan jaringan syaraf tiruan yang diteliti, seperti diperlihatkan pada Tabel 4.7. Sebagai contoh yang ekstrim, huruf ‘B’ mempunyai tingkat pengenalan sekitar 34% lebih rendah daripada huruf ‘W’, pada keadaan tingkat derau 40%. Adanya kejadian ini dikarenakan, huruf ‘B’ jarak huruf yang lebih dekat dengan huruf-huruf yang lainnya seperti huruf ‘D’, ‘E’, dan ‘R’, pada keadaan tingkat derau 40% tersebut. Penelitian lebih jauh terhadap pengaruh derau dan bentuk huruf, dilakukan dengan melakukan pengujian terhadap huruf-huruf terpilih ‘B’, ‘X’, ‘Z’, dan ‘W’, untuk keadaan derau yang beragam dari 0% hingga 50%. Sebagaimana terlihat pada Gambar 4.7, huruf ‘B’ mempunyai titik patah (cut-off) tingkat pengenalan yang terendah, bila dibandingkan dengan huruf-huruf ’X’, ‘Z’ dan ‘W’. Seperti halnya pada kejadian di atas, hal ini dikarenakan karena huruf ‘B’ mempunyai jarak huruf yang lebih dekat dengan huruf-huruf yang lainnya bila dibandingkan dengan huruf-huruf ‘X’, ‘Z’, dan ‘W’. Dari dua kejadian di atas, dapat dikatakan bahwa jaringan syaraf yang diteliti sensitif terhadap bentuk huruf pada kondisi derau tinggi. Berdasarkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Gambar 4.7, sifat sensitif ini mulai nampak pada tingkat derau 35%, yang diindikasikan dengan adanya perbedaan tingkat pengenalan yang lebih dari 5%, antara tingkat pengenalan huruf ‘B’ dengan huruf ‘W’.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan Berdasarkan hasil penelitian tentang pengenalan citra huruf berderau dengan jaringan syaraf tiruan yang berdasarkan sifat-sifat statistis, disimpulkan hal-hal sebagai berikut. 1. Pemrosesan data yang berdasarkan sifat-sifat statistis merupakan dasar jaringan syaraf tiruan yang diteliti. Sifat-sifat statistis yang digunakan adalah yang berkaitan dengan distribusi kerapatan probabilitas pola masukan terhadap pola-pola yang disimpan. Distribusi kerapatan probabilitas ini dihitung secara non-parametris dengan menggunakan jendela Parzen. Selanjutnya, distribusi kerapatan probabilitas ini diproses lebih lanjut dengan berdasarkan pada pengklasifikasi Bayes untuk menghasilkan keluaran jaringan. 2. Unjukkerja jaringan syaraf tiruan yang diteliti telah memperlihatkan hasil yang mengagumkan dalam pengenalan citra huruf berderau. Huruf dengan kandungan tingkat derau hingga 35 %, masih dapat ditangani oleh jaringan, dengan tingkat kesalahan pengenalan kurang dari 5 %. Hal ini berarti, jaringan syaraf yang diteliti tidak sensitif terhadap huruf dengan kandungan tingkat derau hingga 35 %. Bila dibandingkan dengan kemampuan pengenalan oleh mata manusia, maka jaringan syaraf yang diteliti ini lebih unggul, karena
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
huruf dengan kandungan tingkat derau hingga 35 % sangat sulit dikenali oleh mata manusia. 3. Adanya deformasi huruf dalam hal proporsi, pergeseran dan perputaran, mengakibatkan turun dengan drastisnya tingkat pengenalan jaringan. Jaringan syaraf yang diteliti, memperlihatkan watak pengenalan yang sensitif terhadap deformasi huruf. Bila dibandingkan dengan mata manusia, maka unjukkerja jaringan syaraf dalam hal deformasi huruf ini lebih rendah, karena mata manusia tidak mempunyai watak pengenalan yang sesensitif jaringan syaraf yang diteliti terhadap deformasi huruf ini. 4. Watak pengenalan jaringan syaraf terhadap huruf berderau yang mengalami deformasi dalam hal proporsi, pergeseran, dan perputaran masih menunjukkan adanya ketidaksentitifan jaringan terhadap derau pada rentang tertentu. Namun rentang ketidaksensitifan ini lebih sempit bila dibandingkan dengan pengenalan jaringan terhadap huruf yang tidak mengalami deformasi. 5. Pelatihan jaringan syaraf yang diteliti dilakukan dengan dua tahap. Tahap yang pertama adalah, penyimpanan semua pola pelatihan ke dalam jaringan. Sedangkan tahap yang kedua adalah, pencarian secara iteratif nilai faktor penyekalanya yang optimum. 6. Tingkat pengenalan jaringan syaraf tidak memperlihatkan kesensitifan terhadap perubahan nilai faktor penyekala, yang merupakan salah satu variabel pada fungsi kernel. Akan tetapi, nilai faktor penyekala yang terlalu jauh dari optimumnya akan dapat menyebabkan jaringan benar-benar tidak dapat lagi mengenali masukannya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
7. Bentuk huruf (‘A’, ‘B’, ‘C’, …, atau ‘Z’) mempunyai pengaruh terhadap tingkat pengenalan jaringan pada tingkat derau yang tinggi. Jaringan syaraf terlihat mulai menampakkan kesensitifan terhadap bentuk huruf ini pada keadaan tingkat derau 35%.
5.2 Saran 1. Jaringan syaraf tiruan yang digunakan dalam penelitian ini, melakukan pemrosesan terhadap sejumlah 1024 data masukan, di setiap elemen pemroses pada lapis pola. Adanya pemrosesan data yang jumlahnya sangat besar ini berakibat, bila jaringan syaraf tiruan ini diberikan banyak pola pelatihan, maka jumlah elemen pemrosesnya akan makin banyak. Ini berarti, waktu pelatihan dan pengujian jaringan akan menjadi makin panjang. Untuk mengatasi hal ini, penelitian ini dapat dikembangkan lebih lanjut dengan menambahkan suatu pengolah awal yang akan mengekstraksi ciri-ciri pola, sebelum pola tersebut masuk ke jaringan. Dengan cara ini, setiap pola dapat diwakili oleh sederetan nilai koefisien (Chandran et al, 1997). Dengan demikian, akan terjadi pengurangan yang sangat drastis pada ukuran pola-pola ini, yang akan menaikkan kecepatan jaringan secara signifikan baik dalam pelatihan maupun pengujiannya. 2. Bentuk huruf (‘A’, ‘B’, ‘C’, …, atau ‘Z’) yang digunakan dalam penelitian ini, mempunyai jarak huruf yang beragam antara huruf yang satu dengan lainnya. Sebagai contoh, huruf ‘B’ mempunyai jarak huruf yang lebih kecil dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
huruf-huruf yang lainnya seperti huruf ‘D’, ‘E’, dan ‘R’, daripada huruf ‘W’. Hal ini berakibat, pada keadaan tingkat derau yang tinggi (misalnya 40%), tingkat pengenalan jaringan terhadap huruf ‘B’ lebih rendah daripada huruf ‘W’. Oleh karena itu, tingkat pengenalan jaringan masih dapat ditingkatkan lagi dengan menggunakan seperangkat huruf masukan yang jarak hurufnya makin berjauhan antara suatu huruf dengan huruf-huruf lainnya. 3. Secara perangkat-lunak, kecepatan pelatihan dapat ditingkatkan lagi dengan menggunakan algoritma minimisasi fungsi yang lebih cepat. 4. Secara perangkat-keras, kecepatan pelatihan dan juga pengenalan jaringan dapat ditingkatkan lagi dengan cara menggunakan komputer yang mempunyai kecepatan lebih tinggi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB 6 RINGKASAN
Penelitian yang dilakukan dapat diringkas menjadi beberapa topik bahasan seperti di bawah ini.
6.1 Latar Belakang Pengenalan citra huruf berderau pernah diselidiki oleh beberapa peneliti. Penelitian yang terakhir (Watanabe, 1996) menghasilkan suatu jaringan syaraf tiruan yang mampu mengenali citra huruf berderau ukuran 32x32 piksel dengan kandungan derau sekitar 20 %. Dalam penelitian ini, penulis bermaksud untuk menghasilkan sesuatu yang lebih dari yang pernah ada sebelumnya, yaitu suatu jaringan syaraf tiruan yang mampu mengenali citra huruf berderau berukuran 32x32 piksel dengan kandungan derau yang lebih dari 30 %.
6.2 Tinjauan Pustaka Jaringan syaraf tiruan adalah suatu jaringan yang dimodelkan berdasarkan ciri organisasi otak manusia, yang mampu melakukan pengolahan secara paralel dan non-linear, serta mampu pula mengangani informasi-informasi yang kompleks.
Dengan
berdasar
pada
hal
tersebut,
Donald
Specht
telah
memperkenalkan suatu jaringan syaraf tiruan yang berdasarkan sifat-sifat statistis yang dinamakan jaringan syaraf probabilistis. Dalam penelitian ini, jaringan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
syaraf probabilistis inilah yang dikembangkan untuk dapat melakukan pengenalan terhadap citra huruf berderau.
6.3 Landasan Teori Jaringan syaraf tiruan yang dikembangkan dalam penelitian ini, merupakan jaringan syaraf yang memanfaatkan sifat-sifat statistis kelas pola, dalam melakukan proses klasifikasi. Dalam hal ini proses klasifikasinya menggunakan pengklasifikasi Bayes. Ada suatu hal yang rumit dalam pengklasifikasi Bayes ini yaitu, penentuan nilai fungsi kerapatan probabilitas suatu kelas pola. Untuk mendapatkan nilai fungsi ini, maka setiap pola masukan harus dievaluasi terhadap setiap sampel pola yang ada di setiap kelas. Ini berarti, memerlukan suatu proses komputasi yang ekstensif.
6.4 Cara Penelitian Penelitian ini, pada dasarnya dilakukan dengan cara memodifikasi jaringan syaraf probabilistis yang telah ada sebelumnya. Modifikasi di sini dilakukan terhadap fungsi kernel yang terdapat pada lapis pola pada jaringan syaraf tersebut. Secara ringkas, modifikasi ini mencakup dua hal berikut. 1. Menggunakan fungsi jarak Minkowski orde-1 yang diimplementasikan secara operasi logika XOR untuk pengolahan data biner, sebagai pengganti fungsi jarak Eucledian. Dengan cara ini, proses komputasi menjadi lebih cepat. 2. Memperkenalkan pencarian nilai faktor penyekala yang umum untuk setiap pola huruf yang dilatihkan, dengan memperhatikan sifat-sifat jaringan pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
keadaan derau 0 % dan derau 50 %. Hal ini memberikan hasil tingkat pengenalan jaringan menjadi lebih akurat, terutama bila berhadapan dengan citra huruf dengan kandungan derau yang tinggi.
6.5 Hasil Penelitian Penelitian yang dilakukan telah menghasilkan suatu jaringan yang tidak sensitif terhadap derau. Hal ini didasarkan atas hasil pengujian yang memperlihatkan bahwa, tingkat kesalahan pengenalan yang kurang dari 5% masih dapat diperoleh, pada keadaan tingkat derau yang mencapai 35 %. Meskipun tidak sensitif terhadap derau, namun jaringan yang dirancang ternyata sensitif terhadap adanya deformasi proporsi, pergeseran, dan perputaran. Hasil pengujian memperlihatkan adanya deformasi tersebut yang relatif kecil, telah menyebabkan turun dengan drastisnya tingkat pengenalan jaringan. Sebagai contoh, tingkat pengenalan jaringan untuk citra dengan huruf yang kurus, tergeser ke kiri satu piksel dan terputar 5o hanya mencapai 52,3 %. Bentuk huruf masukan (‘A’, ‘B’, ‘C’ …, atau ‘Z’), mempunyai pengaruh terhadap tingkat pengenalan jaringan pada keadaan tingkat derau yang tinggi. Jaringan mulai memperlihatkan kesensitifannya terhadap bentuk huruf pada tingkat derau 35%, yang diindikasikan dengan adanya perbedaan tingkat pengenalan yang lebih dari 5% antara huruf ‘B’ dengan huruf ‘W’.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
DAFTAR PUSTAKA
Buchanan, James L., dan Turner, Peter R., 1994, Numerical Methods and Analysis, McGraw-Hill Inc. New York. Chandran, Vinod, Carswell, Brett, Boashash, Boualem, dan Elgar, Steve, 1997, "Pattern Recognition Using Invariants Defined from Higher Order Spectra: 2-D Image Inputs", IEEE Transactions on Image Processing, Vol. 6. No. 5, pp 703-712. Demuth, Howard dan Beale, Mark, 1994, Neural Networks Toolbox: For Use with MATLAB, The Mathworks, Inc., Massachusetts. Fausett, Laurene, 1994, Fundamentals of Neural Networks, Prentice Hall, Inc., New Jersey. Lin, Chin-Teng dan Lee, George C.S., 1996, Neural Fuzzy Systems, Prentice Hall, Inc. New Jersey. Masters, Timothy, 1995, Advanced Algorithm for Neural Networks: A C++ Sourcebook, John Wiley & Sons, Inc., Toronto. Patterson, Dan W., 1996, Artificial Neural Networks, Simon & Schuster (Asia) Pte. Ltd., Singapore. Watanabe, Sumio, 1996, "An Ultrasonic 3-D Robot Vision System Based on the Statistical Properties of Neural Networks", Neural Networks for Robotic Control: Theory and Applications, Edited by A.M.S. Zalzala and A.S. Morris, Ellis Horwood Limited, London. Wilson, Randall D. dan Martinez, Tony R., 1997, "Improved Heterogeneous Distance Functions", Journal of Artificial Intelligence Research, No. 6, pp 1-34.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
L.1 Daftar Kode Sumber Kode-kode sumber yang dirancang dalam penelitian ini diperlihatkan pada daftar sebagai berikut. 1. Kode sumber pengujian berbasiskan teks. txtpnn.m - Pengujian PNN berbasiskan teks 2. Kode sumber pengujian berbasiskan GUI. guipnn.m - Callback untuk pengujian PNN berbasiskan GUI guipnnfg.m - Figure untuk pengujian PNN berbasiskan GUI 3. Kode sumber pelatihan latih.m - Pelatihan PNN 4. Kode sumber bersama yang digunakan oleh kode sumber pegujian berbasiskan teks dan GUI, serta pelatihan. simupnn.m - Simulasi PNN lhlayer.m - Simulasi lapis pola dan penjumlahan pada PNN imdc.m - Vektorisasi dan pengkontaminasian derau pada citra geser.m - Pergeseran citra
*) Keterangan: PNN (Probabilistic Neural Network) GUI (Graphical User Interface)
L.2 Listing Kode Sumber Listing kode sumber dari daftar di atas, diperlihatkan sebagai berikut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Kode sumber: txtpnn.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
function txtpnn % TXTPNN Pengujian PNN berbasiskan teks % % (c) Linggo S. - 1998 clc tic % =================================================== % Variabel masukan dan jaringan % =================================================== JumlahUji=300; % Jumlah pengujian Derau=0;
% Derau : 0,1,...,50 (persen)
Proporsi='normal';
JarakGeser=0;
% % % % % %
RuntunHuruf='acak';
% Runtun huruf : 'acak','atur'
load sampel load sigma
% Ambil data jumlah sampel per kelas % Ambil data sigma
Rotasi=0; ArahGeser='atas_';
Proporsi huruf: 'normal','gemuk_','kurus_' Rotasi huruf: -15,..,0,...,15 (derajad) Arah geser: ‘atas_','bawah','kanan','kiri_' Jarak geser: 0,1,2,... (piksel)
% =================================================== % Pengujian berulang % =================================================== disp('Pengujian berulang berbasiskan teks') disp('===================================') fprintf('Persen derau : %g\n\n',Derau) fprintf('Proporsi huruf : %s\n',Proporsi) fprintf('Sudut rotasi : %g\n',Rotasi) fprintf('Arah pergeseran : %s\n',ArahGeser) fprintf('Jarak pergeseran : %g piksel\n\n',JarakGeser) fprintf('Jumlah pengujian : %g\n\n',JumlahUji) % Pembentukan runtun huruf % ---------------------------------------------------DaftarHuruf=['A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';... ‘M’;'N';'O';'P';'Q';'R';'S';'T';'U';'V';'W';'X';'Y';'Z']; if RuntunHuruf=='acak' % Huruf dan jenis huruf acak DaftarAngka=1+round((100*rand(JumlahUji,1))/4); JHuruf=randn(JumlahUji,1)>0; else % Huruf teratur dengan jenis huruf Arial NomorHuruf=find(DaftarHuruf==Huruf); DaftarAngka=NomorHuruf*ones(JumlahUji,1); JHuruf=ones(JumlahUji,1); end % ----------------------------------------------------
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: txtpnn.m
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
tic salah=0; Density=zeros(JumlahUji,1); for i=1:JumlahUji HurufIn=DaftarHuruf(DaftarAngka(i)); if JHuruf(i)==0 JenisHuruf='Roman'; else JenisHuruf='Arial'; end fprintf('Pengujian ke %3.3g - Masukan : %s ',i,HurufIn) fprintf('(%s)',JenisHuruf) fprintf(' , Keluaran : ') % Konversi citra BMP ke matriks biner % ---------------------------------------------------if JenisHuruf=='Roman' Citra0=~(imread([HurufIn 'roman'],'bmp')); else Citra0=~(imread([HurufIn 'arial'],'bmp')); end % Mode huruf % ----------------------------------------------------switch Proporsi case 'normal' Citra=Citra0; case 'gemuk_' Citra=bwmorph(Citra0,'dilate'); case 'kurus_' Citra=bwmorph(Citra0,'thin'); end % Pergeseran citra % ----------------------------------------------------Citra=geser(Citra,ArahGeser,JarakGeser); % Rotasi citra % ----------------------------------------------------Citra=imrotate(Citra,Rotasi,'nearest','crop'); % Penambahan derau acak dan vektorisasi % ----------------------------------------------------Citra=imdc(Citra,Derau); % Simulasi PNN % ----------------------------------------------------CitraIn=repmat(Citra,1,sampel); [HurufOut,Density(i)]=simupnn(CitraIn,sigma,DaftarHuruf,sampel); % Keluaran PNN % -----------------------------------------------------
56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: txtpnn.m
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
if HurufIn==HurufOut Out='benar'; else salah=salah+1; Out='S A L A H'; end fprintf('%s - %s\n',HurufOut,Out) end Waktu1=toc; Waktu2=Waktu1/JumlahUji; PersenTepat=((JumlahUji-salah)/JumlahUji)*100; % =================================================== % Hasil Pengujian % =================================================== % Kerapatan Probabilitas fprintf('\nRerata kerapatan probabilitas : %f\n',mean(Density)) % Meleset dan tepat fprintf('\nJumlah pengujian : %g \n',JumlahUji) fprintf('Jumlah meleset : %g \n',salah) fprintf('Persen tepat : %g \n\n',PersenTepat) % Waktu pengujian fprintf('Waktu keseluruhan pengujian : %g detik \n',Waktu1) fprintf('Waktu pengujian/huruf : %g detik \n\n',Waktu2)
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber : guipnn.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
function guipnn(aksi) % Definisi callback pada GUIPNNFG
% ============================================================ % FUNGSI UTAMA % ============================================================ load sigma sigma=mean(mean(sigma)); load sampel blank=~uint8(zeros(32,32)); DaftarHuruf=['A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';'M';... 'N';'O';'P';'Q';'R';'S';'T';'U';'V';'W';'X';'Y';'Z']; global ImgHnd if nargin <1 aksi='inisialisasi'; end switch aksi case 'inisialisasi' ImgHnd=[0 0]; guipnnfg [x1,map]=imread('aroman','bmp'); axes(ImgHnd(1)); imshow(x1,map); axis('on') axes(ImgHnd(2)); imshow(x1,map); axis('on') case 'perputaran' Rot=get(gcbo,'Value'); Hnd=findobj(gcbf,'Tag','TextPerputaran'); set(Hnd,'String',sprintf('%3.1f',Rot)) case 'derau' Derau=get(gcbo,'Value'); Hnd=findobj(gcbf,'Tag','TextDerau'); set(Hnd,'String',sprintf('%3.1f',Derau)) case 'reset' Hnd=findobj(gcbf,'Tag','PopUpJenis'); set(Hnd,'Value',1) Hnd=findobj(gcbf,'Tag','PopUpProporsi'); set(Hnd,'Value',1) Hnd=findobj(gcbf,'Tag','SliderPerputaran'); set(Hnd,'Value',0) Hnd=findobj(gcbf,'Tag','PopUpArahGeser'); set(Hnd,'Value',1) Hnd=findobj(gcbf,'Tag','PopUpJarakGeser'); set(Hnd,'Value',1) Hnd=findobj(gcbf,'Tag','TextPerputaran'); set(Hnd,'String',sprintf('0.0'))
58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber : guipnn.m
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
case 'eksekusi' % Ambil masukan % -------------------------------------------Hnd=findobj(gcbf,'Tag','PopUpHuruf'); List=get(Hnd,'UserData'); HurufIn=List(get(Hnd,'Value')); Hnd=findobj(gcbf,'Tag','SliderDerau'); Derau=get(Hnd,'Value'); Hnd=findobj(gcbf,'Tag','PopUpJenis'); List=get(Hnd,'UserData'); Jenis=List(get(Hnd,'Value'),:); Hnd=findobj(gcbf,'Tag','PopUpProporsi'); List=get(Hnd,'UserData'); Proporsi=List(get(Hnd,'Value'),:); Hnd=findobj(gcbf,'Tag','SliderPerputaran'); Perputaran=get(Hnd,'Value'); Hnd=findobj(gcbf,'Tag','PopUpArahGeser'); List=get(Hnd,'UserData'); ArahGeser=List(get(Hnd,'Value'),:); Hnd=findobj(gcbf,'Tag','PopUpJarakGeser'); List=get(Hnd,'UserData'); JarakGeser=List(get(Hnd,'Value')); % Konversi citra BMP ke matriks biner % -------------------------------------------switch Jenis case 'roman' img0=~(imread([HurufIn 'roman'],'bmp')); case 'arial' img0=~(imread([HurufIn 'arial'],'bmp')); end % Proporsi % -------------------------------------------switch Proporsi case 'normal' img=img0; case 'gemuk_' img=bwmorph(img0,'dilate'); case 'kurus_' img=bwmorph(img0,'thin'); end % Pergeseran % -------------------------------------------img=geser(img,ArahGeser,JarakGeser); % Perputaran % --------------------------------------------
59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber : guipnn.m
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
img=imrotate(img,Perputaran,'nearest','crop'); % Penambahan derau acak dan vektorisasi % -------------------------------------------img=imdc(img,Derau); % Tampilan masukan % -------------------------------------------axes(ImgHnd(1));imshow(~kol2kot(img),2);axis('on') % Hapus citra keluaran % -------------------------------------------axes(ImgHnd(2)); imshow(blank,2); axis('on'); drawnow % Simulasi PNN % -------------------------------------------img_in=repmat(img,1,sampel); HurufOut=simupnn(img_in,sigma,DaftarHuruf,sampel); % Tampilan keluaran % -------------------------------------------[Hrf,Map]=imread([HurufOut 'roman'],'bmp'); axes(ImgHnd(2));imshow(Hrf,Map);axis('on') end % % % % %
============================================================ ============================================================ SUB FUNGSI ============================================================ ============================================================
function kotak=kol2kot(kolom) % KOL2KOT Fungsi untuk mengubah matriks kolom (1024 x 1) % menjadi matriks kotak (32 x 32) % % (c) Linggo S. - 1998 kotak=uint8(zeros(32,32)); j=1; for i=1:32 kotak(1:32,i)=kolom(j:i*32); j=j+32; end % ============================================================
60
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
61
function guipnnfg() % This is the machine-generated representation of a MATLAB object % and its children. Note that handle values may change when these % objects are re-created. This may cause problems with some callbacks. % The command syntax may be supported in the future, but is currently % incomplete and subject to change. % % To re-open this system, just type the name of the m-file at the MATLAB % prompt. The M-file and its associtated MAT-file must be on your path. global ImgHnd load guipnnfg a = figure('Units','normalized', ... 'Color',[0.8 0.8 0.8], ... 'Colormap',mat0, ... 'DithermapMode','auto', ... 'Name','Uji Coba PNN berbasiskan GUI', ... 'NumberTitle','off', ... 'PointerShapeCData',mat1, ... 'Position',[0.059375 0.0958333 0.875 0.779167], ... 'Renderer','zbuffer', ... 'RendererMode','manual', ... 'Tag','Fig1'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'Callback','guipnn eksekusi', ... 'FontSize',16, ... 'FontWeight','bold', ... 'Position',[0.4 0.7 0.2 0.1], ... 'String','PNN', ... 'Tag','Pushbutton1'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.098 0.392 0.8 0.109], ... 'Style','frame', ... 'Tag','Frame1'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.098 0.005 0.8 0.306], ... 'Style','frame', ... 'Tag','Frame2'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[1 1 1], ... 'Position',[0.225 0.414 0.14 0.06], ... 'String',mat2, ... 'Style','popupmenu', ... 'Tag','PopUpHuruf', ... 'UserData',mat3, ... 'Value',1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[1 1 1], ... 'Position',[0.225 0.216 0.14 0.06], ... 'String',['Roman';'Arial'], ... 'Style','popupmenu', ... 'Tag','PopUpJenis', ... 'UserData',['roman';'arial'], ... 'Value',1); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[1 1 1], ... 'Position',[0.225 0.133 0.14 0.06], ... 'String',['Normal';'Gemuk ';'Kurus '], ... 'Style','popupmenu', ... 'Tag','PopUpProporsi', ... 'UserData',['normal';'gemuk_';'kurus_'], ... 'Value',1); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.753 0.753 0.753], ... 'Callback','guipnn derau', ... 'Max',50, ... 'Position',[0.596 0.415 0.14 0.06], ... 'String','Derau', ... 'Style','slider', ... 'Tag','SliderDerau'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.753 0.753 0.753], ... 'Callback','guipnn perputaran', ... 'Max',15, ... 'Min',-15, ... 'Position',[0.225 0.05 0.14 0.06], ... 'String','Perputaran', ... 'Style','slider', ... 'Tag','SliderPerputaran'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[1 1 1], ... 'Position',[0.596 0.216 0.14 0.06], ... 'String',['Kanan';'Kiri ';'Atas ';'Bawah'], ... 'Style','popupmenu', ... 'Tag','PopUpArahGeser', ... 'UserData',['kanan';'kiri_';'atas_';'bawah'], ... 'Value',1); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[1 1 1], ... 'Position',[0.596 0.133 0.14 0.06], ... 'String',['0 piksel';'1 piksel';'2 piksel';'3 piksel'], ... 'Style','popupmenu', ... 'Tag','PopUpJarakGeser', ... 'UserData',mat4, ... 'Value',1); b = uicontrol('Parent',a, ...
62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
b =
b =
b =
b =
b =
b =
b =
'Units','normalized', ... 'Callback','guipnn reset', ... 'Position',[0.755 0.029 0.123 0.064], ... 'String','Reset', ... 'Tag','Pushbutton2'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'Position',[0.148 0.899 0.109 0.053], ... 'String','Masukan', ... 'Style','text', ... 'Tag','StaticText1'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'Position',[0.445 0.899 0.109 0.053], ... 'String','Eksekusi', ... 'Style','text', ... 'Tag','StaticText1'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'Position',[0.736 0.899 0.109 0.053], ... 'String','Keluaran', ... 'Style','text', ... 'Tag','StaticText1'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.098 0.501 0.25 0.053], ... 'String','Pengaturan Masukan', ... 'Style','text', ... 'Tag','StaticText4'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.098 0.312 0.21 0.053], ... 'String','Deformasi Huruf', ... 'Style','text', ... 'Tag','StaticText5'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.125 0.429 0.066 0.0373], ... 'String','Huruf', ... 'Style','text', ... 'Tag','StaticText6'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.123214 0.221333 0.0642857 0.0426667], ... 'String','Jenis', ...
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
b =
b =
b =
b =
b =
b =
b =
'Style','text', ... 'Tag','StaticText7'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.121429 0.144 0.0714286 0.04], ... 'String','Proporsi', ... 'Style','text', ... 'Tag','StaticText8'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.121429 0.0506667 0.0985714 0.0506667], ... 'String','Perputaran', ... 'Style','text', ... 'Tag','StaticText9'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.471429 0.426667 0.110714 0.04], ... 'String','Derau acak', ... 'Style','text', ... 'Tag','StaticText10'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.476786 0.226667 0.101786 0.04], ... 'String','Arah geser', ... 'Style','text', ... 'Tag','StaticText11'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.476786 0.146667 0.108929 0.04], ... 'String','Jarak geser', ... 'Style','text', ... 'Tag','StaticText12'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.746429 0.426667 0.05 0.04], ... 'String','0.0', ... 'Style','text', ... 'Tag','TextDerau'); uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.382143 0.0666667 0.0464286 0.0346667], ... 'String','0.0', ...
64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
'Style','text', ... 'Tag','TextPerputaran'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.808929 0.418667 0.0339286 0.0453333], ... 'String','%', ... 'Style','text', ... 'Tag','StaticText13'); b = uicontrol('Parent',a, ... 'Units','normalized', ... 'BackgroundColor',[0.8 0.8 0.8], ... 'HorizontalAlignment','left', ... 'Position',[0.435714 0.0586667 0.0803571 0.0426667], ... 'String','derajad', ... 'Style','text', ... 'Tag','StaticText14'); b_in = axes('Parent',a, ... 'Box','on', ... 'CameraUpVector',[0 1 0], ... 'Color',[1 1 1], ... 'ColorOrder',mat5, ... 'DataAspectRatioMode','manual', ... 'Layer','top', ... 'Position',[0.1 0.6 0.2 0.3], ... 'Tag','Axes1', ... 'WarpToFill','off', ... 'XColor',[0 0 0], ... 'XLim',[0.5 32.5], ... 'XLimMode','manual', ... 'XTickMode','manual', ... 'YColor',[0 0 0], ... 'YDir','reverse', ... 'YLim',[0.5 32.5], ... 'YLimMode','manual', ... 'YTickMode','manual', ... 'ZColor',[0 0 0]); c = image('Parent',b_in, ... 'CData',mat6, ... 'Tag','Image1', ... 'XData',[1 32], ... 'YData',[1 32]); c = text('Parent',b_in, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','center', ... 'Position',[16.5 34.3739 0], ... 'Tag','Text1', ... 'VerticalAlignment','cap'); set(get(c,'Parent'),'XLabel',c); c = text('Parent',b_in, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','center', ...
65
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336
'Position',[-1.37387 16.2117 0], ... 'Rotation',90, ... 'Tag','Text2', ... 'VerticalAlignment','baseline'); set(get(c,'Parent'),'YLabel',c); c = text('Parent',b_in, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','right', ... 'Position',[-15.7883 -10.3108 0], ... 'Tag','Text3'); set(get(c,'Parent'),'ZLabel',c); c = text('Parent',b_in, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','center', ... 'Position',[16.5 -1.95045 0], ... 'Tag','Text4', ... 'VerticalAlignment','bottom'); set(get(c,'Parent'),'Title',c); b_out = axes('Parent',a, ... 'Box','on', ... 'CameraUpVector',[0 1 0], ... 'Color',[1 1 1], ... 'ColorOrder',mat7, ... 'DataAspectRatioMode','manual', ... 'Layer','top', ... 'Position',[0.7 0.6 0.2 0.3], ... 'Tag','Axes2', ... 'WarpToFill','off', ... 'XColor',[0 0 0], ... 'XLim',[0.5 32.5], ... 'XLimMode','manual', ... 'XTickMode','manual', ... 'YColor',[0 0 0], ... 'YDir','reverse', ... 'YLim',[0.5 32.5], ... 'YLimMode','manual', ... 'YTickMode','manual', ... 'ZColor',[0 0 0]); c = image('Parent',b_out, ... 'CData',mat8, ... 'Tag','Image2', ... 'XData',[1 32], ... 'YData',[1 32]); c = text('Parent',b_out, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','center', ... 'Position',[16.5 34.3739 0], ... 'Tag','Text5', ... 'VerticalAlignment','cap'); set(get(c,'Parent'),'XLabel',c); c = text('Parent',b_out, ... 'Color',[0 0 0], ...
66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: guipnnfg.m
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
'HandleVisibility','callback', ... 'HorizontalAlignment','center', ... 'Position',[-1.37387 16.2117 0], ... 'Rotation',90, ... 'Tag','Text6', ... 'VerticalAlignment','baseline'); set(get(c,'Parent'),'YLabel',c); c = text('Parent',b_out, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','right', ... 'Position',[-112.653 -10.3108 0], ... 'Tag','Text7'); set(get(c,'Parent'),'ZLabel',c); c = text('Parent',b_out, ... 'Color',[0 0 0], ... 'HandleVisibility','callback', ... 'HorizontalAlignment','center', ... 'Position',[16.5 -1.95045 0], ... 'Tag','Text8', ... 'VerticalAlignment','bottom'); set(get(c,'Parent'),'Title',c); ImgHnd=[b_in b_out];
67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: latih.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
function latih % LATIH Pelatihan PNN % % (c) Linggo S. - 1998 % % % % % % %
============================================================ ============================================================ FUNGSI UTAMA ============================================================ ============================================================ Pelatihan Tahap I Pengkonstruksian lapis pola
tic sampel=2;
% Jumlah sampel per huruf
fprintf('=================\n') fprintf('Pelatihan Tahap I\n') fprintf('=================\n') fprintf('Pengkonstruksian lapis pola\n') fprintf('Jumlah sampel per kelas : %g\n',sampel); fprintf('Pemrosesan ') imgc=simpanc('A'); save imgc_a imgc ; fprintf('.') imgc=simpanc('B'); save imgc_b imgc ; fprintf('.') imgc=simpanc('C'); save imgc_c imgc ; fprintf('.') imgc=simpanc('D'); save imgc_d imgc ; fprintf('.') imgc=simpanc('E'); save imgc_e imgc ; fprintf('.') imgc=simpanc('F'); save imgc_f imgc ; fprintf('.') imgc=simpanc('G'); save imgc_g imgc ; fprintf('.') imgc=simpanc('H'); save imgc_h imgc ; fprintf('.') imgc=simpanc('I');
68
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: latih.m
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
save imgc_i imgc ; fprintf('.') imgc=simpanc('J'); save imgc_j imgc ; fprintf('.') imgc=simpanc('K'); save imgc_k imgc ; fprintf('.') imgc=simpanc('L'); save imgc_l imgc ; fprintf('.') imgc=simpanc('M'); save imgc_m imgc ; fprintf('.') imgc=simpanc('N'); save imgc_n imgc ; fprintf('.') imgc=simpanc('O'); save imgc_o imgc ; fprintf('.') imgc=simpanc('P'); save imgc_p imgc ; fprintf('.') imgc=simpanc('Q'); save imgc_q imgc ; fprintf('.') imgc=simpanc('R'); save imgc_r imgc ; fprintf('.') imgc=simpanc('S'); save imgc_s imgc ; fprintf('.') imgc=simpanc('T'); save imgc_t imgc ; fprintf('.') imgc=simpanc('U'); save imgc_u imgc ; fprintf('.') imgc=simpanc('V'); save imgc_v imgc ; fprintf('.') imgc=simpanc('W');
69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Kode sumber: latih.m
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
save imgc_w imgc ; fprintf('.') imgc=simpanc('X'); save imgc_x imgc ; fprintf('.') imgc=simpanc('Y'); save imgc_y imgc ; fprintf('.') imgc=simpanc('Z'); save imgc_z imgc ; fprintf('.\n\n') save sampel sampel
% simpan sampel dalam lapis pola
waktu=toc; fprintf('Pelatihan tahap I selesai...\n\n') fprintf('Waktu pelatihan : %g detik\n\n',waktu) % ============================================================ % Pelatihan Tahap II % Mencari sigma optimum dengan pencarian kuadratis fprintf('==================\n') fprintf('Pelatihan Tahap II \n') fprintf('==================\n') fprintf('Pencarian sigma optimum pada lapis pola\n') tic load sampel % % Pencarian kuadratis % % Interval awal x(1)=0.1; % Batas bawah x(3)=0.4; % Batas atas x(2)=(x(1)+x(3))/2; h=x(2)-x(1); % Toleransi tol=0.000001; i=1; while h>tol fx1=pdftotal(sampel,x(1)); fprintf('.') fx2=pdftotal(sampel,x(2)); fprintf('.') fx3=pdftotal(sampel,x(3)); fprintf('.')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: latih.m
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
if fx1==fx2 | fx1==fx3 break end if fx1
% ============================================================ % ============================================================ % SUB FUNGSI % ============================================================ % ============================================================ function [imc]=simpanc(huruf) % SIMPANC Pembentukan citra pelatihan tervektor % % (c) Linggo S. - 1998 % Pembentukan citra tervektor
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: latih.m
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
imc1=~(imread([huruf 'roman'],'bmp')); imc1=imc1(:); imc2=~(imread([huruf 'arial'],'bmp')); imc2=imc2(:); % Keluaran imc=[imc1 imc2] ; % ============================================================= function pdft=pdftotal(sampel,sigma) % PDFTOTAL Menghitung pdf keseluruhan % DaftarHuruf=['A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';'M';... 'N';'O';'P';'Q';'R';'S';'T';'U';'V';'W';'X';'Y';'Z']; pdfk=zeros(26,sampel); for i=1:26 hrf=DaftarHuruf(i); load (['imgc_' hrf]); pdfk(i,:)=pdfkelas(imgc,sampel,sigma); end pdft=sum(sum(pdfk)); % ============================================================= function pdfk=pdfkelas(imgc,sampel,sigma) % PDFKELAS Pencarian nilai-nilai pdf untuk suatu kelas % for i=1:sampel % Derau 0% img0=imgc(:,i); img0=repmat(img0,1,sampel); % Derau 50% img50=imdc(imgc(:,i),50); img50=repmat(img50,1,sampel); % Nilai pdf pdf0(i)=lhlayer(imgc,img0,sigma,sampel); pdf50(i)=lhlayer(imgc,img50,sigma,sampel); pdfk(i)=(1-pdf0(i))+pdf50(i); end % =============================================================
72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: simupnn.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
function [huruf,density]=simupnn(img,sigma,DaftarHuruf,sampel) % SIMUPNN Simulasi PNN % % (c) Linggo S. - 1998
% ============================================================ % Lapis pola dan lapis penjumlahan pdfcond=zeros(26,1); for i=1:26 hrf=DaftarHuruf(i); load (['imgc_' hrf]); pdfcond(i)=lhlayer(imgc,img,sigma,sampel); end % ============================================================ % Lapis maksimum density=max(pdfcond); % ============================================================ % Keluaran jaringan NomorKelas=find(pdfcond==density); % ============================================================ % NomorKelas ke huruf huruf=DaftarHuruf(NomorKelas);
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: lhlayer.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
function [cpdr]=lhlayer(ctrf,ctri,sig,sampel) % LHLAYER Simulasi lapis pola dan penjumlahan pada PNN % % (c) Linggo S. - 1998
% Lapis pola beda=xor(ctri,ctrf); for i=1:sampel jarak(i)=length(find(beda(:,i)))/1024; end cpd=exp(-(jarak/sig).^2); % Lapis penjumlahan cpdr=mean(cpd);
74
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: imdc.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14
function img=imdc(citra,pderau) % IMDC Vektorisasi dan pengkontaminasian derau pada citra % % (c) Linggo S. - 1998
img=citra(:); kderau=pderau/50; % kerapatan derau = persen derau / 50 x=rand(1024,1); % total piksel = 1024 d=find(x < kderau/2); img(d)=0; d=find(x >= kderau/2 & x < kderau); img(d)=1;
75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kode sumber: geser.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
function gcitra=geser(citra,arah,jarak) % GESER Pergeseran citra % % (c) Linggo S. - 1998 if jarak==0 gcitra=citra; else switch arah case 'kanan' tambah=uint8(zeros(32,jarak)); citra=citra(:,1:(32-jarak)); gcitra=[tambah citra]; case 'kiri_' tambah=uint8(zeros(32,jarak)); citra=citra(:,(jarak+1):32); gcitra=[citra tambah]; case 'atas_' tambah=uint8(zeros(jarak,32)); citra=citra((jarak+1):32,:); gcitra=[citra;tambah]; case 'bawah' tambah=uint8(zeros(jarak,32)); citra=citra(1:(32-jarak),:); gcitra=[tambah;citra]; end end
76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
L.3 Contoh Hasil Eksekusi Kode Sumber
1.) Tampilan berbasiskan GUI (kode sumber guipnn.m)_
2) Tampilan berbasiskan teks (kode sumber txtpnn.m) Pengujian berulang berbasiskan teks =================================== Persen derau : 10 Proporsi huruf Sudut rotasi Arah pergeseran Jarak pergeseran
: : : :
Jumlah pengujian
: 30
Pengujian Pengujian Pengujian Pengujian
ke ke ke ke
1 2 3 4
-
normal 0 atas_ 0 piksel
Masukan Masukan Masukan Masukan
: : : :
M B G I
(Roman) (Roman) (Arial) (Arial)
, , , ,
Keluaran Keluaran Keluaran Keluaran
: : : :
M B G I
-
benar benar benar benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian Pengujian
ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke ke
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
-
Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan Masukan
: : : : : : : : : : : : : : : : : : : : : : : : : :
W I G L V F N L I K W T W L U D C J J M Y J G P N E
(Roman) (Arial) (Arial) (Roman) (Arial) (Arial) (Roman) (Arial) (Roman) (Arial) (Roman) (Arial) (Arial) (Arial) (Roman) (Roman) (Arial) (Roman) (Arial) (Arial) (Roman) (Arial) (Arial) (Roman) (Roman) (Arial)
, , , , , , , , , , , , , , , , , , , , , , , , , ,
Rerata kerapatan probabilitas : 0.732289 Jumlah pengujian : 30 Jumlah meleset : 0 Persen tepat : 100 Waktu keseluruhan pengujian : 21.48 detik Waktu pengujian/huruf : 0.716 detik
Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran Keluaran
: : : : : : : : : : : : : : : : : : : : : : : : : :
W I G L V F N L I K W T W L U D C J J M Y J G P N E
-
benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar benar