Optical Character Recognition (OCR)

Apa itu Optical Character Recognition (OCR)?

Optical Character Recognition (OCR) merupakan teknologi yang membuat suatu mesin dapat mengenali tulisan dari suatu gambar atau foto sehingga gambar tersebut dapat dikonversikan ke bentuk teks. OCR merupakan salah satu bidang penelitian dari Artificial Intelligence (AI). AI sendiri merupakan kecerdasan yang diimplementasikan pada mesin yang membuatnya dapat berpikir layaknya manusia pada umumnya. Perbedaan utama AI dengan Natural Intelligence (NI) adalah, AI tidak memiliki kesadaran dan emosi yang membuatnya tidak akan pernah lelah. Banyak hal yang kelihatannya sulit untuk dipikirkan menggunakan kecerdasan natural manusia dan memakan waktu yang cukup banyak, tetapi tidak terlalu sulit untuk diimplementasikan dan memakan waktu yang sangat sedikit untuk AI. Contohnya adalah menyelesaikan persamaan matematika, melakukan sorting suatu data, dan memecahkan teka-teki catur. Namun, terdapat juga beberapa hal yang relatif mudah bagi kecerdasan natural manusia, tetapi cukup sulit untuk diimplementasikan pada AI. Contoh dari hal-hal tersebut adalah Optical Character Recognition (OCR) dan Optical Face Recognition (OFC).

Apa perbedaan antara OCR dan Scanner Konvensional?

Kita pasti pernah berpikir bahwasannya OCR tidak jauh berbeda dengan scanner konvensional. Keduanya sama-sama melakukan scan dari suatu gambar yang dapat berisi teks ataupun tidak untuk dapat ditampilkan pada suatu aplikasi di dalam komputer kita. Namun, terdapat perbedaan signifikan antara OCR dan scanner konvensional. Dengan OCR, mesin (dalam konteks ini adalah komputer kita) dapat benar-benar mengenali teks dari suatu gambar sehingga gambar tersebut dapat dikonversi menjadi suatu teks utuh sehingga teks tersebut dapat kita ubah sesuai kemauan kita. Namun, dengan scanner konvensional, kita hanya dapat melihat teks dari suatu gambar tanpa dapat mengubah teks tersebut, atau dengan kata lain, scanner tidak dapat membaca teks dari gambar tersebut.

Apa saja Aplikasi dari OCR?

OCR telah dikembangkan oleh para peneliti dan ahli di bidangnya untuk membantu manusia untuk menyelesaikan suatu persoalan yang krusial, yaitu melakukan pembacaan teks secara cepat dan tepat dari suatu gambar. Untuk itu, telah banyak domain khusus yang dikembangkan dari aplikasi OCR ini. Contoh dari domain-domain tersebut adalah receipt OCR, invoice OCR, check OCR, dan legal billing document OCR. Setiap domain khusus ini memiliki kegunaannya masing-masing dan menerapkan algoritma yang berbeda pula. Beberapa contoh aplikasi dari OCR di kehidupan nyata adalah:

  • Pemindaian dokumen menjadi teks yang dapat di-edit pada aplikasi penulis teks, seperti Microsoft Word dan Google Docs.
  • Mengarsipkan informasi bersejarah, seperti surat kabar, majalah atau buku telepon, ke dalam format yang dapat dicari
  • Mengonversikan tulisan tangan secara real-time menjadi teks untuk mengontrol komputer (pen writing)
  • Automatic Plate Number Recognition, yaitu mengenali nomor plat dari kendaraan bermotor
  • Teknologi bantuan bagi klien tunanetra atau yang memiliki masalah dengan penglihatan, yaitu dengan membaca teks dari suatu gambar dan mengonversi teks tersebut menjadi suara.

Apa saja tipe dari OCR?

  • Optical Character Recognition (OCR) — Pembacaan teks yang diketik, satu karakter per satuan waktu
  • Optical Word Recognition (OWR) — Pembacaan teks yang diketik juga, tetapi pembacaan dilakukan satu kata per satuan waktu. Tipe OCR ini digunakan untuk teks yang memiliki ‘spasi’ sebagai pemisah antarkata
  • Intelligence Character Recognition (ICR) — Pembacaan teks yang diketik dan juga ditulis tangan, satu karakter per satuan waktu. Tipe OCR ini umumnya mengimplementasikan machine learning.
  • Intelligence Word Recognition (IWR) — Pembacaan teks yang diketik dan ditulis tangan juga, tetapi satu kata per satuan waktu.

Bagaimana OCR dapat mengenali teks dari suatu gambar?

Terdapat tiga buah langkah OCR dalam mengenali teks dari suatu gambar, yaitu pra-pemrosesan gambar, pengenalan karakter, dan pasca-pemrosesan gambar.

  1. Pra-Pemrosesan Gambar

Perangkat lunak OCR sering melakukan pra-proses gambar untuk meningkatkan peluang pengenalan teks dari gambar tersebut. Tujuan dari pra-pemrosesan ini adalah untuk memperbaiki data citra yang sebenarnya. Dengan cara ini, distorsi yang tidak diinginkan dapat ditekan dan fitur gambar tertentu ditingkatkan. Kedua proses ini penting untuk langkah-langkah berikutnya.

2. Pengenalan Karakter di OCR

Untuk pengenalan karakter yang sebenarnya, penting untuk memahami apa itu “ekstraksi fitur”. Jika data masukan terlalu besar untuk diproses, hanya serangkaian fitur yang diperkecil yang dipilih. Fitur-fitur yang dipilih diharapkan merupakan bagian yang penting, sedangkan yang diduga mubazir dan tidak penting diabaikan. Dengan mengompresi kumpulan data, diharapkan kinerja dari OCR dapat meningkat.

Untuk proses OCR, ini penting karena algoritma harus mendeteksi bagian atau bentuk tertentu dari aliran gambar atau video digital.

3. Pasca-Pemrosesan Gambar

Pasca-pemrosesan adalah teknik koreksi kesalahan lain yang memastikan akurasi tinggi OCR. Akurasi dapat ditingkatkan lebih lanjut jika keluarannya dibatasi oleh leksikon. Dengan begitu, algoritme dapat kembali ke daftar kata yang diizinkan muncul di dokumen yang dipindai, misalnya.

OCR tidak hanya digunakan untuk mengidentifikasi kata-kata yang tepat, tetapi juga dapat membaca angka dan kode. Hal ini berguna untuk mengidentifikasi rangkaian angka dan huruf yang panjang, seperti nomor seri yang digunakan di banyak industri.

Untuk menangani dengan lebih baik berbagai jenis input OCR, beberapa peneliti mulai mengembangkan sistem OCR khusus. Sistem ini mampu menangani gambar khusus. Sedangkan untuk meningkatkan akurasi pengenalan, bahkan lebih, mereka menggabungkan berbagai teknik pengoptimalan. Misalnya, mereka menggunakan aturan bisnis, ekspresi standar, atau informasi lengkap yang terdapat dalam gambar berwarna. Strategi penggabungan berbagai teknik pengoptimalan ini disebut “OCR berorientasi aplikasi” atau “OCR yang disesuaikan”. Teknik ini digunakan dalam beberapa aplikasi, seperti namecard OCR, factor OCR, dan ID card OCR.