Tesseract: brezplačna raztopina OCR
Uvod
Tessereact velja za eno najboljših razpoložljivih rešitev OCR. Od leta 2006 ga sponzorira Google, prej pa ga je razvil Hewlett Packard v C in C ++ med letoma 1985 in 1998. Sistem je sposoben prepoznati celo rokopis, lahko se nauči z večjo natančnostjo in je med najbolj razvitimi in popolnimi na trgu.
Z lahkoto premaga komercialne konkurente, kot je ABBY, če iščete resno rešitev za OCR, je Tesseract najnatančnejša, vendar ne pričakujte obsežnih rešitev: uporablja jedro na postopek, kar pomeni 8-jedrni procesor sprejel) bo lahko hkrati obdelal 8 ali 16 slik.
Ko sem uporabljal Tesseract, smo upravljali na tisoče potencialnih strank, ki so nalagale ročno napisane vsebine, slike z besedilom itd. Uporabili smo 48 osrednjih strežnikov, z DatabaseByDesign in nato z AWS nikoli nismo imeli težav z viri.
Imeli smo nalagalnik, ki je razlikoval med besedilnimi datotekami, kot so datoteke Microsoft Office ali Open Office, ter slikami ali optično prebranimi dokumenti. Naložilec je na področju prepoznavanja besedila določil, katerikoli skripti OCR ali PHP bodo obdelali naročilo.
Tesseact je odlična rešitev, toda preden premislite, morate vedeti, da so zadnje različice Tesserakta prinesle velike izboljšave, nekatere od njih pomenijo trdo delo. Medtem ko bi lahko usposabljanje trajalo ure ali dni, najnovejše različice Tessercta lahko trajajo dni, tedne ali celo mesece, če iščete večjezično rešitev OCR.
Namestitev Tesseract 4 v Debian / Ubuntu:
apt-get namestite tesseract-ocrČe uporabljate drugačno distribucijo Linuxa, boste morali kopirati zadnjo različico repozitorija github in kopirati .datoteka z usposobljenimi podatki v 'tessdata' (/ usr / share / tesseract-ocr / tessdata ali / usr / share / tessdata).
Privzeto bo Tesseract namestil angleški jezikovni paket za namestitev dodatnih jezikov
apt-get namestite tesseract-ocr-LANGna primer, da dodate hebrejščino:
apt-get namestite tesseract-ocr-hebS tekom lahko vključite vse jezike:
apt-get namestite tesseract-ocr-all
Da bo Tesseract pravilno deloval, bomo morali uporabiti ukaz »pretvori« (pretvorba med slikovnimi formati ter spreminjanje velikosti slike, zameglitev, obrezovanje, odstranjevanje madežev, drsenje, risanje, obračanje, združevanje, ponovni vzorec in veliko več), ki ga je poslal Imagemagick
Omogočimo namestitev imagemagick z apt-get:
apt-get namestite imagemagickZdaj pa preizkusimo Tesseract, poiščemo sliko, ki vsebuje besedilo, in zaženimo:
tesseract [ime_slike] [ime_izhodne datoteke]Če je nameščen pravilno, bo Tesseract izvlekel besedilo iz slike.
Ko sem delal s Tesseractom, je bilo vse, kar smo potrebovali, štetje dokumentov. Kot pri katerem koli drugem programu, ki ga lahko in morate trenirati, lahko tudi v Wordu določimo nekaj simbolov, ki jih je mogoče šteti ali ne, če štejemo ali ne števila itd. enako pri Tesseractu.
Lahko tudi naučimo njegovo občutljivost za določene slike.
Optimizacija Tesseract:
Optimizacija velikosti: Po uradnih virih je optimalna velikost slikovnih pik za sliko, ki jo Tesseract uspešno obdela, 300 DPI. Za uveljavitev tega DPI bomo morali obdelati katero koli sliko s parametrom -r. Če povečate DPI, se bo podaljšal tudi čas obdelave.
Zasuk strani: Če se pri optično prebrani strani stran ne zavrti pravilno in ostane 180 ° ali 45 °, se natančnost Tesserakta zmanjša, lahko s tem skriptom Python samodejno zaznate in odpravite težave z vrtenjem.
Odstranitev meje: Po besedah Tesseractovega uradnega človeka lahko meje napačno izberemo kot znake, zlasti temne obrobe in tam, kjer je gradacija različna. Odstranjevanje robov je lahko dober korak za doseganje največje natančnosti s Tesseractom.
Odstranjevanje hrupa: Po besedah Tesseracts je šum "naključno spreminjanje svetlosti ali barve na sliki". Lahko ga odstranimo v binarizacija korak, kar pomeni polariziranje barv.
Usposabljanje Tesseract:
Medtem ko večina vadnic zajema samo namestitev Tesserakta, bom povzel, kako trenirati svoj OCR sistem, tukaj lahko najdemo vadnico za vse različice. V tem članku bom povzel, kako trenirati Tesseract 4, ki vključuje novega „Mehanizem za prepoznavanje na nevronski mreži, ki zagotavlja bistveno večjo natančnost (na slikah dokumentov) kot prejšnje različice, v zameno za znatno povečanje zahtevane računske moči. V zapletenih jezikih pa je morda dejansko hitrejši od osnovnega Tesseract."
Pred nadaljevanjem bomo morali namestiti dodatne knjižnice:
sudo apt-get namestite libicu-devsudo apt-get namestite libpango1.0-razv
sudo apt-get namestite libcairo2-dev
In orodja za vadbo bomo namestili tako, da zaženemo v imeniku Tesseract:
narediteizvedite trening
sudo make training-install
Glede na uradni wiki podjetja Tesseract imamo trenutno 3 možnosti za usposabljanje našega sistema OCR:
- "Lepa melodija. Začenši z obstoječim izurjenim jezikom, se uri na svojih dodatnih podatkih. To lahko deluje pri težavah, ki so blizu obstoječim podatkom o vadbi, vendar se na nek subtilen način razlikujejo, na primer pri posebej nenavadni pisavi. Lahko deluje tudi z majhno količino podatkov o treningu.
- Odrežite zgornjo plast (ali poljubno število slojev) iz omrežja in z novimi podatki preusmerite novo zgornjo plast. Če natančna nastavitev ne deluje, je to najverjetneje naslednja najboljša možnost. Če odrežete zgornjo plast, lahko še vedno delate za usposabljanje popolnoma novega jezika ali pisave, če začnete z najbolj podobnim scenarijem.
- Vadite se iz nič. To je zastrašujoča naloga, razen če imate za svojo težavo zelo reprezentativen in dovolj obsežen trening. V nasprotnem primeru boste verjetno dobili preveč opremljeno mrežo, ki bo res dobro delovala na podatkih o vadbi, ne pa tudi na dejanskih podatkih.
Čeprav se zgornje možnosti morda slišijo drugače, so koraki vadbe v resnici skoraj enaki, razen ukazne vrstice, zato je razmeroma enostavno preizkusiti vse načine, glede na čas ali strojno opremo za njihovo vzporedno izvajanje."
V tej vadnici bomo zagnali samo teststrain.sh skript, ki bo poklical potrebne programe za učenje določenega jezika.
Najprej omogočimo kloniranje vseh datotek v našem / usr / share / tesseract-ocr:
klon git https: // github.com / tesseract-ocr / tesseract
Pojdite na / usr / share / tesseract-ocr / tesseract / training (privzeti namestitveni imenik Tesseract) in zaženite:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Spremenite "heb" za jezik, ki ga želite trenirati, in uredite tudi pot do svojih podatkov.
V imeniku / usr / share / tesseract-ocr / tesseract / training našli boste datoteko, specifično za jezik.sh koristno dodati pravila za določene jezike.
Odpravljanje težav
Tesseract je zame najboljša rešitev za optično prepoznavanje znakov, toda v zadnjem času se je precej spremenil v primerjavi s prejšnjimi različicami in mnogi uporabniki se pritožujejo nad spremembami ali stvarmi, ki ne delujejo več, ne bi me skrbelo, saj se zdi, da spremembe dajejo odlične rezultate. Tesseractova skupnost je zelo aktivna, če naletite na težave pri zagonu tesseracta, postanite del teseractove skupnosti tukaj.