Digitalizálás és karakterfelismerés Linuxon

2011. július 02.
78.4641
Figyelem! Ez a cikk már több, mint egy éves! A benne lévő információk elavultak lehetnek!
tsaby profilja, adatai
tsaby
A huszonegyedik században, amikor szinte minden az informatikáról szól, még mindig nélkülözhetetlenek a papíralapú dokumentumok. Az ilyen iratok kezelése viszont sok problémát okoz a mindennapokban, erre lehet megoldás ezeknek a digitalizálása. Ilyen formában tárolva adatainkat még mindig gondot jelent, ha valamit módosítani szeretnénk, ezt kiküszöbölhetjük ha ezek szöveges állomány formában foglalnak helyet a háttértáron, ehhez viszont szükségünk lesz egy optikai karakterfelismerés nevű eljárásra amivel elő tudjuk állítani az ilyen fajta dokumentumokat.
 


Mielőtt nekilátnánk az optikai karakterfelismerésnek, valamilyen módon elő kell állítanunk a digitális képeket amin dolgozni szeretnénk. Ez történhet szkenner segítségével, digitális fényképezővel, vagy egyéb más módon. Ezt követően ki kel javítanunk a képek hibáit, az esetleges zajokat el kell távolítanunk, hogy megfelelő legyen a karakterfelismerés minősége. Ezután következhet a maga a felismerési folyamat, majd miután ez megtörtént a végső fázisban következhet a helyesírás ellenőrzés és a dokumentum esetleges formázása. Ezekből a lépésekből is látszik, hogy ez a folyamat aprólékos és hosszadalmas munka.

A digitalizálás főbb lépései:
A dokumentum számítógépre rögzítése.
A digitális képek előfeldolgozása.
Karakter felismerés.
Helyesírás ellenőrzés, a digitális dokumentum előállatása.

Most nézzük meg, hogy a fenti néhány lépést hogyan oldjuk meg Linux operációs rendszer esetében, valamint mi mindenre lesz ezekhez szükségünk. A folyamat bemutatásához a Linux Mint legújabb Katya kódvére keresztelt változatát használtam.

Digitalizálás
Mielőtt elkezdenénk bármit is számítógépre rögzíteni, először is szükségünk lesz néhány eszközre amivel ezt meg tudjuk oldani. Ezt megoldhatjuk egy digitális fényképezővel, vagy egy síkágyas lapszkenner segítségével. A fényképező esetében egyszerű a dolgunk, mivel lefényképezett dokumentumot a gép memóriakártyájáról átmásoljuk a számítógépre és ezzel ezt a részfeladatot meg is oldottuk. Amennyiben viszont szkennerrel szeretnénk dolgozni akkor egy kicsit bonyolultabb a helyzet.

Ilyenkor először érdemes utána járni, hogy vajon a lapolvasónkat támogatja-e az az adott Linux terjesztésünk. A példa kedvéért egy Canon CanoScan Lide 100 eszközt fogok használni. Több program segítségével is használhatjuk a saját eszközünket, úgymint SimpleScan, vagy a SANE nevű alkalmazás. Bár a SimpleScan egyszerű kezelő felületű, de mégis érdemesebb az előbbi programot és a hozzá tartozó XSane grafikus felületet használni, már csak azért is mert ez támogatja a legtöbb szkenner típust, és ezen felhasználói felületen nagyon aprólékosan tudjuk hangolni a lapszkennerünket.

Arról, hogy eszközünk támogatott-e, legegyszerűbben úgy győződhetünk meg, hogy a SANE projekt honlapján található kereső segítségével megkeressük a szkennerünket. Ha megtaláltuk és nem az "unsupported" szerepel az eszköznél, akkor már jó úton járunk. A következő lépés, hogy ugyanitt megnézzük milyen verziószám szerepel ebben a sorban. Ezt követően operációs rendszerünk csomagkezelőjével telepítenünk kell a "sane", "libsane", "sane-utils" és "xsane" csomagokat, valamint a "libsane-extras" csomagot. Ez utóbbi tartalmazza azokat meghajtó programokat ami a lapolvasók működtetéséhez kellenek. A csomagkezelőben ellenőrizzük, hogy a SANE weboldalán talált meghajtó verziószáma megegyezik-e ennek a csomagnak verziójával. Ha igen, vagy a honlapon levő a régebbi, akkor nyugodtan telepíthetjük a tárolóban levőt, ha a csomagforrásban levő a régebbi, akkor pedig a program weboldaláról le kell töltenünk a "backend" forráskódját és azt kell lefordítanunk, majd telepítenünk. Mindezek után ha a lapolvasónkat kezeli az operációs rendszerünk, már hozzá is kezdhetünk a dokumentumaink beolvasásához, amennyiben az eszközünket ezen szoftver nem ismeri, akkor kénytelenek vagyunk a digitális fényképezőnket elővenni és ezzel elkészíteni az állományokat.

Digitalizálás és karakterfelismerés Linuxon - 2. kép

Ha túljutottunk az eszközeink beüzemelésén, akkor a szkennelés folyamán következő beállításokat érdemes megtenni ahhoz, hogy majdan a karakterfelismerés is jó eredményt adjon. Az egyik legfontosabb, hogy a beolvasási módot állítsuk be, ennél az opciónál tudjuk megadni, hogy a beolvasás színes, szürke árnyalatos, vagy fekete-fehér legyen. Általában, amennyiben nem színes képről beszélünk szürke árnyalatosként szokás beolvastatni a képet. Ezen kívül általánosságban elmondhatjuk, hogy a szkennelt dokumentumon a karakterfelismerés annál jobb eredményt ad minél nagyobb a felbontás. Azért itt nem kell túlzásokba esni általában 300 DPI, vagy maximum 600 DPI elegendő. A nagyobb felbontással a rosszabb minőségű képek, vagy esetlegesen a dőlt betűs szövegek felismerését tudjuk javítani. Ezen információk után most már tényleg elkezdhetjük számítógépre rögzíteni a dokumentumainkat az XSane-nel.

Digitalizálás és karakterfelismerés Linuxon - 3. kép

Előfeldolgozás
Amint készen vagyunk a dokumentumaink digitalizálásával, a következő lépés ezeknek a feljavítása. Ez annyit jelent, hogy az esetleges szkennelési hibákat helyre hozzuk, ilyen hibák például ferdén sikerült rögzíteni a képet, esetlegesen rosszul választottuk meg a kép felbontását, vagy egyáltalán sok zajt tartalmaz és javítani kell a képminőségen. Ehhez részfeladathoz két nagyon hasznos eszközt használhatunk. Az egyik a GIMP képszerkesztő, ami szinte minden disztribúcióban megtalálható, a másik pedig a ScanTailor nevű program, ami speciálisan a szkennelt képek manipulálásához és feljavításához használható.

Ez utóbbi alkalmazás néhány Linux terjesztésben (például Ubuntu, Linux Mint, némely disztribúcióknál az úgynevezett backports tárolók beállítása után) csomagtárolóból is elérhető, más terjesztések esetén viszont forráskódból kell telepítenünk. Az installálás után ezen program segítségével meg tudjuk változtatni a kép felbontását, az esetlegesen ferdén beolvasott képeket egyenesbe tudjuk hozni. Alkalmas több állomány együttes kezelésére, az egyes képeket darabolhatjuk, valamint a képen található tartalmakat kijelölve eltávolíthatjuk a margókat és újat adhatunk a képhez. A konkrét használatát nézve pedig annyi a dolgunk, hogy a program elindítása után egy új projektet hozunk létre amihez hozzáadjuk a szerkeszteni kíván képfájlokat, majd néhány manipulációs lépés után már elő állítottuk a kimeneti ".tiff" típusú fájlokat. A ScanTailor által létrehozott fájlok annak könyvtárnak az "out" nevű almappájában találhatók ahonnan betöltöttük a képeket a szerkesztés kezdetekor. Ezek a ".tiff" fájlok fontosak, mivel az optikai karakter felismerő programok legtöbbje ilyen típusú állományokkal tud hatékonyan dolgozni.

Digitalizálás és karakterfelismerés Linuxon - 4. kép

A másik alkalmazás amit jól használhatunk a GIMP, ennek a számunkra legfontosabb képességei a helyi menüből annak is a "szín" menüpontjából érhetőek el. Itt találhatjuk meg a fényerőre és kontrasztra vonatkozó manipulációs lehetőséget, valamint a "küszöbszint" hangolására szolgáló eszközünket. Mindezen felül nagyon hasznos lehet, hogy az elő programmal ellentétben itt nemcsak a teljes dokumentumot tudjuk forgatni, hanem annak egy kijelölt részét is, ezzel egyenesbe állítva az adott szövegrészt.

Digitalizálás és karakterfelismerés Linuxon - 5. kép

Tesseract és az OCRFeeder telepítése
Amennyiben elkészültünk a képek feljavításával már csak annyi dolgunk maradt, hogy installáljuk azon eszközeinket amivel el tudjuk végezni a karakterfelismerést. Linux rendszereken ahhoz, hogy ezt kényelmesen tudjuk megvalósítani két programot kell telepíteni, egy optikai karakterfelismerő motort és ehhez egy grafikus kezelő felületet. A karakterfilmerő motorok közül most a Tesseract 3.0-ás verzióját használjuk. Általában majd minden disztribúcióban eme alkalmazásnak a 2.0.4-es változata érhető el csomagforrásból, ezzel csupán annyi a gond, hogy kissé nehézkes megtanítani a magyar ékezetes karakterek felismerésére, az újabb verziónál ez sokkal egyszerűbben hajtható végre.

A Tesseract telepítésénél az első lépés, hogy a honlapjáról beszerezzük a program forráskódját tartalmazó tömörített állományt. Ezt követően az operációs rendszerünk csomagkezelőjével telepítenünk kell az alábbi csomagokat:
autoconf
automake
libtool
libpng12-dev
libjpeg62-dev
libtiff4-dev
zlib1g-dev
leptonica-dev (egyes disztribúcióknál libleptonica-dev névre hallgat).

Amint ezekkel megvagyunk, elindítunk egy terminált és kicsomagoljuk az előbb letöltött tömörítvényt:
sudo tar -xf tesseract-3.00.tar.gz -C /usr/src/

Ezt követően belépünk a /usr/src/tesseract-3.00 könyvtárba az alábbi utasítással:
cd /usr/src/tesseract-3.00

Ez után kiadjuk a következő utasításokat.
./runautoconf
sudo ./configure
sudo make
sudo make install
sudo export=TESSDATA_PREFIX=/usr/local/share/
sudo ldconfig

Ha mindent jól csináltunk már telepítettük is a a karakterfelismerő programunkat, ez viszont még nem ismeri a magyar ékezetes karakteret. Ahhoz, ezt a funkciót is működésre bírjuk ugyanarról a honlapról ahonnan a Tesseract-ot letöltöttük, még be kell szerezni egy hun.traineddata.gz nevű állományt. Amint ez megvan ezt a fájlt kitömörítjük, majd bemásoljuk a /usr/local/share/tessdata/ könyvtárba, ezzel meg is "tanítottuk" a tasseract-ot az ékezetes karterek felismerésére.

Digitalizálás és karakterfelismerés Linuxon - 6. kép

A következő lépés a grafikus kezelőfelület telepítése, esetünkben ez most az OCRFeeder lesz ami a Linux terjesztések többségénél csomagtárolóból installálható, ilyenkor érdemes még a gocr nevű programot előzőleg telepíteni, hogy ne akarja installálni a csomagforrásban levő régebbi verziójú Tesseract-ot. Általában a csomagból telepített verzió a 0.6.6-os, ami nem tartalmazza helyesírás ellenőrzőt, ha ezt a funkciót szeretnénk használni, akkor érdemes letölteni a ennek a programnak legújabb változatát, ami forráskód formájában elérhető és az előzőekhez hasonlóan kell telepíteni (minden forráskód formájában letöltött programhoz a tömörített állományban mellékelik a README fájlt, ami tartalmazza a telepítési lépéseket ).

OCRFeeder konfigurálása és használata
Most már rendelkezésünkre állnak azok az eszközök amivel hozzá tudunk fogni a karakterfelismeréshez. Először el kell indítani az OCRFeeder programot (általában az irodai alkalmazások között találjuk meg). Miután elindítottuk rögtön az első lépés, hogy beállítjuk a Tesseract OCR motornál a magyar ékezetes karakterek kezelését. Ezt az OCRFeeder ablakában az "Eszközök" menü "OCR-motorok" pontjában tehetjük meg, ahol kiválasztjuk a Tesseract motort és a "Szerkesztés" gomb hatására előugró ablakban a "Motor utasításai" sorban a $FILE után beírjuk a "-l hun" opciót.

Digitalizálás és karakterfelismerés Linuxon - 7. kép

Az OCRFeeder további finomhangolását a "Szerkesztés" menü "Beállítások" pontján keresztül végezhetjük el. Itt kiválaszthatjuk kedvenc OCR motorunkat, ez lesz alapértelmezetten használva, valamint a képek előfeldolgozását egy unpaper nevezetű segédprogram segítségével maga az OCRFeeder is el tudja végezni, ennek a beállításai is itt adhatóak meg. Ezen kívül még a karakterfelismerésre vonatkozó opciók is megadhatóak, többek között a sortörésekre és hasábokra vonatkozó beállítások.

Digitalizálás és karakterfelismerés Linuxon - 8. kép

A képek importálását a menüsorban található kis zöld "+" jel segítségével végezhetjük el, amivel feltallózzuk a korábban beszkennelt, majd szerkesztett képet. Ezután az OCRFeeder-ben megjelenő képen az egér segítségével kijelöljük a felismerni kívánt szövegrészeket, majd a programunk ablakának jobboldalán találunk egy OCR feliratú gombot amivel elvégeztethetjük a karakterfelismerést a kijelölt blokkon. Amint az összes felismerendő szövegrészt kijelöltük és felismertettük a dokumentumunkat elmenthetjük "HTML", vagy "odt" formátumban, de mielőtt elmentenénk érdemes a "Szerkesztés" menü "Oldal szerkesztése" menüpontjában az oldalméretet beállítani, különben nagyon össze fogja nyomni a szöveget "odt" formátumba való mentéskor. Az exportálás tehát a "Fájl" menü "Exportálás..." pontjának segítségével történhet, ahol először a formátumot, aztán pedig a helyet kell megadni a háttértáron.

Digitalizálás és karakterfelismerés Linuxon - 9. kép

Ezt követően már csak az elkészített dokumentumunk helyesírás ellenőrzése és esetleges formázása maradt hátra amit ".odt" formátum esetén OpenOffice, vagy LibreOffice segítségével végezhetünk el.

Zárszó
Zárásképpen elmondható, hogy az optikai karakterfelismerés hosszadalmas, időigényes feladat, a digitális kép előállítását és az előfeldolgozást sem itt, sem a fizetős OCR programok esetén sem tudjuk kikerülni anélkül hogy romlana a karakterfelismerés hatékonysága. Ha az egyszerű szöveges dokumentumok előállításán kívül másra is igényünk van (elsősorban a többrétegű PDF fájlok készítésére), akkor érdemesebb fizetős programokat használni.

Linkgyűjtemény
SANE hardver adatbázis
Tesseract letöltése
OCRFeeder letöltése
5 hozzászólás

Vendég

6 éve, 9 hónapja és 6 napja

Kifejezetten hasznos cikk, köszi szépen. A kézírás felismerés engem is nagyon foglalkoztat, de akár Wines környezetben is. Tudsz ajánlani erre valami jó programot?

válasz erre

Vendég

6 éve, 9 hónapja és 7 napja

szerintem nem ismeri fel, az nagyon speciális

válasz erre

Vendég

6 éve, 9 hónapja és 7 napja

Engem is az érdekelne, hogy az ocrfeeder fel tud e ismerni kézírást is vagy csak nyomtatottat?

válasz erre

Vendég

6 éve, 9 hónapja és 8 napja

Kézírást is felismeri?

válasz erre

Vendég

6 éve, 9 hónapja és 8 napja

Épp erre a cikkre volt szükségem, kösziiii.

válasz erre

 

kapcsolódó hírek, cikkek

Nincsenek kapcsolódó cikkek.

 
legutóbbi hozzászólások
 

Itt is rontjuk a levegőt

WillThaWheel profiljagery1113 profilja