JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013
ISSN : 2086 – 4981
IMPLEMENTASI JARINGAN SARAF TIRUAN PADA PATTERN RECOGNATION (Studi Kasus : Huruf Jepang Katakana) Mardhiah Masril1 ABSTRACT This application was built to help the user in learning letter writing Japanese (Katakana), so in the hope that with this application helps the user to be able to tune in Katakana capitalization. This application is designed to recognize a data input from image katakana letters, the letter will say this will be processed to find out, compatibility with handwritten katakana letters are available on the database. Keywords : image, handwritten INTISARI Aplikasi ini dibangun untuk membantu user dalam pembelajaran penulisan Huruf Jepang (Katakana), sehingga di harapkan dengan adanya aplikasi ini membantu user untuk dapat menyempurnakan penulisan huruf Katakana. Aplikasi ini di rancang untuk mengenal data inputan berupa image huruf katakana, nantinya huruf katakana ini akan diproses untuk mengetahui, kecocokan dengan tulisan tangan huruf katakana yang tersedia pada database dimana database ini berisi huruf katakana yang akan di jadikan acuan dalam melakukan proses pengenalan huruf katakana. Kata Kunci : Image, Tulisan Tangan
1
Dosen UPI YPTK Padang
55
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013
56
ISSN : 2086 – 4981
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013
ISSN : 2086 – 4981
PENDAHULUAN Pengenalan pola merupakan teknik yang bertujuan untuk mengklasifikasikan citra yang telah diolah sebelumnya berdasarkan kesamaan atau kemiripan ciri yang dimilikinya. Pengenalan pola dapat melalui tulisan tangan, mata, wajah dan kulit. Contoh penerapan pengenalan pola yaitu penggunaan sidik jari dalam hak akses terhadap sistem keamanan, sistem absensi, dll. Pada penelitian ini pengenalan pola diaplikasikan pada pengenalan pola salah satu jenis huruf jepang yaitu katakana, karakter huruf Jepang (katakana) merupakan karakter yang cukup kompleks dan memiliki karakteristik unik dibandingkan dengan karakter lain, apalagi bila ditulis dengan tulisan tangan karena variasi bentuk tulisan yang dihasilkan oleh setiap orang akan memiliki pola yang berbeda-beda. Pada penelitian ini analisa pengenalan pola dibantu dengan metode jaringan saraf tiruan yang diharapkan dapat meningkatkan tingkat akurasi dalam penganalisaan huruf jepang katakana. PENDEKATAN MASALAH
sinapsis digunakan untuk menyimpan pengetahuan. JST merupakan suatu model komputasi yang meniru cara kerja sistem otak manusia. JST merupakan sebuah model komputasi dari otak manusia yang mampu melakukan perhitungan, pengenalan, pengamatan serta pengambilan keputusan. Jaringan syaraf tiruan memanfaatkan struktur pengolahan paralel atas sejumlah pengolah sederhana dan hubungan antar pengolah tersebut. Dalam jaringan syaraf tiruan, terdapat elemen pengolah yang merupakan model dari neuron. Setiap hubungan elemen pengolah menentukan kemampuan JST. Seperti halnya jaringan syaraf biologis, JST juga memiliki kemampuan untuk belajar dan beradaptasi terhadap masukan-masukannya. JST tidak perlu diprogram secara eksplisit, karena JST dapat belajar dari beberapa contoh pelatihan. Aplikasi Jaringan Saraf tiruan yaitu : 1. Pengenalan pola (pattern recognition) − Huruf, tanda tangan, suara, gambar yang sudah sedikit berubah (mengandung noise) − Identifikasi pola saham − Pendeteksian uang palsu, kanker 2. Signal Processing − Menekan noise pada saluran telepon 3. Peramalan 4. Kendali otomatis otomotif
PEMECAHAN
Jaringan Saraf Tiruan Jaringan syaraf tiruan (JST) diinspirasikan oleh struktur jaringan sel-sel syaraf di dalam otak. Menurut Haykin, S. (1994), ”Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu: a. Pengetahuan diperoleh oleh jaringan melalui suatu proses belajar. b. Kekuatan hubungan antar sel saraf yang dikenal dengan bobot
57
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013
ISSN : 2086 – 4981
Gambar 1. Model Jaringan Saraf Tiruan Sumber : http:// PKB - Antonie/ kupu-kupu. Mempelajari cara Pengenalan Pola Pengenalan pola (pattern bagaimana manusia mempelajari recognition) merupakan teknik yang pola merupakan masalah yang sangat bertujuan untuk mengklasifikasikan menarik. citra yang telah diolah sebelumnya berdasarkan kesamaan atau Proses Pengenalan Pola kemiripan ciri yang dimilikinya. Proses pengenalan pola Secara umum teknik mendeskripsikan tahap-tahapan pengenalan pola bertujuan dalam pengenalan pola. Hal ini di mengklasifikasikan dan mendiskripsi maksudkan agar adanya langkahpola atau objek yang komplek langkah terstruktur dalam melakukan melalui pengukuran sifat-sifat atau pengenalan pola. Berikut tahapciri-ciri objek yang bersangkutan. tahapan dalam proses pengenalan Prinsip kerjanya menirukan pola: kemampuan manusia mengenali a) Data (gambar, bunyi, teks) untuk objek – objek berdasarkan ciri – ciri dikelaskan. dan pengetahuan yang pernah b) Menghilankan diamatinya dari objek – objek gangguan/menormalkan gambar tersebut. Cara kerjanya dengan (Image processing) mengklasifikasikan objek ke dalam c) Pengiraan citra kategori / kelas tertentu berdasarkan d) Pengenalan kelas (mengambil parameter yang telah disimpan dan keputusan) ditentukan sebelumnya. Contoh aplikasi speech recognition, data Huruf Jepang mining, biometrics, dll. Secara umum sistem Manusia memiliki kemampuan penulisan karakter Kanji sulit untuk yang sangat luar biasa didalam digunakan dan dipelajari, hal ini pengenalan objekobjek dikarenakan begitu banyaknya jenis berdasarkan ciri-ciri atau karakter Kanji. Tidak seperti huruf pengetahuan yang pernah alphabet yang tidak mempunyai arti diamatinya. Misalnya manusia bila berdiri sendiri, setiap karakter dengan mudah membedakan antara Kanji mempunyai arti minimal satu kursi dengan meja, burung dengan arti untuk satu karakter. Sistem
58
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013
ISSN : 2086 – 4981
penulisan huruf Jepang secara syllabarie (KANA) berbeda dengan huruf Kanji, dimana huruf Kana tidak merepresentasikan bunyi suku kata. Huruf Jepang Katakana Huruf Katakana terdiri dari 46 karakter yang melambangkan suku kata, pada umumnya huruf Katakana digunakan untuk menuliskan katakata bahasa asing seperti bahasa Inggris, bahasa Prancis dan bahasa Jerman selain itu Katakana juga di gunakan untuk menuliskan nama – nama penulis dan tempat asing.
Gambar 3. Bentuk Huruf Katakana Kerangka Kerja Pada tahap ini akan dilakukan perancangan terhadap sistem yang akan dibuat, dimana perancangannya dapat dilihat pada kerangka kerja.
Gambar 4. Kerangka Kerja
59
Masukkan gambar tulisanISSN : 2086 – 4981 gambar Katakana JURNALMasukkan TEKNOLOGI INFORMASI & PENDIDIKAN tangan VOL. 6 NO. 1 Maret 2013
HistogramEqualization
HistogramEqualization
fftenhance
fftenhance
Binarisasi
Binarisasi
Aliran Orientasi
Aliran Orientasi
Region Of Interest (ROI)
Region Of Interest (ROI)
Mapping Thinned-ridge
Mapping Thinned-ridge
Minutiae
Minutiae
Simpan hasil klasifikasi dengan format .dat
Simpan
Perbandingan Gambar Katakana Dengan Tulisan Tangan
Hasil klasifikasi huruf Katakana “cocok dan tdk cocok”
Gambar 4. Kerangka Kerja
60
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013 Perancangan aplikasi huruf Jepang (katakana) ini dimulai dengan menentukan siklus Input–Proses– Output dari sistem yang di bangun. Secara garis besar dilakukan proses sebagai berikut:
ISSN : 2086 – 4981
data grafik yang dimasukkan. Pengeditan ini dilakukan agar data yang akan digunakan dapat proses dengan lebih baik, sehingga akan menghasilkan tingkat keakuratan yang lebih baik. Pengeditan dilakukan pada bagian kontras data grafik, dengan cara memberikan kontras terang yang lebih baik ke data grafik tersebut. Pemrosesan pada tahapan ini dapat dilihat dari script di bawah ini: o1 = imread(fname);o1 =255 double(o1); o1=histeq(uint8(o1)); o1=fftenhance(o1,0.45); Dari script di atas dapat dilihat bahwa image yang dimasukkan mengalami pemrosesan, pada tahapan ini biasanya image akan mengalami penajaman cahaya, pada scrpit “o1 = imread(fname);o1 =255 double(o1);”, image mengalami penajaman warna dengan elemen terang, nilai dari warna ini ditingkatkan kemaksimum.
1.
Pemasukkan Input berupa Data Grafik Data grafik yang dimasukkan oleh peneliti berupa sampel huruf yang akan diproses untuk menghasilkan informasi yang dapat digunakan oleh user sesuai dengan kebutuhannya. function image1=loadimage [imagefile1 , pathname]= uigetfile('*.bmp;*.BMP;*.tif;*.TIF;*. jpg','Open An Fingerprint image'); if imagefile1 ~= 0 cd(pathname); image1=readimage(char(imagefile1) ); image1=255-double(image1); end; Pada syntax di atas, jenis gambar yang dapat diolah oleh program ini adalah BMP, TIF, JPG, cara pembacaan file ini dapat dilihat dari perintah image1=readimage.
Gambar 6. Hasil Histogram Equalization 3.
Fftenhance Tahapan ini merupakan tahapan awal dalam melakukan proses Binarisasi. Pada tahapan ini data grafik akan diedit menjadi data yang berbentuk seperti kotak-kotak, untuk memisahkan data terang dan data gelap sehingga dalam pembacaan data dalam proses
Gambar 5. Contoh Huruf katakana yang diinputkan 2.
Histogram Equalization Pada tahapan ini aplikasi akan melakukan pengeditan pada
61
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013 binarisasi akan lebih mudah. Proses pada tahapan Fftenhance dapat dilihat dari pemrograman di bawah ini: for i=1:32:w1 for j=1:32:h1 a=i+31; b=j+31; F=fft2( I(i:a,j:b) ); factor=abs(F).^f; block = abs(ifft2(F.*factor));
ISSN : 2086 – 4981
Gambar 8. Hasil Data Grafik setelah Proses Binarisasi 5.
Aliran Orientasi Pada Aliran Orientasi ini aplikasi akan membatasi daerah yang akan diteliti, sehingga aplikasi mendapatkan daerah – daerah inti pada data grafik. pertama tahapan ini akan mengenali terlebih dahulu nilai biner yang telah didapat dari tahapan sebelumnya, nilai-nilai biner ini akan digunakan dalam penentuan titik gerak pada huruf tersebut. Setiap nilai 1 dan nilai 0 akan memberikan arah yang berbeda. Proses pada tahapan ini dapat dilihat pada beberapa script sebagai berikut: filter_gradient = transpose(filter_gradient); I_vertical = filter2(filter_gradient,image); Pada script di atas menjelaskan bahwa gambar akan mengalami transformasi dari bentuk kotak menjadi bentuk arah. Bentuk ini akan menggambarkan alur dari huruf tersebut. or i=1:W:w for j=1:W:h if j+W-1 < h & i+W-1 < w times_value= sum(sum(gradient_times_value(i:i+ W-1, j:j+W-1))); minus_value= sum(sum(gradient_sq_minus_value(i :i+W-1, j:j+W-1)));
Gambar 7. Hasil Fftenhance 4.
Binarisasi Pada tahapan ini data grafik yang telah melalui proses Fftenhance akan dilakukan proses Binarisasi. Proses ini akan menentukan nilai dari setiap bagian data, apakah bagian terang bernilai 1 dan hitam bernilai 0 atau sebaliknya. Diakhir proses ini data grafik akan terlihat memiliki kotak- kotak. Proses ini dapat dilihat dari script di bawah ini: end_list(:,3) = 0; branch_list(:,3) = 1; minutiaeList = [end_list;branch_list]; finalList = minutiaeList; [numberOfMinutia,dummy]= size(minutiaeList); suspectMinList = [];
62
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013 sum_value= sum(sum(gradient_for_bg_under(i:i +W-1, j:j+W-1))); bg_certainty = 0; theta = 0; if sum_value ~= 0 & times_value ~=0
ISSN : 2086 – 4981
tmplate(16*i15:16*i,16*j-15:16*j) = 200; tmp(16*i-15:16*i,16*j15:16*j) = 1; elseif inArea(i,j) == 1 & inBound(i,j) ~=1 tmplate(16*i15:16*i,16*j-15:16*j) = 100; tmp(16*i-15:16*i,16*j15:16*j) = 1; Pada script di atas daerah yang akan diteliti telah ditemukan dan diberi warna abu-abu, dan image akan disimpan pada template.
bg_certainty=(times_value*times_va lue + minus_value*minus_value)/(W*W*s um_value); if bg_certainty > 0.05 blockIndex(ceil(i/W),ceil(j/W)) = 1; tan_value= atan2(2*times_value,minus_value); theta = (tan_value)/2 ; theta = theta+pi/2; center = [center;[round(i + (W-1)/2),round(j + (W-1)/2),theta]]; end; end; end;
Gambar 10. Hasil Data ROI 7.
Mapping Thinned-ridge Pada tahap ini, data yang telah melalui proses ROI, garis pada data grafik tersebut akan ditipiskan, penipisan garis ini akan menyebabkan data grafik melebar. Pelebaran yang terjadi pada data tersebut akan digunakan dalam proses ekstraksi. Tahapan ini dapat dilihat pada script berikut: k=1:4 m=m+sum(image(k*i,16*c:16*d)); end; e=(64*(d-c))/m; a=sum(inROI,2); b=find(a>0); c=min(b); d=max(b); i=round(h/5); m=0; for k=1:4
Gambar 9. Hasil Data setelah dilakukan Aliran Orientasi 6.
Region Of Interest (ROI) Pada tahapan ROI data akan ditransformasi ke dalam daerah putih dan abu – abu, daerah putih merupakan daerah yang tidak perlu dianalisa, sedangkan daerah abu- abu merupakan daerah yang akan dianalisa oleh aplikasi. Proses ini dapat dilihat dari script tersebut. for i = upper:1:bottom for j = left:1:right if inBound(i,j) == 1
63
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013 m=m+sum(image(16*c:16*d,k*i)); end; m=(64*(d-c))/m; edgeDistance=round((m+e)/2);
ISSN : 2086 – 4981
9.
Minutiae Merupakan tahap akhir dari penganalisaan huruf ini, pada tahap ini aplikasi akan menghilangkan titik – titik yang tidak diperlukan dalam penganalisaan. Proses ini dapat dilihat dari script di bawah ini: if ~isempty(end_list) plot(end_list(:,2),end_list(:,1) ,'*r'); if size(end_list,2) == 3 hold on [u,v] = pol2cart(end_list(:,3),10); quiver(end_list(:,2),en d_list(:,1),u,v,0,'g'); end; end; if ~isempty(branch_list) hold on plot(branch_list(:,2),branch_l ist(:,1),'+y'); end; Script di atas menjelaskan bagaimana aplikasi ini memanggil titik-titik penentu yang dapat dijadikan sebagai ukuran dalam perbandingan huruf tersebut.
Gambar 11. Data Hasil Mapping Thinned-ridge 8.
Ekstrasi Pada tahapan ini, aplikasi akan memberikan titik – titik pada data. Titik – titik ini nantinya akan diperlukan dalam melakukan proses minutiae. Tahapan ini dapat diterangkan melalui script di bawah ini: for n=1:totalRidgeNum [m,n] = find(ridgeOrderMap==n); b = [m,n]; ridgeW = size(b,1); for x = 1:ridgeW i = b(x,1); j = b(x,2);
Gambar 13. Data Hasil Proses Minutiae 10.
Pencocokan Pada tahap ini, huruf akan dapat diketahui kecocokannya. Mulai dari tingkat persamaan garis, tingkat titik minutiae dan tingkat ekstresinya.
Gambar 12. Data Hasil Ekstrasi
64
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN VOL. 6 NO. 1 Maret 2013 Hasil akhir dari langkah – langkah tersebut akan memberikan informasi apakah huruf yang dianalisa cocok dengan huruf yang tersedia pada aplikasi, apabila huruf tidak cocok dengan data yang dimiliki aplikasi, maka aplikasi akan menampilkan pesan berupa pemberitahuan, bahwa huruf yang dideteksi tidak cocok. Proses pencocokan pada aplikasi ini dapat dilihat dari script yang terdapat di bawah ini: if nargin == 3 if percent_match > 27.7777 text=strcat('Huruf yang dideteksi cocok'); else text=strcat('Huruf yang dideteksi tidak cocok'); end Setelah dilakukan penganalisaan maka didapatkan hasil deteksi pencocokan huruf seperti gambar di bawah ini:
ISSN : 2086 – 4981
input huruf pertama dengan huruf yang telah dianalisa. Gambar 14 (b). memperlihatkan bahwa huruf yang diinputkan dengan huruf yang dianalisa tidak cocok. KESIMPULAN Aplikasi ini menggunakan bahasa pemrograman MATLAB dimana sistem bekerja dengan mengenal objek berupa image, image tersebut diinputkan ke dalam program, kemudian program akan memulai untuk melakukan penganalisaan terhadap image tersebut, penganalisaan dilakukan untuk mengetahui kecocokan data image tersebut dengan data yang telah tersedia pada database. DAFTAR PUSTAKA [1] Away, Gunaidi Abdia. 2010, The Shortcut of MATLAB Programming. Bandung: Informatika [2] Herman, Arief, 2006. Jaringan Saraf Tiruan Teori Dan Aplikasi. Yogyakarta: ANDI OFFSET. [3] Jogiyanto, HM. 2002. Dasar Ilmu Komputer Pemograman Sistem Informasi Dan Intelegensi Buatan. Edisi Ke-2 Yogyakarta : Andi Offset.
(a)
[4] Sutrisno, Imam. 2010. Pemograman Komputer Dengan Software MATLAB. Surabaya : ITS Press. (b) Gambar 14. Tampilan Hasil Pendektesian Huruf
[5] Mulyanto, Aunur R. 2008. Rekayasa Perangkat Lunak Jilid 1. Surabaya : Informatika
Pada gambar 14 (a). memperlihatkan bahwa hasil pendektesian huruf cocok antara
65