Naučite kako pravilno prepoznati tekst na slici pomoću tesseract-a i ocrfeeder-a.

Mnogi od vas već moraju znati programe za optičko prepoznavanje znakova (OCR), ako jesu, naišli ste na neke koji ne prepoznaju znakove tipične za španski jezik, poput eñe, tílde između ostalog (ñ, ó, ü).

Sada zahvaljujući teseract i paketu tesseract-ocr-eng Moći ćemo prepoznati ove znakove i vidjet ćemo kako tretirati određene slike gdje nivo boje ili piksela nije ispravan.

Prvo moramo instalirati sljedeće programe:

teserakt-okr
tesseract-ocr-eng
ocrfeeder

U Debianu savjetujem da ih instalirate bez instaliranja preporučenih softvera:

sudo apt-get --no-install-recommends install ocrfeeder tesseract-ocr-spa tesseract-ocr

Ako imamo sliku (skenirani dokument) u kojoj je pismo čitljivo, tekst će biti moguće prepoznati u otprilike 90% slučajeva, tablice neće biti prepoznate, ako slika ima 2 stupca, automatski će prepoznati stupac prvo, a zatim drugi da bi se održao redoslijed teksta.

Postoje 2 načina za prepoznavanje teksta, jedan kroz naredbenu liniju na terminalu ili putem ocrfeeder-a, za potonji će biti potrebno više vremena za obradu:

Način naredbenog retka:

tesseract "/entrada/fichero.jpg" "/salida/fichero.txt" -l spa -psm 3

Za pretvorbu više slika koristit ćemo sljedeću naredbu:

cd /carpeta/imagenes
find ./ -name "*.jpg" | sort | while read file; do tesseract "$file" "`basename "$file" | sed 's/\.[[:alnum:]]*$//'`.txt" -l spa -psm 3; done

Da bismo se pridružili rezultirajućim tekstualnim datotekama u spomenutoj mapi, upotrijebit ćemo sljedeću naredbu s kojom će se odlomci pravilno spojiti.

cd /carpeta/imagenes
find ./ -name "*.txt" | sort | while read file; do cat "$file" | sed 's|^$|##|g' | tr '\n' " " | tr '##' "\n" >> Texto-unido.txt; done

Metoda sa ocrfeeder-om:
1- Otvaramo program ocrfeeder.
2- Uređujemo motor klikom na Tools - OCR Engines, odabiremo esseract engine i kliknemo na edit, a tamo gdje piše argumente motora, mijenjamo skriptu za ovu:

$IMAGE $FILE -l spa -psm 3 > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

3- Uvozimo sliku ili mapu u kojoj ima nekoliko slika.
4- Kliknemo na identificiraj dokument, nakon što dokument bude identificiran, možete ručno odabrati koji će dijelovi biti slike ili tekst.
5- Prije izvoza dokumenta kliknemo Uredi - Uredi stranicu, odaberemo željenu stranicu, najčešće je pismo.
6- Za izvoz dokumenta kliknemo Datoteka - Izvoz, odabiremo željeni izlazni format, ako dokument ima slike, savjetujem vam da koristite format odt ili html, ako je riječ samo o tekstu, najbolje je koristiti obični tekst ( txt) format.

Ovo se ovdje ne završava jer postoji mnogo fotokopija čija kvaliteta nije odgovarajuća. Za njihovo popravak koristit ćemo gimp i reljefni filter (ovaj postupak može biti spor):
1- Otvaramo sliku gimp-om.
2- Kliknemo na Filteri - Izobličenja - Utiskivanje, odaberemo okvir mape izbočina, prilagodimo nivoe azimuta na približno 162,25, nadmorsku visinu na 88,73 i dubinu na 6 ili 3. Snimamo sliku sa 100% kvalitetom ako je jpg, u izvozu - name.jpg.

Po želji možete prilagoditi nivo bijele boje klikom na Boje - Razine - automatski.