## VietOCR

### 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 urminis 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 8“ ar vėlesnė laida. „Windows“ sistemose taip pat būtina įdiegti „Microsoft Visual C++ v14 Redistributable Package“ platinamąjį paketą.

### PROGRAMOS ĮDIEGIMAS

„Tesseract“ 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 paketų saugykloje „Grafika (universe)“. Juos galite įdiegti, pasinaudodami „Synaptic“ arba šia komanda:

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

Įvykdžius šią komandą, programos failai bus įdiegti į aplanką `/usr/bin`, o kalbiniai duomenys – į `/usr/share/tesseract-ocr/tessdata`. Tuo atveju, jeigu „Tesseract“ kompiliuosite ir diegsite iš pirminių tekstų, šie failai bus patalpinti atitinkamai į aplankus `/usr/local/bin` ir `/usr/local/share/tessdata`. Apie `tessdata` aplanko vietą programą „VietOCR“ galite informuoti, nustatydami `TESSDATA_PREFIX` aplinkos kintamojo reikšmę:

> `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 Nustatymai 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 reikėti vykdyti administratoriaus teisėmis.

Skenerio programiniam palaikymui yra naudojama „Windows Image Acquisition Library 2.0“ biblioteka.

„Linux“ sistemoje, skenavimui reikia įdiegti SANE paketus:

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

PDF failų palaikymas realizuotas „PDFBox“ bibliotekos pagalba.

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 žodžiais, nesančiais žodyne (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 myspell-lt`

### 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 jai žinomais ar panašios išvaizdos šriftais rašytus tekstus. Prireikus vaizduose atpažinti kitais šriftais rašytą tekstą, reikės „Tesseract“ programą papildomai apmokyti, sukuriant naujus kalbos duomenų failus.

Ž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. Rekomenduojami parametrai 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 kokybę. Šioje veiksenoje, prieš atpažįstant tekstą, žemos raiškos (pvz. ekrano) vaizdų raiška padidinama iki 300 taškų colyje.

Programa numato galimybę jau esamą teksto apdorojimo algoritmą papildyti savuoju. Pridėkite savo pritaikytą teksto ženklų pakeitimo schemą įrašytą UTF-8 koduotės faile `x.DangAmbigs.txt`, simbolį „x“ pakeisdami ISO639-3 standarto kalbos kodu (pvz., lietuvių kalbos kodas – „lit“). Keistinus teksto fragmentus nuo pakaitalų faile turėtų skirti tabuliacijos ženklas. Faile galima naudoti tiek paprastus keitinius, tiek reguliariuosius reiškinius.

Papildomai įtakoti „Tesseract“ veikimą galite, įrašydami papildomus valdymo parametrus Į failus `tessdata/configs/tess_configs` (tik inicijavimo parametrus) ir `tess_configvars` (ne inicijavimo parametrus).

Programoje įtaisyti įrankiai, kuriais galite sujungti keletą vaizdų arba PDF failų į vieną arba išskaidyti per daug puslapių turinčius TIFF ar PDF failus. 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 klaidas aptikti sunkiausia, nes jos yra semantinės. Šių klaidų atveju atpažinti žodžiai yra gramatiškai teisingi, tačiau prie konteksto jie nedera (pavyzdžiui, „sala“ ir „sąla“). Tokias atvejais tik žmogus, perskaitęs sakinį ir supratęs jo kontekstą, gali sugrąžinti žodį, buvusį 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ą“ ir nurodę punktą „Sakinio stilius“. Tai atlikę, suraskite ir pašalinkite likusias raidžių registro klaidas;
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 anglų kalba į „VietOCR“ naudotojų forumą.