Pengenalan Karakter Tulisan Tangan Latin pada Jaringan Saraf Tiruan Metode Backpropagation dengan Input Citra Kamera Digital Dompak Petrus Sinambela1 Sampe Hotlan Sitorus2 Universitas Mpu Tantular Jakarta. Universitas Tanjungpura Pontianak-Kalbar Jl. Cipinang Besar no 2 Jakarta Telp. (021)-8562011 Fax. 8562010 Email:
[email protected]
Abstrak Pada saat proses pengajuan kredit, nasabah akan mengisi formulir yang ditulis dengan cara tulis tangan, kemudian costumer service melakukan proses input secara manual ke database dengan komputer. Sistem dan program yang dibuatkan dapat mengenali karakter tulisan tangan tersebut kedalam bentuk ASCII dengan menggunakan jaringan syaraf tiruan, sehingga costumer service tidak perlu lagi melakukan proses input secara manual. Data citra yang sudah dilakukan pengolahan citra dilatih dengan menggunakan algoritma pembelajaran backpropagation. Bobot-bobot yang sudah dilatih akan dijadikan sebagai bobot-bobot acuan yang sudah terlatih dan akan digunakan dalam pengenalan karakter tulisan tangan. Hasil yang diperoleh setelah dilakukan pengujian sample tulisan tangan dari 5 orang, menunjukkan bahwa proses input data tulisan tangan di formulir pengajuan kredit ke komputer dapat dilakukan dengan program jaringan syaraf tiruan yang menggunakan algoritma pembelajaran backpropagation. Kata kunci: neural network, backpropagation, skeletonisasi, pengolahan citra
Abstract At the time of the credit application process, customers will fill out a form that was written by hand writing, then the customer service process manually input into the computer database. Systems and programs that can be made to recognize the handwritten characters into ASCII form by using artificial neural networks, so that customer service no longer have to manually input process. Image data that has been trained to do image processing using backpropagation learning algorithm. Weights that have been trained to serve as a reference weights that have been trained and will be used in handwritten character recognition. The results obtained after testing samples of handwriting 5 people, shows that the process of handwriting data input in the credit application form to a computer can be done with a program that uses neural network backpropagation learning algorithm. Keywords: neural network, backpropagation, skeletonisasi, image processing
1.
Pendahuluan Kemajuan teknologi di bidang komputer saat ini sangat pesat terutama di bidang kecerdasan buatan (artificial inteligence), yang salah satu terapannya adalah sistem Jaringan syaraf tiruan. Dengan data citra digital, sistem jaringan syaraf tiruan dapat melakukan pengolahan citra sehingga dapat mengenal karakter tulisan tangan ke dalam bentuk digital standar ASCII (data komputer). Dalam sebuah perusahaan perbankan, masih ditemukan formulir yang akan diisi oleh nasabah maupun pihak bank secara manual. Formulir tersebut akan diisi data dengan cara menuliskan didalamnya, data tersebut menjadi input ke komputer. Banyak keunggulan jika data dapat diproses secara digital komputer, mudah untuk pencarian, pengolahan dan dokumentasi. Kondisi tersebut membutuhkan waktu yang lama dan tidak efisien, sehingga mengakibatkan antrian yang cukup panjang. Agar fokus ke permasalahan, maka dilakukan pembatasan masalah yaitu sebagai berikut: Pengenalan tulisan tangan hanya untuk karakter huruf capital jenis tulisan latin dan angka latin. Dan Perancangan aplikasi dengan sistem jaringan syaraf tiruan metode pembelajaran algoritma backpropagation.Karakter tulisan tangan ditulis pada formulir pengajuan kredit dengan input citra digital hasil kamera scanner. Proses pengenalan karakter tulisan tangan hanya difokuskan pada formulir
60
pengajuan kredit dengan field Nama Lengkap dan No Handphone. Perancangan sistem jaringan syaraf tiruan menggunakan bahasa pemograman Matlab™ (Matrix Laboratory) dan Jumlah tulisan tangan yang digunakan dibatasi dengan jumlah 5 orang.
2.
Metodologi Penelitian Metodologi penelitian dilakukan dengan mengumpulkan data terlebih dahulu. Proses pengumpulan data dilakukan dengan dua cara yaitu : studi kepustakaan dan studi lapangan. Studi kepustakaan dilakukan untuk memahami proses perancangan sistem seperti mengumpulkan teori-teori yang berhubungan dengan pada jaringan saraf tiruan, input citra kamera digital dan pengenalan karakter tulisan tangan latin. Studi lapangan dilakukan mencari bahan penelitian dengan menuju langsung ke lokasi penelitian untuk melakukan : sampel dan investigasi yaitu dengan meminta dan melihat dokumen yang digunakan dalam proses pengajuan kredit. wawancara yaitu mengajukan beberapa pertanyaan kepada pihak yang bersangkutan seputar objek penelitian dan observasi yaitu dengan melakukan pengamatan secara langsung terhadap kegiatan proses pengajuan kredit, seperti nasabah mengisi formulir yang ditulis dengan cara tulis tangan, kemudian costumer service melakukan proses input secara manual ke database dengan komputer. Metode perancangan yang dilakukan terdiri dari perancangan flow map, data flow diagram (DFD), perancangan database dan perancangan interface. Data Flow Diagram (DFD) sering digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau lingkungan fisik dimana data tersebut disimpan. Data Flow Diagram pada sistem yang berjalan dapat digambarkan seperti dibawah ini.
Gambar 1 Flow Map Arus pengajuan kredit pada Bank
Gambar 2 Diagram Konteks
61
Interface untuk pengenalan karakter tulisan tangan dibuat menyerupai formulir pengajuan kredit yaitu dengan kotak per kotak yang bertujuan untuk memudahkan cropping dan pengolahan citra. Seperti penulis jelaskan pada batasan masalah pada bab sebelumnya, program dirancang hanya untuk pengenalan field nama lengkap dan nomor handphone. Sistem yang diusulkan disediakan interface untuk image processing yang bertujuan untuk mengetahui setiap langkah-langkah untuk pengolahan citra hingga menghasilkan data input yang direpresentasikan menjadi bernilai angka. Interface program dapat dilihat pada gambar 7 dibawah ini.
Gambar 3 interface program
Gambar 4 Interface program saat proses Image Processing
Gambar 5 program saat proses Convert
Pengenalan Karakter Tulisan Tangan Latin pada Jaringan Saraf Tiruan (Dompak Petrus Sinambela)
62
Jaringan saraf tiruan dibentuk dengan input 25 neuron, hidden layer 12 neuron dan output layer 7 neuron. Arsitektur jaringan saraf tiruan ini dapat dilihat pada gambar 6 dibawah ini.
Gambar 6 Arsitektur Backpropagation Jaringan syaraf tiruan akan dilatih dengan menggunakan fungsi aktivasi sigmoid biner, learning rate=0.5, dan pelatihan akan dihentikan pada epoh 200.
3. Analisis dan Hasil 3.1. Analisis Jaringan syaraf tiruan didefenisikan sebagai susunan dari elemen-elemen penghitung yang disebut neuron atau titik (node) yang saling terhubung guna dimodelkan untuk meniru fungsi otak manusia. Sistem jaringan syaraf tiruan disirikan dengan adanya proses pembelajaran (learning) yang berfungsi untuk mengadaptasi parameter-parameter jaringannya.
63
Gambar 7. Jaringan syaraf manusia Salah satu bagian terpenting dari konsep jaringan syaraf adalah terjadinya proses pembelajaran. Tujuan utama dari proses pembelajaran adalah melakukan pengaturan terhadap bobot-bobot yang ada pada jaringan syaraf, sehingga diperoleh bobot akhir yang tepat sesuai dengan pola data yang dilatih. Selama proses pembelajaran akan terjadi perbaikan bobot-bobot berdasarkan algoritma tertentu. Nilai bobot akan bertambah, jika informasi yang diberikan oleh neuron yang bersangkutan tersampaikan, sebaliknya jika informasi tidak disampaikan oleh suatu neuron ke neuron yang lain, maka nilai bobot yang menghubungkan keduanya akan dikurangi. Pada saat pembelajaran dilakukan pada input yang berbeda, maka nilai bobot akan diubah secara dinamis hingga mencapai mengindikasikan bahwa tiap-tiap input telah berhubungan dengan output yang diharapkan. Cara berlangsungnya pembelajaran atau pelatihan Jaringan syaraf tiruan dikelompokkan menjadi 3 yaitu: a.
Pembelajaran terawasi (Supervised Learning) Pada metode ini, setiap pola yang diberikan kedalam jaringan syaraf tiruan telah diketahui outputnya. Selisih antara pola output aktual (output yang dihasilkan) dengan pola output yang dikehendaki (output target) yang disebut error digunakan untuk mengoreksi bobot jaringan syaraf tiruan hingga mampu menghasilkan output sedekat mungkin dengan target yang telah diketahui oleh jaringan syaraf tiruan. Apabila nilai error ini masih cukup besar, mengindikasikan bahwa masih perlu dilakukan lebih banyak pembelajaran lagi. Contoh pembelajaran terawasi adalah: Hebbian, Perceptron, ADALINE, Boltzman, Hopfield, dan Backpropagation. Untuk itu, pada tulisan ini pengenalan karakter tulisan tangan akan menggunakan algoritma pembelajaran Backpropagation. b.
Pembelajaran tak terawasi (Unsupervised Learning) Pada metode ini, tidak memerlukan target output. Pada metode ini tidak dapat ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah mengelompokkan unit-unit ynag hampir sama dalam suatu area tertentu. Pembelajaran ini biasanya cocok untuk pengelompokan (kelasifikasi) pola. Contoh algoritma ini adalah: Competitive, Hebbian, Kohonen, LVQ (Learning Vector Quantization), Neocognitron. c.
Pembelajaran Hibrida (Hybrid Learning) Merupakan kombinasi dari metode pembelajaran supervised learning dan unsupervised learning. Sebagian dari bobot-bobotnya ditentukan melalui pembelajaran terawasi dan sebagian lainnya melalui pembelajaran tak terawasi. Contoh algoritma jaringan syaraf tiruan yang menggunkan metode ini adalah algoritma Radial Basis Function (RBF). Didalam jaringan backpropagation, setiap unit yang berada di lapisan input terhubung dengan setiap unit yang ada di lapisan tersembunyi terhubung dengan setiap unit yang ada di lapisan output. Jaringan ini terdiri dari banyak lapisan (multilayer network). Ketika jaringan diberikan pola masukan sebagai pola pelatihan, maka pola tersebut menuju unit-unit lapisan tersembunyi untuk selanjutnya keluaran akan memberikan respon sebagai keluaran jaringan syaraf tiruan. Saat hasil keluaran tidak sesuai dengan yang diharapkan, maka keluaran akan disebarkan mundur (backward) pada lapisan tersembunyi kemudian dari lapisan tersembunyi menuju lapisan masukan.
Pengenalan Karakter Tulisan Tangan Latin pada Jaringan Saraf Tiruan (Dompak Petrus Sinambela)
64
Setiap unit di dalam layer input pada jaringan Backpropagation selalu terhubung dengan setiap unit yang berada pada layer tersembunyi, demikian juga setiap unit pada layer tersembunyi selalu dari banyak lapisan (multilayer network), yaitu: 1. Lapisan input (1 buah), yang terdiri dari 1 hingga n unit input. 2. Lapisan tersembunyi (minimal 1 buah), yang terdiri dari 1 hingga p unit tersembunyi. 3. Lapisan output (1 buah), yang terdiri dari 1 hingga m unit output.
Gambar 8 Arsitektur Jaringan Backpropagation Aturan pelatihan jaringan backpropagation terdiri dari 2 tahapan, feedforward dan backward propagation. Pada jaringan diberikan sekumpulan contoh pelatihan yang disebut set pelatihan. Set pelatihan ini digambarkan dengan sebuah vector feature yang disebut dengan vector input yang diasosiasikan dengan sebuah output yang menjadi target pelatihannya. Untuk pelatihan jaringan backpropagation ini, dapat dilakukan dengan algoritma sebagai berikut: Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil) Tetapkan: maksimum Epoh, Target Error, dan Learning Rate (α). Inisialisasikan: Epoh = 0. Kerjakan langkah-langkah berikut selama (Epoh < maksimum Epoh) dan (MSE < Target Error): 1. Epoh = Epoh + 1 2. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan: Feedforward: a. Tiap-tiap unit input (Xi, i=1, 2, 3…., n) menerima sinyal xi dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi). b. Tiap-tiap unit pada suatu lapisan tersembunyi (Zi, j=1, 2, 3,….p) menjumlahkan sinyalsinyal input terbobot: z_inj = b1j + ni=1 xi vij (1) Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: 1 zj = f (z_inj ) = (2) −z _in j 1+e
Dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). c. Tiap-tiap unit output (Yk, k=1, 2, 3,…..m) menjumlahkan sinyal-sinyal input terbobot. p zin k = b2k + i=1 zi wjk (3) Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: 1 yk = f (yin k ) = (4) −y 1+e in k Dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). Catatan: Langkah (b) dilakukan sebanyak jumlah lapisan tersembunyi. Backward propagation d. Tiap-tiap unit output (Yk, k=1,2,3,…..,m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi errornya: δ2k = t k − yk f ′ (y_ink ) (5) φ2jk = δk zj (6) β2k = δk (7)
65
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai wjk): ∆wjk = α φjk (8) Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai b2k): ∆b2k = α βk (9) Langkah (d) ini juga dilakukan sebanyak jumlah lapisan tersembunyi, yaitu menghitung informasi error dari suatu lapisan tersembunyi ke lapisan tersembunyi sebelumnya. e. Tiap-tiap unit tersembunyi (Zj, j=1,2,3,….,p) menjumlahkan delta inputnya (dari unit-unit yang berada pada lapisan di atasnya): δ_inj = m (10) k=1 δi wjk kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error: δ1j = δ_inj f ′ (z_inj ) (11) φ1ij = δj xj (12) β1j = δ1j (13) kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij ): ∆vij = α φ 1ij (14) Hitung juga koreksi biasa (yang nantinya akan digunakan untuk memperbaiki nilai b1j ): ∆b1j = α φ 1j (15) f. Tiap-tiap unit output (Yk, k=1,2,3,….,m) memperbaiki bias dan bobotnya (j = 0,1,2,….,p): wjk baru = wjk lama + ∆wjk (16) b2k baru = b2k lama + ∆b2k (17) Tiap-tiap unit tersembunyi (Zj, j=1,2,3,…..,p) memperbaiki bias dan bobotnya (i=0,1,2,….,n ): vij baru = vij lama + ∆vij (18) b1j baru = b1j + ∆b1j (19) 3. Hitung (MSE) Mean Square Error Setelah dilakukan algoritma tersebut pada jaringan, maka akan didapatkan jaringan yang sudah ditraining. Sehingga untuk melakukan identifikasi, dapat dilakukan dengan langsung memberikan input dan jaringan akan mengklasifikasikannya sesuai dengan bobotbobot yang diperoleh dari proses training sebelumnya. Dimana besar mean square error ditunjukkan persamaan berikut. 1 m 2 E= (20) j=1 t j 𝑘 − 𝑦𝑗 𝑘 =
1 2
2
m 2 j=1 e
j 𝑘
(21)
Untuk mendapatkan data matrik yang akan dijadikan data untuk pelatihan jaringan syaraf tiruan, maupun untuk pengenalan karakter. Dilakukan beberapa pengolahan citra yang bertujuan untuk mendapatkan data yang lebih akurat sesuai dengan flow chart gambar IV-1 dibawah ini. Formulir di scanning
1
Data scanning disimpan dalam format *.jpg
2
Image load
3
Image cropping kotak per kotak
4
Image resize ke ukuran 35 x 35 piksel
5
Merubah warna image dari RGB ke GRAY
6
Merubah warna background menjadi hitam dan warna foreground menjadi putih
7
Skeletonisasi
8
Data Matrik
9
Gambar 9 Flow Chart Pengolahan Citra
Pengenalan Karakter Tulisan Tangan Latin pada Jaringan Saraf Tiruan (Dompak Petrus Sinambela)
66
3.2 Hasil Pengenalan karakter tulisan tangan akan dilakukan testing terhadap 5 orang dengan kriteria karakter A~Z dan 0~9 (sampling 5 orang), selanjutnya masing-masing menuliskan nama dan no handphone untuk dilakukan pengenalan. Hasil pengenalan karakter tulisan tangan dapat dilihat di bawah ini. 1. Hasil test untuk orang ke-1
2.
Hasil test untuk orang ke-2
3.
Hasil test untuk orang ke-3
4.
Hasil test untuk orang ke-4
5.
67
Hasil test untuk orang ke-5
Dari hasil testing diatas, maka didapatkan hasil persentase keakurasian seperti pada tabel berikut.
Sample Orang ke-1 Orang ke-2 Orang ke-3 Orang ke-4 Orang ke-5 Total
Tabel 1 Hasil test untuk karakter A~Z dan 0~9 Benar Salah % Akurasi 35 1 97.1 26 10 61.5 32 4 87.5 35 1 97.1 35 1 97.1 163 17 89.5
Sample Orang ke-1 Orang ke-2 Orang ke-3 Orang ke-4 Orang ke-5 Total
Tabel 2 Hasil test untuk field nama lengkap dan no Benar Salah % Akurasi 32 5 84.3 33 4 87.8 30 7 76.6 29 8 72.4 33 4 87.8 187 28 85.0
4. Kesimpulan dan Saran Adapun kesimpulan dari hasil penelitian ini adalah sebagai berikut: hasil pengujian pengenalan karakter tulisan tangan untuk 5 orang, tingkat keakurasian program yaitu sebesar 87.2%. Penentuan nilai learning rate sangat mempengaruhi pergesaran nilai pada bobot-bobot saat proses pelatihan jaringan syaraf tiruan, dimana data bobot v dan bias ke hidden layer yang baru, mengalami pergeseran yang sangat kecil. Sedangkan data bobot w dan bias ke output layer yang baru, mengalami pergesaran nilai yang cukup besar. Nilai input dan jumlah epoh pada saat proses pelatihan jaringan syaraf tiruan mempengaruhi pendekatan nilai ke target output jaringan saraf tiruan dengan menggunakan algoritma backpropagation untuk dapat mengenali tulisan tangan yang ditulis di formulir pengajuan kredit. Adapun saran dari hasil penelitian adalah sebagai berikut : sistem yang dibuat dapat diimplementasikan dengan menambah jumlah karakter tulisan tangan dan jumlah epoh untuk proses pelatihan jaringan syaraf tiruan minimal 100 orang. Hal ini bertujuan untuk memperbaiki bobot-bobot pada jaringan syaraf tiruan. Untuk meningkatkan keakurasian sistem yang dibuat, maka penulis akan terus melakukan riset dan perbaikan.
Daftar Pustaka Buku Teks : [1] Hermawan arif. Jaringan Saraf Tiruan dan Aplikasi, Yogyakarta : Andi Offset. 2006 [2] Siang JJ. Jaringan Saraf Tiruan dan Pemrogramannya menggunakan MathLab. Yogyakarta : Andi Offset. 2004 [3] Puspitaningrum, Diyah. Pengantar Jaringan Saraf Tiruan. Yogyakarta : Andi Offset. 2006. [4] Ahmad, Usman, Pengolahan Citra Digital & Teknik Pemrogramannya, Cetakan Pertama, Graha Ilmu, Yogyakarta, 2005.
Pengenalan Karakter Tulisan Tangan Latin pada Jaringan Saraf Tiruan (Dompak Petrus Sinambela)
68
[5] Basuki, Achmad, Jozua F. Palandi, Fatcurrochman, Pengolahan Citra Digital Menggunakan Visual Basic, Cetakan Pertama, Graha Ilmu, Yogyakarta, 2005. [6] Dunteman, G. H., Principal Components Analysis, Sage Publications, 1989. [7] Gomes, J. dan Velho, L., Image Processing For Computer Graphics, Translated by Silvio Levy, Springer, Rio de Janeiro, 1996. [8] Gonzales, R. C., Digital Image Processing, Addison Wesley Publishing Company., 1992 [9] Hadi R, Pemrograman Windows API dengan Microsoft Visual Basic, PT. Elex Media Komputindo, Jakarta, 2001 [10] Halvorson M, Microsoft Visual Basic 6.0 Professional Step by Step, PT. Elex Media Komputindo, Jakarta, 2000 [11] Munir, Rinaldi, Pengolahan Citra Digital Dengan Pendekatan Algoritmik, Penerbit Informatika, 1992