Perbandingan alat OCR: bagaimana memilih alat terbaik untuk projek anda

Pengiktirafan aksara optik (ringkas: OCR) adalah tugas secara automatik mengekstrak teks dari imej. Pada masa kini, terdapat pelbagai alat dan perkhidmatan yang tersedia yang mudah digunakan dan membuat tugas ini menjadi tidak mudah. Dalam catatan blog ini, saya akan membandingkan empat alat yang paling popular:

  1. Tesseract OCR
  2. ABBYY FineReader
  3. Penglihatan Awan Google
  4. Amazon Textract

Saya akan menunjukkan cara menggunakannya dan menilai kekuatan dan kelemahan mereka berdasarkan prestasi mereka dalam beberapa tugas. Selepas membaca artikel ini, anda akan dapat memilih dan menggunakan alat OCR yang memenuhi keperluan projek anda.

Perhatikan bahawa kami menyekat fokus kami pada OCR untuk imej dokumen sahaja, berbanding dengan mana-mana imej yang mengandungi teks secara kebetulan.

Ini bukan imej dokumen.

Sekarang mari kita lihat gambar dokumen yang akan kami gunakan untuk menilai enjin OCR.

Imej uji kami

Imej dokumen datang dalam pelbagai bentuk dan kualiti. Kadang-kadang mereka diimbas, kali lain mereka ditangkap oleh peranti pegang tangan. Selain dari teks bercetak mereka mungkin juga mengandungi unsur tulisan tangan dan struktur seperti kotak dan jadual. Oleh itu, alat OCR yang ideal perlu

  • mengiktiraf teks yang diimbas dengan baik dengan pasti,
  • menjadi mantap ke arah kualiti imej yang buruk dan tulisan tangan,
  • maklumat output mengenai pemformatan dan struktur dokumen.

Dengan prasyarat ini, kami akan menguji alat OCR pada empat imej berikut:

E-mel yang diimbas, surat tulisan tangan yang diimbas.E-mel yang ditangkap telefon pintar, meja yang diimbas.

Semua imej datang dari korpus besar dokumen industri Tembakau. Yang ketiga dicetak dan kemudian ditangkap oleh telefon pintar, memperkenalkan bunyi biasa.

Mula-mula kita akan mengkaji bagaimana tambang Tesseract OCR berkaitan dengan tugas-tugas ini.

Tesseract OCR

Perkara terbaik mengenai Tesseract ialah ia adalah percuma dan mudah digunakan. Pada dasarnya ia adalah alat baris arahan, tetapi terdapat juga pembalut Python yang disebut pytesseract dan gImageReader frontend GUI, jadi anda boleh memilih yang paling sesuai dengan tujuan anda.

Menggunakan alat baris arahan adalah semudah

tesseract imagename outputbase [outputformat]

Jika kita tidak menentukan format output, lalai adalah fail teks yang mengandungi aksara yang diiktiraf. Sebagai alternatif, pdf akan mengeluarkan pdf yang boleh dicari, dan dokumen XML dan alto yang mengandungi maklumat tambahan seperti kedudukan karakter (dalam standard XML yang digunakan oleh nama yang sama). Lihat di sini untuk hujah lebih lanjut.

Inilah yang Tesseract mendapati dalam imej ujian kami:

Tesseract: e-mel yang diimbas, surat tulisan tangan.Tesseract: e-mel yang ditangkap telefon pintar - tiada output sama sekali, jadual yang diimbas.

Seperti yang anda perhatikan, Tesseract OCR mengiktiraf teks dalam e-mel yang diimbas dengan baik. Walau bagaimanapun, apabila ia datang kepada surat tulisan tangan dan dokumen yang ditangkap telefon pintar, sama ada tidak masuk akal atau secara literal tiada apa yang dihasilkan.

Untuk output dari imej jadual saya menggunakan gImageReader, front GUI yang disebutkan di atas. Ternyata output Tesseract membungkus kotak untuk bidang gambar yang mengandung teks, tetapi itu bahkan tidak mendekati pengambilan meja yang tepat. Sudah tentu anda boleh memproses output Tesseract oleh alat pengekstrakan meja anda sendiri. Siaran blog kami mengenai penggunaan OCR untuk lukisan teknikal dan mengeluarkan tarikh dari surat memberikan idea bagaimana.

ABBYY FineReader

ABBYY menawarkan pelbagai produk berkaitan OCR. Saya akan menggunakan API ABBYY Cloud OCR SDK. Perkhidmatan awan ini menggunakan enjin ABBYY FineReader OCR, yang juga boleh dipasang di dalam negara. Tidak seperti Tesseract, ABBYY Cloud OCR tidak percuma (harga).

Sekiranya anda ingin mengetahui cara menggunakan API, anda akan mendapati semua yang anda perlu ketahui dalam panduan permulaan yang cepat ini.

Sekali lagi, kami mempunyai pilihan berbeza berkaitan dengan format output OCR. Selain daripada yang disediakan oleh Tesseract, kami juga boleh meminta ABBYY untuk membuat output XLSX spreadsheet. Saya akan menggunakan pilihan itu untuk imej jadual kami.

ABBYY: e-mel yang diimbas, surat tulisan tangan.ABBYY: e-mel yang ditangkap telefon pintar, meja yang diimbas.

ABBYY FineReader tidak mempunyai masalah dengan e-mel yang diimbas dengan baik dan tidak semestinya baik pada dokumen yang ditangkap telefon pintar. Ia gagal sepenuhnya pada dokumen tulisan tangan, walaupun.

Kebaikan utama adalah kapasiti pengekstrakan meja: seperti yang anda lihat dalam gambar terakhir, output mengekalkan struktur jadual. Melihat lebih dekat ke output XML mendedahkan bahawa FineReader memang mengiktiraf bahagian meja dan sel individu, dan juga mengekstrak butiran seperti gaya font (lihat di sini untuk penerangan skema XML ABBYY).

Penglihatan Awan Google

Seterusnya sejajar ialah Visi Awan Google yang akan kami gunakan melalui API. Sama seperti FineReader, ia adalah perkhidmatan yang dibayar (harga).

Menggunakan API Visi Awan agak lebih rumit daripada menggunakan API atau Tesseract ABBYY. Untuk mengetahui cara kerjanya, anda dapat mencari titik permulaan yang bagus di sini dan di sini.

Kami mendapat output berikut:

Google: e-mel yang diimbas, surat tulisan tangan.Google: e-mel yang ditangkap telefon pintar, meja yang diimbas.

Google berbuat baik pada e-mel yang diimbas dan mengiktiraf teks dalam dokumen yang ditangkap telefon pintar sama seperti ABBYY. Walau bagaimanapun, ia jauh lebih baik daripada Tesseract atau ABBYY dalam mengiktiraf tulisan tangan, kerana imej hasil kedua menunjukkan: masih jauh dari sempurna, tetapi sekurang-kurangnya ia mendapat beberapa perkara yang betul. Di sisi lain, Google Cloud Vision tidak mengendalikan jadual dengan sangat baik: Ia mengekstrak teks, tetapi itu sahaja.

Malah, output Cloud Vision asli adalah fail JSON yang mengandungi maklumat mengenai kedudukan karakter. Sama seperti Tesseract, berdasarkan maklumat ini, seseorang boleh cuba untuk mengesan jadual, tetapi sekali lagi, fungsi ini tidak dibina.

Ambil perhatian bahawa terdapat juga versi beta Google Memahami Versi beta AI sekarang, yang belum kami diuji pada ketika ini.

Amazon Textract

Calon terakhir kami juga merupakan penyelesaian berbayar berasaskan awan (harga).

Untuk tujuan ujian, anda boleh menggunakan Textract dengan mudah dengan antara muka penyemak imbas drag-and-drop, tetapi untuk aplikasi siap pengeluaran anda mungkin lebih suka menggunakan API yang disediakan.

Menggunakan antara muka pelayar, output Textract

  • respons API sebagai fail JSON,
  • teks mentah,
  • jadual yang dikesan dalam fail CSV berasingan,
  • pasangan nilai utama (menafsirkan input sebagai satu bentuk), serta fail CSV.

Ini memberi kami hasil berikut:

Amazon: e-mel yang diimbas, surat tulisan tangan.Amazon: e-mel yang ditangkap telefon pintar, meja yang diimbas.

Seperti dahulu, e-mel kelihatan baik, tetapi nampaknya Textract tidak mengendalikan teks tulisan tangan dengan sangat baik. Tambahan pula, walaupun dokumen yang ditangkap telefon pintar kelihatan baik pada pandangan pertama, pemeriksaan yang lebih mendalam menunjukkan bahawa OCR Amazon bercampur dengan garisan (disebabkan kelengkungan imej dokumen).

Untuk dokumen jadual kami hanya menunjukkan satu daripada tiga jadual Textract dikenalpasti. Tetapi sudah terlihat bahawa beberapa tajuk lajur hilang dan beberapa nombor berada di tempat yang salah.

Kesimpulannya

Jadual ini merangkum keputusan ujian kami:

Pengambilan utama dalam kata-kata:

  • Sekiranya anda berurusan dengan dokumen yang ditulis dan diimbas dengan teliti, atau mungkin fail PDF yang tidak mempunyai metadata, maka Tesseract OCR boleh melakukan tugas itu, walaupun perkhidmatan komersial lebih dipercayai.
  • Sekiranya pengiktirafan watak tulisan tangan penting bagi anda, Google Cloud Vision adalah satu-satunya pilihan anda di kalangan orang yang diuji sehingga hari ini.
  • Sekiranya kualiti imej dokumen buruk, kedua-dua ABBYY FineReader dan Google Cloud Vision masih melakukan kerja yang baik.
  • Jika matlamat anda adalah untuk mendapatkan maklumat jadual, anda mungkin mahu memilih ABBYY FineReader.

Originally diterbitkan di https://dida.do pada 20 Januari 2020.