Tesseract: En gratis OCR-løsning
Introduksjon
Tessereact regnes som en av de beste OCR-løsningene som er tilgjengelige. Siden 2006 er det sponset av Google, tidligere ble det utviklet av Hewlett Packard i C og C ++ mellom 1985 og 1998. Systemet er i stand til å identifisere selv håndskrift, det kan lære å øke dets nøyaktighet, og er blant de mest utviklede og komplette i markedet.
Det slår lett kommersielle konkurrenter som ABBY, hvis du er ute etter en seriøs løsning for OCR, er Tesseract den mest nøyaktige, men forvent ikke for massive løsninger: den bruker en kjerne per prosess, som betyr en 8-kjerneprosessor (hypertråding akseptert) vil kunne behandle 8 eller 16 bilder samtidig.
Da jeg brukte Tesseract, klarte vi tusenvis av potensielle kunder som lastet opp håndskrevet innhold, bilder med tekst osv. Vi brukte 48 kjerneservere, med DatabaseByDesign og deretter med AWS, vi hadde aldri noe ressursproblem.
Vi hadde en opplasting som diskriminerte tekstfiler som Microsoft Office eller Open Office-filer og bilder eller skannede dokumenter. Opplasteren bestemte hva OCR- eller PHP-skriptene ville behandle en ordre, innen tekstgjenkjenning.
Tesseact er en god løsning, men før du tenker på det, må du vite at siste versjoner av Tesseract ga store forbedringer, noen av dem betyr hardt arbeid. Selv om trening kan vare i flere timer eller dager, kan den siste versjonen av Tessercts versjonstrening være på dager, uker eller til og med måneder hvis du leter etter en flerspråklig OCR-løsning.
Installere Tesseract 4 på Debian / Ubuntu:
apt-get install tesseract-ocrHvis du bruker en annen Linux-distribusjon, må du kopiere den siste versjonen av github repository og kopiere .trent datafil til 'tessdata' (/ usr / share / tesseract-ocr / tessdata eller / usr / share / tessdata).
Som standard vil Tesseract installere den engelskspråklige pakken for å installere flere språk som kjøres
apt-get install tesseract-ocr-LANGfor eksempel å legge til hebraisk:
apt-get install tesseract-ocr-hebDu kan inkludere alle språk ved å kjøre:
apt-get install tesseract-ocr-all
For at Tesseract skal fungere skikkelig, må vi bruke kommandoen "konvertere" (konvertere mellom bildeformater, samt endre størrelse på et bilde, uskarphet, beskjæring, avflektering, risting, tegning, vending, sammenføyning, re-sample og mye mer) levert av Imagemagick:
Lar oss installere imagemagick med apt-get:
apt-get install imagemagickLa oss nå teste Tesseract, finne et bilde som inneholder tekst og kjøre:
tesseract [image_name] [output file_name]Hvis riktig installert, vil Tesseract trekke ut teksten fra bildet.
Da jeg jobbet med Tesseract, var alt vi trengte å dokumentere antall ord. Som med alle andre programmer du kan, og må, trene det, i Word kan vi definere noen symboler som kan telles eller ikke, hvis du vil telle eller ikke tall, osv. det samme med Tesseract.
Vi kan også trene følsomheten til bestemte bilder.
Optimalisering av Tesseract:
Størrelsesoptimalisering: I følge offisielle kilder er den optimale pikselstørrelsen for et bilde som skal behandles vellykket av Tesseract 300DPI. Vi må behandle et hvilket som helst bilde ved hjelp av -r-parameteren for å håndheve denne DPI. Å øke DPI vil også øke behandlingstiden.
Siderotasjon: Hvis siden skannes ikke ble rotert ordentlig og forblir 180 ° eller 45 °, vil Tesseracts nøyaktighet reduseres, kan du bruke dette Python-skriptet til automatisk å oppdage og fikse rotasjonsproblemer.
Fjerning av grensen: Ifølge Tesseracts offisielle mann kan grenser feilaktig velges som tegn, spesielt mørke grenser og der det er variasjon i gradering. Fjerning av grenser kan være et godt skritt for å oppnå maksimal nøyaktighet med Tesseract.
Fjern støy: I følge Tesseracts er støy “en tilfeldig variasjon av lysstyrke eller farge i et bilde”. Vi kan fjerne det i binærisering trinn, som betyr å polarisere fargene.
Trening Tesseract:
Mens de fleste veiledningene bare dekker Tesseracts installasjon, vil jeg oppsummere hvordan du trener OCR-systemet ditt, her kan vi finne en veiledning for alle versjoner. I denne artikkelen vil jeg oppsummere hvordan du trener Tesseract 4 som inkluderer en ny “Nevrale nettverksbasert anerkjennelsesmotor som gir betydelig høyere nøyaktighet (på dokumentbilder) enn de forrige versjonene, i retur for en betydelig økning i nødvendig beregningskraft. På komplekse språk kan det imidlertid være raskere enn basen Tesseract.”
Før vi fortsetter, må vi installere flere biblioteker:
sudo apt-get install libicu-devsudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
Og vi vil installere treningsverktøyene ved å kjøre, i Tesseract-katalogen:
gjørelage trening
sudo lage treningsinstallasjon
I følge Tesseracts offisielle wiki har vi tre nåværende muligheter for å trene OCR-systemet vårt:
- "Fin tone. Begynn med et eksisterende opplært språk, tren på dine spesifikke tilleggsdata. Dette kan fungere for problemer som er nær eksisterende treningsdata, men forskjellige på en subtil måte, som en spesielt uvanlig skrift. Kan fungere med til og med en liten mengde treningsdata.
- Klipp av det øverste laget (eller noe vilkårlig antall lag) fra nettverket og omskol et nytt topplag ved hjelp av de nye dataene. Hvis finjustering ikke fungerer, er dette mest sannsynlig det nest beste alternativet. Å kutte av det øverste laget kan fremdeles fungere for å trene et helt nytt språk eller skript, hvis du begynner med det mest likt skriptet.
- Omskolere fra bunnen av. Dette er en skremmende oppgave, med mindre du har et veldig representativt og tilstrekkelig stort treningssett for problemet ditt. Hvis ikke, vil du sannsynligvis ende opp med et overmontert nettverk som gjør det veldig bra på treningsdataene, men ikke på de faktiske dataene.
Selv om alternativene ovenfor kan høres annerledes ut, er treningstrinnene nesten identiske, bortsett fra kommandolinjen, så det er relativt enkelt å prøve det på alle måter, gitt tid eller maskinvare til å kjøre dem parallelt.”
I denne opplæringen vil vi bare kjøre tesstrain.sh-skript som vil kalle nødvendige programmer for å trene et bestemt språk.
Først av alt kan vi klone alle filene i / usr / share / tesseract-ocr:
git klon https: // github.com / tesseract-ocr / tesseract
Gå til / usr / share / tesseract-ocr / tesseract / training (Tesseracts standardinstallasjonskatalog) og kjør:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Endre “heb” for språket du vil trene, og rediger også banen til dataene dine.
Innenfor katalogen / usr / share / tesseract-ocr / tesseract / training du finner filspesifikk.Det er nyttig å legge til regler for bestemte språk.
Feilsøking
Tesseract er for meg den beste OCR-løsningen, men nylig gjorde den store endringer fra tidligere versjoner, og mange brukere klager på endringer eller ting som ikke lenger fungerer, jeg vil ikke bekymre meg siden endringene ser ut til å gi gode resultater. Tesseracts samfunn er veldig aktiv, hvis du finner problemer med å kjøre tesseract, bli en del av Tesseracts fellesskap her.