METODE JARINGAN SARAF TIRUAN PENJEJAKAN BALIK UNTUK PENGENALAN HURUF CETAK PADA CITRA DIGITAL Fauziah, M Iwan Wahyuddin Jurusan Teknik Informatika, Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jl. Raya Sawo Manila, Pejaten. 61, Jakarta 12520 ABSTRACT Character recognition is a part of computer science to help data processing. One of the character recognition techniques is the neural network technique. This method is simulating the principal of human brain consist of neurons to process input using the weight given to produce output. The main goal of this experiment is to create software that can recognize printed characters using neural network methods. The architecture used is the multilayer neural network using algorithm backpropagation. To help the recognition, the image is segmented by mapping method. The result of testing shows that for each type of character recognized was 81.74% recognized for the succeed segmentation and 67.53% for the failed one. The recognition of other type of character from the recognized one result is 55.47% for the succeed segmentation and 46.65% for the failed one. Keyword: Printed Characters Recognition, Backpropagation, Digital Images. ABSTRAK Pengenalan huruf merupakan salah satu bidang dalam ilmu komputer yang dapat membantu proses pengolahan data. Salah satu teknik pengenalan karakter adalah metode jaringan saraf tiruan. Metode ini menggunakan prinsip kerja otak manusia yang terdiri dari neuron sebagai pemrosesan input untuk menghasilkan output berdasarkan bobot yang ada. Tujuan dari penelitian ini adalah membuat perangkat lunak yang dapat melakukan pengenalan huruf cetak dengan menggunakan metode jaringan saraf tiruan. Arsitektur jaringan saraf tiruan yang digunakan adalah multilayer neural network, dengan algoritma pembelajaran backpropagation. Untuk membantu pengenalan huruf, dilakukan proses pemotongan gambar menggunakan metode pemetaan. Hasil pengujian menunjukkan bahwa untuk setiap jenis karakter yang dilatihkan pengenalannya adalah sebesar 81,74% untuk pemotongan yang sukses dan 67,53% untuk yang gagal. Pengenalan dengan karakter yang tidak sejenis dengan yang dilatihkan menghasilkan pengenalan sebesar 55,47% untuk pemotongan yang sukses dan 46,65% untuk yang gagal. Kata kunci: Pengenalan Huruf Cetak, Backpropagation, Citra Digital 31
I. PENDAHULUAN Kemajuan teknologi membuat sebuah perangkat komputer memiliki kemampuan komputasi yang tinggi untuk meningkatkan kinerja dalam pengolahan data menjadi informasi. Salah satu hal yang dapat dilakukan adalah memanfaatkan teknologi tersebut untuk memasukkan data kedalam komputer. Salah satu teknik memasukkan data adalah pengenalan huruf cetak (printed character recognition). Pengenalan huruf cetak adalah sebuah teknik dimana data yang berupa lembaran kertas dapat di-scan menggunakan scanner dan menghasilkan gambar yang pada komputer yang dikenali sebagai titik-titik (bitmap), bitmap inilah yang kemudian diproses lebih lanjut dengan menggunakan algoritma tertentu menjadi karakter sehingga dapat dikenali dan diolah menjadi informasi. Algoritma yang digunakan dalam penelitian adalah jaringan saraf tiruan Back Propagation. Berdasarkan fungsinya, jaringan saraf tiruan ini bertujuan untuk memecahkan sebuah masalah dengan teknik pembelajaran. Dalam hal ini gambar bitmap dan karakter yang akan dihasilkan dari gambar tersebut akan diberikan kepada jaringan saraf tiruan sebagai untuk pembelajaran. Dari hasil pembelajaran ini diharapkan sistem jaringan saraf tiruan dapat melakukan pengenalan huruf cetak untuk gambar lainnya. II. TINJAUAN PUSTAKA 2.1. Pengolahan Citra Pemrosesan citra adalah ilmu untuk memanipulasi gambar, yang melingkupi teknik-teknik untuk memperbaiki atau mengurangi kualitas gambar, menampilkan bagian tertentu dari gambar, membuat sebuah gambar yang baru dari beberapa bagian gambar yang sudah ada, dan beberapa teknik manipulasi gambar lainnya. Adapun metode Pengolahan citra yang digunakan pada penelitian ini adalah sebagai berikut: 2.1.1. Greyscale Dengan menggunakan mengubah representasi nilai RGB (Red, Green, Blue), sebuah gambar berwarna dapat diubah menjadi gambar yang terdiri dari warna putih dan gradiasi warna hitam yang biasanya disebut gambar greyscale. Untuk mengubah RGB menjadi greyscale dapat digunakan rumus sebagai berikut: greyscale 0.299R 0.587G 0.114 B (2.1) atau greyscale 0.333R 0.333G 0.333 B (2.2) Perhitungan nilai gray scale yang sebenarnya adalah dengan menggunakan persamaan 2.1, namun persamaan yang umum digunakan adalah persamaan 2.2 karena lebih mudah untuk digunakan dan diingat. 2.1.2. Thresholding Thresholding adalah untuk mengubah data pada gambar agar hanya memiliki nilai 0 dan 1. Hal ini dilakukan untuk mempermudah mengetahui apakah pixel tersebut terisi atau tidak. 32
2.1.3. Filter ise Eliminator Jenis filter yang digunakan untuk menghilangkan noise pada gambar adalah sebuah spatial filter 3x3 seperti gambar dibawah ini. 2 2 2 2 5 2 2 2 2 Gambar 2.1 Filter Untuk Menghilangkan ise Sementara itu, formula yang digunakan adalah sebagai berikut: 1 if f(x) 10 Pixel = (2.3) 0 if f(x) 10 Dimana f(x) adalah hasil perhitungan dari Spatial Filter pada gambar 2.1., terhadap pixel yang diproses. 2.1.4. Segmentasi Segmentasi adalah sebuah proses yang digunakan untuk memotong motong gambar yang diproses menjadi beberapa bagian. Pada penelitian ini, proses segementasi memisahakan huruf per huruf yang akan dikenali dari sebuah gambar hasil scan dokumen. 2.2. Backpropagation Neural Network Backpropagation adalah salah satu pengembangan dari arsitektur Single Layer Neural Network. Arsitektur ini terdiri dari input layer, hidden layer dan output layer, dan setiap layer terdiri dari satu atau lebih aritificial neuron. Nama umum dari arsitektur ini adalah Multilayer neural network. Output Layer y 1 u 11 u j1 u l1 u 1m u lm y m u j1 b 1 b l b j Hidden Layer v 11 v 1l v kl v il v ij v1j v k1 v kj v i1 a 1 a k a i Input Laye w 11 w 1k w 1i w n1 w nk w ni x 1 x n Gambar 2.2 Arsitektur Multilayer Neural Network. 33
Dengan menggunakan arsitektur jenis ini, maka metode pelatihan yang digunakan adalah Backpropagation yang biasanya disebut juga sebagai feedforward networks. III. Desain Sistem Rangkaian proses yang dilakukan oleh sistem ini dapat digambarkan dengan blok diagram sebagai berikut: Baca gambar Grayscale/ filtering segmentasi Threshold rmalisasi karakter Encode input Training Neural network Gambar 3.1 Blok Diagram Sistem. 3.1. Alur Proses Sistem Sistem memiliki dua buah menu utama yaitu menu recognition dan menu training. Dalam menu recognition, user dapat memilih untuk membuka gambar yang berupa rangkaian huruf cetak dan melakukan pengenalan terhadap gambar yang telah dibuka. Sementara itu, pada menu training, user dapat memilih untuk melakukan training, menyimpan data bobot yang dimiliki pada network kedalam file, membaca data network dari file, atau mengubah struktur network. 3.2. Modul Pengolah Gambar Proses ini akan dijalankan apabila user memilih menu recognition open, pada proses ini gambar yang berupa huruf cetak akan dibaca dan kemudian setiap karakter pada gambar tersebut akan dicari posisi dan ukurannya (proses segmentasi). Sebelum gambar tersebut di-segmentasi, proses greyscale, threshold dan noise filtering akan dilakukan terlebih dahulu, guna menghasilkan gambar yang siap dikenali. 34
Start Create Image Processing Object Read Image 24-bit 8-bit Thresholding Yes Yes To Gray Scale Filtering Segementating End Gambar 3.2 Flowchart Proses Pengolah Citra. Filtering Get Neighborhood Pixel Calculate New Pixel Set New Pixel End Gambar 3.3 Flowchart ise Eliminator. Proses segmentasi dilakukan dengan memetakan jumlah titik hitam pada setiap baris dari gambar ke sumbu y, untuk mendapatkan tinggi karakter pada setiap baris (Y-Mappping), dimana pemetaan dengan jumlah yang lebih sedikit dari 10 akan menjadi batas untuk setiap baris karakter. Setiap baris karakter dari hasil pemetaan tersebut dipetakan lagi ke sumbu x, untuk mendapatkan lebar dari masing-masing karakter untuk setiap baris (X-Mapping), dimana pemetaan dengan jumlah yang lebih sedikit dari 2 akan menjadi batas untuk lebar dari masing-masing karakter. 35
Gambar 3.4 Proses Segmentasi Gambar. Segementating Y-Mapping i = 0 i = i + 1 i < TinggiGbr MapY > 10 JumBaris = JumBaris + 1 i = 0 i < JumBaris X-Mapping j = 0 j < LebarGbr End j = j + 1 MapX > 2 JumKata = JumKata + 1 Gambar 3.5 Flowchart Proses Segmentasi. Hasil dari proses segmentasi ini adalah posisi, lebar dan tinggi untuk masing-masing huruf. Setiap huruf hasil segmentasi ini dapat diambil (dibaca), huruf yang dibaca tersebut akan dinormalisasikan (stretch/shrink) menjadi gambar dengan ukuran 24x24 pixel. 36
I.1.1 3.3. Modul Neural Network Modul ini merupakan modul yang akan membuat sebuah obyek neural network yang terdiri dari 5 buah object layer (empat hidden layer dan satu output layer) dan sebuah input layer yang hanya berupa array dinamis dengan ukuran 576 sebagai masukan bagi object layer yang pertama. Output layer pada neural network ini akan terdiri dari 7 buah node sehingga jumlah maksimal karakter yang dapat dikenali adalah 128 karakter (2 7 ). Jumlah output node ini ditentukan berdasarkan jumlah karakter yang harus dikenali yaitu 94 karakter yang masing-masing terdiri dari: 52 karakter untuk huruf besar dan kecil. 10 karakter untuk angka. 32 karakter untuk tanda-tanda baca. Sedangkan untuk jumlah node pada hidden layer ditentukan berdasarkan hasil percobaan, dimana jumlah node yang terlalu sedikit akan menyebabkan proses pelatihan tidak akan menghasilkan bobot yang stabil, namun jumlah node yang terlalu banyak akan menyebabkan proses pelatihan menjadi lebih lambat. 4.1. Pelatihan Sistem Neural Network IV. EVALUASI SOFTWARE Evaluasi dari sistem ini berdasarkan bobot yang dihasilkan melalui pelatihan lima jenis huruf cetak yang berbeda. Setiap jenis huruf cetak akan memiliki 790 sampel yang terdiri dari: 10 sampel huruf besar dan huruf kecil = 10 x 52 = 520 10 sampel angka = 10 x 10 = 100 10 sampel koma dan titik = 10 x 2 = 20 5 sampel tanda-tanda baca (tanpa koma dan titik) = 5 x 30 = 150 Total huruf cetak dari pelatihan tersebut adalah 3950 karakter. Adapun jenis huruf cetak yang digunakan untuk melakukan pelatihan adalah Times New Roman, Comic Sans MS, Microsoft Sans Serif, Verdana, dan Tahoma. Dengan font berukuran 12 point. Dengan neural network yang memiliki input layer sebanyak 526 node, empat hidden layer yang masing-masing terdiri dari 500 node dan sebuah output layer dengan 7 node, bobot yang stabil terbentuk setelah melakukan 1.027.000 kali pelatihan (260 cycle). 4.2. Kesalahan Pada Proses Segmentasi Huruf Kesalahan proses dapat terjadi pada saat segmentasi gambar. Dimana huruf cetak yang dihasilkan menjadi tidak valid. Ada 2 macam kesalahan disini, yaitu: huruf yang saling berpotongan akan dianggap sebagai satu huruf dan huruf yang tersambung dengan sangat tipis akan dianggap sebagai dua huruf. 37
Gambar 4.1. : Contoh Gambar Tidak Valid Hasil segmentasi yang tidak valid ini akan menimbulkan kesalahan pada saat pengenalan. Oleh sebab itu perhitungan persentase pengenalan huruf akan dibagi menjadi dua bagian, yaitu, pengenalan berdasarkan hasil segmentasi yang valid saja dan berdasarkan semua karakater yang digunakan termasuk hasil segementasi yang tidak valid. 4.3. Pengujian Pengenalan Huruf Cetak Uji coba yang pertama adalah pengujian dengan gambar yang berisi huruf huruf cetak yang telah dilatihkan kepada sistem. Pengenalan ini dipisahkan berdasarkan jenis huruf masing-masing. Tabel 4.1. : Persentase Hasil Pengenalan Karakter yang Dilatih Jenis Huruf Jumlah Huruf Jumlah Yang Benar Pesentase Kebenaran Times New Roman 790 785 99,37 Comic Sans MS 790 781 98,86 Microsoft Sans Serif 790 773 97,85 Tahoma 790 776 98,23 Verdana 790 783 99,11 Total 3950 3898 98,68 Uji coba kedua dilakukan dengan gambar yang berisi teks yang berbeda dengan yang dilatihkan pada sistem namun dengan jenis huruf cetak yang sama. Tiap jenis huruf akan diuji menggunakan 3 kombinasi ukuran huruf, yaitu: 10pt, 12pt dan 14pt. Jenis Huruf Times New Roman Comic Sans MS Tabel 4.2. : Persentase Kebenaran Pengenalan Jenis Huruf yang Dilatih Persentase Ukuran Jumlah Jumlah Jumlah Kebenaran Huruf Kata Valid Benar (Valid) Persentase Kebenaran (Total) 10 617 355 270 76,06 43,76 12 617 387 321 82,95 52,03 14 617 499 411 82,36 66,61 10 617 384 329 85,68 53,32 12 617 492 409 83,13 66,29 14 617 582 492 84,54 79,74 38
Microsoft Sans Serif Tahoma 10 617 522 428 81,99 69,37 12 617 530 453 85,47 73,42 14 617 604 488 80,79 79,09 10 617 436 359 82,34 58,18 12 617 496 416 83,87 67,42 14 617 579 468 80,83 75,85 10 617 562 436 77,58 70,66 Verdana 12 617 607 479 78,91 77,63 14 617 611 491 80,36 79,58 Rata-Rata 617 509,73 416,67 81,74 67,53 Uji coba ketiga dilakukan terhadap gambar dengan jenis huruf yang berbeda. Jenis huruf cetak yang dipilih adalah Arial, Book Antiqua, Courier New, Garamond, dan Lucida Sans Unicode. Uji coba untuk kelima huruf ini akan didasarkan pada 3 kombinasi yaitu font dengan ukuran 10pt, 12pt, dan 14pt. Jenis Huruf Arial Tabel 4.3. : Persentase Kebenaran Pengenalan Jenis Huruf yang Berbeda Persentase Ukuran Jumlah Jumlah Jumlah Kebenaran Huruf Kata Valid Benar (Valid) Persentase Kebenaran (Total) 10 617 513 377 73,49 61,10 12 617 534 419 78,46 67,91 14 617 579 471 81,35 76,34 10 617 416 245 58,89 39,71 Book Antiqua 12 617 442 267 60,41 43,27 14 617 449 252 56,12 40,84 10 617 602 137 22,76 22,20 Couier New 12 617 605 134 22,15 21,72 14 617 605 123 20,33 19,94 10 617 394 118 29,95 19,12 Garamond 12 617 416 129 31,01 20,91 14 617 422 121 28,67 19,61 10 617 599 458 76,46 74,23 Lucida Sans 12 617 603 517 85,74 83,79 Unicode 14 617 603 549 91,04 88,98 Rata-Rata 617 548,25 411,25 55,47 46,65 39
III. KESIMPULAN Bila pada proses pembelajaran terjadi kesalahan pada salah satu karakter, akan menyebabkan semakin besarnya tingkat kesalahan pengenalan karakter tersebut. Bobot yang dihasilkan pada proses pembelajaran menggunakan lima jenis huruf cetak telah memberikan hasil pengenalan yang cukup baik, yaitu dengan persentase kebenaran sampai 81,74% untuk jenis huruf sama dengan yang dilatihkan dan 55,47% untuk jenis huruf yang berbeda dengan yang dilatihkan. Proses pemotongan karakter yang salah pada saat pengolahan citra, menyebabkan total persentase pengenalan menjadi turun yaitu 67,53% untuk jenis huruf sama dengan yang dilatihkan, dan 46,65% untuk jenis huruf yang berbeda dengan yang dilatihkan. Rata-rata hasil pengenalan untuk setiap jenis huruf cetak yang dilatihkan adalah sama (±80%). Rata-rata hasil pengenalan untuk setiap jenis karakter yang tidak dilatihkan bergantung pada jenis karakter tersebut, apabila model karakter tersebut mirip dengan salah satu model karakter yang dilatihkan maka rata-rata hasil pengenalan karakter tersebut akan tinggi. Proses segmentasi karakter dapat disempurnakan dengan menggunakan beberapa metode pemrosesan citra yang lain. Jumlah sampel untuk setiap jenis huruf cetak dapat ditambah untuk menghasilkan bobot yang lebih stabil untuk masing-masing karakter. Pemilihan model untuk setiap jenis huruf cetak dapat lebih bervariasi sehingga kemungkinan model karakter yang tidak sejenis dengan karakter yang dilatihkan dapat semakin besar. Jumlah setiap node dan banyaknya hidden layer dapat ditambah untuk melakukan pengenalan jenis karakter yang lebih banyak. Proses pengenalan huruf cetak tidak hanya dapat dilakukan dengan menggunakan jaringan saraf tiruan namun dapat pula dengan beberapa metode lain, misalnya, menggunakan database yang berisi kata-kata yang akan dikenali. DAFTAR PUSTAKA [1] Bharath, Ramachandran; Drosen, James.; Neural Network Computing, Windcrest, 1994 [2] Crane, Candy.; A Simplified Approach to Image Processing: Classical and Modern Techniques in C, Prentice Hall PTR, 1997 [3] Rodrigues, J. R.; Thome. A. C.; Cursive Character Recognition a character segmentation method using projection profile-based technique, http://www.nce.ufrj.br/labic/downloads/, 2003, Mei, 5 [4] Gonzales, Rafael; Wintz, Paul; Digital Image Processing Second Edition, Addison-Wesley Publishing Company, 1987 [5] Korn, A.G.; Neural Network Experiments on Personal Computers and Workstations, Massachusetts Institute of Technology, 1992 [6] Fausett, Laurene; Fundamental of Neural Network, Prentice Hall Inc., 1994 [7] Rich, Eleine; Knight, K.; Artificial Intelligence, 2 nd Ed., McGraw-Hill, Inc., 1991 [8] Rao, Valluru B.; Rao, Hayagriva V.; C++ Neural Networks and Fuzzy Logic, MIS: Press, 1993 40