„Tesseract“: nemokamas OCR tirpalas
Įvadas
„Tessereact“ laikomas vienu geriausių prieinamų OCR sprendimų. Nuo 2006 m. Ją remia „Google“, anksčiau ją 1985–1998 m. „H“ ir „C ++“ sukūrė „Hewlett Packard“. Sistema sugeba nustatyti net rašyseną, ji gali išmokti didinti tikslumą ir yra viena iš labiausiai išvystytų ir išsamiausių rinkoje.
Tai lengvai pranoksta komercinius konkurentus, tokius kaip „ABBY“, jei ieškote rimto OCR sprendimo, „Tesseract“ yra tiksliausias sprendimas, tačiau nesitikėkite dėl masyvių sprendimų: jis naudoja procesui skirtą šerdį, o tai reiškia 8 branduolių procesorių („hyperthreading“) priimta) vienu metu galės apdoroti 8 arba 16 vaizdų.
Kai naudojau „Tesseract“, mes valdėme tūkstančius potencialių klientų, įkeliančių ranka rašytą turinį, vaizdus su tekstu ir kt. Mes naudojome 48 pagrindinius serverius, naudodami „DatabaseByDesign“ ir tada naudodami „AWS“, niekada neturėjome išteklių problemų.
Turėjome įkėlėją, kuris skyrė tekstinius failus, pvz., „Microsoft Office“ ar „Open Office“ failus, ir vaizdus ar nuskaitytus dokumentus. Įkėlėjas nustatė, kad OCR ar PHP scenarijai apdorotų užsakymą teksto atpažinimo srityje.
„Tesseact“ yra puikus sprendimas, tačiau prieš galvodami apie tai turite žinoti, paskutinės „Tesseract“ versijos atnešė didelių patobulinimų, kai kurios iš jų reiškia sunkų darbą. Nors mokymai gali trukti kelias valandas ar dienas, naujausi „Tesserct“ versijų mokymai gali būti dienų, savaičių ar net mėnesių, jei ieškote daugiakalbio OCR sprendimo.
„Tesseract 4“ diegimas „Debian“ / „Ubuntu“:
apt-get install tesseract-ocrJei naudojate kitą „Linux“ paskirstymą, turėsite nukopijuoti paskutinę „github“ saugyklos versiją ir nukopijuoti .„treendata“ failą į „tessdata“ (/ usr / share / tesseract-ocr / tessdata arba / usr / share / tessdata).
Pagal numatytuosius nustatymus „Tesseract“ įdiegs anglų kalbos paketą, kad įdiegtų papildomas kalbas
„apt-get install“ „tesseract-ocr-LANG“pavyzdžiui, pridėti hebrajų:
apt-get install tesseract-ocr-hebBėgdami galite įtraukti visas kalbas:
apt-get install tesseract-ocr-all
Norint, kad „Tesseract“ veiktų tinkamai, reikės naudoti komandą „convert“ (konvertuoti tarp vaizdo formatų, taip pat keisti vaizdo dydį, sulieti, apkarpyti, išvalyti, nušlifuoti, piešti, apversti, prisijungti, iš naujo atrinkti ir daug daugiau) pateikė „Imagemagick“:
Leidžia įdiegti „imagemagick“ su apt-get:
apt-get install imagemagickDabar išbandykime „Tesseract“, raskite vaizdą su tekstu ir paleiskite:
tesseract [image_name] [išvesties failo pavadinimas]Jei tinkamai įdiegta, „Tesseract“ ištrauks tekstą iš paveikslėlio.
Kai dirbau su „Tesseract“, mums tereikėjo suskaičiuoti dokumentus. Kaip ir bet kurioje kitoje programoje, galite ir turite ją išmokyti, „Word“ galime apibrėžti keletą simbolių, kuriuos galima suskaičiuoti ar ne, jei norite skaičiuoti skaičius, ar ne. tas pats ir su Tesseract.
Taip pat galime išmokyti jautrumą konkretiems vaizdams.
„Tesseract“ optimizavimas:
Dydžio optimizavimas: Remiantis oficialiais šaltiniais, optimalus taškų dydis, kad „Tesseract“ sėkmingai apdorotų vaizdą, yra 300DPI. Bet kurį vaizdą turėsime apdoroti naudodami parametrą -r, kad galėtume užtikrinti šią DPI. Padidinus DPI, pailgės ir apdorojimo laikas.
Puslapio pasukimas: Jei nuskaitytas puslapis nebuvo tinkamai pasuktas ir liko 180 ° arba 45 °, „Tesseract“ tikslumas sumažės, galite naudoti šį „Python“ scenarijų, kad automatiškai aptiktumėte ir išspręstumėte pasukimo problemas.
Pasienio pašalinimas: Pasak oficialaus „Tesseract“ žmogaus, kraštus galima klaidingai pasirinkti kaip simbolius, ypač tamsius kraštus ir ten, kur yra gradacijos įvairovė. Kraštų pašalinimas gali būti geras žingsnis norint pasiekti maksimalų tikslumą naudojant „Tesseract“.
Pašalinkite triukšmą: Pasak Tesseracts, triukšmas „yra atsitiktinis vaizdo ryškumo ar spalvos pokytis“. Mes galime jį pašalinti binarizacija žingsnis, o tai reiškia poliarizuoti spalvas.
„Tesseract“ mokymas:
Nors dauguma pamokų apima tik „Tesseract“ diegimą, aš apibendrinsiu, kaip mokyti OCR sistemą, čia mes galime rasti visų versijų pamoką. Šiame straipsnyje apibendrinsiu, kaip mokyti „Tesseract 4“, kuriame yra naujas „Neuroninis tinklu pagrįstas atpažinimo variklis, užtikrinantis žymiai didesnį tikslumą (su dokumentų vaizdais) nei ankstesnės versijos, mainais už reikšmingą reikalingos skaičiavimo galios padidėjimą. Tačiau sudėtingomis kalbomis tai gali būti greitesnė nei „Tesseract“ bazė.“
Prieš tęsdami turėsime įdiegti papildomas bibliotekas:
sudo apt-get install libicu-devsudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
Ir mes įdiegsime mokymo įrankius bėgdami „Tesseract“ kataloge:
padarytipadaryti mokymą
sudo padaryti mokymą-įdiegti
Remiantis oficialia „Tesseract“ wiki, mes turime 3 dabartines galimybes mokyti savo OCR sistemą:
- "Gera melodija. Pradėkite nuo esamos mokomos kalbos, mokykitės savo konkrečių papildomų duomenų. Tai gali būti naudinga problemoms, kurios yra artimos esamiems treniruočių duomenims, tačiau skiriasi tam tikru subtiliu būdu, pavyzdžiui, ypač neįprastas šriftas. Gali dirbti net su nedideliu kiekiu treniruočių duomenų.
- Iškirpkite viršutinį sluoksnį (arba kokį nors kiekį savavališko sluoksnių skaičiaus) iš tinklo ir permokykite naują viršutinį sluoksnį naudodami naujus duomenis. Jei tikslus derinimas neveikia, greičiausiai tai yra kitas geriausias variantas. Pertraukus viršutinį sluoksnį vis tiek gali būti mokoma visiškai naujos kalbos ar scenarijaus, jei pradėsite nuo panašiausiai atrodančio scenarijaus.
- Perkvalifikuoti nuo nulio. Tai nelengva užduotis, nebent turite labai reprezentatyvių ir pakankamai didelių mokymų savo problemai spręsti. Jei ne, tikėtina, kad atsiras per daug įrengtas tinklas, kuris tikrai gerai veikia mokymo duomenis, bet ne faktinius duomenis.
Nors pirmiau pateiktos parinktys gali skambėti skirtingai, treniruočių veiksmai iš tikrųjų yra beveik identiški, išskyrus komandinę eilutę, todėl išbandyti visus būdus yra gana lengva, atsižvelgiant į laiką ar aparatinę įrangą juos paleisti lygiagrečiai.“
Šioje pamokoje vykdysime tik „tesstrain“.sh scenarijus, kuris iškvies būtinas programas tam, kad išmoktų konkrečią kalbą.
Pirmiausia leidžia klonuoti visus failus, esančius mūsų / usr / share / tesseract-ocr:
gito klonas https: // github.com / tesseract-ocr / tesseract
Eikite į / usr / share / tesseract-ocr / tesseract / training (numatytasis „Tesseract“ diegimo katalogas) ir paleiskite:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Pakeiskite „heb“ kalbą, kurią norite mokyti, taip pat redaguokite kelią į savo duomenis.
Kataloge / usr / share / tesseract-ocr / tesseract / mokymas rasite failo kalbą.Tai naudinga pridėti taisykles konkrečioms kalboms.
Problemų sprendimas
„Tesseract“ man yra geriausias OCR sprendimas, tačiau pastaruoju metu jis padarė didžiulius pakeitimus, palyginti su ankstesnėmis versijomis, ir daugelis vartotojų skundžiasi pakeitimais ar nebeveikiančiais dalykais. Nesijaudinčiau, nes, atrodo, kad pakeitimai duoda puikių rezultatų. „Tesseract“ bendruomenė yra labai aktyvi. Jei pastebėsite problemų, susijusių su „tesseract“ vykdymu, tapkite „Tesseract“ bendruomenės dalimi čia.