A Tesseract OCR motor segítségével szöveget bonthat ki a Linux parancssorában található képekből. Gyors, pontos, és körülbelül 100 nyelven működik. Így kell használni.
Tartalomjegyzék
Optikai karakter felismerés
Optikai karakter felismerés (OCR) az a képesség, hogy szavakat nézzünk meg és találjunk meg egy képen, majd szerkeszthető szövegként kivonjuk őket. Ezt az egyszerű feladatot az emberek számára nagyon nehéz elvégezni a számítógépek számára. A korai erőfeszítések enyhén szólva makacsok voltak. A számítógépeket gyakran összezavarták, ha a betűtípus vagy a méret nem tetszett az OCR szoftvernek.
Ennek ellenére a terület úttörőit továbbra is nagy becsben tartották. Ha elvesztette egy dokumentum elektronikus másolatát, de még mindig megvan a nyomtatott változata, az OCR újra létrehozhat egy elektronikus, szerkeszthető változatot. Még ha az eredmények nem is voltak 100 százalékosan pontosak, ez még mindig nagyszerű időt takarított meg.
Némi kézi rendbetétellel visszakaphatja dokumentumát. Az emberek elnézőek voltak az elkövetett hibákkal kapcsolatban, mert megértették az OCR-csomag előtt álló feladat összetettségét. Ráadásul jobb volt, mint a teljes dokumentumot újragépelni.
A dolgok azóta jelentősen javultak. A Tesseract OCR alkalmazás, írta Hewlett-Packard, az 1980-as években indult kereskedelmi alkalmazásként. 2005-ben nyílt forráskódú volt, és most már támogatja Google. Többnyelvű képességekkel rendelkezik, az egyik legpontosabb OCR-rendszernek tartják, és ingyenesen használható.
A Tesseact OCR telepítése
A Tesseract OCR Ubuntun telepítéséhez használja ezt a parancsot:
sudo apt-get install tesseract-ocr
Fedorán a parancs a következő:
sudo dnf install tesseract
A Manjaro-n be kell írnia:
sudo pacman -Syu tesseract
Tesseact OCR használata
Egy sor kihívást állítunk a Tesseract OCR elé. Az első szöveget tartalmazó képünk egy kivonat a (63) preambulumbekezdésből Általános adatvédelmi szabályzat. Lássuk, az OCR képes-e ezt olvasni (és ébren maradni).
Ez egy trükkös kép, mert minden mondat halvány felső indexszámmal kezdődik, ami jellemző a jogalkotási dokumentumokban.
Meg kell adnunk a tesseract parancsnak néhány információt, többek között:
A feldolgozni kívánt képfájl neve.
A kibontott szöveg tárolására létrehozott szövegfájl neve. Nem kell megadnunk a fájl kiterjesztését (mindig .txt lesz). Ha már létezik ilyen nevű fájl, a rendszer felülírja.
Használhatjuk a –dpi opciót, hogy megmondjuk a tesseractnek, hogy mi a pont per hüvelyk (dpi) a kép felbontása. Ha nem adunk meg dpi értéket, a tesseract megpróbálja kitalálni.
Képfájlunk neve „recital-63.png”, felbontása 150 dpi. Létrehozunk belőle egy „recital.txt” nevű szövegfájlt.
Parancsunk így néz ki:
tesseract recital-63.png recital --dpi 150
Az eredmények nagyon jók. Az egyetlen probléma a felső indexekkel van – túl halványak voltak ahhoz, hogy helyesen lehessen olvasni. A jó minőségű kép elengedhetetlen a jó eredmények eléréséhez.
A tesseract a felső indexszámokat idézőjelként (“) és fokjelként (°) értelmezte, de a tényleges szöveget tökéletesen kivonták (a kép jobb oldalát le kellett vágni, hogy ide illeszkedjen).
Az utolsó karakter egy 0x0C hexadecimális értékű bájt, amely egy kocsi visszatérés.
Az alábbiakban egy másik kép látható különböző méretű, félkövér és dőlt szöveggel.
A fájl neve „bold-italic.png”. Szeretnénk létrehozni egy „bold.txt” nevű szövegfájlt, ezért a parancsunk a következő:
tesseract bold-italic.png bold --dpi 150
Ez nem okozott semmilyen problémát, és a szöveget tökéletesen kivonták.
Különböző nyelvek használata
Tesseact OCR támogatás mintegy 100 nyelven. Egy nyelv használatához először telepítenie kell azt. Ha megtalálta a listában a használni kívánt nyelvet, jegyezze fel annak rövidítését. Telepíteni fogjuk a Welsh támogatását. A rövidítése „cym”, ami a „Cymru” rövidítése, ami walesi nyelvet jelent.
A telepítőcsomag neve „tesseract-ocr-”, a nyelvi rövidítéssel a végén. A walesi nyelvi fájl Ubuntuban való telepítéséhez a következőket fogjuk használni:
sudo apt-get install tesseract-ocr-cym
A kép a szöveggel lent. Ez a walesi himnusz első verse.
Lássuk, hogy a Tesseract OCR megfelel-e a kihívásnak. A -l (language) opciót használjuk, hogy a tesseract megismerje azt a nyelvet, amelyen dolgozni szeretnénk:
tesseract hen-wlad-fy-nhadau.png anthem -l cym --dpi 150
A tesseract tökéletesen megbirkózik, amint azt az alábbi kivonatolt szöveg is mutatja. Da iawn, Tesseract OCR.
Ha a dokumentuma két vagy több nyelvet tartalmaz (például egy walesi-angol szótárt), akkor pluszjellel (+) utasíthatja a tesseract-ot, hogy adjon hozzá egy másik nyelvet, például:
tesseract image.png textfile -l eng+cym+fra
A Tesseact OCR használata PDF-ekkel
A tesseract parancsot képfájlokkal való együttműködésre tervezték, de nem tudja olvasni a PDF-fájlokat. Ha azonban szöveget kell kivonnia egy PDF-ből, először használhat egy másik segédprogramot képkészlet létrehozásához. Egyetlen kép a PDF egyetlen oldalát képviseli.
A szükséges pdftppm segédprogram már telepítve kell lennie Linux számítógépén. A példánkban használt PDF Alan Turing mesterséges intelligenciáról szóló, „Computing Machinery and Intelligence” című tanulmányának másolata.
A -png kapcsolóval adjuk meg, hogy PNG fájlokat akarunk létrehozni. A PDF fájl neve „turing.pdf”. Képfájljainkat „turing-01.png”, „turing-02.png” és így tovább:
pdftoppm -png turing.pdf turing
A tesseract futtatásához minden képfájlon egyetlen paranccsal, az a hurokhoz. Minden egyes „turing-nn.png” fájlunkhoz lefuttatjuk a tesseract programot, és létrehozunk egy „text-” és „turing-nn” nevű szövegfájlt a képfájl nevének részeként:
for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;
Az összes szöveges fájl egyesítéséhez használhatjuk a cat:
cat text-turing* > complete.txt
Na, hogyan sikerült? Nagyon jól, ahogy lentebb is látható. Az első oldal azonban meglehetősen kihívást jelentőnek tűnik. Különféle szövegstílusokkal és -méretekkel, valamint díszítéssel rendelkezik. Az oldal jobb szélén egy függőleges „vízjel” is található.
A kimenet azonban közel áll az eredetihez. Nyilvánvaló, hogy a formázás elveszett, de a szöveg helyes.
A függőleges vízjelet halandzsaként írták át az oldal alján. A szöveg túl kicsi volt ahhoz, hogy a tesseract pontosan elolvashassa, de elég könnyű lenne megtalálni és törölni. A legrosszabb eredmény az lett volna, ha az egyes sorok végén kósza karakterek jelennek meg.
Érdekes módon figyelmen kívül hagyták a második oldalon a kérdések és válaszok listájának elején lévő egyetlen betűt. Az alábbiakban a PDF-ből származó rész látható.
Amint alább látható, a kérdések megmaradnak, de a „Q” és „A” minden sor elején elveszett.
A diagramok szintén nem lesznek megfelelően átírva. Nézzük meg, mi történik, ha megpróbáljuk kivonni az alábbit a Turing PDF-ből.
Amint az alábbi eredményünkben is látható, a karakterek beolvasásra kerültek, de a diagram formátuma elveszett.
A tesseract ismét megküzdött az alsó indexek kis méretével, és helytelenül kerültek megjelenítésre.
Az igazat megvallva, ez így is jó eredmény volt. Nem tudtunk egyértelmű szöveget kivonni, de akkor ezt a példát szándékosan választottuk, mert kihívást jelentett.
Jó megoldás, amikor szüksége van rá
Az OCR-t nem kell naponta használnia. Ha azonban szükség van rá, jó tudni, hogy az egyik legjobb OCR-motor áll az Ön rendelkezésére.