PENGENALAN POLA KARAKTER TULISAN TANGAN MENGGUNAKAN METODE
DISCRETE COSINE TRANSFORM (DCT) DAN LEARNING VECTOR QUANTIZATION (LVQ)
*Ummu Zazilah, **Cucun Very Angkoso
Program Studi Teknik Informatika, Fakultas Teknik
Universitas Trunojoyo
E-mail: *ummujazilah@gmail.com, **
cucunvery@if.trunojoyo.ac.id
Abstrak
Pengenalan tulisan tangan merupakan salah satu cabang dari
pengenalan pola. Penelitian ini membahas sistem pengenalan tulisan tangan
offline yang menggunakan pencirian lokal dari karakter-karakter tulisan. Salah
satu faktor penentu dalam pengenalan tulisan tangan adalah model atau bentuk
tulisan tangan dari penulis yang mampu dikenali. Citra masukan dalam penelitian
ini berasal dari 10 responden, tiap responden menuliskan 26 karakter huruf abjad
kapital. Dari 10 pola tulisan yang ada akan diuji tingkat kebenarannya dengan
data pelatihan yang sebelumnya telah diproses dan disimpan dalam database. Pada
penelitian ini proses ekstraksi ciri menggunakan Discrete Cosine Transform
untuk menentukan karakteristik dari huruf, setelah itu diklasifikasi
menggunakan metode Learning Vector Quantizatian untuk mengukur kemiripan antara
data pelatihan dan data uji coba. Hasil penelitian dengan menggunakan ekstraksi
ciri DCT dan klasifikasi LVQ diperoleh akurasi pengenalan dengan prosentase
keberhasilan tertinggi 86%.
Kata kunci: DCT, LVQ, error minimum, Pengenalan tulisan
tangan.
Abstract
Handwriting recognition is one topics in the domain of
pattern recognition research. This study discusses the offline handwriting
recognition system using local characterization of handwritten characters. We
are using 10 respondents which each respondents is writing the entire
26-character alphabet but only its capital letters. Feature extraction are
being used in this study is Discrete Cosine Transform. The Learning Vector
Quantization then used to measure the similarity of the objects. The results of
DCT feature extraction with LVQ classification obtained the accuracy percentage
of success 86%.
Key words: DCT, LVQ, minimum error, Handwriting recognition
PENDAHULUAN
Pengenalan karakter tulisan tangan offline otomatis adalah
kemampuan komputer untuk membedakan karakter dan kata-kata, dapat dibagi
menjadi pengenalan karakter cetak dan tulisan tangan. Karakter yang dicetak
memiliki satu gaya dan ukuran untuk font tertentu. Namun, karakter tulisan
tangan memiliki gaya dan ukuran yang bervariasi baik bagi penulis yang sama
atau penulis yang berbeda [1]. Hal ini menunjukkan betapa dibutuhkan sistem
yang mampu mengenali berbagai gaya penulisan dari masing – masing orang.
Dalam sebuah sistem pengenalan, pemilihan metode ekstraksi
ciri yang dapat
menjadi langkah penting untuk mencapai akurasi pengenalan
yang tinggi. Sebagai contoh, Discrete Cosine Transform (DCT) dapat digunakan
untuk mengekstraksi ciri dari kata – kata tulisan tangan. Disajikan suatu
teknik untuk pengakuan kata – kata tulisan tangan dimana DCT digunakan untuk
mengekstraksi ciri dari kata itu. Ciri – ciri ini kemudian menggunakan jaringan
syaraf tiruan dalam tahap klasifikasi [2].
Pada penelitian sebelumnya, pengenalan karakter tulisan
tangan Arab, membandingkan efektivitas metode DCT dan DWT untuk menangkap ciri
diskriminatif karakter tulisan tangan Arab. Koefisien dari kedua metode telah
digunakan untuk klasifikasi didasarkan
pada implementasi jaringan syaraf tiruan. Hasilnya telah
dianalisis dan telah menunjukkan bahwa ekstraksi ciri berbasis DCT menghasilkan
pengenalan yang tinggi yaitu 91.87% [1].
Tujuan dari sistem ini mampu melakukan pengenalan karakter
pada kata tulisan tangan menggunakan ekstraksi ciri Discrete Cosine Transform
(DCT) dan Learning Vector Quantization (LVQ) yang diharapkan dapat melakukan
pengenalan pola tulisan tangan dengan tingkat akurasi pengenalan yang tinggi.
Batasan masalah dalam sistem ini adalah Sistem yang digunakan adalah offline.
Kedua, data masukan dalam sistem ini adalah file gambar berekstensi .bmp
tulisan tangan. Ketiga, sistem hanya dirancang untuk mengenali huruf abjad
kapital tulisan tangan dan batasan masalah yang keempat pada sistem adalah
Citra yang digunakan adalah hitam dan putih, dan citra diam (still image).
Discrete Cosine Transform (DCT)
Discrete Cosine Transform (DCT) adalah metode sebuah
transformasi citra yang mengubah fungsi dari domain spasial ke domain
frekwensi. [3]
1D – Discrete Cosine Transform (DCT – 1 D) Definisi secara
umum 1D-DCT dapat dituliskan dalam persamaan (1):
N − 1
C(u) =α(u) I f(x) cos ð(2x+1)ull (1)
2 N
x=0
Dimana untuk. u = 1, 2, 3, ,N−1.
Untuk invers DCT – 1D dapat ditulis dalam persaman (2) :
N −1
f(x) = I á( ) ( ) cos
u C u
x=0
(2)
Dimana untuk u= 1, 2, 3, ,N−1
Baik untuk persamaan 1 dan 2, á(u) dapat dituliskan dalam
bentuk persamaan (3) :
pada persamaan (1) diabaikan maka
persamaan (1) akan menjadi persamaan (4) :
N−1 ð(2x+ 1)u 1
C(u) = cos (4)
2N y = 0
Discrete Cosine Transform 2D (DCT – 2D) DCT – 2D merupakan
pengembangan dari
DCT – 1D, maka transformasi diskrit dapat dinyatakan dalam
bentuk persamaan (5) :
N − 1 M − 1
2 ð(2 1)
x u
+ π (2 1)
y v
+
g x y u v
( , , , ) = α α
( ) ( )
u v f x y
( , ) cos cos
MN . 2 N 2M
J
x = 0 y = 0
(5)
Dimana u = 0, 1, 2, ,N−1
dan
v= 0, 1, 2, ,N−1.
Invers DCT 2
Dimensi dapat dituliskan dalam bentuk persamaan (6).
2N−1 M−1
f x y
( , )= α(u)α(v) C u v
( , )cos
M.N x 0
= y0
=
(6)
Dimana :
M= Ukuran dimensi dari baris sebuah
citra
N= Ukuran dimensi dari kolom sebuah
citra
x= nilai pixel lebar citra
y= nilai pixel tinggi citra
u= nilai koefisien lebar citra
v= nilai koefisien tinggi citra
Proses pengambilan nilai koefisien DCT secara zigzag dapat
dilihat pada gambar 1.
Gambar 1. Proses pengambilan nilai
koefisien DCT dengan zigzag
Seperti yang telah dijelaskan diatas bahwa DCT merupakan
proses perubahan signal/citra dari ruang/domain spasial ke ruang/domain
frekuensi, sehingga transformasi ini menghasilkan sebuah matriks frekuensi dari
citra yang dimasukkan. Pada Gambar (2) Frekuensi rendah yang dihasilkan umumnya
terkumpul di sudut kiri atas (hal ini di lambangkan dengan nilai DCT yang
tinggi) sedangkan semakin ke bawah frekuensi yang dihasilkan semakin tinggi
dilambangkan dengan nilai DCT yang semakin rendah [1].
Learning Vector Quantization (LVQ)
Learning Vector Quantization (LVQ) adalah suatu metode untuk
melakukan pembelajaran pada lapisan kompetitif yang terawasi. Suatu lapisan
kompetitif akan secara otomatis belajar untuk mengklasifikasikan vector –
vector input. Kelas – kelas yang didapatkan sebagai hasil dari lapisan
kompetitif ini hanya tergantung pada jarak antara vector – vector input, jika
dua vector input mendekati sama maka lapisan kompetitif akan meletakkan kedua
vector tersebut ke dalam vector yang sama [4].
Secara garis besar algoritma Learning Vector Quantization
(LVQ) sebagai berikut [4]:
1. Inisialisasi
bobot (W), maksimum epoh (max epoh), error minimum yang diharapkan (eps),
learning rate (α). Bobot diinisialisasi secara random sedangkan max epoh dan
learning rate digunakan untuk menentukan batas ambang komputasi.
2. Input : x
(m,n)
Target : T(1,n)
Input adalah matik input dari citra tulisan sedangkan target
adalah kelas bobot training.
3. Melakukan proses sebagai
berikut:
Selama (epoh, max epoh) atau (α>eps)
a. Epoh = epoh+1
b. Kerjakan untuk i=1 sampai n
i. Tentukan
j sedemikian rupa sehingga ||11 x – Wj || minimum (sebut sebagai Cj )
ii. Perbaiki
Wj dengan ketentuan Jika T = Cj maka :
W(baru) =W(lama) + α(x – W(lama)) jjj
Jika T ≠ Cj maka :
W(baru) =W(lama) - α(x – W(lama) ) jjj
c. Kurangi nilai α RANCANGAN SISTEM
Pada kedua proses tersebut terdapat awal proses yang sama
yaitu adalah pemrosesan awal citra dan ekstraksi ciri. Hasil akhir dari metode
LVQ adalah bobot pelatihan yang disimpan ke dalam database/file. Hasil akhir
dari pengenalan citra adalah citra karakter tulisan tangan yang berhasil
dikenali. Berikut perincian proses pelatihan pada gambar 2 :
Gambar 2. Desain sistem
1. Citra
masukan berasal dari file berekstensi *.bmp, satu citra training terdiri dari
satu kata (tulisan tangan huruf abjad dari A-Z)
2. Citra
masukan diproses awal yaitu proses konversi true color menjadi grayscale,
kemudian konversi grayscale menjadi biner, dan cropping untuk memecah kata
menjadi per karakter (per huruf) serta dinormalisasi ukuran menjadi 32 x 32.
3. Citra
hasil normalisasi yang berupa citra biner menjadi masukan dalam proses
ekstraksi ciri dengan menggunakan metode DCT untuk menghasilkan koefisien.
4. Citra
hasil ekstraksi ciri tersebut dilatih dengan LVQ untuk menghasilkan bobot yang
digunakan untuk proses pengenalan citra.
5. Hasil
bobot LVQ disimpan dalam media penyimpanan (database atau file).
Untuk proses pengujian pada gambar 2:
1. Citra
masukan berasal dari file berekstensi *.bmp, satu citra training terdiri dari
satu kata (tulisan tangan)
2. Citra
masukan diproses awal yaitu proses konversi true color menjadi grayscale,
kemudian konversi grayscale menjadi biner, dan cropping untuk memecah kata
menjadi per karakter (per huruf) serta di normalisasi ukuran menjadikan 32 x
32.
3. Citra
hasil normalisasi yang berupa citra biner menjadi masukan dalam proses
ekstraksi ciri dengan menggunakan metode DCT untuk menghasilkan koefisien.
4. Dilakukan
proses pengenalan citra karakter tulisan tangan menggunakan metode Euclidean
Distance dengan bobot LVQ yang telah ada sebelumnya.
Hasil dari pengenalan citra adalah sebuah output mengenai
kata tulisan tangan.
HASIL DAN PEMBAHASAN
Pada program ini diujikan kepada 10 responden. Tiap
responden menuliskan 1 pola tulisan tangan sebanyak 26 huruf karakter huruf
abjad. Dalam tulisan tangan memiliki perbedaan pada setiap kali penulisannya.
Dari 10 pola tulisan yang ada akan diuji tingkat kebenarannya dengan data
pelatihan yang sebelumnya telah diproses dan disimpan dalam database. Citra
pengenalan tulisan tangan ini membutuhkan citra tulisan tangan huruf abjad berukuran
32x32. Jumlah data masukannya sebanyak 260 data. Dari data yang diperoleh dari
10 responden akan menjadi data training dan data testing dengan keterangan
sebagai berikut :
Jumlah data skenario
1 skenario 2
Data
set imae = ata set image1 (26 x 5) = 130
Data training image Data
set image1 = Data testing
Data set image2
(26 x 5) = 130
image Data
set image2 = Data testing Data
set image2 = Data training
Hasil
kinerja
sistem pada
skenario pertama Hasil
kinerja
sistem pada
skenario kedua
Gambar 3. Desain skenario uji coba
Dalam penelitian ini telah dilakukan uji coba kinerja sistem
pada skenario 1 dan skenario 2 dengan menggunakan validasi 130 data training
dan 130 data testing. Dalam uji coba ini menggunakan nilai 35 koefisien DCT dan
perbedaan nilai max epoh, eps , alpha dan rumus update alpha.
Hasil percobaan dapat dilihat pada tabel dibawah ini :
Tabel 1. Hasil uji coba pada skenario 1 dan skenario 2
dengan perbedaan nilai max epoh
Nilai Tingkat
akurasi
max Skenario 1 Skenario 2
epoh
10000
70 % 80.76923 %
5000 70 % 80.76923 %
1000 70 % 80
%
Tabel 2. Hasil uji coba pada skenario 1 dan skenario 2
dengan perbedaan nilai error minimum (eps)
Nilai Tingkat
akurasi
eps Skenario 1 Skenario 2
0.001
70 % 80.76923 %
0.01 70 % 80 %
0.1 70 % 80 %
Tabel 3 Hasil uji coba pada skenario 1 dan skenario 2 dengan
perbedaan nilai alpha
Nilai Tingkat
akurasi
alpha Skenario 1 Skenario 2
0.05 70 % 80.76923 %
0.01 67.69231 % 81.53846%
0.1 70.76923 % 80.76923 %
Tabel 4. Hasil uji coba pada skenario 1 dan
skenario 2 dengan perbedaan rumus update
alpha
Nilai alpha Tingkat
akurasi
Skenario 1 Skenario
2
Alpha=0.1*alpha 70 % 80.76923
%
Alpha=0.5*alpha 73.84615 % 86.15385%
Pada Tabel 1 menunjukkan tabel hasil pengujian skenario 1
dan skenario 2 dengan dengan menggunakan validasi 130 data training dan 130
data testing dengan nilai error minimum (eps) = 0.001, learning rate (alpha) =
0.05 dan nilai max epoh yang berbeda pada setiap uji coba. Pada skenario 1
menghasilkan nilai akurasi yang sama pada setiap uji coba sebesar 70%,
sedangkan pada skenario 2 menghasilkan nilai akurasi yang berbeda pada setiap
uji coba, dimana nilai akurasi tertinggi terletak pada uji coba dengan nilai
max epoh = 10000 dengan nilai akurasi 80.77%, hal ini dapat disimpulkan bahwa
semakin besar nilai max epoh semakin bagus nilai akurasi keberhasilannya.
Pada Tabel 2 menunjukkan hasil uji coba kinerja sistem pada
skenario 1 dan skenario 2 dengan menggunakan validasi 130 data training dan 130
data testing dengan nilai max epoh = 10000, alpha = 0.05 dan nilai error
minimum (eps) yang berbeda pada setiap uji coba. Pada skenario 1 menghasilkan
nilai akurasi yang sama pada setiap uji coba sebesar 70%, sedangkan pada
skenario 2 menghasilkan nilai akurasi yang berbeda pada setiap uji coba, dimana
nilai akurasi tertinggi terletak pada uji coba dengan nilai eps = 0.001 dengan
nilai akurasi 80.77%, hal ini dapat disimpulkan
bahwa semakin kecil nilai eps semakin bagus nilai akurasi
keberhasilannya
Pada tabel 3 menunjukkan hasil uji coba kinerja sistem pada
skenario 1 dan skenario 2 dengan menggunakan validasi 130 data training dan 130
data testing dengan nilai max epoh = 10000, eps = 0.001 dan nilai alpha yang
berbeda pada setiap uji coba. Pada skenario 1 menghasilkan nilai akurasi yang
berbeda pada setiap uji coba, dimana nilai akurasi tertinggi terletak pada uji
coba dengan nilai alpha = 0.1dengan nilai akurasi 70.77%, sedangkan pada
skenario 2 menghasilkan nilai akurasi yang berbeda pada setiap uji coba, dimana
nilai akurasi tertinggi terletak pada uji coba dengan nilai alpha = 0.01 dengan
nilai akurasi 81.54%, hal ini dapat disimpulkan bahwa nilai alpha = 0.1 tepat
untuk uji coba pada skenario 1 dan dengan nilai alpha = 0.01 tepat untuk uji
coba pada skenario 2.
Pada tabel 4 menunjukkan hasil uji coba kinerja sistem pada
skenario 1 dan skenario 2 dengan menggunakan validasi 130 data training dan 130
data testing dengan nilai max epoh = 10000, eps = 0.001, alpha = 0.05 dan rumus
update alpha yang berbeda pada setiap uji coba. Pada skenario 1 menghasilkan
nilai akurasi yang berbeda pada setiap uji coba, dimana nilai akurasi tertinggi
terletak pada uji coba dengan rumus update alpha = 0.5*alpha dengan nilai
akurasi 73.84%, sedangkan pada skenario 2 menghasilkan nilai akurasi yang
berbeda pada setiap uji coba, dimana nilai akurasi tertinggi terletak pada uji
coba dengan rumus update alpha = 0.5*alpha dengan nilai akurasi 86.15%, hal ini
dapat disimpulkan bahwa rumus update alpha = 0.5*alpha tepat untuk uji coba
pada skenario 1dan skenario 2.
KESIMPULAN
Setelah menyelesaikan perancangan dan pembuatan sistem pada
aplikasi pengenalan pola karakter pada kata tulisan tangan menggunakan metode
Discrete Cosine Transform dan Learning Vector Quantization (LVQ) serta
melakukan uji coba dan evaluasi, maka dapat ditarik kesimpulan bahwa dapat
dilihat dari hasil persentase pengujian yang memiliki tingkat akurasi yang
berbeda, dimana dalam skenario pertama mempunyai nilai akurasi tinggi dengan
nilai max epoh = 10000, error minimum (eps) = 0.001 , learning rate (alpha) =
0.05 dan rumus update alpha = 0.5* alpha, menghasilkan nilai akurasi sebesar
80.7%. Sedangkan dalam skenario kedua nilai akurasi tinggi diperoleh dengan
inputan nilai max epoh = 10000, error minimum (eps) = 0.001 , learning rate
(alpha) = 0.05 dan rumus update alpha = 0.5*alpha, menghasilkan nilai akurasi
sebesar 86%.
DAFTAR PUSTAKA
[1] Lawgali.A
., Bouridane. A., Angelova. M., Ghassemlooy. Z., Handwritten Arabic Character
Recognition: Which Feature Extraction Method?. International Journal of
Advanced Science and Technology. Vol 34. 2011.
[2] Alkhateeb.
J. H., Jinchang. R., Jianmin. J., Ipson. S. S., dan El-Abed. H., Word-Based
handwritten Arabic scripts recognition using dct features and neral network
classifier. In International Multi-Conference on system, signal and devices.
1-5. 2008
[3] Purnomo,
M. H. dan Muntasa, A., Pengolahan Citra Digital dan Ekstraksi Fitur. Yogyakarta
: Graha ilmu. 2010.
[4] Kusumadewi,
S. Artificial Intelligence (Teknik dan Aplikasinya). Yogyakarta : Graha ilmu.
2003.
Tidak ada komentar:
Posting Komentar