INTEGRAL, Vol. 9 No. 3, November 2004 PERLUASAN ALGORITMA PENGENAL HURUF METODE TUPEL-N MEMAKAI LOGIKA KABUR J. Eka Priyatma1) dan St. Eko Hari Parmadi2) Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sanata Dharma, Yogyakarta - DIY E-mail : [email protected]) , [email protected]) Intisari Pengenal huruf otomatis (PHO) adalah sebuah sistem komputer yang digunakan untuk secara otomatis mengenali serangkaian huruf yang berasal dari mesin ketik, mesin cetak ataupun tulisan tangan. Ada banyak pendekatan yang dapat digunakan untuk membuat PHO. Salah satu pendekatan yang paling sederhana menggunakan metode tupel-N. Namun demikian metode ini mempunyai keterbatasan dalam proses pencocokannya karena mensyaratkan terjadinya kecocokan mutlak antara huruf yang dibaca dengan huruf pembandingnya. Tulisan ini memaparkan perluasan metode tupel-N memakai logika kabur. Perluasan ini memungkinkan metode tupel-N mengenali huruf yang kurang jelas (tegas). Tulisan ini juga memaparkan bagaimana perangkat lunak Matlab Fuzzy Logic Toolbox dapat membantu perhitungan dalam metode tupel-N ini secara intuitif. Kata kunci : Pengenal pola, Logika Kabur, Metode Tuple-N, Toolbox Matlab Logika Kabur Abstract Automatic Character Recognizer (OCR) is a computer system used to automatically read a stream of characters produced by typewriters, printer or handwriting. There are many approaches to design an OCR.. One of the simplest approaches is using N-tuple method. However, N-tuple method has limitation in the matching process since it requires an absolute match between the character and its templates. This paper presents an extension of N-tuple method using fuzzy logic. Such extension enables N-tuple method to handle more vague characters. This paper also shows how Matlab Fuzzy Logic Toolbox could easily facilitate the computation of fuzzy logic based Ntuple method intuitively. Keywords : Character recognizer, Fuzzy-logic, N-tuple method, MatlabFuzzy Logic ToolBox Diterima : 9 Juni 2004 Disetujui untuk dipublikasikan : 29 Oktober 2004 1. Latar belakang huruf, baik yang berasal dari sebuah pencetak (printer atau mesin ketik) maupun yang berasal dari tulisan tangan. Adanya sistem pengenal huruf ini akan Pengenal huruf otomatis (automatic character recognizer) adalah sebuah sistem komputer yang dapat membaca 108 INTEGRAL, Vol. 9 No. 3, November 2004 Sedang dalam metode yang berbasis struktur, setiap pola yang diproses dinyatakan sebagai gabungan beberapa struktur elementer. Pengenalan selanjutnya dilakukan dengan mencocokkan komposisi struktur elementer dengan struktur yang sudah disimpan memakai aturan tertentu misalnya memakai pendekatan teori bahasa formal dan automata. meningkatkan fleksibilitas ataupun kemampuan dan kecerdasan sistem komputer. Dengan adanya sistem pengenal huruf otomatis maka user dapat lebih leluasa memasukkan data karena user tidak harus memakai papan ketik tetapi bisa menggunakan pena elektronik untuk menulis sebagaimana user menulis di kertas. Adanya pengenal huruf juga akan memudahkan penanganan pekerjaan yang memakai input tulisan seperti penyortiran surat di kantor pos, pemasukan data buku di perpustakaan, dll. Adanya sistem pengenal huruf yang cerdas akan sangat membantu usaha besar-besaran yang saat ini dilakukan banyak pihak yakni usaha digitalisasi informasi dan pengetahuan, misalnya dalam pembuatan koleksi pustaka digital, koleksi sastra kuno digital, dll. Persoalan pokok yang menjadikan pengenal pola sebagai proses yang sulit adalah adanya kekurang-lengkapan informasi maupun adanya ketidaktegasan dari pola yang diproses. Dalam kasus pengenalan huruf hasil tulisan tangan nampak sekali bahwa ada begitu banyak variasi untuk satu huruf yang sama. Dengan kenyataan ini maka menjadi sangat relevan untuk memakai logika kabur dalam pengenalan pola atau lebih khususnya huruf [2]. Pengenal huruf otomatis dapat dipandang sebagai bagian dari pengenal otomatis yang lebih luas yakni pengenal pola otomatis (automatic pattern recognition). Dalam pengenal pola otomatis, sistem pengenal pola mencoba mengenali apakah citra masukan yang diterima cocok dengan salah satu citra yang telah ditentukan. Sistem ini misalnya dipakai untuk mendeteksi sidik jari, tandatangan, bahkan wajah seseorang. Tulisan ini memberikan gambaran bagaimana komputasi algoritma pengenal huruf otomatis berbasis logika kabur dilakukan. Ravi dan Marcelo [4] menerapkan logika kabur untuk mengenali huruf dengan cara memodifikasi metode tupel-N. Modifikasi yang dilakukan cukup sederhana yakni memperlunak syarat kecocokan absolut antara huruf yang dikenali dengan huruf contoh menjadi kecocokan kabur dalam arti nilai kecocokan tidak lagi tegas ‘ya’ dan ‘tidak’ melainkan dinyatakan dengan suatu nilai antara 0 sampai 1. Ada banyak pendekatan yang dapat dipakai untuk mengembangkan pembuatan pengenal pola otomatis antara lain memakai pendekatan numerik, statistik, sintaktik, neural dan, aturan produksi (rule-based) [1] . Secara umum metode-metode tersebut dapat digolongkan menjadi dua kelompok metode yakni metode berbasis statistik dan metode berbasis struktur [3]. Meskipun metode yang diuraikan oleh Ravi dan Marcelo [4] cukup sederhana tetapi komputasinya kompleks dan melibatkan banyak tahap. Tulisan ini memberikan solusi bahwa komputasi untuk pengenalan huruf berbasis logika kabur dapat dengan mudah dilakukan memakai perangkat lunak Matlab Fuzzy Logic Toolbox. Selain memudahkan komputasi, Matlab Fuzzy Logic Toolbox Dalam metode yang berbasis statistik, setiap pola ditransformasi ke dalam vektor yang memakai ukuran dan karakteristik tertentu. Karakteristik ini seringkali lebih bersifat statistik misalnya distribusi pixel ataupun jarak pixel. 109 INTEGRAL, Vol. 9 No. 3, November 2004 dipakai dan menuntut komputasi yang sederhana adalah fungsi keanggotaan trapezoid [5]. Untuk itulah bentuk fungsi keanggotaan trapezoid akan dipakai sebagai contoh dalam tulisan ini. juga banyak memberikan fasilitas yang memungkinkan simulasi. Perlu diketahui bahwa dalam logika kabur ada banyak aturan inferensi yang dapat dipakai. Sayangnya tidak ada pedoman di mana sebuah aturan inferensi paling sesuai dipakai. Dengan memakai Matlab Fuzzy Logic Toolbox, orang dapat melakukan simulasi memakai berbagai aturan inferensi untuk menemukan aturan inferensi yang paling sesuai dengan masalah yang dihadapi. Sri Kusumadewi [3] memberikan banyak contoh bagaimana menggunakan Matlab Fuzzy Logic Toolbox untuk berbagai bidang aplikasi. 2. Algoritma Tuple-N Pengenal Huruf Dalam algoritma pengenal huruf tuple-n, diandaikan bahwa citra input dan citra pembanding berupa matrik pixel m x n yang elemen-elemennya bernilai 1 atau 0 (xij bernilai 1 atau 0 untuk menandai adanya pixel hitam atau putih, terserah mana yang akan dipilih). Selanjutnya didefinisikan fungsi Boolean Fi untuk tuple ke i dari P buah citra pembanding sbb: Salah satu keunggulan logika kabur terletak pada kemampuannya memodelkan penalaran intuitif, untuk itu Matlab Fuzzy Logic Toolbox juga memberikan berbagai fasilitas yang memungkinan penlaran intuitif ini dilakukan dengan mudah. Salah satu bentuk fasilitas penalaran intuitif yang diberikan adalah penentuan fungsi keanggotaan himpunan kabur. Meskipun ada banyak bentuk fungsi kenggotaan tetapi salah satu bentuk yang sering P ⎡ n ⎤ Fi ( xi1 , xi 2 ,..., xil ) = ∑ ⎢∏ ( f ( xilk ))⎥ k =1 ⎣ l =1 ⎦ (1) di mana Π menyatakan perkalian memakai operator AND dan Σ menyatakan jumlah dengan operator OR, ) = x , jika pixel berwarna putih ( x = 1), il ilk f ( x ilk ) = x 'il , jika pixel berwarna hitam ( x ilk = 0 ) dan tanda aksen (' ) menyatakan operator NOT, f (x ilk P = jumlah citra pembanding dan n jumlah elemen dalam setiap tuple. Untuk menyederhanakan masalah, andaikan citra yang akan diolah berupa huruf T berukuran 3 x 3 dan menggunakan P = 3 buah pola huruf pembanding atau jumlah variasi huruf (seringkali disebut sebagai Training Set Size karena semakin besar ukuran P akan menjadikan sistem seolah-olah semakin banyak dilatih). 110 INTEGRAL, Vol. 9 No. 3, November 2004 Contoh 1 Contoh 2 Contoh 3 Gambar 1. Tiga buah citra sebagai model bentuk huruf T Andaikan diambil vektor baris sebagai tuple maka setiap citra memuat 3 tuple dan setiap tuple memuat 3 elemen. Dengan memakai rumus (1) maka fungsi boolean untuk setiap tuple adalah: F1 = x'11 x'12 x'13 + x'11 x'12 x13 + x'11 x'12 x'13 = x'11 x'12 x'13 + x'11 x'12 x13 F2 = x 21 x' 22 x 23 + x 21 x' 22 x 23 + x 21 x' 22 x 23 = x 21 x' 22 x 23 F3 = x31 x' 32 x33 + x31 x' 32 x33 + x31 x32 x33 = x31 x'32 x33 + x31 x32 x33 di mana x ij menyatakan pixel pada baris ke i kolom ke j Pada dasarnya fungsi di atas dipakai untuk melihat sejauh mana suatu citra huruf sesuai dengan salah satu contoh pola. Andaikan diberikan masukan berupa pola huruf berikut Gambar 2. Contoh input untuk dibandingkan dengan huruf T Dengan memakai ketiga fungsi F1, F2 dan F3 dapat dihitung nilai kemiripan (similarity score) input di atas terhadap huruf T relatif terhadap 3 pola huruf T di gambar 1 yakni Skore kemiripan = F1 ( x11 , x12 , x13 ) + F2 ( x 21 , x 22 , x 23 ) + F3 ( x31 , x32 , x33 ) = F1 (1,0,0) + F2 (1,0,1) + F3 (1,0,1) = ( 0.1.1 + 0.1.0) + (1.1.1) + (1.1.1 + 1.0.1) = 0+1+1 =2 skor kemiripan terbesar dari antara skor Karena citra input ini mempunyai skor kemiripan terhadap semua kelas huruf kemiripan 2 maka dapat dikatakan yang tersedia. bahwa input ini mempunyai kemungkinan 2/3 bahwa algoritma telah Salah satu kelemahan dari metode ini mengidentifikasi input sebagai huruf T. adalah hilangnya peran posisi pixel Dengan demikian, semakin banyak tuple dalam tuple padahal dalam kenyataanya yang cocok akan mengakibatkan beberapa posisi pixel sangat menentukan semakin besarnya skor kemiripan. dalam proses klasifikasi huruf. Dalam praktek, sebelum proses Perhatikan untuk kasus huruf E dan B pengenalan huruf dilakukan maka huruf dalam gambar 3. Dua huruf ini hanya contoh sudah harus tersedia, demikian berbeda untuk pixel di posisi (2,5) dan pula dengan fungsi boolean setiap huruf di posisi (4,5), sehingga dua pixel ini contohnya. Identifikasi suatu huruf kontribusinya sangat besar dalam selanjutnya dilakukan dengan mencari 111 INTEGRAL, Vol. 9 No. 3, November 2004 membedakan antara huruf E dan B padahal kalau memakai fungsi boolean Fi saja maka kontribusi dua pixel ini hanya kecil. Gambar 3a: Huruf E Gambar 3b: Huruf B Salah satu perbaikan proses identifikasi yang mungkin dilakukan adalah memasukkan faktor pentingnya suatu pixel dalam suatu huruf. Untuk itu didefinisikan konsep skor (kepentingan) suatu pixel untuk setiap kelas huruf sbb: Skore pixel = | NB – NW| / P absolut, sedang P menyatakan jumlah anggota kelas huruf dan akan sama dengan NB + NW. Perhatikan bahwa rumus (2) memberikan ukuran konsistensi suatu pixel apakah berwarna hitam atau putih dalam suatu kelas huruf. (2) Dengan demikian, untuk pixel (1,3) dalam gambar 1 dapat dihitung bahwa NB = 2 dan NW = 1 sehingga skor pixel (1,3) = | 2 –1|/3 = 1/3. Jika untuk semua pixel dihitung skor pixelnya maka diperoleh tabel skor pixel berikut: Di mana NB adalah banyak kali (jumlah) pixel tersebut berwarna hitam dalam kelas suatu huruf, NW adalah banyak kali pixel berwarna putih dalam kelas suatu huruf dan | .| menyatakan operator 1 1 1 1 1 1/3 1/3 1 1 Tabel 1. Tabel skor pixel untuk kelas huruf T di gambar 1. Untuk citra di gambar 1 dan memakai skor tuple di tabel 1 maka IoT untuk tuple 1 = 2 1/3 dan untuk tuple ke 2 dan ke 3 masing-masing sama dengan 3 dan 2 1/3. Dari hitungan ini dapat disimpulkan bahwa tuple ke 2 dikatakan lebih konsisten (selalu hitam atau putih) ketimbang tuple ke 1 dan ke 3. Oleh karena itu kecocokan dalam tuple 2 ini antara huruf yang diuji dengan huruf Skor pixel selanjutnya dipakai untuk menentukan apa yang disebut dengan derajat kepentingan suatu tuple (Important of the Tuple/IoT) yang didefinisikan sebagai IoT = jumlah skor pixel di suatu tuple. (3) 112 INTEGRAL, Vol. 9 No. 3, November 2004 Berdasarkan dua input kabur ini, inferensi dilakukan untuk menentukan sumbangan setiap tuple bagi total derajat kemiripan suatu citra input dengan setiap kelas huruf pembanding yang ada. Kelas huruf yang mempunyai derajat kemiripan tertinggi dengan citra input akan dipilih sebagai huruf yang terindentifikasi. pembanding dipandang lebih penting ketimbang kecocokan yang ditemukan di tuple ke 1 dan 3. Dengan demikian semakin besar jumlah skor pixel dalam suatu tuple maka tuple tersebut mempunyai derajat kepentingan yang lebih besar. Dalam algoritma pengenalan huruf tuplen tegas, kecocokan (matching) sepenuhnya antara suatu tuple dari huruf yang diidentifikasi dengan tuple salah satu huruf pembanding merupakan prasyarat bagi penentuan skor kecocokan total. Lagi pula, setiap tuple mempunyai sumbangan yang sama terhadap penentuan skor kecocokan. Untuk citra input gambar 2, tuple 1 tidak cocok dengan tuple 1 dari ketiga huruf pembanding yang diberikan, sedang untuk tuple ke 2 dan ke 3 masing masing cocok sebanyak 3 dan 2 kali. Oleh karena itu, nampak logis apabila tuple ke 2 mempunyai sumbangan yang lebih besar dalam menentukan skor kemiripan ketimbang tuple 1 dan 3. Untuk itu dikenalkan derajat kecocokan (Degree of Match/DoM) yang didefinisikan sbb: DoM suatu tuple = NM/P, Dengan kata lain, Sistem Inferensi Kabur ini mepunyai 2 input dan 1 output yakni Input 1 : IoT Input 2 : DoM Output : Sumbangan setiap tuple terhadap skor kemiripan terhadap suatu kelompok huruf (Css) Setelah Css dihitung untuk semua tuple, maka skor kemiripan suatu citra terhadap suatu kelas huruf tertentu dihitung dengan skor kemiripan = Y ∑ (Css) i =1 i , di mana Y adalah jumlah tuple. Selanjutnya, aturan ‘jika-maka’ dapat dibuat dengan pendekatan intuitif. Seandainya Iot mempunyai 3 nilai kabur yakni Besar (B), Sedang (S) dan Kecil (K), maka jika suatu citra untuk suatu tuplenya mempunyai IoT yang besar akan berarti bahwa tuple tersebut penting untuk proses pembandingan. Demikian pula halnya dengan DoM, seandainya mempunyai 3 nilai kabur B, S dan K maka suatu tuple yang mempunyai DoM besar akan berarti bahwa tuple tersebut mempunyai tingkat kecocokan yang besar terhadap tuple terkait dari kelas huruf tertentu. Oleh karena itu jika sutau tuple mempunyai IoT besar dan DoM besar maka sumbangan tuple tersebut juga besar bagi skor kemiripan terhadap kelas huruf tersebut. Sebaliknya jika suatu tuple mempunyai IoT yang besar tetapi mempunyai DoM yang kecil maka tuple tersebut kecil sumbangannya terhadap skor kemiripan. Akhirnya 9 aturan kaburnya dapat dirumuskan memakai tabel berikut : (4) di mana NM adalah jumlah huruf pembanding yang tuplenya cocok dengan tuple huruf yang diuji dan P adalah jumlah huruf pembanding untuk setiap kelas huruf tertentu. 3. Perluasan Algoritma Tuple-N Memakai Logika Kabur Dengan memakai konsep IoT dan DoM, perluasan algoritma Tuple-N dilakukan dengan cara sebagai berikut. Pertamatama IoT akan diperluas menjadi variabel input kabur dan untuk itu perlu didefinisikan fungsi keanggotaan untuk setiap nilai variabel kabur tersebut. Demikian pula halnya dengan DoM, akan menjadi variabel input kabur yang kedua dan perlu juga didefinisikan fungsi keanggotaan variabel kabur ini. 113 INTEGRAL, Vol. 9 No. 3, November 2004 IoT DoM K K K K K S B S K S B B K S B Tabel 2. Sembilan aturan jika-maka kabur 4. Simulasi memakai Matlab berbentuk trapezoid dan pembentukan fungsinya dapat dilakukan memakai Matlab secara visual dan interaktif. Di dalam Fuzzy Logic ToolBox, fungsi keanggotaan dapat dibuat secara visual tanpa harus membuat ekspresi fungsinya. Tiga variabel kabur IoT, DoM dan Css didefinisikan mempunyai fungsi keanggotaan masing-masing sebagai berikut Matlab versi 6.1 (Fuzzy Logic ToolBox) memberikan fasilitas untuk melakukan berbagai komputasi kabur termasuk di dalamnya komputasi inferensi kabur dengan berbagai fasilitas yang tidak hanya memudahkan tetapi juga memberikan visualisasi yang menarik. Untuk kepentingan simulasi ini, akan dipakai fungsi keanggotaan yang K S K B S K B S B 1 0 IoT 3 0 DoM 0 Css Gambar 4. Fungsi keanggotaan 3 variabel kabur IoT, DoM dan Css Aturan Mamdani dapat dirumuskan sebagi berikut: Berdasarkan tabel 2, ada 9 aturan maka sebagai ilustrasi diambil aturan pertama yaitu jika IoT = Kecil (K) dan DoM = Kecil (K) maka Css = Kecil (K) Dari aturan ini maka untuk menentukan nilai kebenaran implikasi tersebut, aturan Mamdani memberikan rumus Dengan memakai operator min untuk evaluasi premis dan untuk implikasinya memakai aturan Mamdani yang menurut Wang [5] merupakan aturan yang paling banyak dipakai maka kesembilan aturan di atas dapat juga divisualisasi memakai Matlab yang hasilnya berupa grafik permukaan 3 dimensi seperti dalam gambar 4. Selain aturan Mamdani, ada banyak aturan inferensi lain seperti Dienes-Rescher, Lukasiewics, Zadeh dan Godel. µ Aturan1 ( x, y ) = min{min(µ IoT ( x), µ DoM ( x)), µ Css ( y )} 114 (5) 1 INTEGRAL, Vol. 9 No. 3, November 2004 Gambar 5 Visualisasi 9 aturan inferensi kabur Mamdani Andaikan dipakai input citra Gambar 6. Citra input Dan diuji kemiripannya dengan 2 kelas huruf T dan I yang masing-masing mempunyai kelas sbb: Gambar 7. Kelas huruf T Gambar 8. Kelas huruf I 115 INTEGRAL, Vol. 9 No. 3, November 2004 Untuk pembandingan dengan huruf T, diperoleh Tuple 1 2 3 Iot DoM 2 1/3 0 3 1 2 1/3 2/3 Total skor kemiripan Css 0,158 0,848 0,737 1,748 Tabel 3. Hasil perhitungan memakai Mamdani berdasarkan citra input gambar 6 dan memakai kelas huruf T. Untuk pembandingan dengan huruf I, diperoleh Tuple 1 2 3 Iot DoM 1 2/3 0 3 1 2 1/3 2/3 Total skor kemiripan Css 0,151 0,848 0,737 1,741 Tabel 4. Hasil perhitungan memakai Mamdani berdasarkan citra input gambar 6 dan memakai kelas huruf I. Intelligent Data Engineering and Automated Learning - IDEAL 2002: Third International Conference, Manchester, UK, August 12-14,2002. Dengan demikian disimpulkan bahwa citra input lebih mirip ke huruf T Ketimbang ke huruf I 5. Kesimpulan Dari uraian di atas nampak bahwa perluasan metode tupel-N menggunakan logika kabur cukup sederhana dan meskipun perluasan ini membutuhkan komputasi yang kompleks namun dengan bantuan Matlab Fuzzy Logic Toolbox masalah komputasi dapat diatasi dengan mudah. Lebih daripada itu, Matlab Fuzzy Logic Toolbox memungkinkan dilakukannya simulasi baik untuk penentuan bentuk fungsi keanggotaan himpunan kabur maupun aturan inferensi yang dipakai. [2] Singh Sameer and Adnan Amin, “Fuzzy Recognition of Chinese Characters”, Proc. Irish Machine Vision and Image Processing Conference (IMVIP), Dublin, (8-9 September, 1999) [3] Sri Kusumadewi, “Analisis Desain Sistem Fuzzy Menggunakan Tool Box Matlab”, Graha Ilmu, Yogyakarta, 2002 [4] Ravi Balasubramanlan and Marcelo H Ang Jr., “Fuzzy Logic Based Character Recognizer”, Proc. Philippine Computer Science Conggres (PCSC), 2000 [5] Li-Xin Wang, “A course in Fuzzy Systems and Control”, Prentice-Hall International Inc., 1997 6. Daftar Pustaka [1] Adnan Amin, Sameer Singh and Sum K.C, “Chinese Character Recognition - Comparison of Classification Methodologies”, Proc. 116