VietOCR

English | Lietuviškai | Slovensky | Vietnamese

PROGRAMOS APRAŠAS

VietOCR“ yra „Java“ technologija pagrįsta grafinė aplinka, leidžianti naudotis „Tesseract OCR“ optinio ženklų atpažinimo moduliu ir yra skirta automatiškai atpažinti nuskenuoto rašto ženklus. Programa numato populiariausius vaizdų formatus, leidžia naudoti kelis ar daugiau puslapių viename vaizdo faile. Be to, programa gali papildomai aptvarkyti atpažintą tekstą, ištaisydama būdingiausias teksto atpažinimo metu pasitaikančias klaidas. Tai padeda pasiekti daug geresnės rezultato kokybės. Programa gali veikti ir terminalo ekrane, ją startuojant komandinėje eilutėje.

Programoje numatytas ir paketinis vaizdų apdorojimas. Programa gali stebėti nurodytą aplanką ir, jame atsiradus naujų failų, automatiškai juos apdoroti, o atpažintus tekstus įrašyti į rezultatams talpinti nurodytą aplanką.

REIKALAVIMAI SISTEMAI

Java Runtime Environment 6.0“ ar vėlesnė laida.

PROGRAMOS ĮDIEGIMAS

„Tesseract 3.02“ vykdomasis failas „Windows“ aplinkai pateikiamas kartu su programa. Papildomi kalbinių duomenų paketai, kurių vardai prasideda ISO639-3 kodais, turėtų būti talpinami į poaplankį tessdata.

„Ubuntu Linux“ atveju „Tesseract“ ir šiai programai skirti kalbinių duomenų paketai yra skyriuje „Grafika (universe)“. Juos galite įdiegti, pasinaudodami „Synaptic“ arba šia komanda:

sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-lit

Įdiegimo metu šiuose paketuose esantys failai bus atitinkamai įkelti į /usr/bin ir /usr/share/tesseract-ocr/tessdata aplankus. Jeigu „Tesseract“ kompiliuosite ir diegsite iš pradinių tekstų, failai bus įkelti į /usr/local/bin ir /usr/local/share/tessdata aplankus. Kelią iki „Tesseract“ vykdomojo failo gali reikėti nurodyti „VietOCR“ nuostatose. Jeigu kalbiniai duomenys yra nestandartinėje vietoje, gali tekti sukurti simbolinę nuorodą į tessdata aplanką. Kelią iki tessdata aplanko „VietOCR“ programai taip pat galite nurodyti TESSDATA_PREFIX aplinkos kintamajame:

export TESSDATA_PREFIX=/usr/local/share/

Jeigu naudojatės čia nepaminėta platforma, išsamesnės informacijos rasite „Tesseract“ vikyje.

„VietOCR“ geba parsiųsti ir įdiegti kalbinių duomenų paketus kai kurioms kalboms; šia funkcija galite pasinaudoti, iškviesdami meniu „Nuostatos“ punktą „Parsiųsti kalbinius duomenis“. Jeigu tessdata aplankas yra sisteminio aplanko (pvz., /usr „Linux“ sistemoje ar C:\Program Files „Windows“ sistemoje) viduje, kalbiniams duomenims įdiegti programą gali tekti vykdyti administratoriaus teisėmis.

Skenerio programiniam palaikymui yra naudojama „Windows Image Acquisition Library (WIA) v2.0“ biblioteka, kuriai būtina „Windows XP SP1“ ar naujesnė „Windows“ laida. Su „Windows Vista“ ir „Windows 7“ WIA biblioteka pateikiama iškart, o į „Windows XP“ ji įdiegiama, nukopijuojant failą wiaaut.dll į sistemos System32 aplanką (dažniausiai jo kelias – C:\Windows\System32) ir jį užregistruojant tokia komanda:

regsvr32 C:\Windows\System32\wiaaut.dll

Linux, skenavimo reikia įdiegti SANE paketai:

sudo apt-get install libsane sane sane-utils libsane-extras xsane

PDF failų palaikymas galimas naudojant „GPL Ghostscript“ priemonę. Ją įdiegus, reikia užtikrinti, kad dinaminė biblioteka (gsdll32.dll arba libgs.so) patektų į sisteminės failų paieškos kelią, papildant atitinkamą aplinkos kintamąjį. „Windows“ sistemoje tai yra kintamasis Path, kurį galite redaguoti, atvėrę Valdymo skydą, jame spustelėję piktogramą „Sistema“, tada atverę kortelę „Išsamiau“ ir spustelėję mygtuką „Aplinkos kintamieji“. Pavyzdžiui, „GhostScript 9.06“ atveju, kintamąjį Path reikėtų papildyti tokia eilute:

;C:\Program Files\gs\gs9.06\bin

„Linux“ sistemoje:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

pažymėtina, jog šiuo atveju /usr/lib aplanke turi būti sukurta libgs.so nuoroda į libgs.so.9.06.

Rašybos tikrinimo funkcija galima panaudojant „Hunspell“ tikrintuvę, kurios žodynų failai (.aff, .dic) turėtų būti patalpinti į aplanką dict, esantį „VietOCR“ programos aplanke. Be to, šiame aplanke galite sukurti UTF-8 koduoto teksto failą user.dic su papildomais žodyne nesančiais žodžiais (vienas žodis eilutėje).

„Linux“ sistemoje „Hunspell“ bei žodynus galite įdiegti, naudodamiesi programa „Synaptic“ arba apt įrankiu:

sudo apt-get install hunspell hunspell-en-us

INSTRUKCIJOS

Programą paleisite tokia komanda:

java -jar VietOCR.jar

Pastaba: jeigu susiduriate su atminties trūkumo problema, bandykite įvykdyti ne .jar failą, bet ocr scenarijų.

Kalbinių duomenų failai yra generuojami konkretiems šriftams, todėl programai geriausiai sekasi atpažinti būtent šių ar panašių glifų šriftais rašytus tekstus. Prireikus vaizduose atpažinti kitais šriftais rašytą tekstą, reikės „Tesseract“ programą apmokyti ir sukurti papildomus kalbos duomenų failus, numatančius ir kitokios išvaizdos šriftus. Kiek išsamiau lietuviškai apie „Tesseract“ galite paskaityti Donato Glodenio tinklaraštyje.

Ženklų atpažinimui teksto failo vaizdai turi būti nuskaitomi nuo 200 iki 400 taškų colyje raiška, naudojant juodai baltą arba pilkumo tonų veikseną. Aukštesnės raiškos vaizdai nebūtinai pagerins ženklų atpažinimo kokybę, kuri ir taip yra pakankamai aukšta, ir kitose „Tesseract“ laidose gali dar pagerėti. Reali ženklų atpažinimo kokybė priklauso nuo nuskenuoto vaizdo kokybės. Rekomenduojamos nuostatos skenuojamam vaizdui yra tokios: 300 taškų colyje, 1 bitas taškui (1bpp; juodai balta veiksena) arba 8 bitai taškui (8bpp; pilkumo tonai), vaizdą įrašant į neglaudintą TIFF arba PNG formato failą.

Žemos raiškos (ekranvaizdžio) veiksena įgalina pagerinti žemos raiškos vaizdų atpažinimo našumą. Šioje veiksenoje žemos raiškos (pvz. ekrano) vaizdai konvertuojami į 300 taškų colyje raišką.

Programa numato galimybę jau esamą teksto apdorojimo algoritmą papildyti savuoju. Pridėkite savo pritaikytą teksto ženklų pakeitimo schemą įrašytą faile x.DangAmbigs.txt, simbolį „x“ pakeisdami ISO639-3 standarto kalbos kodu (pvz., lietuvių kalbos kodas – „lit“). UTF-8 koduotės teksto faile lygybės ženklu „=“ atskirkite keistinų teksto fragmentų poras taip: senaReikšmė=naujaReikšmė.

Programoje įtaisyti įrankiai, skirti sujungti vaizdams ar PDF formato failams bei skaidyti PDF failams. Kartais patogiau apdoroti vieną failą, bet ne daug smulkių, o kartais, siekiant išvengti atminties stygiaus problemų, tenka padalinti vieną didelį failą į mažesnes dalis.

NUSKAITYTO TEKSTO APDOROJIMAS

Teksto atpažinimo klaidos paprastai gali būti skirstomos į tris kategorijas. Dauguma klaidų susiję su raidžių registru (pavyzdžiui, „šūVis“) – jos lengvai pataisomos bet kuria su unikodu koduotais tekstais gebančia dirbti tekstų rengykle. Kita klaidų rūšis susijusi su ženklų atpažinimo proceso problemomis, kai raidės supainiojamos dėl diakritinių ženklų arba formos panašumų. Tai nesunkiai pataisoma teksto rašybos taisymo programomis. Programoje įtaisyta nuskaityto teksto papildomo aptvarkymo funkcija leidžia pašalinti daugumą šių tipų klaidų.

Trečiosios kategorijos klaidų pašalinimas negali būti automatizuotas ir reikalauja rankinio teksto redaktoriaus darbo. Šios rūšies klaidos susiję su teksto semantinėm problemom. Tokias atvejais tik žmogus, perskaitęs sakinį, supratęs jo kontekstą, gali nuspręsti kuris žodis buvo originaliame dokumente.

Pateikiame instrukciją, kaip taisyti pirmos ir antros kategorijos teksto ženklų atpažinimo klaidas tiesiogiai programos lange:

  1. sujunkite teksto eilutes. Po teksto atpažinimo kiekvienos eilutės gale atsiranda po eilutės skirtuką, nurodantį pastraipos pabaigą. Eilutėms sujungti pasinaudokite meniu „Formatas“ punktu „Pašalinti eilučių skirtukus“. Atkreipkite dėmesį, kad, kai tekstas yra eiliuotas (poezija ar pan.) to gali ir nereikėti;
  2. daugumą raidžių registro klaidų pašalinsite, pasirinkę meniu „Formatas“ punktą „Keisti raidžių registrą“, tuomet pasirinkite punktą „Sakinio stilius“;
  3. ištaisykite rašybos klaidas, pasinaudodami mygtuku „Tikrinti rašybą“.

Atlikus šiuos žingsnius, dauguma klaidų bus pašalintos. Likusios klaidos susiję su teksto semantika. Jos reikalauja žmogaus – tekstų redaktoriaus – pastangų. Redaktorius skaitys originalo tekstą ir ištaisys tas vietas, kuriose automatinis klaidų šalinimas negalėjo padėti.

Jeigu turite kokių nors klausimų, kviečiame kreiptis (angliškai) į programos naudotojų forumą internete.


Vertė Rytis Umbrasas ir Rimas Kudelis.