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.
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.
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.
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.
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