OCR pada sistem Linux [tertutup]


14

Saya selalu menemukan teknologi OCR berada di belakang pada sistem open source. Saya juga telah menyaksikan proyek Ocropus sejak masih bayi. Saya sudah mencoba apa yang saya dengar adalah mesin OCR terbaik yang tersedia untuk Linux, Tesseract , dan merasa sangat kurang untuk dokumen bisnis. Apakah ada implementasi OCR lain yang lebih menjanjikan? Bagaimana dengan tujuan yang lebih penuh harapan untuk menafsirkan tulisan tangan? Apa yang mungkin pada sistem * nix di bidang ini?


1
Haruskah ini dimigrasi ke perangkat lunak?
Jeff Schaller

@ Jeff mungkin tidak, mengingat sudah hampir tujuh tahun. Banyak yang telah terjadi sejak itu. Sebagian di OCR ... ;-)
roaima

Jawaban:


4

Tesseract

Pada 2018, perangkat lunak OCR open source terbaik yang tersedia adalah Tesseract 4 (beta) dengan model OCR jaringan saraf LSTM baru . Kinerja OCR-nya jauh lebih baik daripada model OCR sebelumnya yang digunakan dalam versi 3.

Contoh (menghasilkan file PDF output.pdfdengan lapisan teks untuk dokumen Jerman yang dipindai):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

Cetak teks yang dikenali ke stdout:

$ tesseract --oem 1 -l deu page page-0001.png stdout

Daftar bahasa yang diinstal:

$ tesseract --list-langs

Dukungan untuk cukup banyak bahasa / skrip tersedia dalam bentuk kumpulan data terlatih yang dapat diunduh , misalnya ada set data untuk Fraktur.

Dengan model LSTM baru, Tesseract mengambil beberapa inspirasi dari proyek penelitian OCRopus .

Tesseract versi 3 berkinerja relatif buruk bahkan pada gambar input berkualitas baik, yaitu seringkali mendeteksi karakter tunggal dalam piksel debu (di luar konteks teks apa pun) dan dengan mudah memperkenalkan kesalahan karakter tunggal dengan kata-kata terkenal.

Runcing

Kinerja Cuneiform OCR tidak seburuk itu, tetapi tidak dipelihara secara aktif (rilis terakhir pada tahun 2011, versi 1.1) dan mudah macet dan memiliki beberapa masalah lain:

  • Kesalahan segmentasi dengan berbagai paket dan rilis
  • Algoritma tata letaknya hanya rusak, yaitu dalam dokumen satu kolom paragraf sering diacak secara acak
  • itu tidak kesalahan pada opsi yang tidak dikenal

Anda dapat menonaktifkan algoritme tata letak seperti ini:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

( -lmenentukan bahasa dokumen sumber)

ocrad

$ ocrad -F utf8 image-0001

Teks dicetak secara default ke stdout.

Dalam dokumen bisnis, ia kehilangan kata yang digarisbawahi, di mana tulisan paku / tesseract / gocr tidak.

gocr

$ gocr image-0001

Teks dicetak secara default ke stdout.

Perangkat keras

Sane memiliki dukungan yang sangat baik untuk banyak pemindai umpan dokumen otomatis (ADF), misalnya untuk yang Avision dan Fujitsu .

Disertakan dengan Sane adalah scanimageprogram baris perintah yang dapat Anda gunakan untuk membangun pipa pemindaian skrip (lih. Mis. adf2pdf.pySkrip saya ).


Saya mencoba Cuneiform. Ini bekerja dengan baik jika Anda perlu mengenali gambar yang dipindai (bukan foto). Saya menggunakan Yagf sebagai GUI.
Sergei

3

Saya menemukan pertanyaan serupa di StackOverflow dan Asprise OCR SDK , salah satu produk komersial yang terhubung , menawarkan versi Linux.


Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban hanya tautan dapat menjadi tidak valid jika halaman tertaut berubah. - Dari Ulasan
Thomas

1
@ Thomas tautan adalah satu-satunya jawaban yang mungkin karena tautan menunjuk ke alat tertentu seperti yang diminta oleh OP. Tidak semua jawaban hanya tautan buruk. Ini memberi nama perangkat lunak tertentu dan tautan ke halaman webnya. Bahkan jika tautannya terputus, Anda tetap dapat menemukannya dari namanya.
terdon

1

Ada beberapa alat baris perintah OCR yang populer:

  • Tesseract ( ReadMe , FAQ ) (Python)

    Juga tersedia untuk: Tesseract .NET , Tesseract iOS

    Mesin OCR yang dikembangkan di HP Labs antara 1985 dan 1995 ... dan sekarang di Google. Tesseract mungkin adalah mesin OCR open source paling akurat yang tersedia.

    Pemakaian:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    Contoh: Jadikan PDF yang dapat dicari (OCR) melalui baris perintah / skrip

  • GOCR

    Pengenalan karakter sumber terbuka. Ini mengkonversi gambar teks yang dipindai kembali ke file teks. GOCR dapat digunakan dengan ujung depan yang berbeda, yang membuatnya sangat mudah untuk port ke berbagai OS dan arsitektur. Itu dapat membuka berbagai format gambar, dan kualitasnya telah meningkat setiap hari.

  • OCRopus ™ ( FAQ ) (ditulis dengan Python, NumPy, dan SciPy)

    Sistem OCR berfokus pada penggunaan pembelajaran mesin skala besar untuk mengatasi masalah dalam analisis dokumen, menampilkan analisis tata letak pluggable, pengenalan karakter pluggable, pemodelan bahasa alami statistik, dan kemampuan multi-bahasa.

    Mesin OCRopus didasarkan pada dua proyek penelitian: pengenal tulisan tangan berkinerja tinggi yang dikembangkan pada pertengahan 90-an dan digunakan oleh biro Sensus AS, dan metode analisis tata letak kinerja tinggi yang baru.

    OCRopus adalah pengembangan yang disponsori oleh Google dan pada awalnya dimaksudkan untuk throughput tinggi, upaya konversi dokumen volume tinggi. Kami berharap bahwa itu juga akan menjadi sistem OCR yang sangat baik untuk banyak aplikasi lainnya.

  • Tessnet2 (Sumber terbuka, OCR, Tesseract, .NET, DOTNET, C #, VB.NET, C ++ / CLI)

    Tesseract adalah mesin OCR open source C ++. Tessnet2 adalah .NET assembly yang memaparkan metode yang sangat sederhana untuk melakukan OCR. Tessnet2 berada di bawah lisensi Apache 2 (seperti tesseract), yang berarti Anda dapat menggunakannya seperti yang Anda inginkan, termasuk dalam produk komersial.

Lainnya sudah menyarankan: ABBYY CLI OCR untuk Linux , Asprise OCR .

Baca juga:

Untuk daftar yang lebih lengkap, periksa: Daftar perangkat lunak pengenalan karakter optik di Wikipedia.


0

... OCR lebih dari "hanya pengenalan karakter". Penanganan gambar, preprocessing - analisis halaman / tata letak untuk menemukan teks, gambar, tabel atau barcode. Untuk pengakuan, Anda harus berurusan dengan berbagai font, ukuran, dan bahasa. Ini penting karena untuk mendapatkan hasil yang baik Anda harus menggunakan kamus dan definisi bahasa. Akhirnya orang mengharapkan lebih banyak opsi ekspor daripada teks (mis. XML, RTF, atau PDF yang dapat dicari). Ada beberapa opsi komersial untuk SDK, tetapi tidak murah dan gratis.

Baru-baru ini saya menemukan CLI OCR untuk Linux dari ABBYY . Ada uji coba 100 halaman gratis.


0

Jika Anda memiliki anggaran, saya sangat merekomendasikan ABBYY FineReader Engine CLI untuk Linux . Perusahaan kami telah menggunakannya dalam aplikasi web kami selama setahun dan kami berencana untuk memperbarui lisensi. Kualitas pengenalan yang sangat bagus, antarmuka baris perintah, pengenalan dalam banyak bahasa.


2
Produk ini sudah disebutkan dalam jawaban sebelumnya . Tolong jangan duplikat jawaban!
David Foerster
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.