perluasan algoritma pengenal huruf

advertisement
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
Download