Pengenalan Tulisan Tangan untuk Angka tanpa Pembelajaran Iping Supriana Suwardi1, Edvin Ramadhan2 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.
[email protected] [email protected]
Abstrak—Terdapat banyak metoda pengenalan angka latin tulisan tangan, namun umumnya menggunakan metoda statistik. Ciri dari metoda statistik adalah bahwa sistem tidak pernah mempertimbangkan angka berapa kira-kira yang sedang diolahnya, karena sistem hanya mengandalkan contoh yang diberikan kepadanya lewat pembelajaran. Dalam makalah ini diusulkan pengenalan angka tulisan tangan tanpa pembelajaran. Tetapi cukup dengan memanfaatkan ciri-ciri spesifik dari angka tersebut yang disebut sebagai properti geometri. Hasil percobaan yang dilakukan menunjukkan bahwa pendekatan ini memiliki kinerja yang lebih baik dari metoda statistik yang ada dan memiliki waktu komputasi yang lebih cepat. Kata Kunci— Properti Geometri, Pengenalan Tulisan Tangan, Pengenalan Tanpa Pembelajaran, Metoda Non-Statistik.
1. PENDAHULUAN Penelitian tentang pengenalan tulisan tangan khususnya untuk angka dan huruf latin, merupakan salah satu bahasan dalam pengembangan teknik pengenalan pola yang masih berkembang saat ini. Penelitian ini mulai diminati sejak tahun 1990-an, semenjak dipopulerkan oleh Prof. Ching Yee Suen [2] berbagai penelitian dilakukan untuk mengenali berbagai bentuk tulisan tangan. Perkembangan konsep pengenalan tulisan tangan saat ini yang paling banyak adalah konsep yang menggunakan metoda statistik. Ciri utama dari penggunaan dari metoda statistik adalah sistem yang dikembangkan tidak memperhitungkan atau mempertimbangkan bentuk tulisan atau objek yang sedang diolah atau dikenalinya. Sistem yang dikembangkan dengan menggunakan metoda statistik hanya berpedoman pada contoh pola dari sampel yang di ajarkan kepadanya, dan didalam proses ekstraksi cirinya pun secara umum tidak menggunakan ciri – ciri fisik yang bisa diamati oleh mata manusia [1]. Pembelajaran seperti ini akan membutuhkan banyak data untuk proses pembelajarannya, untuk beberpa kasus penggunaan metode statistik ini sangat efisien dan memiliki tingkat keakuratan yang tinggi [1,3]. Namun dengan semakin banyaknya data inipun ternyata tidak membuat sistem pembelajaran dengan menggunakan metode statistik ini akan menjadi lebih baik, malah akan semakin sulit dalam mengenali, ini dikarenakan semakin banyak data yang digunakan dalam pembelajaran, maka proses
pencarian pun akan semakin spesifik sehingga membutuhkan waktu dan biaya yang lebih banyak dan objek yang diperlukanpun belum tentu didapatkan. Dalam makalah ini diperkenalkan teknik pengenalan objek tulisan tangan berupa angka, tanpa melakukan pelatihan atau proses pembelajaran. Metode pengenalan yang diterapkan disini adalah dengan memanfaatkan ciri-ciri spesifik dari objek yang diamati. Dalam pengenalan tulisan tangan ini, khususnya dalam pengenalan angka, dapat dilakukan pemngamatan terhadap ciri-ciri spesifik dari angka tersebut. Pengamatan dengan menggunakan ciri-ciri spesifik ini diharapkan dapat menunjukkan kinerja yang lebih dan waktu pengenalan yang lebih singkat dibanding menggunakan metode statistik. Pada bagian berikut akan dijelaskan beberapa pendekatan non-statistik yang pernah ada yang digunakan dalam pengenalan tulisan tangan terutama pendekatan yang digunakan untuk pengenalan angka. Selanjutnya dilanjutkan dengan metode pengenalan yang diusulkan, beserta hasil imlementasinya dan beberapa pembahasan serta kesimpulan yang dapat diambil dari penerapan metode ini.
2. KAJIAN PUSTAKA Penelitian tentang pengenalan tulisan tangan mulai menarik perhatian sejak tahun 1990-an, Beberapa penelitian telah dilakukan dalam mengenali berbagai bentuk tulisan tangan. Baik itu dalam bentuk tulisan latin maupun dalam bentuk tulisan lain seperti bahasa yang digunakan pada Negara Arab [7,8], Jepang, China [6], Korea, Spanyol [13], dan berbagai Negara lain yang tidak menggunakan tulisan latin sebagai tulisannya. Berbagai pengembangan metode sintaktik telah dilakukan untuk pengenalan tulisan tangan ini, seperti, Pengenalan huruf Arab yang menggunakan adaptive slant correction algorithm dan polygonal approximation algorithm dalam fungsi fuzzy [10], handwriting model for syntactic recognition of cursive script [9]. Penggunaan markov model [12] pun juga sangat gemar digunakan saat ini. Berbagai sistem pengenalan tulisan baik itu tulisan cetak komputer ataupun tulisan tangan, sudah sangat berkembang dengan memanfaatkan konsep marcov model.
Perhatian utama pada tulisan tangan angka dengan teks Latin adalah variabilitas tinggi di kontras antara gambar dari kelas yang sama tetapi juga dalam satu gambar itu sendiri karena pemindaian artefak atau gaya penulisan yang berbeda untuk setiap orang yang menulisnya. Beberapa langkah pra-pengolahan yang dilakukan sangat bergantung pada gambar biner (seperti normalisasi ukuran). Sehingga perlu dilakukan normalisasi kontras menggunakan nilai ambang tertentu untuk melakukan proses binarisasi tersebut. Normalisasi bekerja dengan memetakan pixel terang ke putih dan pixel yang gelap ke hitam [11]. Selain variabilitas yang tinggi juga perlu diperhatikan tentang nilai noise dan kemiringan tulisan yang terdapat pada gambar [11]. Namun dalam penelitian ini tidak perlu mengkhawatirkan tentang kemiringan tulisan pada gambar. Karena untuk masalah kemiringan tersebut, telah teratasi dengan ciri spesifik dari karakter yang didefinisikan. Ciri spesifik ini disebut dengan properti geometri [14] dari karakter atau angka tersebut.
Gambar 1. Bentuk Definisi Angka Nol (0)
3. METODE YANG DIUSULKAN Untuk proses pengenalan, dalam penelitian ini diperlukan suatu bentuk definisi properti geometri yang spesifik dari angka yang akan dikenali. Untuk itu ciri yang dipakai adalah seluruh properti geometri yang bisa diekstrak dari angka tersebut. Ciri utama yang menjadi patokan adalah jumlah ujung dan simpangan yang terdapat pada angka tersebut. Gambar 1 hingga 10 berikut ini adalah contoh definisi ciri dari setiap karakter angka yang menjelaskan bentuk spesifik dari angka tersebut. Dan analisis ciri ini menjadi pedoman dalam untuk melakukan rekognisi tulisan tangan berbentuk angka tanpa melakukan learning terlebih dahulu.
Gambar 2. Bentuk Definisi Angka Satu (1)
Pada Gambar 1 diperlihatkan karakteristik dari Angka Nol (0), dimana ciri utama angka nol adalah memiliki karakteristik satu bulatan, dan tidak harus memiliki memiliki persimpangan, titik awal dan titik akhir. Pada Gambar 2 diperlihatkan karakteristik dari Angka Satu (1), dimana angka satu ini memiliki ukuran panjang rantai kode sebesar tinggi imagenya, tidak memiliki bulatan, pada umumnya tidak memiliki persimpangan, selalu diawali dari titik awal (kotak hitam bernilai 0) pada bagian atas dan diakhiri pada titik akhir (kotak hitam bernilai 1) pada bagian bawah. Sebagaian penulisan angka satu biasanya diberi garis miring pada bagian atas dan atau alas pada bagian bawah nya. Untuk pemberian garis miring ini umumnya akan menimbulkan kerancuan karena akan mirip dengan karakteristik dari angka tujuh.
Gambar 3. Bentuk Definisi Angka Dua (2)
Pada Gambar 3 diperlihatkan karakteristik dari Angka Dua (2), diamana angka dua ini memiliki 2 ujung berawal dari kiri atas atau kiri tengah (kotak hitam bernilai 0) dan berakhir pada bagian kanan bawah (kotak hitam bernilai 1). Dan pada umumnya angka dua ini tidak memiliki persimpangan dan tidak memiliki bulatan.
memiliki satu persimpangan pada bagian kanan tengah (kotak kuning berlabel A). Pada implementasinya sering terjadi kesalahan pendeteksian yang disebabkan kemiripannya dengan angka Sembilan, terlebih lagi jika penulisan angka empat nya memiliki bulatan karena ujung tengah atas dan ujung kanan saling bersinggungan.
Gambar 6. Bentuk Definisi Angka Lima (5) Gambar 4. Bentuk Definisi Angka Tiga (3)
Pada Gambar 4 ini diperlihatkan karakteristik dari Angka Tiga (3), dimana pada bagian ini diperlihatkan bahwa angka tiga itu berawal dari kiri atas (kotak hitam bernilai 0) dan berakhir menuju kiri bawah (kotak hitam bernilai 1), dan bisa dipastikan tidak memiliki simpangan atau bulatan.
Pada Gambar 6 dipelihatkan karakteristik dari Angka Lima (5), karakteristik dari angka lima ini berlawanan dengan angka dua, dimana kalau angka dua berawal dari kiri atas atau tengah dan berakhir pada kanan bawah, maka pada angka lima ini penulisan berawal dari kanan atas (kotak hitam bernilai 0) dan berujung menuju kiri tengah atau bawah (kotak hitam bernilai 1). Seperti pada angka dua, angka lima ini tidak memiliki persimpangan dan tidak memiliki bulatan.
Gambar 5. Bentuk Definisi Angka Empat (4)
Pada Gambar 5 ini diperlihatkan karakteristik dari Angka Empat (4), dimana angka empat ini secara umum memiliki 3 ujung, dimana ujung pertama dimulai pada bagian tengah atas (kotak hitam bernilai 0), ujung kedua pada bagian kanan atas (kotak hitam bernilai 1) dan ujung ke tiga pada bagian kanan bawah (kotak hitam bernilai 2), dalam tulisan tangan pada umumnya angka empat ini tidak memiliki bulatan, tapi dapat dipastikan hanya
Gambar 7. Bentuk Definisi Angka Enam (6)
Pada Gambar 7 diperlihatkan karakteristik dari Angka Enam (6), pada umumnya angka enam memiliki satu bulatan dan ujung diatasnya. Penulisan dimulai dari ujung atas (kotak hitam bernilai 0), dan berakhir pada simpangan dibagian kanan tengah (kotak kuning berlabel A).
sedangkan pada angka sembilan ujung berada pada bagian bawahnya. Penulisan angka sembilan pada umumnya dimulai dari persimpngan pada bagian kanan tengah (kotak kuning berlabel A) dan berakhir pada ujung yang berada pada bagian kiri bawah (kotak hitam bernilai 0). Jika pendeteksian mengunakan sistem rotasi atau gambar yang di deteksi terbalik, maka tidak akan menutup kemungkinan angka Sembilan ini akan terdeteksi sebagai angka enam dan sebaliknya.
Gambar 8. Bentuk Definisi Angka Tujuh (7)
Pada Gambar 8 diperlihatkan karakteristik standar dari Angka Tujuh (7), dimana penullisan angka tujuh ini berawal dari kiri atas melewati satu persimpangan dan berakhir pada bagian bawah. Pada standarnya angka tujuh ini memiliki 4 titik ujung yaitu pada kiri atas sebagai awal penulisan (kotak hitam bernilai 0), pada bagian kanan tengah (kotak hitam bernilai 1) dan kiri tengah (kotak hitam bernilai 2) untuk garis tengah dari angka tujuh, dan pada bagian bawah (kotak hitam bernilai 3). Angka tujuh sudah dipastikan tidak memiliki bulatan, namun bisa memiliki 1 persimpangan (kotak kuning berlabel A), bisa juga tidak memiliki persimpangan. Penulisan angka tujuh yang tidak memiliki garis tengah akan merubah definisi dari angka tujuh tersebut, karena jumlah ujung hanya tinggal 2, dan tidak akan memiliki persimpangan, sehingga karakteristik yang dimiliki akan mendekati karakterisitik angka satu. Karena kesalahan inilah yang membuat sering terjadi kesalahan saat pendeteksian angka tujuh dan angka satu. Untuk Angka Delapan (8) yang diperlihatkan pada Gambar 9 ini dapat dilihat bahwa karakteristik dari angka delapan ini adalah memiliki dua bulatan dan memiliki dua persimpangan. Penulisan angka delapan dimulai dari salah satu persimpangan, yaitu dimulai dari persimpangan pada kiri tengah (kotak kuning berlabel A) dan berakhir pada persimpangan pada kanan tengah (kotak kuning berlabel B). Angka delapan bisa dipastikan memiliki dua bulatan, namun belum tentu memiliki dua persimpangan, pada beberapa penulisan persimpangan bisa saja menjadi satu jika penulisan dimulai dari bagian tengah dan berakhir pada bagian tengah juga sehingga persimpangan yang terbentuk hanya satu saja. Terakhir untuk Angka Sembilan (9) yang diperlihatkan pada Gambar 10, terlihat karakteristik dari angka sembilan yang memiliki satu bulatan dan ujung dibawahnya. Karakteristik ini juga merupakan kebalikan dari angka enam, dimana enam memiliki satu bulatan namun ujung pada bagian atasnya,
Gambar 9. Bentuk Definisi Angka Delapan (8)
Gambar 10. Bentuk Definisi Angka Sembilan (9)
4. ALGORITMA PENGENALAN Sebelum menggunakan properti geometri dari angka nol hingga sembilan seperti yang dijelaskan pada bagian sebelumnya, perlu dilakukan beberapa proses pra-pengolahan sebelum mengenali angka apa yang sedang diamati tersebut. Secara umum terdapat 5 langkah utama atau algoritma yang digunakan dalam pengenalan karakter angka tanpa proses learning ini adalah sperti berikut :
1. Melakukan Pembacaan Symbol Bagian ini merupakan bagian awal dari proses pengenalan yaitu mentukan symbol atau objek mana yang akan kenali dan mempersiapkan bagian dari objek tersebut untuk dilakukan proses prapengolahan. Proses ini dapat dimulai dengan pembacaan gambar, segmentasi, hingga melakukan pemotongan gambar sesuai dengan objek atau angka yang akan diamati. 2. Lakukan Penulangan Satu Pixel (Thinning) Setelah bagian dari objek atau angka yang akan dimati ditentukan, maka dilakukan proses penulangan yang dikenal dengan proses thinning. Terdapat beberapa pendekatan thinning yang pernah dikembangkan, mulai dari sequential thinning algorithm, paraller thinning algorithm hingga uniteratif thinning algoritm [4]. 3. Pembuatan Rantai Kode (Chaincode) Setelah didapatkan skeleton atau hasil penulangan dari objek yang diamati barulah dilakukan proses pendataan rantai kode yang dimiliki dari angka tersebut, pendeteksian rantai kode dapat dilakukan dengan berbagai pendekatan dengan dasar Chaincode Freeman [5]. Pendeteksian rantai kode yang dilakukan dalam penelitian ini adalah dengan menelusuri rantai kode sesuai dengan 4 arah mata angin, utara (u), selatan (s), timur (t) dan barat (b). 4. Tentukan ujung, kode arah, simpul dan bulatan. Dari rantai kode yang didapatkan dapat ditentukan arah pergerakan rantai kode dari angka yang diamati, dan dapat pula ditentukan bagian rantai kode yang termasuk area ujung, percabangan atau simpul, dan rangkaian rantai kode mana yang termasuk bulatan atau bersifat sirkuler. 5. Lakukan pencocokan karakteristik angka yang didapat berdasar tabel ciri angka. Pada bagian ini sistem akan melakukan pencocokan karakteristik yang didapat dari objek yang sedang diamati dengan data karakteristik angka yang merupakan ciri spesifik dari tiap angka yang telah dijelaskan pada bagian 3.
5. IMPLEMENTASI Sebagai bahan percobaan dilakukan berbagai uji coba dengan menggunakan berbagai jenis tulisan tangan. Dan dari berbagai ujicoba angka yang dilakukan tersebut, pendekatan ini menunjukkan hasil yang cukup memuaskan. Data contoh yang diambil adalah data real tulisan tangan, yang dituliskan pada lembaran kertas, dimana pada lembaran kertas tersebut telah diberikan kotak pembatas untuk setiap huruf, untuk mempermudah proses pemotongan perkarakter atau angkanya. Dan kemudian dilakukan pembacaan dan pengenalan karakter sesuai dengan algoritma yang dituliskan
Gambar 11. Contoh bentuk implementasi pada Angka Tunggal.
pada bagian 4. Implementasi dilakukan pada 150 angka tunggal (Gambar 11) dan pada 105 kombinasi dua angka (Gambar 12). Jika dibandingkan dengan beberpa penelitian sebelumnya yang dilakukan dengan metode learning sebelumnya, maka hasil dari metoda pengenalan tanpa learning ini jauh lebih efektif dan efisien. Dikarenakan penenalan ini tidak memerlukan data pelatihan, sehingga tidak ada proses belajar, dan waktu untuk proses belajarpun dapat dihilangkan. Dan untuk hasil pendeteksianpun metode ini memberikan hasil yang cukup memuaskan, walaupun masih terdapat beberapa kesalahan yang disebabkan oleh kerancuan penulisan atau ketidak sempurnaan rantai kode yang didapatkan. Dari hasil yang diperoleh didapatkan untuk angka tunggal nilai hasil yang benar mencapai 90,66% sedangkan untuk data dengan kombinasi dua angka mencapai 67,61 %, dan untuk keseluruhan data yang digunakan diperoleh hasil yang benar mencapai 81,17 %
diperoleh tingkat keberhasilan mencapai 81,17% tanpa harus menggunakan learning. Dan jika dilihat secara keseluruhan metode pengenalan angka tanpa learning ini lebih baik dari metode yang menggunakan learning sebelumnya, karena selain dapat menghemat waktu dan biaya, proses ini sesuai dengan kaidah Computer Vision yang menduplikasi cara kerja mata dalam mengenali objek, khususnya untuk pengenalan tulisan tangan. Untuk perluasan kedepannya dapat dilakukan pada huruf kapital dan dilanjutkan pada huruf kecil biasa, dengan sedikit perbaikan untuk mengatasi aspek kursif dan ketidak sempurnaan rantai kode yang didapatkan.
REFERENSI [1] [2] Gambar 12. Contoh Bentuk Implementasi pada Kombinasi Angka.
6. PEMBAHASAN Dari hasil percobaan yang dilakukan ditemukan beberapa hasil yang salah. Kesalahan ini disebabkn oleh beberapa hal yang menjadi pembahasan dalam diskusi ini. Beberapa kesalahan yang muncul dapat disebabkan oleh salah satu kendala berikut:
Rantai kode yang tidak nyambung (Terputus), bagian rantai kode yang terputus ini dapat menyebabkan hilangnya suatu bulatan atau simpul, dan bisa juga menambah jumlah ujung dari objek angka yang diamati, sehingga menyebabkan karakteristik yang didapatkan menjadi lebih banyak atau lebih sedikit dari karakteristik yang seharusnya. Dan ini sangat mempengaruhi nilai hasil yang didapatkan.
[3]
[4]
[5]
[6]
[7] [8]
[9]
Adanya aspek kursif (tulisan miring) dalam obyek ternyata juga masih dapat merubah hasil yang diperoleh, seperti angka satu yang terlalu miring akan menyebabkan ia mengarah ke angka tujuh, angka empat yang terlalu miring akan mengarah ke angka sembilan, begitu juga dengan beberapa angka lain yang jika dimiringkan akan menyerupai angka lain yang dekat dengannya.
7. KESIMPULAN Hasil yang diperoleh dengan memanfaatkan properti geometri atau ciri spesifik dari angka ini cukup memuaskan, berbagai tulisan tangan untuk angka telah dapat dikenali dengan baik, walaupun masih terdapat beberapa kesalahan hasil deteksi yang disebabkan oleh kerancuan penulisan atau ketidak sempurnaan rantai kode yang didapatkan. Dari 255 data yang digunakan untuk pengujian
[10]
[11]
[12]
[13]
[14]
A. Delorme, Statistical methods, Encycl. Med. Device Instrum. 6 (2005) 240–264. S. Impedovo, More than twenty years of advancements on Frontiers in handwriting recognition, in: Pattern Recognit., 2014: pp. 916–928. A.K. Jain, R.P.W. Duin, J. Mao, Statistical pattern recognition: a review, IEEE Trans. Pattern Anal. Mach. Intell. 22 (2000) 4–37. L. Lam, S.W. Lee, C.Y. Suen, Thinning methodologies--A comprehensive survey, IEEE Trans. Pattern Anal. Mach. Intell. 14 (1992) 869–885. S. Li, Z. Ling, J. Cao, K. Li, G. Liu, A step detection algorithm based-on Chain Code, in: 2011 IEEE 3rd Int. Conf. Commun. Softw. Networks, ICCSN 2011, 2011: pp. 164–167. C.L. Liu, F. Yin, D.H. Wang, Q.F. Wang, Chinese handwriting recognition contest 2010, in: 2010 Chinese Conf. Pattern Recognition, CCPR 2010 - Proc., 2010: pp. 1100–1104. L.M. Lorigo, V. Govindaraju, Offline Arabic Handwriting Recognition :, 28 (2006) 712–724. L.M. Lorigo, V. Govindaraju, Offline arabic handwriting recognition: A survey, IEEE Trans. Pattern Anal. Mach. Intell. 28 (2006) 712–724. M. Parizeau, R. Plamondon, A handwriting model for syntactic recognition of cursive script, Proceedings., 11th IAPR Int. Conf. Pattern Recognition. Vol.II. Conf. B Pattern Recognit. Methodol. Syst. II (1992) 308–312. M. Parveze, Arabic Handwritten Text Recognition Using Structural and Syntactic Pattern Attributes, PhD Diss. 46 (2010) 141–154. H. Pesch, M. Hamdani, J. Forster, H. Ney, Analysis of preprocessing techniques for Latin handwriting recognition, in: Proc. - Int. Work. Front. Handwrit. Recognition, IWFHR, 2012: pp. 280–284. T. Plötz, G.A. Fink, Markov models for offline handwriting recognition: A survey, Int. J. Doc. Anal. Recognit. 12 (2009) 269–298. G. Vamvakas, N. Stamatopoulos, B. Gatos, I. Pratikakis, S.J. Perantonis, Greek Handwritten Character Recognition, Comput. Intell. (2007). R. Willett, G. Yu, Geometric property (T), Chinese Ann. Math. Ser. B. 35 (2014) 761–800.