Algoritma Template Matching Pada
OCR (Optical Character Recognition)
Erwin Dwika Putra1
1Dosen Teknik Informatika Universitas Muhammadiyah Bengkulu
E-Mail:
[email protected]
Pendahuluan
Latar Belakang
Metode yang sederhana dan banyak digunakan untuk mengenali pola dapat menggunakan algoritma template matching [2]. Dengan mengevaluasi pola citra yang akan dibandingkan dengan pola citra pada basis data algoritma ini bekerja. Pembanding yang tidak terlalu sama pada basis data seperti bentuk, ukuran, dan orientasi merupakan kekurangan dari algoritma template matching [3].
Pengaplikasian algoritma template matching sudah sering kali digunakan dalam berbagai hal, seperti pada pengaplikasian pengenalan karakter pada plat nomor kendaraan, pengenalan huruf-huruf aksara yang terdapat pada daun yang meruapakan barang-barang bersejarah [1]. Semua pengaplikasian tersebut input yang digunakan adalah berupa gambar digital yang mengandung tulisan dan karakter yang mempunyai sebuah makna, yang saat ini disebut dengan Optical Character Recognition (OCR) [2].
OCR sering kali digunakan untuk menterjemahkan karakter yang terdapat pada citra digital menjadi sebuah bentuk format teks [2]. Algoritma template matching sering kali digunakan untuk penerapan sederhana pada OCR. Namun, tingkat pengenalan karakter menggunakan algoritma template matching akurasi nya masih sangat kecil sekali [3]. Hal ini dikarenakan terbatasnya basis data yang menyerupai atau sama dengan template yang terdapar pada citra digital.
Untuk mendapatkan hasil dari algoritma template matching penelitian ini bermaksud untuk menerapkan algoritma template matching dalam membaca karakter yang terdapat pada citra digital.
Landasan Teori
Citra Digital
Menurut Gonzales and Woods [3] Citra digital didefinisikan sebagai fungsi f(x,y) dua dimensi, dimana x dan y adalah koordinat spasial dan f(x,y) adalah disebut dengan intensitas atau tingkat keabuan citra pada koordinat x dan y. Jika x, y, dan nilai f terbatas dalam diskrit, maka disebut dengan citra digital. Citra digital dibentuk dari sejumlah elemen terbatas, yang masing-masing elemen tersebut memiliki nilai dan koordinat tertentu. Pixel adalah elemen citra yang memiliki nilai yang menunjukkan intensitas warna.
Citra digital dapat dibagi menjadi dua jenis. Jenis pertama adalah citra digital yang dibentuk oleh kumpulan pixel dalam array dua dimensi. Citra jenis ini disebut citra bitmap (bitmap image) atau citra raster (raster image). Jenis citra yang kedua adalah citra yang dibentuk oleh fungsi-fungsi geometri dan matematika. Jenis citra ini disebut grafik vektor (vector graphics).
Gambar 1 Citra Digital
Optical Character Recognition (OCR)
Menutrut Putra, Darma [2] Optical character recognition (OCR) adalah sebuah sistem komputer yang dapat membaca huruf, baik yang berasal dari sebuah pencetak (printer atau mesin ketik) maupun yang berasal dari tulisan tangan.
OCR adalah aplikasi yang menerjemahkan gambar karakter (image character) menjadi bentuk teks dengan cara menyesuaikan pola karakter per baris dengan pola yang telah tersimpan dalam database aplikasi.
Hasil dari proses OCR adalah berupa teks sesuai dengan gambar output scanner dimana tingkat keakuratan penerjemahan karakter tergantung dari tingkat kejelasan gambar dan metode yang digunakan[2]. Secara umum blok diagram kerja OCR dapat dilihat pada gambar.
Gambar 2 Struktur Optical Character Recognition (OCR)
Data Capture
Data capture merupakan proses konversi suatu dokumen (hardcopy) menjadi suatu file gambar digital.
Preprocessing
Preprocessing merupakan suatu proses untuk menghilangkan bagian-bagian yang tidak diperlukan pada gambar input untuk proses selanjutnya.
Segmentasi
Segmentasi adalah proses memisahkan area pengamatan (region) pada tiap karakter yang akan dideteksi.
Normalisasi
Normalisasi adalah proses merubah dimensi region tiap karakter. Dalam OCR algoritma yang digunakan pada proses ini adalah algoritma scaling.
Pengenalan
Pengenalan merupakan proses untuk mengenali karakter yang diamati dengan cara membandingkan ciri-ciri karakter yang diperoleh dengan ciri-ciri karakter yang ada pada database.
Postprocessing
Pada umumnya proses yang dilakukan pada tahap ini adalah proses koreksi ejaan sesuai dengan bahasa yang digunakan.
Template Matching
Pada dasarnya template matching adalah proses yang sederhana. Suatu citra masukan yang mengandung template tertentu dibandingkan dengan template pada basis data. Template ditempatkan pada pusat bagian citra yang akan dibandingkan dan dihitung seberapa banyak titik yang paling sesuai dengan template[2]. Langkah ini diulangi terhadap keseluruhan citra masukan yang akan dibandingkan. Nilai kesesuaian titik yang paling besar antara citra masukan dan citra template menandakan bahwa template tersebut merupakan citra template yang paling sesuai dengan citra masukan.
Gambar 3 Ilustrasi Template Matching
Gambar 3 bagian kiri merupakan citra yang mengandung objek yang sama dengan objek pada template yang ada di sebelah kanan. Template diposisikan pada citra yang akan dibandingkan dan dihitung derajat kesesuaian pola pada citra masukan dengan pola pada citra template.
Tingkat kesesuaian antara citra masukan dan citra template bisa dihitung berdasarkan nilai error terkecil dengan menggunakan persamaan.
........................................... (1)
I adalah pola pixel citra masukan yang akan dibandingkan. T adala pola pixel citra template. Template dengan nilai eror paling kecil adalah template yang paling sesuai dengan citra masukan yang akan dibandingkan.
Ukuran objek yang beragam bisa diatasi dengan menggunakan template berbagai ukuran. Namun hal ini membutuhkan tambahan ruang penyimpanan. Penambahan template dengan berbagai ukuran akan membutuhkan komputasi yang besar [2]. Jika suatu template berukuran persegi dengan ukuran m x m dan sesuai dengan citra yang berukuran N x N, dan dimisalkan pixel m2 sesuai dengan semua titik citra, maka komputasi yang harus dilakukan adalah O(N2m2) [3].
Komputasi tersebut harus dilakukan dengan template yang tidak beragam. Jika parameter template bertambah, seperti ukuran template yang beragam, maka komputasi yang dilakukan juga akan bertambah[2]. Hal ini yang menyebabkan metode template matching menjadi lamban.
Analisis dan Perancangan
Analisis Sistem
Dalam pembuatan sistem yang mutlak harus dilakukan analisis sistem yang akan dibangun, analisis yang dilakukan untuk membangun aplikasi algoritma template matching pada OCR dijelaskan pada subbab-subbab berikut ini:
Analisis Masalah
Masalah yang timbul dalam OCR adalah tingkat akurasi pengenalan terhadap citra karakter yang akan dikenali, kompleksitas, dan waktu yang dibutuhkan algoritma Template Matching.
Analisis Algoritma
Tabel 1 menjelaskan lgoritma template matching berdasarkan proses yang dibutuhkan, kompleksitas, hasil pengenalan, pengembangan, dan waktu yang dibutuhkan algoritma untuk mengenali dokumen uji.
Tabel 1 Pengukuran Algoritma Template Matching
No
Pengukuran
Template Matching
1
Proses yang
dibutuhkan
Algoritma template matching membutuhkan
tiga proses utama dengan penjelasan sebagai berikut:
1. Pemetaan intensitas pixel
2. Perhitungan nilai eror minimum
3. Pencarian nilai eror minimum
2
Kompleksitas
Algoritma template matching memiliki kompleksitas 2n+1 dengan penjelasan sebagai berikut:
Pemetaan intensitas pixel hanya dilakukan sekali yaitu pada saat citra akan dikenali.
Perhitungan nilai eror minimum dilakukan pada seluruh template.
Pencarian nliai eror yang paling kecil dilakukan dengan membandingkan nilai error masing-masing template.
Jika pemetaan intensitas pixel dihitung satu kali, perhitungan dan pencarian nilai eror minimum dihitung n-kali, maka kompleksitas algoritma template matching adalah 2n+1.
3
Pengembangan
Algoritma template matching sulit dikembangkan, karena algoritma template matching bekerja dengan menyesuaikan intensitas pixel.
4
Hasil
Pengenalan
Algoritma template matching masih mempunyai tingkat pengenalan yang buruk
5
Waktu
Masih membutuhkan waktu yang cukup lebih lama dalam mengenali setiap pencocokan gambar digital dengan database yang ada.
Berdasarkan proses yang dibutuhkan algoritma template matching hanya membutuhkan proses pemetaan intensitas pixel citra karakter yang akan dikenali, perhitungan eror, dan pencarian nilai eror minimum.
Operasi dasar yang dilakukan pada algoritma template matching adalah sebagai berikut:
Pemetaan intensitas pixel. Pemetaan ini dilakukan satu kali saat citra karakter akan dikenali.
Perhitungan nliai eror minimum. Perhitungan yang dilakukan sebanyak citra template dinotasikan dengan n.
Pencarian nilai eror minimum dilakukan pada seluruh citra template. Jumlah pencarian yang dilakukan terhadap seluruh citra template dinotasikan dengan n.
Tabel 2 adalah perhitungan jumlah operasi dasar yang dilakukan pada algoritma template matching.
Tabel 2 Operasi Dasar Template Matching
Berdasarkan hasil perhitungan jumlah operasi dasar algoritma template matching pada tabel 3, maka kompleksitas algoritma template matching adalah 2n+1.
Pengujian dan Hasil
Hasil Uji Alpha
Berdasarkan hasil pengujian Alpha yang telah dilakukan dapat disimpulkan bahwa aplikasi sudah berjalan cukup maksimal, tetapi tidak menutup kemungkinan dapat terjadi kesalahan suatu saat, pada saat aplikasi digunakan, sehingga membutuhkan proses maintenance untuk lebih mengetahui kekurangan dari aplikasi.
Hasil Pengenalan Algoritma Template Matching
Masing-masing gambar akan diujikan pada algoritma, algoritma diuji berdasarkan persentasi hasil pengenalan dan waktu yang dibutuhkan dalam mengenali citra karakter. Algoritma tersebut diuji dengan dokumen citra karakter digital berwarna hitam, citra karakter digital dengan kombinasi warna, citra karakter berwarna hitam hasil scanning, citra karkater tulisan tangan berwarna hitam.
Pengujian pertama dilakukan terhadap citra karakter digital dengan font Arial, Verdana, Georgia, dan Times New Roman. Masing-masing font yang diujikan memiliki ukuran 10, 12, dan 14 pixel. Tabel 3 adalah persentase hasil pengenalan dan waktu yang dibutuhkan masing-masing algoritma terhadap masing-masing dokumen uji.
Tabel 3 Hasil Pengukuran Algoritma Template Matching
No
Nama File
Total Karakter yang terdeteksi
Akurasi
(%)
Waktu
1
Analisis Dokumen
arial-10-12-14.bmp
90
38,89
2 Menit 15 Detik
2
Analisis Dokumen
verdana -10-12-14.bmp
90
42,22
2 Menit 11 Detik
3
Analisis Dokumen
georgia -10-12-
14.bmp
57
26,65
1 Menit 32 Detik
4
Analisis Dokumen
TNR-10-12-4.bmp
84
28,57
2 Menit
5
Kisah Komedi - arial-10-12-14.bmp
279
19,35
6 Menit 41 Detik
6
Kisah Komedi - Verdana -10-12-14.bmp
279
21,15
8 Menit 41 Detik
7
Kisah Komedi - Georgia -10-12-14.bmp
272
20,07
6 Menit 31 Detik
8
Kisah Komedi - TNR-10-12-14.bmp
206
12,14
5 Menit 1 Detik
Gambar 4 adalah grafik yang menunjukan waktu yang dibutuhkan masing-masing algoritma dalam mengenali karakter pada masing-masing dokumen uji. Sumbu y adalah satuan waktu dalam detik.
Gambar 4 Grafik Pengukuran Algoritma Template Matching
Kesimpulan dan Saran
Kesimpulan
Berdasarkan hasil pengujian yang dilakukan terdapat banyak kelemahan dan juga kekurangan pada algoritma template matching dikarenakan algoritma ini bekerja dengan menggunakan intensitas pixel dari sebuah gambar digital, dan juga mempunyai kekurangan dari segi waktu dalam pengenalan tiap karakter cukup lama sampai dengan ± 2 menit dari data yang diujikan.
Saran
Berikut ini beberapa saran yang diajukan dalam menggunakan atau mengembangkan algoritma ini:
Gunakan citra masukan dengan karakter-karakter yang tidak saling menyambung.
Scanning citra karakter sebaiknya menggunakan resolusi 200 ppi.
Gunakan citra karakter dengan font berwarna hitam dan latar belakang berwarna putih.
Untuk pengembangan, gunakan metode segmentasi yang mampu memisahkan karakter-karakter yang saling menyambung.
Untuk pengembangan, sebaiknya ditambahkan fitur jumlah stroke karakter yang banyak digunakan pada pengenalan tulisan tangan.
Penutup
Peneliti sangat menyadari dalam penelitian ini masih terdapat banyak kekurangan, oleh karena itu kritik dan sarannya yang bersifat membangun sangat peneliti harapkan guna kesempurnaan karya-karya ilmiah yang akan datang. Semoga penelitian ini dapat bermanfaat bagi kita semua. Amiin.
Pernyataan originalitas
"Saya menyatakan dan bertanggung jawab dengan sebenarnya bahwa Artikel ini adalah hasil karya saya sendiri kecuali cuplikan dan ringkasan yang masing-masing telah saya jelaskan sumbernya"
[Erwin Dwika Putra – NIDN: 0211018702]
Daftar Pustaka
[1] Y. Zhang and C. Zhang, "A new algorithm for character segmentation of license plate," in Intelligent Vehicles Symposium, 2003. Proceedings. IEEE, 2003, pp. 106–109.
[2] R. C. Gonzalez. and R. E. Woods., Digital Image Processing Using MATLAB third edition, 3rd ed. 2007.
[3] D. Putra, Pengolahan Citra Digital, 1st ed. Yugyakarta: Andi Yogyakarta, 2010.
[4] W. M. K. Sutoyo S.Si M.Kom, T, Mulyanto S.Si M.Kom, Edy, Suhartono, Dr Vincent, Nurhayati MT, Oky Dwi, Teori Pengolahan Citra Digital. Andi Yogyakarta dan Udinus Semarang, 2009, p. 113.