Tesseract: Penyelesaian OCR percuma
Pengenalan
Tessereact dianggap salah satu penyelesaian OCR terbaik yang ada. Sejak tahun 2006 ia ditaja oleh Google, sebelumnya dikembangkan oleh Hewlett Packard di C dan C ++ antara tahun 1985 dan 1998. Sistem ini mampu mengenal pasti tulisan tangan, ia dapat belajar meningkatkan ketepatannya, dan antara yang paling maju dan lengkap di pasaran.
Ia dengan mudah mengalahkan pesaing komersial seperti ABBY, jika anda mencari penyelesaian serius untuk OCR, Tesseract adalah yang paling tepat, tetapi jangan mengharapkan penyelesaian yang besar: ia menggunakan teras per proses, yang bermaksud pemproses 8 teras (hyperthreading diterima) akan dapat memproses 8 atau 16 gambar secara serentak.
Semasa saya menggunakan Tesseract, kami berjaya menguruskan ribuan bakal pelanggan memuat naik kandungan tulisan tangan, gambar dengan teks, dan lain-lain. Kami menggunakan 48 pelayan teras, dengan DatabaseByDesign dan kemudian dengan AWS, kami tidak pernah menghadapi masalah sumber.
Kami mempunyai pengunggah yang membeza-bezakan antara fail teks seperti fail Microsoft Office atau Open Office dan gambar atau dokumen yang diimbas. Pemuat naik menentukan apa sahaja skrip OCR atau PHP yang akan memproses pesanan, dalam bidang pengecaman teks.
Tesseact adalah penyelesaian yang bagus, tetapi sebelum memikirkannya, anda mesti tahu, versi Tesseract terakhir membawa peningkatan besar, sebahagian daripadanya bermaksud kerja keras. Walaupun latihan boleh berlangsung berjam-jam atau berhari-hari, latihan versi Tesserct baru-baru ini mungkin beberapa hari, minggu, atau bahkan berbulan-bulan jika anda mencari penyelesaian OCR pelbagai bahasa.
Memasang Tesseract 4 pada Debian / Ubuntu:
apt-get install tesseract-ocrSekiranya anda menggunakan sebaran Linux yang berbeza, anda perlu menyalin versi repositori github terakhir dan menyalinnya .fail data terlatih ke dalam 'tessdata' (/ usr / share / tesseract-ocr / tessdata atau / usr / share / tessdata).
Secara lalai Tesseract akan memasang pek bahasa Inggeris, untuk memasang bahasa tambahan yang dijalankan
apt-get install tesseract-ocr-LANGsebagai contoh, untuk menambah bahasa Ibrani:
apt-get install tesseract-ocr-hebAnda boleh memasukkan semua bahasa dengan menjalankan:
apt-get install tesseract-ocr-all
Agar Tesseract dapat berfungsi dengan baik, kita perlu menggunakan perintah "convert" (tukar antara format gambar dan juga mengubah ukuran gambar, kabur, memotong, putar, dither, draw on, flip, join, re-sample, dan banyak lagi) yang disediakan oleh Imagemagick:
Mari pasang imagemagick dengan apt-get:
apt-get install imagemagickSekarang mari kita uji Tesseract, cari gambar yang mengandungi teks dan jalankan:
tesseract [image_name] [output_nama nama]Sekiranya dipasang dengan betul, Tesseract akan mengekstrak teks dari gambar.
Semasa saya bekerja dengan Tesseract, semua yang kami perlukan adalah mengira dokumen. Seperti program lain, anda boleh, dan mesti, melatihnya, di Word kita dapat menentukan beberapa simbol yang boleh dihitung atau tidak, jika menghitung atau tidak angka, dll. sama dengan Tesseract.
Kami juga dapat melatih kepekaannya terhadap gambar tertentu.
Pengoptimuman Tesseract:
Pengoptimuman Saiz: Menurut sumber rasmi, ukuran piksel optimum untuk gambar yang berjaya diproses oleh Tesseract adalah 300DPI. Kita perlu memproses gambar apa pun menggunakan parameter -r untuk menerapkan DPI ini. Meningkatkan DPI juga akan meningkatkan masa pemprosesan.
Putaran halaman: Sekiranya semasa mengimbas halaman tidak diputar dengan betul dan tetap 180 ° atau 45 °, ketepatan Tesseract akan berkurang, anda boleh menggunakan skrip Python ini untuk secara automatik mengesan dan menyelesaikan masalah putaran.
Penghapusan Sempadan: Menurut lelaki rasmi Tesseract, perbatasan secara keliru dapat dipilih sebagai watak, terutama sempadan gelap dan di mana terdapat variasi gradasi. Mengeluarkan sempadan mungkin merupakan langkah yang baik untuk mencapai ketepatan maksimum dengan Tesseract.
Menghilangkan Bunyi: Menurut Tesseracts, kebisingan "adalah variasi kecerahan atau warna secara acak dalam gambar". Kita boleh membuangnya di binarization langkah, yang bermaksud polarisasi warnanya.
Latihan Tesseract:
Walaupun kebanyakan tutorial hanya merangkumi pemasangan Tesseract, saya akan meringkaskan cara melatih sistem OCR anda, di sini kita dapat mencari tutorial untuk semua versi. Dalam artikel ini saya akan meringkaskan cara melatih Tesseract 4 yang merangkumi yang baru "Mesin pengiktirafan berasaskan rangkaian neural yang memberikan ketepatan yang jauh lebih tinggi (pada gambar dokumen) daripada versi sebelumnya, sebagai imbalan untuk peningkatan ketara dalam kekuatan komputasi yang diperlukan. Namun, pada bahasa yang rumit, ia sebenarnya lebih pantas daripada asas Tesseract."
Sebelum meneruskan, kita perlu memasang perpustakaan tambahan:
sudo apt-get install libicu-devsudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
Dan kami akan memasang alat latihan dengan menjalankan, di dalam direktori Tesseract:
membuatmembuat latihan
sudo buat latihan-pasang
Menurut wiki rasmi Tesseract, kami mempunyai 3 pilihan semasa untuk melatih sistem OCR kami:
- "Nada yang baik. Bermula dengan bahasa terlatih yang ada, latih data tambahan khusus anda. Ini mungkin berfungsi untuk masalah yang hampir dengan data latihan yang ada, tetapi berbeza dengan cara yang halus, seperti fon yang tidak biasa. Boleh berfungsi dengan sebilangan kecil data latihan.
- Potong lapisan atas (atau beberapa lapisan yang sewenang-wenangnya) dari rangkaian dan buat semula lapisan atas baru menggunakan data baru. Sekiranya penalaan tidak berfungsi, ini kemungkinan besar merupakan pilihan terbaik seterusnya. Memotong lapisan atas masih boleh berfungsi untuk melatih bahasa atau skrip yang sama sekali baru, jika anda memulakan dengan skrip yang paling serupa.
- Latih diri dari awal. Ini adalah tugas yang menakutkan, kecuali anda mempunyai set latihan yang sangat representatif dan cukup besar untuk masalah anda. Sekiranya tidak, anda mungkin akan berakhir dengan rangkaian yang dipasang dengan betul yang sangat baik pada data latihan, tetapi tidak pada data sebenar.
Walaupun pilihan di atas mungkin terdengar berbeza, langkah latihan sebenarnya hampir sama, selain dari baris perintah, jadi agak mudah untuk mencuba semuanya, memandangkan masa atau perkakasan untuk menjalankannya secara selari."
Dalam tutorial ini, kita hanya akan menjalankan tesstrain.skrip sh yang akan memanggil program yang diperlukan untuk melatih bahasa tertentu.
Pertama sekali mari kita mengklon semua fail dalam / usr / share / tesseract-ocr kami:
klon git https: // github.com / tesseract-ocr / tesseract
Pergi ke / usr / share / tesseract-ocr / tesseract / training (direktori pemasangan lalai Tesseract) dan jalankan:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Tukar "heb" untuk bahasa yang ingin anda latih, dan juga edit jalan ke data anda.
Di dalam direktori / usr / share / tesseract-ocr / tesseract / latihan anda akan menemui fail khusus bahasa.berguna untuk menambah peraturan untuk bahasa tertentu.
Penyelesaian masalah
Tesseract adalah penyelesaian OCR terbaik bagi saya, tetapi baru-baru ini ia membuat perubahan besar dari versi sebelumnya dan banyak pengguna mengadu tentang perubahan atau perkara yang tidak lagi berfungsi, saya tidak akan risau kerana perubahan tersebut nampaknya memberikan hasil yang baik. Komuniti Tesseract sangat aktif, sekiranya anda menghadapi masalah menjalankan tesseract, jadilah sebahagian daripada komuniti Tesseract di sini.