Tesseract: Ingyenes OCR megoldás
Bevezetés
A Tessereact az egyik legjobb rendelkezésre álló OCR megoldásnak számít. 2006 óta a Google szponzorálja, korábban a Hewlett Packard fejlesztette C és C ++ nyelven 1985 és 1998 között. A rendszer képes azonosítani az egyenletes kézírást, meg tudja tanulni annak pontosságát, és a legfejlettebb és legteljesebbek közé tartozik a piacon.
Könnyen legyőzi az ABBY-hez hasonló kereskedelmi versenytársakat, ha komoly megoldást keres az OCR-re, a Tesseract a legpontosabb, de ne számítson hatalmas megoldásokra: folyamatonként magot használ, ami 8 magos processzort jelent (hiperszálas elfogadott) képes lesz 8 vagy 16 kép egyidejű feldolgozására.
Amikor a Tesseract-ot használtam, több ezer potenciális ügyfelet sikerült kézírásos tartalmakat, képeket szöveggel feltölteni stb. 48 magszervert használtunk, a DatabaseByDesign, majd az AWS segítségével soha nem volt erőforrásprobléma.
Volt egy feltöltőnk, amely megkülönböztette a szöveges fájlokat, például a Microsoft Office vagy az Open Office fájlokat, és képeket vagy beolvasott dokumentumokat. A feltöltő meghatározta, hogy bármi OCR vagy PHP szkript is feldolgozza a megrendelést a szövegfelismerés területén.
A Tesseact nagyszerű megoldás, de mielőtt belegondolna, tudnia kell, a Tesseract utolsó verziói nagy fejlesztéseket hoztak, néhányuk kemény munkát jelent. Míg a képzés órákig vagy napokig tarthat, a Tesserct legújabb verziói napok, hetek vagy hónapok lehetnek, ha többnyelvű OCR megoldást keres.
A Tesseract 4 telepítése a Debian / Ubuntu rendszerre:
apt-get install tesseract-ocrHa más Linux disztribúciót használ, akkor le kell másolnia az utolsó github-lerakat verziót és a másolatot .a képzett adatfájl 'tessdata' fájlba (/ usr / share / tesseract-ocr / tessdata vagy / usr / share / tessdata).
Alapértelmezés szerint a Tesseract telepíti az angol nyelvű csomagot, hogy további futtatott nyelveket telepítsen
apt-get install tesseract-ocr-LANGpéldául a héber hozzáadásához:
apt-get install tesseract-ocr-hebFuttatásával minden nyelvet felvehet:
apt-get install tesseract-ocr-all
Ahhoz, hogy a Tesseract megfelelően működjön, a „convert” parancsot kell használnunk (konvertálni a képformátumok között, valamint átméretezni a képet, elmosódni, kivágni, szétválasztani, lebontani, felhívni, megfordítani, csatlakozni, újra mintát készíteni és sokkal többet) az Imagemagick nyújtotta:
Lehetővé teszi az imagemagick telepítését az apt-get használatával:
apt-get install imagemagickMost teszteljük a Tesseract-ot, keressünk szöveget tartalmazó képet és futtassuk:
tesseract [képnév] [kimeneti fájlnév]Megfelelő telepítés esetén a Tesseract kivonja a szöveget a képből.
Amikor a Tesseracttal dolgoztam, csak a szavak számlálására volt szükségünk. Mint minden más programnál, ezt is ki kell képeznie, és a Wordben is meg kell határoznunk néhány szimbólumot, amelyeket meg lehet számolni vagy sem, ha számolni akarjuk a számokat, stb. ugyanez a helyzet a Tesseracttal is.
Képezhetjük azt is, hogy érzékenyen reagál-e bizonyos képekre.
Tesseract optimalizálás:
Méret optimalizálás: Hivatalos források szerint a Tesseract által sikeresen feldolgozandó kép optimális képpontmérete 300DPI. Bármely képet a -r paraméterrel kell feldolgoznunk a DPI kikényszerítéséhez. A DPI növelése növeli a feldolgozási időt is.
Oldalforgatás: Ha a beolvasáskor az oldal nincs megfelelően elforgatva, és 180 ° vagy 45 ° marad, akkor a Tesseract pontossága csökken, ezzel a Python szkript segítségével automatikusan észlelheti és kijavíthatja a forgatással kapcsolatos problémákat.
Határeltávolítás: A Tesseract hivatalos embere szerint a határokat hibásan lehet karakterként kiválasztani, különösen a sötét határokat, és ahol fokozatossága van. A határok eltávolítása jó lépés lehet a Tesseract maximális pontosságának eléréséhez.
Zaj eltávolítása: Tesseracts szerint a zaj „a kép fényerejének vagy színének véletlenszerű változása”. Eltávolíthatjuk a binarizálás lépés, ami a színek polarizálását jelenti.
Tesseract edzés:
Míg az oktatóanyagok többsége csak a Tesseract telepítését fedi le, összefoglalom, hogyan kell betanítani az OCR rendszerét, itt minden oktatóanyagot megtalálhatunk. Ebben a cikkben összefoglalom, hogyan kell betanítani a Tesseract 4-et, amely egy újat is tartalmaz „Neurális hálózati alapú felismerő motor, amely a korábbi verzióknál lényegesen nagyobb pontosságot biztosít (a dokumentum képein), a szükséges számítási teljesítmény jelentős növekedéséért cserébe. Összetett nyelveken azonban valójában gyorsabb lehet, mint az alap Tesseract.”
A folytatás előtt további könyvtárakat kell telepítenünk:
sudo apt-get install libicu-devsudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev
És az oktatási eszközöket futással telepítjük a Tesseract könyvtárba:
készítsenhogy képzés
sudo make training-install
A Tesseract hivatalos wiki szerint 3 jelenlegi lehetőségünk van az OCR rendszerünk betanítására:
- "Finomhangolás. A már meglévő képzett nyelvtől kezdve sajátítsa el saját speciális adatait. Ez olyan problémák esetén működhet, amelyek közel állnak a meglévő edzési adatokhoz, de bizonyos módon finomak, például egy különösen szokatlan betűtípus. Még kis mennyiségű edzésadattal is működhet.
- Vágja le a felső réteget (vagy tetszőleges számú réteget) a hálózatról, és az új adatok felhasználásával képezzen át egy új felső réteget. Ha a finomhangolás nem működik, akkor ez valószínűleg a következő legjobb megoldás. A legfelső réteg levágása még mindig működhet egy teljesen új nyelv vagy szkript betanításához, ha a leginkább hasonló kinézetű szkriptet kezdi.
- Képezze át magát a semmiből. Ez félelmetes feladat, hacsak nincs nagyon reprezentatív és kellően nagy képzettsége a problémájához. Ha nem, akkor valószínűleg egy túl felszerelt hálózathoz jut, amely nagyon jól teszi az edzésadatokat, de nem a tényleges adatokat.
Noha a fenti opciók eltérően hangozhatnak, az edzés lépései a parancssortól eltekintve szinte azonosak, ezért viszonylag könnyű kipróbálni mindenfélét, tekintettel arra, hogy mennyi idő vagy hardver futtatható párhuzamosan.”
Ebben az oktatóanyagban csak a tesstrain-t futtatjuk.sh szkript, amely egy adott nyelv betanításához szükséges programokat hívja meg.
Először engedje klónozni az összes fájlt a / usr / share / tesseract-ocr fájlban:
git klón https: // github.com / tesseract-ocr / tesseract
Lépjen a / usr / share / tesseract-ocr / tesseract / training (Tesseract alapértelmezett telepítési könyvtárába) és futtassa:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Változtassa meg a „heb” szót a betanítani kívánt nyelvre, és módosítsa az adatok elérési útját is.
A könyvtáron belül / usr / share / tesseract-ocr / tesseract / edzés megtalálja a fájl nyelvspecifikus.Hasznos szabályokat hozzáadni az adott nyelvekhez.
Hibaelhárítás
Számomra a Tesseract a legjobb OCR megoldás, de nemrégiben hatalmas változásokat hajtott végre a korábbi verziókhoz képest, és sok felhasználó panaszkodik olyan változásokra vagy dolgokra, amelyek már nem működnek, nem aggódnék, mivel úgy tűnik, hogy a változtatások nagyszerű eredményeket hoznak. A Tesseract közössége nagyon aktív, ha problémákat talál a tesseract futtatásában, váljon a Tesseract közösségének részévé itt.