Tesseract: Solusi OCR gratis
pengantar
Tessereact dianggap sebagai salah satu solusi OCR terbaik yang tersedia. Sejak 2006 disponsori oleh Google, sebelumnya dikembangkan oleh Hewlett Packard di C dan C++ antara 1985 dan 1998. Sistem ini mampu mengidentifikasi bahkan tulisan tangan, dapat belajar meningkatkan akurasinya, dan termasuk yang paling berkembang dan lengkap di pasar.
Ini dengan mudah mengalahkan pesaing komersial seperti ABBY, jika Anda mencari solusi serius untuk OCR, Tesseract adalah yang paling akurat, tetapi jangan berharap untuk solusi besar: ia menggunakan inti per proses, yang berarti prosesor 8 inti (hyperthreading diterima) akan dapat memproses 8 atau 16 gambar secara bersamaan.
Ketika saya menggunakan Tesseract, kami mengelola ribuan calon pelanggan yang mengunggah konten tulisan tangan, gambar dengan teks, dll. Kami menggunakan 48 server inti, dengan DatabaseByDesign dan kemudian dengan AWS, kami tidak pernah memiliki masalah sumber daya.
Kami memiliki pengunggah yang membedakan antara file teks seperti file Microsoft Office atau Open Office dan gambar atau dokumen yang dipindai. Pengunggah menentukan apa pun yang akan diproses oleh skrip OCR atau PHP, di bidang pengenalan teks.
Tesseact adalah solusi yang bagus, tetapi sebelum memikirkannya Anda harus tahu, versi Tesseract terakhir membawa peningkatan besar, beberapa di antaranya berarti kerja keras. Meskipun pelatihan dapat berlangsung selama berjam-jam atau berhari-hari, pelatihan versi Tesserct terbaru mungkin berhari-hari, berminggu-minggu, atau bahkan berbulan-bulan jika Anda mencari solusi OCR multibahasa.
Menginstal Tesseract 4 di Debian / Ubuntu:
apt-get install tesseract-ocrJika Anda menggunakan distribusi Linux yang berbeda, Anda harus menyalin versi repositori github terakhir dan menyalinnya .melatih file data ke 'tessdata' (/usr/share/tesseract-ocr/tessdata atau /usr/share/tessdata).
Secara default Tesseract akan menginstal paket bahasa Inggris, untuk menginstal bahasa tambahan, jalankan
apt-get install tesseract-ocr-LANGmisalnya, untuk menambahkan bahasa Ibrani:
apt-get install tesseract-ocr-hebAnda dapat memasukkan semua bahasa dengan menjalankan:
apt-get install tesseract-ocr-all
Agar Tesseract berfungsi dengan baik, kita perlu menggunakan perintah “convert” (mengonversi antar format gambar serta mengubah ukuran gambar, mengaburkan, memotong, menghilangkan bintik, gentar, menggambar, membalik, menggabungkan, mengambil sampel ulang, dan banyak lagi) disediakan oleh Imagemagick:
Mari kita instal imagemagick dengan apt-get:
apt-get install imagemagickSekarang mari kita uji Tesseract, temukan gambar yang berisi teks dan jalankan:
tesseract [nama_gambar] [nama_file keluaran]Jika dipasang dengan benar, Tesseract akan mengekstrak teks dari gambar.
Ketika saya bekerja dengan Tesseract, yang kami butuhkan hanyalah menghitung dokumen. Seperti halnya program lain Anda dapat, dan harus, melatihnya, di Word kita dapat menentukan beberapa simbol yang dapat dihitung atau tidak, apakah untuk menghitung atau tidak angka, dll. sama dengan Tesseract.
Kami juga dapat melatih kepekaannya terhadap gambar tertentu.
Pengoptimalan Tesseract:
Optimasi Ukuran: Menurut sumber resmi, ukuran piksel optimal untuk gambar yang berhasil diproses oleh Tesseract adalah 300DPI. Kita perlu memproses gambar apa pun menggunakan parameter -r untuk menerapkan DPI ini. Meningkatkan DPI juga akan meningkatkan waktu pemrosesan.
Rotasi halaman: Jika saat dipindai halaman tidak diputar dengan benar dan tetap 180° atau 45°, akurasi Tesseract akan berkurang, Anda dapat menggunakan skrip Python ini untuk mendeteksi dan memperbaiki masalah rotasi secara otomatis.
Penghapusan Perbatasan: Menurut orang resmi Tesseract, perbatasan dapat keliru dipilih sebagai karakter, terutama perbatasan gelap dan di mana ada variasi gradasi. Menghapus batas mungkin merupakan langkah yang baik untuk mencapai akurasi maksimal dengan Tesseract.
Menghapus Kebisingan: Menurut Tesseracts, noise “adalah variasi acak dari kecerahan atau warna dalam suatu gambar”. Kami dapat menghapusnya di binarisasi langkah, yang berarti mempolarisasi warnanya.
Pelatihan Tesseract:
Sementara sebagian besar tutorial hanya mencakup instalasi Tesseract, saya akan merangkum cara melatih sistem OCR Anda, di sini kita dapat menemukan tutorial untuk semua versi. Pada artikel ini saya akan merangkum cara melatih Tesseract 4 yang termasuk yang baru “Mesin pengenalan berbasis jaringan saraf yang memberikan akurasi yang jauh lebih tinggi (pada gambar dokumen) daripada versi sebelumnya, sebagai imbalan atas peningkatan signifikan dalam daya komputasi yang diperlukan. Namun, pada bahasa yang kompleks, ini mungkin lebih cepat daripada Tesseract dasar.”
Sebelum melanjutkan, kita perlu menginstal pustaka tambahan:
sudo apt-get install libicu-devsudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
Dan kami akan menginstal alat pelatihan dengan menjalankan, di dalam direktori Tesseract:
membuatmembuat pelatihan
sudo make training-install
Menurut wiki resmi Tesseract, kami memiliki 3 opsi saat ini untuk melatih sistem OCR kami:
- "Melodi indah. Dimulai dengan bahasa terlatih yang ada, latih data tambahan spesifik Anda. Ini mungkin bekerja untuk masalah yang dekat dengan data pelatihan yang ada, tetapi berbeda dalam beberapa cara yang halus, seperti font yang sangat tidak biasa. Dapat bekerja bahkan dengan sejumlah kecil data pelatihan.
- Potong lapisan atas (atau sejumlah lapisan yang berubah-ubah) dari jaringan dan latih kembali lapisan atas baru menggunakan data baru. Jika penyetelan halus tidak berhasil, kemungkinan besar ini adalah opsi terbaik berikutnya. Memotong lapisan atas masih dapat berfungsi untuk melatih bahasa atau skrip yang sama sekali baru, jika Anda memulai dengan skrip yang terlihat paling mirip.
- Latih ulang dari awal. Ini adalah tugas yang menakutkan, kecuali jika Anda memiliki set pelatihan yang sangat representatif dan cukup besar untuk masalah Anda. Jika tidak, kemungkinan besar Anda akan berakhir dengan jaringan yang terlalu pas yang bekerja dengan sangat baik pada data pelatihan, tetapi tidak pada data aktual.
Meskipun opsi di atas mungkin terdengar berbeda, langkah-langkah pelatihan sebenarnya hampir sama, terlepas dari baris perintah, sehingga relatif mudah untuk mencoba semua cara, mengingat waktu atau perangkat keras untuk menjalankannya secara paralel.”
Dalam tutorial ini, kita hanya akan menjalankan tesstrain.sh skrip yang akan memanggil program yang diperlukan untuk melatih bahasa tertentu.
Pertama-tama mari kita kloning semua file di dalam /usr/share/tesseract-ocr kita:
git clone https://github.com/tesseract-ocr/tesseract
Buka /usr/share/tesseract-ocr/tesseract/training (direktori instalasi default Tesseract) dan jalankan:
$ ./tesstrain.sh --lang heb --langdata_dir /usr/share/tesseract-ocr/langdata --tessdata_dir /usr/share/tesseract-ocr/tessdata
Ubah "heb" untuk bahasa yang ingin Anda latih, dan juga edit jalur ke data Anda.
Di dalam direktori /usr/share/tesseract-ocr/tesseract/training Anda akan menemukan file khusus bahasa.sh berguna untuk menambahkan aturan untuk bahasa tertentu.
Penyelesaian masalah
Tesseract bagi saya adalah solusi OCR terbaik, tetapi baru-baru ini membuat perubahan besar dari versi sebelumnya dan banyak pengguna mengeluh tentang perubahan atau hal-hal yang tidak lagi berfungsi, saya tidak akan khawatir karena perubahan tersebut tampaknya memberikan hasil yang bagus. Komunitas Tesseract sangat aktif, jika Anda menemukan masalah dalam menjalankan tesseract, jadilah bagian dari komunitas Tesseract di sini.