🧐Dasar Teori
Last updated
Last updated
Optical Character Recognition (OCR) adalah proses ekstraksi data dari dokumen kertas yang discan atau file gambar dan mengubahnya menjadi format digital yang dapat diedit dan dicari.
Dijelaskan dalam berbagai literatur bahwa Optical Character Recognition (OCR) merupakan teknik pengentrian data tertua setelah keypunching. Keypunch, disebut sebagai perangkat pengolah kartu, adalah perangkat kuno yang digunakan untuk memasukkan data ke dalam kartu kertas kaku. Perangkat ini memiliki mekanisme untuk menusuk lubang-lubang ke dalam kartu sesuai dengan suatu kode yang mengaitkan karakter alfanumerik dengan posisi lubang di kartu. Kartu tersebut kemudian dapat dibaca oleh mesin pemrosesan data.
Keypunch sering digunakan sebelum era komputer digital yang terkomputerisasi secara luas. Pada masa itu, untuk memasukkan data ke dalam sistem, operator menggunakan keypunch untuk mengekstraksi informasi dari dokumen fisik dan menyandikannya ke dalam kartu kertas. Setiap karakter diwakili oleh pola lubang yang unik di kartu, dan kartu-kartu ini kemudian diinputkan ke dalam komputer untuk pemrosesan lebih lanjut.
Meskipun keypunch telah menjadi bagian dari sejarah teknologi, perannya pada masanya sangat penting dalam membantu mentransisikan data dari format fisik ke dalam bentuk yang dapat diproses oleh komputer. Pada zaman komputer modern, pengentrian data dilakukan secara langsung melalui keyboard atau melalui metode otomatis menggunakan teknologi seperti OCR (Optical Character Recognition). Dengan perkembangan teknologi, keypunch telah digantikan oleh metode input data yang lebih canggih, tetapi sejarahnya tetap menjadi landasan bagi pemahaman evolusi teknologi pengolahan data.
Optical Character Recognition (OCR), seperti yang kita kenal saat ini, adalah teknologi yang digunakan untuk mengonversi teks dalam gambar yang discan, baik itu tulisan tangan, cetakan, atau dokumen yang ditempelkan pada foto, bahkan gambar adegan film dengan teks bertumpuk menjadi teks yang dienkripsi oleh mesin dan dapat diedit serta dicari.
Selama waktu yang cukup lama, dokumen cetak dan gambar discan dan disimpan sebagai file PDF pada perangkat penyimpanan elektronik. Kemunculan teknologi Optical Character Recognition telah merevolusi pengolahan dokumen yang discan dan tersimpan secara elektronik dalam format pdf atau image. Perangkat lunak OCR dapat mengenali karakter teks dalam file gambar dan mengonversinya menjadi teks sehingga dapat diedit dan dicari.
Teknologi Optical Character Recognition (OCR) semakin populer seiring dengan ketersediaan mikroprosesor supercepat dan teknik pengenalan yang sangat canggih. Saat ini, jumlah data yang besar dapat dibaca pada tingkat akurasi yang efektif yang tak terbayangkan pada satu dekade yang lalu. Perangkat seperti OCR wands dan scanner OCR desktop telah membuat pengambilan data lebih cepat, lebih efisien, dan lebih akurat daripada pengentrian dengan keyboard. Scanner OCR desktop yang canggih dapat membaca data mesin ketik pada kecepatan lebih dari 2400 kata per menit.
Perangkat lunak OCR membantu memindai dokumen dan menyimpannya langsung sebagai file PDF yang dapat dicari teksnya, atau sebagai dokumen teks yang dapat diedit. File PDF yang dapat diedit teksnya cukup efisien karena memungkinkan pencarian dan pengeditan informasi tertentu tanpa harus melihat setiap halaman.
Saat ini, OCR merupakan studi eksploratif yang luas dalam pengenalan pola, kecerdasan buatan, dan sistem visi komputer. Optical Character Recognition digunakan secara luas sebagai cara untuk mendigitalkan data dari rekaman cetak seperti paspor, faktur, kartu bisnis, kwitansi, laporan bank, dokumen pemerintah, data survei besar, dokumen statis, dan sebagainya. Data tersebut kemudian dapat dengan mudah diedit, disimpan, ditampilkan, atau dicari secara elektronik.
Peralatan OCR atau perangkat pembaca digunakan untuk memindai dokumen untuk Input Teks dan membuat data.
Peralatan Input Teks umumnya adalah pembaca halaman atau pemindai dokumen yang digunakan untuk mengonversi teks dari dokumen besar ke dalam format digital. Ini memungkinkan kita untuk mengedit atau mencari teks dengan mudah. Beberapa peralatan ini juga dapat secara otomatis mengatur, membaca, dan menyortir halaman dokumen.
Peralatan Data Capture berfungsi menangkap dan memformat data yang bersifat repetitif saat dimasukkan. Pemasukan data ini harus sangat akurat karena tidak dimaksudkan untuk diedit lebih lanjut. Misalnya, jika ada banyak data dengan pola yang sama, perangkat capture data membantu mengumpulkannya dengan efisien.
Dua metode yang umumnya digunakan untuk proses Optical Character Recognition (OCR) adalah: Pencocokan Matriks dan Ekstraksi Fitur.
Pencocokan Matriks:
Deskripsi: Metode ini lebih sederhana dan sering digunakan. Pada pencocokan matriks, OCR membandingkan apa yang dibaca oleh pemindai OCR sebagai karakter berdasarkan pada library yang dimiliki.
Kelebihan: Sederhana dan umum digunakan.
Keterbatasan: Pemindai tidak dapat membaca jenis huruf di luar library yang telah ditentukan. Ini membuatnya kurang adaptif terhadap font yang tidak terdapat dalam library.
Ekstraksi Fitur:
Deskripsi: Metode ini juga dikenal sebagai Intelligent Character Recognition (ICR) atau Analisis Fitur Topologis. Ekstraksi fitur menggunakan tingkat kecerdasan komputer dan analisis fitur yang canggih untuk mencocokkan karakter yang lebih sulit diprediksi.
Kelebihan: Lebih serbaguna dan dapat menangani karakter yang kurang terprediksi. Digunakan dalam pengenalan tulisan tangan cerdas dan berbagai perangkat lunak OCR terbaru.
Keterbatasan: Lebih kompleks daripada pencocokan matriks, memerlukan kecerdasan komputer yang lebih tinggi.
Dengan demikian, pemilihan antara metode pencocokan matriks dan ekstraksi fitur tergantung pada kebutuhan dan karakteristik spesifik dari dokumen atau gambar yang sedang diproses oleh OCR.
Sebelum memilih algoritma OCR, gambar perlu diolah lebih dulu untuk meningkatkan akurasi proses pengenalan. Tahap pra-pemrosesan meliputi:
Meluruskan atau memiringkan dokumen untuk menyelaraskan baris teks.
Menghilangkan titik-titik positif dan negatif serta meratakan tepi (despeckle).
Membinerkan gambar menjadi hitam dan putih (binarisasi).
Menghilangkan garis dengan membersihkan kotak-kotak dan garis non-glis serta analisis tata letak atau zona untuk mengidentifikasi kolom, paragraf, tabel, dll., sebagai blok.
Mendeteksi baris dan kata.
Mengenali jenis tulisan.
Isolasi atau segmentasi karakter.
Normalisasi.
Setelah pemrosesan, sistem OCR mempertahankan struktur halaman asli dan akan membuat PDF yang berisi gambar asli dan gambar teks sehingga dapat diedit. Koreksi kesalahan dilakukan dengan 'near neighbour analysis'.
near neighbor analysis, merujuk pada suatu pendekatan di mana setiap entitas atau elemen dalam suatu dataset dianalisis berdasarkan kedekatannya dengan entitas atau elemen lain dalam dataset tersebut. Dalam konteks Optical Character Recognition (OCR) atau pengenalan karakter, metode ini dapat digunakan untuk koreksi kesalahan.
Dalam konteks OCR, analisis tetangga terdekat dapat diterapkan setelah proses pengenalan karakter. Setelah OCR mengenali karakter-karakter dalam suatu teks, analisis tetangga terdekat dapat digunakan untuk memeriksa karakter yang dihasilkan dengan karakter yang mungkin berada di sekitarnya dalam konteks kata atau frasa. Jika terdapat kesalahan pengenalan karakter, analisis tetangga terdekat dapat membantu mengidentifikasi dan memperbaiki karakter tersebut berdasarkan konteksnya.
Contoh sederhana dari analisis near neighbor dalam OCR adalah jika OCR mengenali karakter "o" sebagai "c" dalam kata "cat". Dengan menggunakan informasi kontekstual, seperti huruf-huruf di sekitarnya, analisis tetangga terdekat dapat membantu mengidentifikasi bahwa kemungkinan besar karakter yang benar adalah "o" dan bukan "c". Dengan demikian, kesalahan pengenalan dapat dikoreksi untuk meningkatkan akurasi hasil akhir.
Penerapan analisis near neighbor ini dapat bervariasi tergantung pada kompleksitasnya aturan dan konteks linguistik yang diterapkan. Namun, secara umum, tujuannya adalah untuk meningkatkan akurasi hasil OCR dengan memanfaatkan informasi dari karakter tetangga untuk mendukung proses koreksi kesalahan.
Optical Character Recognition (OCR) memiliki banyak pemanfaatan di berbagai bidang. Optical Character Recognition (OCR) telah menjadi solusi inovatif dalam berbagai bidang dengan memungkinkan konversi data dari bentuk fisik ke format digital secara efisien. Berikut adalah beberapa contoh pemanfaatan OCR:
Digitalisasi Dokumen:
OCR memungkinkan digitalisasi dokumen fisik, seperti surat, faktur, dan buku, ke dalam format teks yang dapat diedit. Ini membuat data lebih mudah diakses dan dapat dimanfaatkan secara elektronik.
Pencarian Dokumen:
Dengan mengonversi teks pada dokumen menjadi format digital, OCR memungkinkan pencarian teks. Ini mempermudah pencarian informasi spesifik dalam dokumen besar atau arsip digital.
Pengenalan Tanda Tangan:
OCR dapat digunakan untuk mengenali dan memproses tanda tangan pada dokumen. Ini bermanfaat dalam otomatisasi proses perbankan, legal, atau bisnis yang memerlukan tanda tangan.
Pengenalan Kode Batang:
OCR digunakan untuk membaca dan mengenali informasi dari kode batang pada produk. Ini dapat membantu dalam manajemen inventaris, penjualan ritel, dan pelacakan logistik.
Pengolahan Formulir Elektronik:
OCR digunakan untuk mengekstraksi informasi dari formulir elektronik, seperti formulir pendaftaran atau survei online. Ini menghemat waktu dan mengurangi kesalahan input manual.
Pemindaian Paspor dan Kartu Identitas:
Dalam keamanan dan imigrasi, OCR digunakan untuk membaca dan mengenali informasi pada paspor dan kartu identitas. Ini memfasilitasi proses pemeriksaan dan identifikasi.
Otomatisasi Faktur dan Pembayaran:
OCR memainkan peran kunci dalam otomatisasi pengolahan faktur. Dokumen tagihan dapat dipindai, dan informasi yang diperlukan dapat diekstraksi untuk memudahkan proses pembayaran dan pencatatan keuangan.
Pengenalan Tulisan Tangan:
Beberapa sistem OCR dapat mengenali dan mengonversi tulisan tangan menjadi teks. Hal ini bermanfaat dalam pengolahan formulir atau dokumen yang mungkin berisi tulisan tangan.
Bantuan Aksesibilitas:
OCR digunakan dalam teknologi bantu untuk membantu individu dengan disabilitas penglihatan. Teknologi ini dapat mengonversi teks dari gambar atau dokumen fisik menjadi teks yang dapat dibaca oleh perangkat bantu.
Pemanfaatan OCR ini mencerminkan kemampuannya untuk mengoptimalkan proses, meningkatkan efisiensi, dan membuat informasi lebih mudah diakses dalam berbagai konteks.
OCR, singkatan dari Optical Character Recognition, adalah sistem yang mengubah gambar dua dimensi dari teks, yang dapat berisi teks cetak mesin atau tulisan tangan, dari representasi gambar menjadi teks yang dapat dibaca oleh mesin. Proses OCR umumnya terdiri dari beberapa sub-proses untuk memberikan hasil seakurat mungkin. Sub-proses tersebut meliputi:
Pra-Pemrosesan Gambar
Penentuan Teks
Segmentasi Karakter
Pengenalan Karakter
Pascapemrosesan
Sub-proses dalam daftar di atas tentu dapat bervariasi, tetapi secara garis besar, langkah-langkah tersebut diperlukan untuk mendekati pengenalan karakter secara otomatis. Dalam perangkat lunak OCR, tujuan utamanya adalah mengidentifikasi dan menangkap semua kata unik menggunakan berbagai bahasa dari karakter teks yang tertulis.
Selama hampir dua dekade, sistem pengenalan karakter optik telah digunakan secara luas untuk memberikan entri teks otomatis ke dalam sistem terkomputerisasi. Namun, sepanjang waktu tersebut, sistem OCR online konvensional (seperti OCR zonal) tidak pernah berhasil mengatasi ketidakmampuannya untuk membaca lebih dari beberapa jenis huruf dan format halaman. Jenis huruf proporsional (yang mencakup hampir semua teks cetak), huruf printer laser, dan bahkan banyak jenis huruf mesin tik non-proporsional tetap berada di luar jangkauan sistem-sistem ini. Sebagai hasilnya, OCR konvensional tidak pernah mencapai lebih dari dampak marginal pada total dokumen yang perlu dikonversi ke dalam bentuk digital.
Mesin OCR generasi terbaru menangani masalah-masalah yang disebutkan di atas dengan sangat baik dengan memanfaatkan penelitian terkini di bidang deep learning. Dengan memanfaatkan kombinasi model-model dalam (deep models) dan dataset besar yang tersedia secara publik, model-model ini mencapai akurasi terbaik dalam tugas yang diberikan. Saat ini juga memungkinkan untuk menghasilkan data sintetis dengan menggunakan berbagai jenis huruf menggunakan jaringan generatif adversarial (generative adversarial networks) dan beberapa pendekatan generatif lainnya.
Optical Character Recognition tetap menjadi masalah yang menantang ketika teks muncul di lingkungan yang tidak terbatas, seperti dalam pemandangan alam, disebabkan oleh distorsi geometris, latar belakang yang kompleks, dan berbagai jenis huruf. Teknologi ini tetap memiliki potensi besar berkat berbagai kasus penggunaan dari OCR berbasis deep learning seperti
Pembacaan pelat nomor
Mendigitalkan Struck invoice
Mendigitalkan menu
Mendigitalkan kartu identitas
Terdapat banyak perangkat lunak Optical Character Recognition (OCR) yang tersedia. berikut adalah beberapa contoh open source OCR tools
Tesseract - merupakan mesin OCR open source yang telah menjadi populer di kalangan pengembang OCR. Meskipun terkadang sulit untuk diimplementasikan dan dimodifikasi, tidak banyak alternatif OCR yang bagus dan gratis di pasaran untuk waktu yang lama. Tesseract dimulai sebagai proyek penelitian Ph.D. di HP Labs, Bristol. Ia mendapatkan popularitas dan dikembangkan oleh HP antara tahun 1984 dan 1994. Pada tahun 2005, HP merilis Tesseract sebagai perangkat lunak sumber terbuka. Sejak tahun 2006, pengembangannya dilakukan oleh Google.
OCRopus - OCRopus adalah sistem OCR open source yang memungkinkan evaluasi dan penggunaan ulang komponen OCR dengan mudah oleh peneliti dan perusahaan. OCRopus adalah sebuah koleksi program analisis dokumen, bukan sistem OCR yang siap pakai. Untuk menerapkannya pada dokumen, masih perlu melakukan beberapa pra-pemrosesan gambar, dan juga melatih model-model baru. Selain dari skrip-skrip pengenalan itu sendiri, terdapat beberapa skrip untuk pengeditan dan koreksi kebenaran dasar, pengukuran tingkat kesalahan, penentuan matriks kebingungan yang mudah digunakan dan diedit.
Dalam jobsheet ini, kita akan berfokus pada Tesseract OCR dan fokus pada tentang bagaimana cara kerjanya dan bagaimana penggunaannya.
Tesseract adalah open source text recognition (OCR) yang tersedia di bawah lisensi Apache 2.0. Sistem ini dapat digunakan secara langsung atau (untuk para pengembang) dengan menggunakan API untuk mengekstrak teks cetak dari gambar. Tesseract mendukung berbagai bahasa. Meskipun Tesseract tidak memiliki antarmuka grafis bawaan, namun terdapat beberapa antarmuka yang dikembangkan oleh pihak ketiga. Tesseract kompatibel dengan banyak bahasa pemrograman dan framework. hal tersebut dapat digunakan dengan melakukan analisis tata letak yang ada untuk mengenali teks dalam dokumen, atau dapat digunakan bersamaan dengan detektor teks eksternal untuk mengenali teks dari gambar.
Kemampuan Tesseract sebagian besar terbatas pada data teks terstruktur. Performanya cukup buruk dalam teks tak terstruktur dengan tingkat noise yang signifikan. Pengembangan lebih lanjut dalam Tesseract telah disponsori oleh Google sejak tahun 2006.
Metode berbasis deep learning tampil lebih baik untuk data tak terstruktur. Tesseract 4 menambahkan kemampuan berbasis deep learning dengan mesin OCR berbasis jaringan LSTM (sejenis Recurrent Neural Network) yang difokuskan pada pengenalan baris tetapi juga mendukung mesin OCR Tesseract 3 yang sudah ada, yang bekerja dengan mengenali pola karakter. Versi stabil terbaru, 4.1.0, dirilis pada 7 Juli 2019. Versi ini secara signifikan lebih akurat dalam mengenali teks tak terstruktur.
Tesseract 4.00 mencakup subsistem neural network baru yang dikonfigurasi sebagai pengenali baris teks. hal tersebut berasal dari implementasi LSTM berbasis Python pada OCRopus tetapi telah diubah ulang untuk Tesseract dalam bahasa C++. Sistem neural network di Tesseract telah ada sebelum TensorFlow namun tetap kompatibel dengan TensorFlow, karena terdapat network description language yang disebut Variable Graph Specification Language (VGSL), yang juga tersedia untuk TensorFlow.
Untuk mengenali gambar yang berisi satu karakter, biasanya kita menggunakan Convolutional Neural Network (CNN). Teks dengan panjang sembarang adalah urutan karakter, dan masalah seperti itu dapat dipecahkan menggunakan RNNs, dan LSTM adalah bentuk RNN yang populer. Baca posting ini untuk mempelajari lebih lanjut tentang LSTM.
Long Short-Term Memory networks atau yang dikenal sebagai LSTM, sangat efektif dalam mempelajari dan memahami urutan data. Namun, kinerjanya cenderung menurun ketika dihadapkan pada jumlah variable atau kelas yang besar. Temuan empiris menunjukkan bahwa LSTM lebih terampil dalam mempelajari urutan data yang lebih panjang dibandingkan dengan urutan yang lebih pendek dengan banyak kelas.
Tesseract merupakan tools Optical Character Recognition (OCR), berasal dari model OCRopus yang dikembangkan dalam bahasa Python. OCRopus, pada gilirannya, berasal dari percabangan implementasi LSTM yang ditulis dalam bahasa C++, yang dikenal sebagai CLSTM. CLSTM adalah versi khusus dari model recurrent neural network LSTM, dan diimplementasikan dalam bahasa C++. Implementasi ini menggunakan library Eigen untuk perhitungan numerik, meningkatkan efisiensi model LSTM.
Secara pokok, Tesseract mewarisi kemampuan dasar LSTM-nya dari model CLSTM. LSTM, dalam konteks Tesseract, memainkan peran penting dalam mendekripsi dan mengenali urutan karakter, khususnya dalam domain pengenalan karakter optik dari gambar.
Tesseract 3.x, dalam versi lama, bergantung pada proses multi-tahap di mana kita dapat membedakan langkah-langkahnya sebagai berikut:
Pencarian Kata:
Pencarian kata dilakukan dengan mengorganisir baris teks menjadi "blobs," dan baris serta wilayah dianalisis untuk teks dengan spasi karakter yang tetap atau proporsional. Baris teks dipecah menjadi kata-kata berbeda tergantung pada jenis spasi karakter. Pengenalan kemudian dilanjutkan sebagai proses dua tahap. Pada tahap pertama, upaya dilakukan untuk mengenali setiap kata secara berurutan. Setiap kata yang memuaskan diteruskan ke klasifikasi adaptif sebagai data pelatihan. Klasifikasi adaptif kemudian mendapatkan kesempatan untuk mengenali teks lebih akurat di bagian bawah halaman.
Modernisasi Tesseract:
Modernisasi versi baru Tesseract merupakan upaya pada pembersihan kode dan penambahan model LSTM baru. Gambar sebagi inputan akan diproses dalam kotak (persegi panjang) per baris, disusun ke dalam model LSTM, dan selanutnya memberikan output. Pada gambar di bawah ini, kita dapat memvisualisasikan bagaimana cara kerjanya.
Setelah menambahkan teknik pelatihan baru dan melatih model dengan banyak data dan font, Tesseract mencapai kinerja yang lebih baik. Namun, masih belum cukup baik untuk bekerja pada teks tulisan tangan dan font unik. Namun kemungkinan untuk melakukan penyesuaian atau dengan melatih kembali layer-layer teratas untuk eksperimen tetap ada.