OCR untuk PDF

Node Sumber: 879686

Pengantar

Sejak meluasnya penggunaan komputer pada tahun 1970-an diikuti dengan penemuan PDF pada tahun 1993, penyimpanan file teks dalam format digital secara bertahap tetapi terus menerus mendominasi kertas tradisional. Keunggulan tak terkalahkan ini diciptakan dan lebih ditingkatkan dengan menumpang kenyamanan internet yang memungkinkan file teks digital dengan mudah dikirim ke seluruh dunia dalam hitungan detik. Saat ini, tidak hanya teks yang dikodekan mesin disimpan dan dibagikan melalui PDF, bahkan kertas dokumen tulisan tangan dipindai ke dalam format tersebut untuk diproses dan didistribusikan lebih lanjut.

Tren yang muncul ini, bagaimanapun, telah menjelaskan domain penelitian baru dan yang sedang berlangsung - PDF Optical Character Recognition (OCR). OCR adalah proses mengubah teks yang dipindai atau tulisan tangan menjadi teks yang dikodekan mesin, sehingga dapat digunakan lebih lanjut oleh program untuk pemrosesan dan analisis lebih lanjut. Meskipun penerapan OCR sangat luas (dari gambar rambu jalan hingga dokumen teks formal), artikel ini secara khusus membahas domain PDF OCR, khususnya PDF dari kertas pindaian dan tulisan tangan, dan membahas teknologi dan program dalam berbagai bahasa untuk melakukan tugas. Tinjauan rinci dan perbandingan di beberapa perangkat lunak dalam pasar untuk PDF OCR disajikan lebih lanjut sebagai referensi.


Mencari solusi OCR untuk mengekstrak informasi dari PDF? Berikan Nanonetputaran untuk akurasi yang lebih tinggi, fleksibilitas yang lebih besar, pasca-pemrosesan, dan serangkaian integrasi yang luas!


Kemajuan dalam Solusi OCR

Sebelum membahas kode, detail, dan manfaat OCR, pertama-tama kami menjelaskan konsep cara kerja OCR dengan memperkenalkan kemajuan teknologi yang terlibat.

OCR tradisional

Konversi elektronik dari dokumen yang dipindai untuk perhitungan lebih lanjut, sebelum pembelajaran mendalam memenuhi akurasi yang diperlukan untuk tugas tersebut, biasanya dilakukan dengan empat langkah sederhana:

  1. Kumpulkan database karakter yang dikenal.
  2. Gunakan sensor foto untuk mengumpulkan dan memisahkan masing-masing huruf dari dokumen yang dipindai.
  3. Bandingkan sekumpulan atribut yang diambil dari fotosensor dengan atribut fisik dari database.
  4. Ubah setiap rangkaian atribut menjadi karakter yang diketahui dengan kemiripan tertinggi.

Sementara pendekatan tradisional tampaknya efektif sebagian besar waktu, itu rentan terhadap pembatasan berbasis aturan yang melekat. Salah satu langkah perantara penting dari OCR adalah berhasil mengekstrak satu huruf atau tanda dari satu set/kelompok teks. Ekstraksi ini memerlukan templat atau aturan tertentu (yaitu, ukuran/gaya font yang telah ditetapkan sebelumnya) agar sangat akurat. Memaksakan lebih banyak dan lebih banyak aturan untuk meningkatkan akurasi akan menciptakan dilema OCR overfitting, atau koreksi hanya pada gaya tulisan tertentu. Inkonsistensi pencahayaan selama proses pemindaian juga akan menyebabkan kesalahan saat OCR sepenuhnya berbasis aturan.

Selain itu, perbandingan atribut berbasis aturan juga gagal saat menangani tulisan tangan. Font yang dihasilkan komputer sebagian besar diperbaiki dengan atribut yang sering kali jelas dan mudah untuk dibandingkan - font tulisan tangan adalah kebalikannya, dengan variasi yang tidak terbatas dan oleh karena itu jauh lebih sulit untuk diklasifikasikan. Karena setiap kali karakter kerajinan tangan sedikit berbeda, tidak mungkin menyertakan semuanya sebagai bagian dari database juga. Hal ini sering kali memerlukan OCR untuk menjalankan algoritme yang lebih canggih selain pencocokan atribut yang naif.

Akhirnya, hambatan dari beberapa bahasa juga ada dalam pendekatan tradisional. Banyak bahasa mengadopsi simbol yang serupa atau bahkan identik; jika kita menyimpan semua simbol ke dalam database, kita tidak akan dapat membedakan antara dua simbol hanya dengan melakukan pencocokan atribut, yang pada akhirnya membuat pendekatan tradisional seringkali terbatas hanya pada satu bahasa per model.

Mengingat era pembelajaran mendalam baru-baru ini, untungnya dibesarkan oleh kemampuan komputasi perangkat keras yang berkembang pesat, OCR yang lebih baru telah memasukkan model pembelajaran baik selama proses mengekstraksi teks dan dalam fase menafsirkannya.

Mesin OCR Berbasis Pembelajaran Mendalam

Pembelajaran mendalam, cabang utama dunia pembelajaran mesin, telah mendapatkan popularitas besar dengan bantuan banyak ilmuwan terkenal yang mendorongnya ke garis depan. Dalam teknik tradisional, tujuan kami adalah merancang sistem / fungsi yang menghasilkan keluaran dari masukan yang diberikan; pembelajaran mendalam, di sisi lain, bergantung pada input dan output untuk menemukan hubungan perantara yang dapat diperluas ke data baru yang tidak terlihat melalui apa yang disebut saraf jaringan.

Arsitektur Jaringan Saraf

Jaringan saraf, atau multi-layer perceptron, meniru cara otak manusia belajar. Setiap node, yaitu neuron, di dalam jaringan seperti neuron biologis sehingga mereka menerima informasi untuk "mengaktifkan". Kumpulan neuron membentuk lapisan, dan beberapa lapisan menumpuk menjadi jaringan, yang menggunakan informasi untuk menghasilkan prediksi. Prediksi dapat dalam segala bentuk, dari prediksi kelas untuk masalah klasifikasi hingga kotak pembatas item dalam tugas deteksi objek – semuanya telah mencapai tingkat yang lebih tinggi dibandingkan dengan literatur sebelumnya. Dalam tugas OCR, dua jenis output, bersama dengan dua genre jaringan, banyak diterapkan.

  • Jaringan Saraf Konvolusi (CNN) - CNN adalah salah satu kumpulan jaringan yang paling dominan yang digunakan saat ini, khususnya dalam bidang computer vision. Ini terdiri dari beberapa kernel konvolusional yang meluncur melalui gambar untuk mengekstrak fitur. Disertai dengan lapisan jaringan tradisional di bagian akhir, CNN sangat berhasil dalam mengambil fitur dari gambar yang diberikan untuk melakukan prediksi. Proses ini selanjutnya dapat ditransfer ke tugas menemukan kotak pembatas dan mendeteksi atribut karakter untuk klasifikasi lebih lanjut dalam proses OCR.
  • Memori Jangka Pendek Panjang (LSTM) – LSTM adalah keluarga jaringan yang diterapkan terutama pada input urutan. Intuisinya sederhana — untuk data sekuensial apa pun (yaitu, cuaca, stok), hasil baru mungkin sangat bergantung pada hasil sebelumnya, dan dengan demikian akan bermanfaat untuk terus meneruskan hasil sebelumnya sebagai bagian dari fitur input dalam melakukan prediksi baru . Dalam kasus OCR, huruf yang terdeteksi sebelumnya bisa sangat membantu untuk membantu memprediksi berikutnya, karena serangkaian karakter biasanya masuk akal saat disatukan (misalnya, huruf bahasa Inggris "g" lebih mungkin muncul setelah "do" dari angka "9", meskipun atribut mereka serupa).

Selain tugas utama dalam OCR yang menggabungkan pembelajaran mendalam, banyak tahap pra-pemrosesan untuk menghilangkan pendekatan berbasis aturan juga telah diuntungkan oleh teknologi jaringan saraf yang berkembang:

  • Mencela – Ketika dokumen dipindai dengan tidak benar, metode berbasis aturan dapat dengan mudah gagal. Pendekatan terbaru yang diadopsi oleh teknologi OCR adalah dengan menerapkan Generative Adversarial Network (GAN) untuk "menghilangkan" input. GAN terdiri dari dua jaringan, generator dan diskriminator. Generator terus-menerus menghasilkan input baru untuk diskriminator untuk membedakan antara input yang sebenarnya dan yang dihasilkan, memungkinkan generator untuk terus meningkatkan dalam menciptakan konten yang ideal. Dalam hal ini, GAN dilatih dari sepasang dokumen denoised dan noised, dan tujuan generator adalah untuk menghasilkan dokumen de-noise sedekat mungkin dengan ground-truth. Selama fase aplikasi, GAN, jika dilatih dengan baik, kemudian dapat digunakan pada setiap input untuk menyempurnakan dokumen yang dipindai dengan buruk.
  • Identifikasi Dokumen – Tugas OCR, khususnya tugas OCR pada PDF, sering digunakan untuk tujuan mengekstraksi data dengan benar dari formulir dan dokumen. Oleh karena itu, mengetahui jenis dokumen yang sedang diproses oleh mesin OCR dapat secara signifikan meningkatkan akurasi ekstraksi data. Seni terbaru telah memasukkan jaringan Siam, atau jaringan perbandingan, untuk membandingkan dokumen dengan format dokumen yang sudah ada sebelumnya, memungkinkan mesin OCR untuk melakukan klasifikasi dokumen sebelumnya. Langkah ekstra ini telah terbukti secara empiris untuk meningkatkan akurasi dalam pencarian teks.

Singkatnya, perkembangan OCR telah diuntungkan dengan pertumbuhan eksponensial kemampuan perangkat keras dan pembelajaran mendalam. PDF OCR sekarang telah mencapai akurasi dengan standar yang menakjubkan untuk berbagai aplikasi.


Mencari solusi OCR untuk mengekstrak informasi dari PDF? Berikan Nanonetputaran untuk akurasi yang lebih tinggi, fleksibilitas yang lebih besar, pasca-pemrosesan, dan serangkaian integrasi yang luas!


Aplikasi Software PDF OCR

Tujuan utama OCR adalah untuk mengambil data dari format yang tidak terstruktur, apakah itu angka numerik atau angka sebenarnya. Jika pengambilan berhasil dan sangat akurat, program dapat memanfaatkan OCR untuk tugas-tugas tenaga kerja seperti mengenali dan menafsirkan teks, khususnya untuk analisis numerik dan kontekstual.

Analisis Data Numerik

Ketika PDF berisi data numerik, OCR membantu mengekstraknya untuk melakukan analisis statistik. Secara khusus, OCR dengan bantuan ekstraksi tabel atau pasangan nilai kunci (KVP) dapat diterapkan untuk menemukan nomor bermakna dari berbagai wilayah dari satu teks tertentu. Kami kemudian dapat mengadopsi metode statistik atau bahkan pembelajaran mesin (yaitu, KNN, K-Means, Regresi Linier / Logistik) ke model dari berbagai aplikasi

Interpretasi Data Teks

Di sisi lain, pemrosesan data teks mungkin memerlukan lebih banyak tahapan komputasi, dengan tujuan akhir agar program memahami “makna” di balik kata-kata. Proses interpretasi data teks ke dalam makna semantiknya disebut sebagai Natural Language Processing (NLP).

Manfaat PDF OCR

PDF OCR melayani berbagai tujuan di tingkat aplikasi. Bagian berikut menjelaskan beberapa contoh kasus penggunaan mulai dari penggunaan pribadi hingga sebesar perusahaan.

Kasus Penggunaan Pribadi

PDF OCR memberikan kemudahan yang luar biasa saat menangani tugas-tugas yang mengganggu seperti memindai ID dan pembiayaan pribadi.

ID pribadi sering diminta untuk diubah menjadi format PDF untuk dikirim ke berbagai aplikasi. Dokumen identifikasi ini berisi informasi seperti tanggal lahir dan nomor ID yang sering kali diminta untuk diketik berulang kali untuk tujuan yang berbeda, dan oleh karena itu OCR PDF yang sangat akurat yang menemukan bidang yang cocok dan nilai yang sesuai di seluruh ID akan sangat membantu. membantu dalam melakukan tugas-tugas manual yang sepele. Satu-satunya tenaga kerja yang diperlukan adalah hanya memeriksa ulang untuk setiap inkonsistensi.

Pembiayaan Pribadi adalah proses lain yang membutuhkan banyak tenaga kerja manual. Meskipun perkembangan dalam excel dan spreadsheet telah memudahkan tugas-tugas seperti penganggaran pribadi, OCR dan ekstraksi data pada faktur PDF dapat lebih mempercepat prosesnya. Data ini dapat secara otomatis dimasukkan ke dalam spreadsheet untuk dianalisis seperti yang disebutkan pada bagian sebelumnya yang akan dilakukan. Seseorang dapat dengan mudah memanfaatkan waktu key-in asli untuk memikirkan rencana keuangan yang lebih baik.

Kasus Penggunaan Bisnis

Baik perusahaan besar maupun organisasi kecil harus berurusan dengan ribuan dokumen yang mengikuti format serupa, yang sangat padat karya namun tidak produktif (yaitu, semua tenaga kerja digunakan untuk sesuatu yang membutuhkan lebih sedikit curah pendapat). Klasifikasi dokumen otomatis dan koleksi / analisis survei adalah tempat OCR berguna.

OCR memungkinkan komputer untuk mengubah teks yang dipindai menjadi teks yang dikodekan mesin. Isi teks yang dikonversi kemudian dapat digunakan untuk mengklasifikasikan dokumen, apakah itu aplikasi untuk peran yang berbeda atau formulir yang menunggu untuk disetujui. Jika dilatih dengan baik, OCR dapat menyebabkan kesalahan minimal yang sering terjadi karena kelelahan manusia yang tak terhindarkan. Dari perspektif bisnis, pengeluaran tenaga kerja juga bisa sangat berkurang.

Dalam hal survei atau umpan balik, yang sering diminta oleh organisasi untuk meningkatkan produk atau rencana mereka saat ini, OCR juga memainkan peran penting. Data dapat dengan cepat diekstraksi dan dievaluasi secara ekstensif untuk analisis statistik. Jika dirancang dengan baik, bahkan teks tulisan tangan dapat diekstraksi dan dianalisis secara otomatis.


Mencari solusi OCR untuk mengekstrak informasi dari PDF? Berikan Nanonetputaran untuk akurasi yang lebih tinggi, fleksibilitas yang lebih besar, pasca-pemrosesan, dan serangkaian integrasi yang luas!


Tutorial Sederhana

PDF OCR sebenarnya dapat dengan mudah diprogram secara pribadi. Berikut ini adalah pipeline sederhana untuk melakukan OCR pada PDF.

Konversi PDF ke Gambar

Ada banyak perpustakaan dan API dalam berbagai bahasa yang mendukung OCR yang telah dilatih sebelumnya. Namun, kebanyakan dari mereka memproses dengan gambar dan tidak langsung PDF. Oleh karena itu, untuk menyederhanakan langkah-langkah berikut, kita dapat melakukan praproses PDF ke dalam format gambar sebelum melakukan pengenalan karakter.

Salah satu perpustakaan yang paling umum digunakan untuk melakukannya adalah pdf2gambar library untuk Python, yang dapat dengan mudah diinstal melalui perintah berikut:

pip install pdf2image

Setelah itu, seseorang dapat mengimpor perpustakaan dan menggunakan salah satu dari dua baris kode untuk mendapatkan gambar dalam format PIL sebagai berikut:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Untuk informasi lebih lanjut tentang kode, Anda dapat merujuk ke dokumentasi resmi di https://pypi.org/project/pdf2image/

Gambar OCR

Ada banyak API dari perusahaan teknologi besar dengan OCR yang sangat akurat. Karena anggapan bahwa PDF biasanya sangat padat dengan data teks yang padat, cara yang paling cocok untuk melakukan OCR tersebut adalah dengan menggunakan Google Vision API, khususnya Dokumen_Teks_Anotasi berfungsi karena dirancang khusus untuk tujuan tersebut. Secara khusus, Dokumen_Teks_Anotasi mengirimkan kode ke mesin OCR yang dirancang Google untuk teks padat, termasuk tulisan tangan dalam berbagai bahasa.

Seluruh Google Vision API mudah disiapkan, orang dapat merujuk ke panduan resminya di https://cloud.google.com/vision/docs/quickstart-client-libraries untuk prosedur pengaturan rinci.

Setelah itu kita dapat menggunakan kode berikut untuk pengambilan OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Atau, Google Vision API juga mendukung beberapa bahasa, seperti Java dan Go. Lebih banyak kode mengenai penggunaan Google API dapat diambil di sini: https://cloud.google.com/vision  

Ada juga layanan / API OCR lain dari Amazon dan Microsoft, dan Anda selalu dapat menggunakan PyTesseract perpustakaan untuk melatih model Anda untuk tujuan tertentu.


Mencari solusi OCR untuk mengekstrak informasi dari PDF? Berikan Nanonetputaran untuk akurasi yang lebih tinggi, fleksibilitas yang lebih besar, pasca-pemrosesan, dan serangkaian integrasi yang luas!


Perbandingan

Ada banyak PDF OCR yang saat ini tersedia di pasaran. Sementara beberapa gratis, cepat, dan dapat langsung digunakan secara online, yang lain menyediakan produk yang lebih akurat dan dirancang lebih baik untuk penggunaan profesional. Di sini kami menjelaskan beberapa opsi, serta pro dan kontra mereka.

OCR PDF Online

Saat menggunakan PDF OCR untuk penggunaan pribadi pada konversi cepat, gratis dan cepat mungkin lebih diinginkan daripada akurasi. Ada banyak layanan PDF OCR online yang melayani kebutuhan ini. Seseorang dapat dengan mudah mengunggah dokumen PDF dan diubah menjadi teks tertulis dengan cara yang cepat dan nyaman.

Masalah utama dengan ini, bagaimanapun, adalah kontrol kualitas OCR. Perangkat lunak OCR online gratis ini, meskipun berfungsi dengan baik hampir sepanjang waktu, tidak terikat untuk memberikan hasil kualitas terbaik setiap kali dibandingkan dengan perangkat lunak offline lainnya yang memerlukan pemeliharaan konstan.

Perangkat Lunak Offline

Saat ini, ada beberapa perusahaan yang menyediakan layanan PDF OCR yang sangat akurat. Di sini kita melihat beberapa opsi PDF OCR yang berspesialisasi dalam berbagai aspek, serta beberapa prototipe penelitian terbaru yang tampaknya memberikan hasil yang menjanjikan:

Ada beberapa layanan OCR yang ditargetkan untuk tugas-tugas seperti gambar di alam liar. Kami melewatkan layanan tersebut karena saat ini kami hanya berfokus pada pembacaan dokumen PDF.

  • ABBYY – ABBYY FineReader PDF adalah OCR yang dikembangkan oleh ABBYY. Perangkat lunak ini memiliki UI yang ramah yang digunakan untuk membaca PDF dan konversi teks. Namun, dengan sifatnya yang non-engineering (target pelanggannya adalah spesialis non-teknis di bidang lain yang membutuhkan PDF OCR), akan lebih sulit untuk memasukkannya ke dalam program lain untuk diproses lebih lanjut.
  • cofax – Mirip dengan ABBYY, Kofax adalah pembaca PDF ramah yang membutuhkan pembelian. Harga tetap untuk penggunaan individu, dengan diskon untuk perusahaan besar. Bantuan 24/7 juga tersedia jika ada kesulitan teknis.
  • Pembaca Mendalam - Deep Reader adalah karya penelitian yang diterbitkan di ACCV Conference 2019. Ini menggabungkan beberapa arsitektur jaringan canggih untuk melakukan tugas-tugas seperti pencocokan dokumen, pengambilan teks, dan denoising gambar. Ada fitur tambahan seperti tabel dan ekstraksi pasangan nilai kunci yang memungkinkan data diambil dan disimpan secara terorganisir.
  • Nanonets ™ - Nanonets ™ PDF OCR menggunakan pembelajaran mendalam dan oleh karena itu sepenuhnya bebas templat dan aturan. Nanonets tidak hanya dapat bekerja pada jenis PDF tertentu, tetapi juga dapat diterapkan ke semua jenis dokumen untuk pengambilan teks.

Kesimpulan

Sebagai kesimpulan, dalam artikel ini kami membahas dasar-dasar cara kerja OCR, serta garis waktu pengembangan OCR yang diikuti dengan tutorial sederhana dan kasus penggunaan. Kami juga menyajikan serangkaian opsi yang layak untuk PDF OCR serta kelebihan dan kekurangannya untuk digunakan lebih lanjut.

Sumber: https://nanonets.com/blog/pdf-ocr/

Stempel Waktu:

Lebih dari AI & Pembelajaran Mesin