Pengenalan karakter optisPengenalan Karakter Optik (bahasa Inggris: Optical Character Recognition, yang biasa disingkat OCR) adalah sebuah perangkat lunak yang mengubah teks dalam format berkas citra atau gambar ke dalam format teks yang bisa dibaca dan disunting oleh aplikasi komputer.[1] Berkas teks berformat citra tersebut didapatkan dengan cara memindai atau memfoto sebuah buku, manuskrip, tulisan di papan pengumuman, ataupun materi kuliah di papan tulis dsb. Sedangkan alat yang diunakan untuk memindai adalah pemindai (scanner dalam bahasa Inggrisnya) atau kamera baik kamera DSLR ataupun kamera di ponsel pintar. Sebagai perangkat lunak yang kompleks, OCR diterapkan di berbagai bidang seperti untuk membaca data secara otomatis dan langsung memasukkannya ke dalam basis data -- contohnya seperti dalam pemindaian passport, nota transfer bank, kertas berharga – untuk pengenalan pelat kendaraan bermotor dari video atau gambar yang tertangkap kamera, dan yang paling marak adalah untuk preservasi konten buku-buku sumber referensi utama dan manuskrip bersejarah. Dalam beberapa kasus, OCR berkontribusi sangat besar dalam proses pembangunan perpustakaan digital. Sejarah Singkat OCRSejarah OCR bisa dirunut sejak tahun 1809 saat peranti membaca untuk aplikasi orang buta dan pembacaan telegraf dikembangkan.[2] Kemudian berlanjut pada penemuan mesin yang mampu mengubah karakter tercetak ke dalam kode standard telegraf buatan Emanuel Goldberg pada tahun 1914.[3] Mesin ciaptaan Goldberg ini diklaim sebagai asal muasal teknologi OCR. Di waktu yang bersamaan, Edmund Fourier mengembangkan Optophone yang merupakan mesin pemindai jinjing yang mampu menghasilkan bunyi sesuai dengan karakter khusus yang tercetak di dokumen.[2] Kembali ke penemuan Goldberg, di akhir tahun 1920an tepatnya pada tahun 1927, ciptaannya yang dinamai Mesin statistik (statistical machine)[4] merupakan sistem pengenalan kode optik yang digunakan untuk pencarian arsip mikrofilm. Melompat ke dekade 1990an, OCR banyak dimanfaatkan oleh perpustakaan-perpustakaan untuk mendigitalkan surat kabar bersejarah.[2] Proyek digitalisasi buku-buku bersejarah dan sumber referensi primer ini mulai menjamur memasuki abad 21 karena didukung oleh perkembangan pesat di bidang perangkat keras, perangkat lunak dan Internet. Ini memungkinkan WebOCR – sebuah perangkat lunak daring yang diluncurkan oleh Expervision[5] -- beroperasi di lingkungan komputasi Awan dan aplikasi perangkat bergerak (mobil applications). Tahapan Proses OCRSebagai aplikasi yang kompleks, OCR memiliki beberapa tahapan utama yang terdiri dari:
Tahap PraprosesTahap prapemrosesan in bertujuan untuk mendapatkan karakter tunggal dari sebuah teks terpindai dalam kondisi yang bagus dan bersih sehingga memudahkan proses pengenalannya. Menurut Bieniecki dkk,[6] prapemrosesan diawali dengan normalisasi kondisi teks dengan cara menghilangkan derau seperti noktah dan koreksi orientasi citra teks, tahap binerisasi, serta segmentasi. Tahap ini jika dilakukan dengan benar akan meningkatan rasio akurasi pengenalan Karakter. Dalam dokumen citra teks yang terpindai, derau dikelompokkan menjadi dua yakni derau yang berasal dari proses pemindaian dan derau bawaan teks asli yang dipindai.[7] Derau bawaan teks asli bisa berbentuk sebagai noktah tinta, jamur yang tumbuh di kertas karena kelembaban udara, perubahan warna kertas karena usia dokumen, lubang karena ngengat, tulisan menjadi kabur karena air atau kelembaban, serta tinta tembus.[7] Ada beberapa metode dan teknik yang bisa digunakan untuk menghilangkan derau dalam kelompok ini. Sebagai contohnya, model probabilistik seperti penutupan biner (Bahasa Inggris binary mask) untuk mengurangi intensitas piksel atau distribusi Gaussian untuk memuluskan noktah atau derau lain yang cukup tebal.[8] Selain itu, informasi tentang kepadatan piksel dalam citra keabuan yang ditunjukkan oleh grafik Histogram bisa juga digunakan untuk mengurangi derau tipe ini. Teknik yang digunakan di Mahastama dan Krisnawati[7] adalah dengan menghitung jarak 2 puncak tertinggi histogram menggunakan ukuran jarak Eucledian. Nilai ambang (Bahasa Inggris: threshold) optimal didapatkan dengan mengukur rasio jarak kaki-kaki puncak yang diproyeksikan ke sumbu x. Nilai ambang difungsikan sebagai cara untuk menghilangkan derau sekaligus menjadi ambang pemisahan piksel teks dari piksel latar-belakangnya. Derau yang ditimbulkan oleh proses pemindaian atau pemotretan bisa berupa citra teks yang miring, teks yang melengkung di tengah karena ketebalan buku, serta kerangka teks yang berbentuk trapezium. Beberapa metode yang digunakan untuk mendeteksi bentuk geometri atau perspektif citra teks[9] adalah:
Koreksi bentuk geometri dan perspektif teks dilakukan dengan metode yang sama dengan deteksinya, hanya dalam koreksi ini dicari besar sudut kemiringan atau kurva lengkung, kemudian teks akan dirotasi sesuai dengan besaran sudut yang didapatkan. Saat citra teks sudah bersih dan memilliki orientasi geometrik yang tegak lurus, maka dilakukan pemisahan antara piksel karakter (biasanya berwarna hitam) dari piksel latar belakangnya (biasanya berwarna terang). Proses ini disebut segmentasi teks. Setelah itu, dilakukan juga segmentasi baris yakni proses memotong rangkaian karakter per baris. Proses segmentasi baris ini dikenal juga sebagai segmentasi horisontal. Untuk mendapatkan tiap karakter, maka dari tiap baris segmen dilakukan pemotongan secara vertikal berdasarkan spasi kosong atau piksel dengan warna yang terang yang memisahkan satu karakter dengan karakter di sebelah kanan atau kirinya. Tahap Ekstraksi FiturTujuan dari ekstraksi fitur adalah untuk menemukan atribut pola-pola karakter yang terpenting dan berbeda dari karakter lainnya agar bisa diklasifikasikan. Peran manusia adalah menentukan dan menyeleksi fitur yang memungkinkan proses pengenalan yang efisien dan efeektif. Pertanyaannya adalah lalu apa saja yang bisa dijadikan fitur bagi himpunan aksara atau alfabet dalam sistem penulisan bahasa tertentu? Maka berikut ini adalah yang bisa digunakan sebagai fitur penentu sebuah aksara, alfabet atau abjad:[9]
Metode yang sering digunakan untuk mengekstraksi fitur sebuah karakter adalah:
Tahap ekstraksi fitur ini bisa disamakan dengan pengubahan bentuk fisik karakter (terlepas apakah karakter tersebut sebuah abjad, aksara, atau alfabet) ke dalam model matematis yang bisa membedakan antara satu karakter, contohnya ‘l’, dari karakter lainnya, contohnya, ‘i’. Hasil pemetaan sebuah bentuk fisik karakter menjadi angka-angka dalam sebuah matriks atau vektor inilah yang akhirnya disebut sebagai fitur karakter. Proses PengenalanSaat pola-pola karakter telah terpetakan ke dalam nilai vektor, maka permasalahan berikutnya adalah bagaimana mengelompokkan karakter yang memiliki nilai vektor yang sama atau hampir sama. Permasalahan ini diselesaikan dengan cara klasifikasi. Rangkaian proses klasifikasi nilai vektor inilah yang dikenal sebagai proses pengenalan karakter. Dengan demikian proses pengenalan karakter berurusan dengan dan berada ditataran representasi karakter (nilai vektor tadi). Singkatnya, proses ini menerima masukan (input) sebuah vektor dari karakter, sebagai contoh fitur karakter Secara teknis, tujuan akhir dari pengenalan ini tentunya adalah untuk memberikan label kelas pola-pola karakter yang telah direpresentasikan tadi. Perlu dicatat, bahwa tiap karakter dijadikan satu kelas jika mereka adalah karakter yang sama, sebagai contohnya semua cara penulisan karakter A dari berbagai font yang berbeda dengan ukuran yang berbeda masuk menjadi kelas karakter A. Metode yang sering digunakan untuk pengenalan karakter (baca: pencocokan fitur karakter masukan dengan fitur karakter yang tersimpan di data) adalah:
Paska-Proses PengenalanSetiap sistem OCR yang dibangun dengan algoritma tercanggihpun selalu membuat kesalahan, dalam arti tidak semua karakter yang dibaca dikonversikan ke karakter padanannya. Untuk itulah tahap paska-proses pencocokan karakter dilakukan untuk meningkatkan akurasi pengenalan karakter. Sistem paska-proses ini dikenal juga sebagai proses koreksi karena modul ini bertugas untuk mengoreksi kesalahan yang sering dilakukan di tataran kata. Teknik yang digunakan dalam paska-koreksi adalah dengan menggunakan leksikon atau kamus. Alex dkk[10] membangun leksikonya dari buku-buku proyek Gutenberg (cari link di bhs Inggris) karena banyak mengandung varian penggunaan kata serta cara penulisan huruf dari zaman awal modern sampai kini. Kemudian mereka mengunakan pendekatan statistik kemiripan kata (Word likelihood) untuk mengoreksi kata yang mengandung karakter yang salah dikenali. Untuk nama oranag dan tempat, mereka juga menambahkan koreksi nama entitas yang didasarkan dari hasil pengenalan nama entitas (Named Entity Recognition).[10] Menurut Fink dkk,[11] sistem paska-koreksi OCR yang sepenuhnya dibangun secara otomatis akan menghasilkan tingkat akurasi yang sama rendahnya karena ada kemungkinan bahwa proses koreksi tersebut akan mengenerasikan kesalahan baru. Untuk itu, mereka membangun modul paska-koreksinya semi-otomatis dengan sebuah peranti profiling yang interaktif dan adaptif terhadap kesalahan di manuskrip bersejarah. Adaptivitas di sini merujuk pada kemampuan untuk menambahkan himpunan pola-pola di data secara otomatis serta pengunaan token atau kata yang tak-terinterpretasikan di masa kini. Perangkat lunak OCR
Pranala luar
|