Tesseract: Bezplatné řešení OCR
Úvod
Tessereact je považován za jedno z nejlepších dostupných řešení OCR. Od roku 2006 je sponzorován společností Google, dříve jej vyvinula společnost Hewlett Packard v jazycích C a C ++ v letech 1985 až 1998. Systém je schopen identifikovat i rukopis, dokáže se naučit zvyšovat přesnost a je jedním z nejrozvinutějších a nejkompletnějších na trhu.
Snadno překoná komerční konkurenty, jako je ABBY, pokud hledáte seriózní řešení pro OCR, Tesseract je nejpřesnější, ale neočekávejte masivní řešení: používá jádro na proces, což znamená 8jádrový procesor (hyperthreading Přijato) bude moci zpracovat 8 nebo 16 obrázků současně.
Když jsem použil Tesseract, podařilo se nám tisíce potenciálních zákazníků nahrávat ručně psaný obsah, obrázky s textem atd. Použili jsme 48 základních serverů, s DatabaseByDesign a poté s AWS, nikdy jsme neměli problém se zdroji.
Měli jsme uploader, který rozlišoval mezi textovými soubory, jako jsou soubory Microsoft Office nebo Open Office, a obrázky nebo naskenované dokumenty. Uživatel v oblasti rozpoznávání textu určil, co by skripty OCR nebo PHP zpracovaly objednávku.
Tesseact je skvělé řešení, ale než o tom budete přemýšlet, musíte vědět, poslední verze Tesseractu přinesly velká vylepšení, některé z nich znamenají tvrdou práci. Zatímco školení může trvat hodiny nebo dny, nedávné školení verzí Tesserct může trvat dny, týdny nebo dokonce měsíce, pokud hledáte vícejazyčné řešení OCR.
Instalace Tesseract 4 na Debian / Ubuntu:
apt-get install tesseract-ocrPokud používáte jinou distribuci Linuxu, budete muset zkopírovat poslední verzi úložiště github a zkopírovat .soubor trénovaných dat do 'tessdata' (/ usr / share / tesseract-ocr / tessdata nebo / usr / share / tessdata).
Ve výchozím nastavení Tesseract nainstaluje anglický jazykový balíček, aby nainstaloval další spuštěné jazyky
apt-get install tesseract-ocr-LANGnapříklad přidat hebrejštinu:
apt-get install tesseract-ocr-hebSpuštěním můžete zahrnout všechny jazyky:
apt-get install tesseract-ocr-all
Aby Tesseract správně fungoval, budeme muset použít příkaz „převést“ (převádět mezi formáty obrázků i měnit velikost obrázku, rozmazání, oříznutí, odstranění skvrn, rozklad, kreslení, převrácení, připojení, opětovné vzorkování a mnohem více) poskytl Imagemagick:
Pojďme nainstalovat imagemagick s apt-get:
apt-get install imagemagickTeď pojďme otestovat Tesseract, najděte obrázek obsahující text a spusťte:
tesseract [název_obrazu] [název výstupního souboru]Pokud je správně nainstalován, Tesseract extrahuje text z obrázku.
Když jsem pracoval s Tesseract, vše, co jsme potřebovali, bylo psát dokumenty. Stejně jako u jiných programů, které můžete a musíte trénovat, můžeme ve Wordu definovat některé symboly, které lze počítat nebo ne, jestli počítat nebo ne čísla atd. totéž s Tesseract.
Můžeme také trénovat jeho citlivost na konkrétní obrázky.
Optimalizace Tesseract:
Optimalizace velikosti: Podle oficiálních zdrojů je optimální velikost pixelů pro obrázek, který má být úspěšně zpracován Tesseractem, 300DPI. K vynucení tohoto DPI budeme muset zpracovat jakýkoli obrázek pomocí parametru -r. Zvýšení DPI také zvýší dobu zpracování.
Rotace stránky: Pokud při skenování stránka nebyla správně otočena a zůstane 180 ° nebo 45 °, přesnost Tesseractu se sníží, můžete pomocí tohoto skriptu Pythonu automaticky detekovat a opravit problémy s rotací.
Odstranění hranice: Podle oficiálního muže Tesseractu lze hranice chybně vybrat jako postavy, zejména tmavé hranice a tam, kde existuje gradační odrůda. Odstranění hranic může být dobrým krokem k dosažení maximální přesnosti pomocí Tesseractu.
Odstranění šumu: Podle Tesseracts je hluk „náhodnou změnou jasu nebo barvy obrazu“. Můžeme jej odstranit v binarizace krok, což znamená polarizaci barev.
Tesseract školení:
Zatímco většina výukových programů pokrývá pouze instalaci Tesseractu, shrnu, jak trénovat váš systém OCR, zde můžeme najít výukový program pro všechny verze. V tomto článku shrnu, jak trénovat Tesseract 4, který obsahuje nový „Rozpoznávací modul založený na neuronových sítích, který poskytuje výrazně vyšší přesnost (na obrázcích dokumentů) než předchozí verze, na oplátku za výrazné zvýšení požadovaného výpočetního výkonu. Ve složitých jazycích však může být ve skutečnosti rychlejší než základní Tesseract.“
Než budete pokračovat, budeme muset nainstalovat další knihovny:
sudo apt-get nainstalovat libicu-devsudo apt-get install libpango1.0-dev
sudo apt-get nainstalovat libcairo2-dev
A nainstalujeme tréninkové nástroje spuštěním v adresáři Tesseract:
udělatudělat školení
sudo make training-install
Podle oficiální wiki Tesseractu máme 3 aktuální možnosti trénovat náš OCR systém:
- "Jemně doladit.". Počínaje stávajícím proškoleným jazykem trénujte na svých konkrétních dalších datech. To může fungovat u problémů, které se blíží stávajícím tréninkovým datům, ale liší se nějakým jemným způsobem, jako zvláště neobvyklé písmo. Může pracovat i s malým množstvím tréninkových dat.
- Odřízněte horní vrstvu (nebo libovolný počet vrstev) ze sítě a rekvalifikujte novou horní vrstvu pomocí nových dat. Pokud jemné ladění nefunguje, je to pravděpodobně další nejlepší volba. Odříznutí horní vrstvy by stále mohlo fungovat při trénování zcela nového jazyka nebo skriptu, pokud začnete s nejvíce podobným skriptem.
- Přeškolení od nuly. Toto je skličující úkol, pokud pro svůj problém nemáte velmi reprezentativní a dostatečně velký tréninkový program. Pokud ne, je pravděpodobné, že skončíte s přeplněnou sítí, která funguje opravdu dobře na tréninkových datech, ale ne na skutečných datech.
Zatímco výše uvedené možnosti mohou znít odlišně, tréninkové kroky jsou ve skutečnosti téměř totožné, kromě příkazového řádku, takže je relativně snadné to vyzkoušet všemi způsoby, vzhledem k času nebo hardwaru k jejich paralelnímu spuštění.“
V tomto tutoriálu spustíme pouze tesstrain.skript sh, který bude volat nezbytné programy k trénování konkrétního jazyka.
Nejprve necháme klonovat všechny soubory v našem / usr / share / tesseract-ocr:
git clone https: // github.com / tesseract-ocr / tesseract
Přejděte do adresáře / usr / share / tesseract-ocr / tesseract / training (výchozí instalační adresář Tesseract) a spusťte:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Změňte „heb“ pro jazyk, který chcete trénovat, a také upravte cestu k vašim datům.
V adresáři / usr / share / tesseract-ocr / tesseract / školení najdete soubor specifický pro daný jazyk.je užitečné přidat pravidla pro konkrétní jazyky.
Odstraňování problémů
Tesseract je pro mě nejlepší řešení OCR, ale nedávno provedlo obrovské změny oproti minulým verzím a mnoho uživatelů si stěžuje na změny nebo věci, které již nefungují, nebál bych se, protože se zdá, že změny přinášejí skvělé výsledky. Komunita Tesseractu je velmi aktivní, v případě, že narazíte na problémy se spuštěním tesseractu, staňte se zde součástí komunity Tesseractu.