Instalace Tesseract OCR v Linuxu
Tesseract OCR je ve výchozím nastavení k dispozici na většině distribucí Linuxu. Můžete jej nainstalovat do Ubuntu pomocí následujícího příkazu:
$ sudo apt install tesseract-ocrPodrobné pokyny pro další distribuce jsou k dispozici tady. Přestože je Tesseract OCR ve výchozím nastavení k dispozici v úložištích mnoha distribucí Linuxu, pro lepší přesnost a analýzu se doporučuje nainstalovat nejnovější verzi z výše uvedeného odkazu.
Instalace podpory pro další jazyky v Tesseract OCR
Tesseract OCR zahrnuje podporu pro detekci textu ve více než 100 jazycích. Podporu pro detekci textu v anglickém jazyce však získáte pouze s výchozí instalací v Ubuntu. Chcete-li přidat podporu pro analýzu dalších jazyků v Ubuntu, spusťte příkaz v následujícím formátu:
$ sudo apt install tesseract-ocr-hinVýše uvedený příkaz přidá podporu pro hindštinu do Tesseract OCR. Někdy můžete dosáhnout lepší přesnosti a výsledků instalací podpory jazykových skriptů. Například instalace a používání balíčku tesseract pro skript Devanagari „tesseract-ocr-script-deva“ mi přineslo mnohem přesnější výsledky než použití balíčku „tesseract-ocr-hin“.
V Ubuntu najdete správné názvy balíčků pro všechny jazyky a skripty spuštěním následujícího příkazu:
$ tesseract hledání apt-cache-Jakmile zjistíte správný název balíčku, který chcete nainstalovat, nahraďte jej řetězcem „tesseract-ocr-hin“ v prvním výše uvedeném příkazu.
Použití OCR Tesseract k extrakci textu z obrázků
Vezměme si příklad obrázku zobrazeného níže (převzato ze stránky Wikipedia pro Linux):
Chcete-li extrahovat text z obrázku výše, musíte spustit příkaz v následujícím formátu:
$ tesseract zachycení.png výstup -l engSpuštěním výše uvedeného příkazu získáte následující výstup:
Ve výše uvedeném příkazu „zajměte.png “odkazuje na obrázek, ze kterého chcete extrahovat text. Zachycený výstup je poté uložen do „výstupu.txt ”. Jazyk můžete změnit nahrazením argumentu „eng“ vlastní volbou. Chcete-li zobrazit všechny platné jazyky, spusťte následující příkaz:
$ tesseract --list-langsZobrazí se zkratkové kódy pro všechny jazyky podporované Tesseract OCR ve vašem systému. Ve výchozím nastavení se jako výstup zobrazí pouze „eng“. Pokud však nainstalujete balíčky pro další jazyky, jak je vysvětleno výše, tento příkaz vypíše další jazyky, které můžete použít k detekci textu (jako kódy jazyků ISO 639 se 3 písmeny).
Pokud obrázek obsahuje text ve více jazycích, definujte nejprve primární jazyk a poté další jazyky oddělené znaménky plus.
$ tesseract zachycení.png výstup -l eng + fraPokud chcete výstup uložit jako prohledávatelný soubor PDF, spusťte příkaz v následujícím formátu:
$ tesseract zachycení.png výstup -l eng pdfVšimněte si, že prohledávatelný soubor PDF nebude obsahovat žádný upravitelný text. Zahrnuje původní obrázek s další vrstvou obsahující rozpoznaný text překrytý obrázkem. Takže i když budete moci přesně vyhledávat text v souboru PDF pomocí jakékoli čtečky PDF, nebudete moci text upravovat.
Dalším bodem, který byste měli vzít na vědomí, je, že přesnost detekce textu se značně zvyšuje, pokud je obrazový soubor vysoce kvalitní. Pokud máte na výběr, vždy používejte bezztrátové formáty souborů nebo soubory PNG. Použití souborů JPG nemusí přinést nejlepší výsledky.
Extrahování textu z vícestránkového souboru PDF
Tesseract OCR nativně nepodporuje extrahování textu ze souborů PDF. Je však možné extrahovat text z vícestránkového souboru PDF převedením každé stránky do obrazového souboru. Spuštěním níže uvedeného příkazu převeďte soubor PDF na sadu obrázků:
$ pdftoppm -png soubor.výstup PDFZa každou stránku souboru PDF získáte odpovídající „výstup-1.png “,„ výstup-2.png “atd.
Chcete-li nyní extrahovat text z těchto obrázků pomocí jediného příkazu, budete muset použít příkaz „for loop“ v příkazu bash:
$ za i v *.png; udělat tesseract "$ i" "výstup - $ i" -l eng; Hotovo;Spuštěním výše uvedeného příkazu se extrahuje text ze všech “.png “soubory nalezené v pracovním adresáři a uložte rozpoznaný text do„ output-original_filename.txt ”soubory. Střední část příkazu můžete upravit podle svých potřeb.
Pokud chcete kombinovat všechny textové soubory obsahující rozpoznaný text, spusťte následující příkaz:
$ kočka *.txt> připojil se.txtProces extrakce textu z vícestránkového souboru PDF do prohledávatelných souborů PDF je téměř stejný. K příkazu musíte dodat další argument „pdf“:
$ za i v *.png; udělat tesseract "$ i" "výstup - $ i" -l eng pdf; Hotovo;Chcete-li zkombinovat všechny prohledávatelné soubory PDF obsahující rozpoznaný text, spusťte následující příkaz:
$ pdfunite *.PDF se připojilo.pdf„Pdftoppm“ i „pdfunite“ jsou ve výchozím nastavení nainstalovány na nejnovější stabilní verzi Ubuntu.
Výhody a nevýhody extrakce textu v TXT a prohledávatelných souborech PDF
Pokud extrahujete rozpoznaný text do souborů TXT, získáte upravitelný textový výstup. Veškeré formátování dokumentu však bude ztraceno (tučné, kurzíva atd.). Prohledávatelné soubory PDF zachovají původní formátování, ale ztratíte možnosti úprav textu (stále můžete kopírovat nezpracovaný text). Otevřete-li prohledávatelný soubor PDF v libovolném editoru PDF, zobrazí se do souboru vložené obrázky a ne surový textový výstup. Převedením prohledávatelných souborů PDF do formátu HTML nebo EPUB získáte také vložené obrázky.
Závěr
Tesseract OCR je dnes jedním z nejpoužívanějších OCR motorů. Je to bezplatný open-source a podporuje více než sto jazyků. Pokud používáte OCR Tesseract, ujistěte se, že používáte obrázky ve vysokém rozlišení a opravujete jazykové kódy v argumentech příkazového řádku, abyste zlepšili přesnost detekce textu.