Upload
lythien
View
220
Download
1
Embed Size (px)
Citation preview
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
D I P L O M S K A N A L O G A
VISOKOŠOLSKEGA STROKOVNEGA ŠTUDIJSKEGA PROGRAMA
PRVE STOPNJE
SIMON KEGLJEVIČ
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
DIPLOMSKA NALOGA
ANALIZA IN PRIMERJAVA OBSTOJEČIH OCR
RAZVOJNIH PROGRAMSKIH PAKETOV
Mentor: viš. pred. mag. Andrej Dobrovoljc
Novo mesto, september 2013 Simon Kegljevič
IZJAVA O AVTORSTVU
Podpisani Simon Kegljevič, študent FIŠ Novo mesto, v skladu z določili statuta FIŠ
izjavljam:
da sem diplomsko nalogo pripravljal samostojno na podlagi virov, ki so navedeni v diplomski nalogi,
da dovoljujem objavo diplomske naloge v polnem tekstu, v prostem dostopu, na spletni strani FIŠ oz. v digitalni knjižnici FIŠ (obkroži odločitev):
o takoj, o po preteku 12 mesecev po uspešnem zagovoru, o ne dovoljujem objave na spletni strani oz. v elektronski knjižnici FIŠ zaradi
prepovedi organizacije, v sklopu katere je bil pripravljen empirični del naloge. da je diplomska naloga, ki sem jo oddal v elektronski obliki identična tiskani verziji, da je diplomska naloga lektorirana.
V Novem mestu, dne _________________ Podpis avtorja ______________________
ZAHVALA
Iskreno se zahvaljujem:
mentorju mag. Andreju Dobrovoljcu za vse nasvete, strokovno pomoč in vodenje med
pripravo diplomske naloge;
staršem za finančno in moralno podporo med študijem;
Matjažu Jordanu in Maji Rorman, ker sta mi vedno stala ob strani.
Diplomsko nalogo posvečam Mateju Strojinu, cenjenemu prijatelju in sošolcu, ki je odšel
prezgodaj.
POVZETEK
Tehnologija optične prepoznave znakov je na nekaterih področjih že dolgo uveljavljena in
koristna tehnologija. Navkljub temu dejstvu lahko iščemo nove načine za uspešno uporabo na
področjih, kjer OCR tehnologija sedaj še ni prisotna. Uporaba omenjene tehnologije na novih
področjih pa za podjetje, ki se ukvarja z digitalizacijo dokumentov ter obvladovanjem
digitalne dokumentacije, odpira tudi nove tržne priložnosti. Na podlagi želja in potreb
takšnega podjetja smo raziskali ponudbo knjižnic oz. rešitev, ki nudijo možnost
implementacije tehnologije OCR v lastne programske rešitvah. Ta program je v primeru
našega naročnika namenjen majhnim in srednje velikim podjetjem na slovenskem tržišču.
Diplomsko delo je razdeljeno na dva dela. V teoretičnem delu je razloženo širše področje
OCR tehnologije skupaj s podpornimi procesi. Empirični del vsebuje predstavitev dvanajstih
OCR knjižnic, med katerimi sta dve odprtokodni. Knjižnice so ocenjene glede na zadovoljitev
šestnajstih izbranih kriterijev. Kriteriji so zbirka želja naročnika in pomembnih
funkcionalnosti, ki jih izpostavljajo proizvajalci OCR knjižnic. Od dvanajstih knjižnic jih
željam naročnika ustreza osem. Izmed njih smo za nadaljnje testiranje skladno s postavljenimi
kriteriji izbrali tri najbolj optimalne.
KLJUČNE BESEDE: Optična prepoznava znakov, digitalizacija, OCR SDK rešitve,
ABBYY, Tesseract
SUMMARY
At the moment, optical character recognition technology is quite well established and useful
in some fields of work. Nonetheless we can try and find new ways of successful
implementation on new areas, where OCR is not yet present. Use of this technology on new
areas will also mean a new market opportunity for a company, which specializes in
digitalization and enterprise content management. Based on needs of one such company, we
analyzed multiple solutions, which can be used to implement OCR technology in our own
programs. Our client wants to implement OCR technology for use in small or medium sized
companies on Slovenian market. Thesis is split in two parts. Theoretical part includes wide
review of OCR technology along with its supporting processes. Practical part involves
analysis of twelve OCR solutions with two open source solutions included. Solutions are rated
based on sixteen criteria. Criteria are set according to our clients input, other important
functionalities and supporting processes of OCR technology. Out of twelve solutions, eight of
them met the requirements of our client and three of the most optimal solutions are picked for
advanced testing.
KEY WORDS: Optical character recognition, digitalization, OCR SDK solutions, ABBYY,
Tesseract
KAZALO
1 UVOD ................................................................................................................................ 1
1.1 Hipoteze in raziskovalna vprašanja ............................................................................. 2
1.2 Cilj raziskave ............................................................................................................... 3
2 PREGLED TEMATIKE .................................................................................................... 4
2.1 OCR ............................................................................................................................. 6
2.2 OMR ............................................................................................................................ 7
2.3 ICR .............................................................................................................................. 8
2.4 IWR ............................................................................................................................. 9
2.5 Koraki OCR obdelave ................................................................................................. 9
2.6 Metoda glasovanja ..................................................................................................... 13
2.7 Optimizacija OCR postopka ...................................................................................... 14
2.8 Tipi dokumentacije .................................................................................................... 15
2.9 Implementacija OCR ................................................................................................. 16
3 PRIMERNE OCR SDK REŠITVE .................................................................................. 17
3.1 Argumentacija za izbor rešitev .................................................................................. 17
3.2 Komercialni ponudniki .............................................................................................. 18
3.2.1 Abbyy .................................................................................................................. 18
3.2.2 Nuance Communications ................................................................................... 19
3.2.3 ExpertVision ....................................................................................................... 19
3.2.4 LeadTools ........................................................................................................... 19
3.2.5 Transym .............................................................................................................. 20
3.2.6 Dynamsoft .......................................................................................................... 20
3.2.7 Aquaforest .......................................................................................................... 20
3.2.8 Nicomsoft ........................................................................................................... 20
3.2.9 Accusoft .............................................................................................................. 21
3.2.10 Atalasoft ............................................................................................................. 21
3.3 Opis izbranih rešitev .................................................................................................. 21
3.3.1 Abbyy OCR SDK ................................................................................................ 22
3.3.2 ExpertVision ....................................................................................................... 23
3.3.3 OmniPage........................................................................................................... 24
3.3.4 LeadTools ........................................................................................................... 25
3.3.5 Transym .............................................................................................................. 27
3.3.6 Dynamsoft OCR ................................................................................................. 28
3.3.7 Aquaforest .......................................................................................................... 29
3.3.8 Nicomsoft ........................................................................................................... 30
3.3.9 ImageGear ......................................................................................................... 31
3.3.10 DotImage ............................................................................................................ 31
3.3.11 Puma.NET .......................................................................................................... 33
3.3.12 Tesseract ............................................................................................................ 33
4 KRITERIJI OCENJEVANJA .......................................................................................... 34
4.1 Optimalna rešitev ...................................................................................................... 35
4.2 Opis izbranih kriterijev .............................................................................................. 36
4.2.1 Cena rešitve........................................................................................................ 36
4.2.2 Natančnost prepoznave ...................................................................................... 36
4.2.3 Podpora slovenskemu jeziku .............................................................................. 37
4.2.4 Podpora jezikom ................................................................................................ 37
4.2.5 Uporaba slovarjev in optimizacija OCR jezikov ................................................ 37
4.2.6 Podpora optičnim čitalnikom ............................................................................. 38
4.2.7 Predprocesiranje ................................................................................................ 38
4.2.8 Formati vhodov .................................................................................................. 39
4.2.9 Prepoznava in izhod lastnosti pisave ................................................................. 39
4.2.10 Ohranjanje oblike dokumenta ............................................................................ 40
4.2.11 Formati izhodov ................................................................................................. 40
4.2.12 Podpora ICR ...................................................................................................... 41
4.2.13 Podpora OMR .................................................................................................... 41
4.2.14 Podpora .NET okolju ......................................................................................... 42
4.2.15 Podprti programski jeziki................................................................................... 42
4.2.16 Dokumentacija in primeri .................................................................................. 42
4.2.17 Dostop do internih OCR podatkov ..................................................................... 43
5 OCENJEVANJE OCR SDK REŠITEV .......................................................................... 43
5.1 Preglednica OCR SDK rešitev .................................................................................. 43
5.2 Ocenjevanje rešitev ................................................................................................... 45
5.3 Predstavitev rezultatov .............................................................................................. 47
5.4 Izbor končnih produktov ........................................................................................... 51
5.5 Opis in SWOT analiza izbranih produktov ............................................................... 52
5.6 Ugotovitve hipotez in raziskovalnih vprašanj ........................................................... 56
6 ZAKLJUČEK................................................................................................................... 58
7 LITERATURA IN VIRI .................................................................................................. 61
KAZALO GRAFOV
Graf 3.1: Google smernice iskanja OCR ponudnikov ............................................................. 18
Graf 5.1: Skupna ocena OCR SDK rešitev .............................................................................. 48
Graf 5.2: Cena OCR SDK rešitev ............................................................................................ 49
Graf 5.3: Skupna ocena z ločeno oceno cene........................................................................... 50
Graf 5.4: Prikaz aritmetične sredine ........................................................................................ 51
KAZALO SLIK
Slika 2.1: Praktična delitev tehnologij razpoznavanja vzorcev ................................................. 7
Slika 2.2: Koraki optične prepoznave znakov ........................................................................ 12
Slika 2.3: Metoda kukala ......................................................................................................... 13
KAZALO TABEL Tabela 5.1: Prikaz funkcionalnosti........................................................................................... 44
Tabela 5.2: Rezultati ocenjevanja ............................................................................................ 46
Tabela 5.3: SWOT analiza ABBYY OCR SDK ...................................................................... 53
Tabela 5.4: SWOT analiza Nicomsoft OCR SDK ................................................................... 54
Tabela 5.5: SWOT analiza Tesseract ....................................................................................... 55
1
1 UVOD
Razlog za temo diplomske naloge je konkretna potreba enega izmed slovenskih podjetij (v
nadaljevanju naročnik), ki se ukvarja z digitalizacijo dokumentov, obvladovanjem digitalne
dokumentacije in ostalimi spremljevalnimi storitvami. Digitalizacija dokumentov je po oceni
naročnika ena izmed ključnih storitev, kjer velik del trga še ni pokrit. Omenjeni trg so
predvsem srednja ali manjša podjetja, ki digitalizacijo izvajajo interno ali sploh ne.
Pretvarjanje fizične dokumentacije v digitalno nam omogoča tehnologija optičnega branja
(angl. image scanning). Optimalni izkoristek digitalizacije pa nam nudi optična prepoznava
znakov (OCR, angl. optical character recognition). Po OCR obdelavi dokumentov lahko nad
dokumenti uporabljamo algoritme iskanja ali z njih zajemamo ključne podatke. Na področju
optičnega branja prevladujejo strojne omejitve, na katere podjetje ne more posredno vplivati.
Ravno obratno,pa na področju OCR prevladujejo programske omejitve, na katere naročnik
lahko vpliva. Programska orodja namenjena OCR so pogosto visokega cenovnega razreda, kar
odvrača uporabnike, ki si takšnih visokih stroškov ne morejo privoščiti. Ti uporabniki so
pogosto srednja in majhna podjetja, ki zaradi nizke količine dokumentov ne upravičijo
stroškov investicije.
Ključna želja našega naročnika je poiskati alternativo dragim OCR programom. Najbolj
primerna rešitev za obstoječ problem je uporaba knjižnic oziroma razvojnih orodij (SDK,
angl. software development kit), ki omogočajo implementacijo funkcionalnosti OCR v naš
lastni program. Lastni program lahko v nadaljevanju prilagodimo za slovenski trg in ga tržimo
po ceni dostopni majhnim in srednjim podjetjem. Najprej je potrebno raziskati ponudbo OCR
SDK rešitev, v naslednjem koraku pa je potrebno raziskati, katere funkcionalnosti morajo
OCR SDK rešitve vsebovati. Podjetje tudi zanima, če je smiselno preprosto uporabiti najbolj
prepoznavno rešitev ali je mogoče zadovoljivo že, če izberemo odprtokodno knjižnico.
Podjetje želi izveden pregled funkcionalnosti izbranih rešitev in ocenjevanje na podlagi
funkcionalnost. Po končanem pregledu in ocenjevanju se izberejo tri rešitve, ki bodo
implementirane do stopnje prototipnega programa. Zaradi časovne omejenosti se v diplomski
2
nalogi ne bo pojavilo testiranje natančnosti OCR procesa, diplomska naloga pa se bo
zaključila z izbiro treh najbolj primernih rešitev.
Rezultati diplomske naloge bodo vplivali na izbiro treh rešitev, ki se jih bo izven diplomskega
dela implementiralo do prototipne faze. Po nadaljnjem testiranju prototipnih programov se bo
izbralo najmanj en program, ki bo predan omenjenemu naročniku za tržne namene.
1.1 Hipoteze in raziskovalna vprašanja
S prvim raziskovalnim vprašanjem: »Kakšne funkcionalnosti potrebuje dobra OCR SDK
rešitev?« želimo naročniku predstaviti seznam funkcionalnosti, ki se v OCR SDK rešitvah
pogosto pojavljajo. Po predstavitvi rešitev in funkcionalnosti se iz slednjih izoblikuje kriterije,
ki bodo v pomoč pri ocenjevanju rešitev. Kriteriji bodo pri ocenjevanju pridobili utež, ki
pokaže stopnjo pomembnosti kriterija. OCR SDK rešitve bodo, v primeru izpolnjevanja opisa
funkcionalnosti, pridobile točko v višini uteži kriterija.
Naslednje raziskovalno vprašanje se osredotoča na predlog naročnika, naj med primerne OCR
SDK rešitve vključim ABBYY OCR SDK. Naročnik prepoznava omenjeno rešitev kot najbolj
prepoznavno na evropskem tržišču. Zaradi tega dejstva želimo preveriti povezanost med
prepoznavnostjo in ponujenimi funkcionalnostmi rešitve. Raziskovalno vprašanje se glasi »Je
najbolj prepoznaven produkt nujno najboljši?«.
Prva hipoteza deloma izhaja iz drugega raziskovalnega vprašanja. Naročnik predvideva, da je
najbolj prepoznavna rešitev tudi najbolj primerna. Zato tega nas zanima, ali so manj znane
odprtokodne rešitve na podlagi ponujenih funkcionalnosti dovolj primerne, da lahko
konkurirajo bolj znanim lastniškim rešitvam. Pogosto se odprtokodnim rešitvam očita
pomanjkanje dokumentacije in manjšo zanesljivost v primerjavi z lastniškimi produkti.
Hipoteza se glasi »Odprtokodne rešitve so zaradi manjšega obsega dokumentacije in podpore
manj primerne kot lastniški produkti. Med najbolj primernimi produkti tako ne bo
odprtokodne rešitve.«.
Naslednja hipoteza se osredotoča na glavno željo naročnika. Naročnik pričakuje, da bodo
izbrane najmanj tri potencialne rešitve za nadaljnje testiranje. S hipotezo predvidevamo, da bo
primernih rešitev več, čeprav bodo v končni fazi izbrane samo tri. Osnovni pogoj za primerno
rešitev je možnost implementacije v program, namenjen majhnim in srednjim podjetjem na
3
slovenskem trgu. Hipoteza se na podlagi opisanega glasi »Obstajajo OCR SDK rešitve, ki
nudijo osnovne funkcionalnosti za uspešno implementacijo v srednja in mala podjetja. Za
namene naročnika bodo primerne več kakor tri rešitve.«.
Implementirati OCR tehnologijo v naš lastni program je že samo po sebi izziv za kateregakoli
programerja, zato predvidevamo, da je poleg OCR SDK rešitve vedno dostopna tudi osnovna
dokumentacija s testnimi primeri. Da sploh poznamo imena razredov in funkcij, ki jih kličemo
v izvorni kodi, morajo biti ta imena nekje opisana. Testni primeri nam omogočajo hitrejše
razumevanje delovanja knjižnice in v nekaterih primerih že delno dosežen končni cilj
programa. Nekateri primeri uporabe so že tako napredni, da jih lahko preprosto prilagodimo
za lastno uporabo.
Raziskovalna vprašanja:
1. Kakšne funkcionalnosti potrebuje dobra OCR SDK rešitev?
2. Je najbolj prepoznaven produkt nujno najboljši?
Hipoteze
1. Odprtokodne rešitve so zaradi manjšega obsega dokumentacije in podpore manj
primerne kot lastniški produkti. Med najbolj primernimi produkti tako ne bo
odprtokodne rešitve.
2. Obstajajo OCR SDK rešitve, ki nudijo osnovne funkcionalnosti za uspešno
implementacijo v srednja in mala podjetja. Za namene naročnika bodo primerne več
kakor tri rešitve.
3. Tehnična dokumentacija skupaj s testnimi primeri je ključnega pomena za uspešno
implementacijo OCR SDK rešitve. Vse rešitve ponujajo vsaj osnovno dokumentacijo
in testne primere.
1.2 Cilj raziskave
Končni cilj diplomske naloge je poiskati več primernih OCR knjižnic in jih na podlagi javno
dostopnih podatkov opisati. Naslednji korak je določitev kriterijev ocenjevanja, na podlagi
katerih bo možno opraviti ocenjevanje omenjenih rešitev. Na podlagi ocenjevanja se izbere tri
najbolje ocenjene OCR SDK rešitve, ki odgovarjajo željam našega naročnika in optimalno
4
zadovoljujejo ostale kriterije. Nad izbranimi rešitvami bo izvedena SWOT analiza, s katero
bomo predstavili prednosti in slabosti vsake izmed treh izbranih rešitev. Za omenjene rešitve
se izven diplomskega dela izvede prototipna implementacija z namenom preverjanja
natančnosti prepoznave znakov in ostalih funkcionalnosti. Končni cilj je implementacija
enega izmed predstavljenih rešitev v program, namenjen prepoznavi ključnih podatkov na
dokumentih.
2 PREGLED TEMATIKE
Ideja o poslovanju brez fizičnih dokumentov se je pojavila že v 20. stol., a tehnološki
napredek te ideje ni podprl. Z razvojem tiskalnikov in optičnih čitalnikov se je količina
papirja namenjenega tiskanju še povečala. Dokumenti so se predvsem zaradi priročnosti in
nižje cene tiskali še pogosteje. V 21. stol. se je trend ponovno obrnil k prvotno zastavljenemu
cilju. Razlog je med drugim tudi nova generacija t.i. digitalnih staroselcev, ki digitalni
dokument doumevajo kot enakovreden fizičnemu dokumentu.
Sama digitalizacija dokumentov v slikovni format je še vedno zelo neučinkovita rešitev,
digitalni dokumenti sicer vzamejo drastično manj fizičnega prostora, a vseeno porabijo veliko
podatkovnega prostora. Poleg tega na področju hitrosti dostopa nismo dosegli napredka,
dokumenta namreč še vedno ne moremo hitro poiskati.
Tukaj nastopi glavno področje diplomske naloge, optična prepoznava znakov. OCR je
relativno mlada tehnologija, ki omogoča razpoznavanje znakov iz različnih virov. Ti viri so
najpogosteje prav digitalni dokumenti, katere smo pretvorili iz fizične oblike s postopkom
optičnega branja. V končni fazi uporabnik pridobi tekstovni zapis slikovnega dokumenta, ki
ga lahko uporabi za več priročnih namenov. Uporabniki lahko po obdelavi iščejo ključne
besede v dokumentih in tako dokument najdejo drastično hitreje, kot bi bilo to možno v
primeru fizičnega arhiva. V primeru našega naročnika je potrebno v prepoznanem tekstu
zaznati ključne podatke na dokumentu. Pred razvojem OCR tehnologije so se ključni iskalni
5
pojmi vnašali ročno, kar pa poleg počasnejše obdelave prinaša tudi dodatne stroške. Človeška
interakcija je za 100 % zagotavljanje pravilnosti še vedno nujno potrebna. Sicer ni potrebno
več ročno vnašati potrebnega besedila, vendar je še vedno potrebno preveriti pravilnost
prepoznanega teksta.
Zajem podatkov s pomočjo OCR tehnologije je že vrsto let zelo pomembna in zanimiva tržna
niša, ki je kljub gospodarski krizi v konstantnem razvoju. Večna dilema uporabnikov OCR
rešitev pa je, ali je bolj racionalno uporabiti že izdelan produkt ali raje uporabiti knjižnico
oziroma razvojno orodje. Kljub nekaterim prednostim SDK OCR rešitev, predvsem večji
uporabniki posegajo po že izdelanih produktih in se izogibajo raznim SDK rešitvam. Te
rešitve so v končni fazi cenejše od izdelanih produktov, nameniti pa jim je potrebno več časa
za implementacijo. Izdelani produkti nudijo krajši čas implementacije in uporabo grafičnega
vmesnika, ki uporabnikom neveščim programiranja olajša delo. Cena izdelanega produkta je v
primerjavi s SDK rešitvijo višja in navadno vseh plačanih funkcij sploh ne uporabljamo.
Slabost skupna obema tipoma rešitev pa je, da se na splošno pojavlja nezaupanje novim ali
neuveljavljenim rešitvam in rešitvam odprtokodnega tipa.
Dorothea Blostein in ostali so mnenja, da je za znižanje stroškov digitalizacije potrebno
razvijati avtomatizacijo OCR tehnologij. Mala in srednje velika podjetja bi torej lahko z
investicijo v kakovostne OCR SDK rešitve znižala stroške.
Spremembe cen na programskem in strojnem področju pretvarjanja dokumentov, še
posebno nižanje stroškov pomnilniškega prostora in procesorske moči, so do sedaj
minimalno vplivale na objavljanje raziskav s področja digitalizacije dokumentov. V
masovni digitalizaciji prevladujejo stroški, ki nastajajo zaradi uporabe človeških
virov. Posledica tega dejstva je osredotočanje raziskav na optimizacijo človeške
interakcije pri digitalizaciji, namesto na izboljševanje avtomatizacije in izdelave
samostojnih algoritmov. (Blostein in Nagy 2012, str. 7)
Zaradi konkretnega poslovnega problema smo se odločili, da raziščemo ponudbo SDK OCR
rešitev. Na podlagi funkcionalnosti, zahtevanih za implementacijo v program namenjen
srednjim in majhnim podjetjem na slovenskem trgu, bomo v končni fazi izbrali najbolj
primerne rešitve.
6
2.1 OCR
Izmed različnih vrst razpoznavanja vzorcev je najpogosteje zastopana optična prepoznava
znakov. Glavna naloga OCR je pravilno prepoznati znak v dvodimenzionalnem prostoru.
Naloga je za pismeno osebo sicer trivialna, računalniku pa naloga predstavlja velik izziv za
vsak znak v dokumentu. Dodatne težave se pojavijo ob slabši kvaliteti skenogramov ali ob
poškodovanem tekstu na dokumentih. Začetki tehnologije segajo v 20. stol., a začetne ideje
niso bile namenjene samemu zajemanju teksta. Prve implementacije OCR so bile predvidene
predvsem za slepe in slabovidne, cilj je bil omogočiti pretvarjanje teksta v zvočni zapis.
Kmalu so se začele pojavljati alternativne implementacije, ki so se izkazale kot zanimive tudi
na komercialnem trgu. »V letu 1929 je Tauscheck pridobil prvi patent iz OCR tehnologije v
Nemčiji, leta 1933 je Hendel pridobil podoben patent v Združenih državah Amerike. To sta
prva koncepta OCR tehnologije, ki ju poznamo.« (Shunji in drugi 1992, str. 2). OCR
tehnologijo se je pričelo uporabljati za namene ločevanja poštnih pošiljk, bančnih in ostalih
storitev, kjer je količina teksta zahtevala avtomatizacijo procesov. Žal je razvoj OCR
tehnologije potekal le tako hitro kakor razvoj strojne računalniške opreme, slednja je namreč
pogoj za razvoj avtomatične prepoznave. Trenutno uporaba OCR tehnologij sega na različna
področja poslovne in zasebne uporabe:
prepoznava teksta s celotnega dokumenta za namen iskanja,
digitalizacija starejših knjig in ostalega tiskanega gradiva,
prepoznavanje specifičnega dela teksta z namenom zajema ključnih podatkov.
OCR sistem je bil v svojih začetkih sposoben brati samo primerne strojne tipe pisave kot je na
primer OCR-A. Pisava upodablja znake z enako širino in fiksnim odmikom ter konkretno
razlikuje pogosto zamenljive znake kot so; 0, O, o ali 5, S, 8 (0, O, o ali 5, S, 8).
Sčasoma so tehnologija in algoritmi napredovali do takšne mere, da OCR uspešno prepozna
tudi ostale pisave in različne velikosti pisav. Za razliko od starejših OCR sistemov se lahko
novejši dinamično prilagajajo različnim tipom in velikostim pisav, kar v praksi pomeni, da ni
potrebno izvajati procesa OCR za vsak tip dokumentacije posebej.
Uporaba OCR tehnologije se je sorazmerno povečevala z uporabo standardnega formata za
zapis datotek imenovanega PDF (angl. Portable Document Format). V verziji 1.4 omenjenega
standarda se pojavi tudi možnost uporabe tekstovne plasti nad slikovno plastjo. Ta
funkcionalnost omogoča iskanje želenega tekstovnega niza v dokumentu, ki nas usmeri na
7
primerno sliko v slikovni plasti. Tekst lahko posledično tudi kopiramo iz PDF dokumenta.
Tehnologijo uporabljajo tudi mnogi OCR programi, ki omogočajo izhod v tem priljubljenem
formatu.
Sicer je OCR natančno definirana tehnologija, v praksi pa se pogosto omenja kot nadpomenka
ostalim podobnim tipom razpoznavanja vzorcev, kakor je prikazano na sliki 2.1.
Slika 2.1: Praktična delitev tehnologij razpoznavanja vzorcev
Vir: Kegljevič, lastna raziskava (2013)
2.2 OMR
Tehnologija optičnega prepoznavanja vzorcev (OMR, angl. optical mark recognition) je
specifična tehnologija, ki za razliko od OCR ne prepoznava tekst ampak vzorce. Ti vzorci so
lahko popularne črtne in QR kode ali prej pripravljeni obrazci kot so npr.
anketni vprašalniki,
srečke,
izpitne naloge.
OMR se tesno prepleta z OCR tako v izvoru, kot tudi v uporabi. Črtne kode se v praksi
pogosto uporabljajo kot ločilni element, ki označuje vodilni dokument v seriji dokumentov.
8
Pogosto je OMR tehnologija že integrirana v optične čitalnike, proces pa se izvede takoj za
optičnim branjem dokumenta. Prednost takšnega postopka je, da lahko pridobimo npr.
unikatni identifikator dokumenta še predno začnemo z OCR obdelavo tega dokumenta. Za
razliko od OCR tehnologije se pri OMR navadno uporabljajo preproste metode, kot je npr.
kasneje opisana metoda kukala. Dokumentacija namenjena OMR obdelavi je navadno posebej
prilagojena tej tehnologiji. To dejstvo je ravno obratno pri OCR tehnologiji, postopek
prepoznave pri slednji tehnologiji se namreč prilagaja dokumentaciji. OMR tehnologija zaradi
tega dejstva dosega višjo natančnost v primerjavi z OCR, poleg boljše kakovosti pa je hitrejši
tudi čas prepoznave. Slaba plat OMR tehnologije je dejstvo, da moramo dokumentacijo
prilagoditi za uporabo omenjene tehnologije. Tehnologija ne prepoznava tekstovnega zapisa,
zato moramo želeni tekst pripraviti v obliki vzorca npr. lestvica pri anketnem vprašlniku.
2.3 ICR
Inteligentno prepoznavanje znakov (ICR, angl. intelegent character recognition) je naslednji
korak OCR tehnologije. Dobri OCR algoritmi relativno preprosto prepoznavajo kvalitetno
natisnjene znake, težava nastopi, ko z OCR tehnologijo poskušamo zajeti ročno pisano
besedilo. Dejstvo, da je vsaka človeška pisava skoraj unikatna, povzroča težave pri
prepoznavi teh znakov. ICR namesto prej predvidenih pisav uporablja algoritme, ki se
samostojno učijo in nato uporabljajo bazo vzorcev pri nadaljnji prepoznavi. ICR je predviden
za prepoznavo ročnih namesto stojnih pisav a pri tem dosega nižjo natančnost kakor OCR na
svojem področju, natančnost ICR tehnologije se lahko približa 97 % v dobrih pogojih.
Pogosto se pri ICR tehnologiji uporablja metodo glasovanja, ki je opisana v nadaljevanju. V
praktični uporabi se ICR pojavlja pri prepoznavi obrazcev kot so npr.:
anketni vprašalniki,
vloge za državne dokumente.
ICR tehnologija načeloma prepoznava izključno tiskane črke in številke v navadno prej
definiranih okencih na obrazcu. V primerjavi s klasičnim človeškim pretipkavanjem dosega
optimalna raba tehnologija enke odstotke pravilne prepoznave v drastično krajšem času.
(Wikipedia, 2013a)
9
2.4 IWR
Tehnologija inteligentnega prepoznavanja besed (IWR, angl. intelligent word recognition) je
zelo sorodna tehnologij ICR s ključno razliko. Razlika je, da namesto posameznih znakov
IWR v bazo shranjuje celotne besede. To dejstvo omogoča višjo natančnost pri ročno pisani
pisavi, kjer je največja težava zaznavanje presledka med znaki. Pri svojem delovanju IWR
tehnologije uporabljajo nevronske mreže, ki imitirajo delovanje človeških možganov. V
praksi lahko srečamo IWR tehnologijo pri:
ročnem pisanju na mobilnih napravah,
avtomatizaciji pretipkavanja pisanega besedila.
Tehnologija IWR zaradi svoje specifičnosti ne konkurira OCR ali ICR tehnologijama, ki pri
tipkanem besedilu ali tiskanih črkah dosegata zadovoljive rezultate. (Wikipedia, 2013b)
2.5 Koraki OCR obdelave
Grobo opisano, povprečni OCR sistem deluje po naslednjem postopku (Slika 2.2). Prvi korak
je optično branje ali v izjemnem primeru fotografiranje želenega dokumenta. Navadno so
nastavitve branja v ločljivosti najmanj 300 dpi (dots per inch) ali 118 dpcm (dots per
centimetre), v sivinskem načinu z 256 odtenki sive ali črno-belem načinu. Izhod je sivinski ali
črno-beli slikovni dokument, navadno shranjen v formatu TIFF (angl. tagged image file
format).
Naslednji korak je predprocesiranje slik oz. slikovna obdelava dokumentov. Cilj postopka je
optimalno pripraviti sliko za OCR obdelavo z odstranjevanjem šumov, normalizacijo,
povečavo kontrasta, itd. Pogoste so sledeče metode:
Binarizacija – postopno pretvarjanje barvne ali sivinske slike v binarno.
Najpreprostejša oblika segmentacije.
Segmentacija – je ponavljanje normalizacije slike, dokler ni dosežen želen
učinek.
Uravnavanje zamaknjenosti posnetkov (angl. Deskew) – poravnava teksta
zaradi poševne slike.
10
Odstranjevanje šumov (angl. Despeckle) – odstranjevanje šumov v obliki
majhnih slikovnih pik na sliki
Z uporabo nekaterih metod lahko drastično izboljšamo končno kvaliteto prepoznanega teksta.
Metode predprocesiranja pa so skoraj obvezne pri prepoznavanju starejše ali poškodovane
dokumentacije.
Ekstrakcija se opravi na predprocesirani sliki. Namesto osredotočanja na celoten tekst se
algoritmi osredotočajo na posamezni znak ali le nekaj znakov. Na tak način razdrobimo
proces na več manjših procesov, ki se lažje izvedejo. Izhod so navadno pomembne interne
OCR informacije oz. rezultati metod ekstrakcije, ki služijo za prepoznavo znakov v
naslednjem koraku. Nekatere metode, ki se uporabljajo pri ekstrakciji teksta, so:
Ujemanje predlog – sliko izbranega znaka poskušamo upariti z eno izmed
predhodno shranjenih slik. Ob pozitivnem ujemanju se znak določen ujemajoči
se sliki izbere za prepoznani znak. Podobna tehnologija se uporablja na
področju prepoznavanja biometričnih lastnosti kot so npr. oblika obraza.
Zernike trenutki – po izračunu zernike polinomov za izbrani znak poiščemo
približek rezultata v predhodno izračunani bazi rezultatov. Vrednost v bazi, ki
se z rezultatom najbolj ujema, nam poda prepoznani znak.
Metoda kukala – izbrani znak postavimo na opazovano področje, kjer so
predhodno definirane točke. Na podlagi točk, ki jih znak zakrije, lahko po
predhodni definiciji ugotovimo, kakšen znak se nahaja na opazovanem
področju (Slika 2.3).
Na splošno se algoritmi ekstrakcije delijo na dve večji skupini. Prva skupina algoritmov
deluje po principu matričnega ujemanja. V to skupino spadajo metode, ki prepoznavajo znak
na podlagi primerjave izbranega znaka s prej definirano obliko znaka. Metoda ni učinkovita,
dokler ni ustvarjena primerna baza definiranih oblik. Težave zaradi tega nastopijo, če se na
dokumentaciji pojavi nedefiniran tip pisave. Bolj napredna skupina metod uporablja princip
ekstrakcije oblik. Metode iz te skupine pred prepoznavo izbrani znak pretvorijo v bolj splošno
vektorsko obliko. Te oblike so sestavljene iz črt, presečišč in zank ter predstavljajo
poenostavljeno podobo izbranega znaka. Naslednji del metode je identičen matričnemu
ujemanju, poenostavljena podoba znaka se primerja s prej definiranimi oblikami in predlaga
najbolj primeren znak. (Wikipedia, 2013c)
11
S pomočjo informacij pridobljenih v postopku ekstrakcije se izvede klasifikacija znakov. Oba
postopka ste tesno prepletena in občasno v literaturi nista opisana kot ločena postopka.
Medtem ko je proces ekstrakcije odgovoren za izolacijo znaka in nadaljnjo obdelavo znaka, se
proces klasifikacije znakov osredotoča na samo primerjavo med ekstrahiranim znakom in
definiranimi zapisi v bazi. Na podlagi statističnih metod ali algoritmov, ki se lahko pri
novejših OCR sistemih dinamično spreminjajo, postopek prepozna posamezne znake.
Uporabljene metode ali algoritmi so lahko:
Algoritem k najbližjih sosedov – algoritem primerja številske lastnosti znakov,
preprost primer lastnosti je vsota črnih slikovnih pik na ekstrahiranim znaku. V
naslednjem koraku poišče znake, ki se najbolj prilegajo iskanemu na podlagi
omenjene številske lastnosti. Število k nam pove, koliko lastnosti znaka opazujemo.
»Algoritem najbližjih sosedov vsebuje cenjeno teoretično lastnost: z višanjem vzorca
za treniranje, se stopnja napak približuje stopnji napake Bayesovega algoritma, ki je
najnižja možna napaka ob uporabi enakega vzorca.« (Baird in Casey 2006)
Bayesov klasifikator – ena izmed velikih prednosti naivnega Bayesovega
klasifikatorja je ta, da ga ni potrebno učiti vedno od začetka, ampak ga učimo sproti,
tako da popravljamo njegove napake. S tem korigiramo učno množico in zmanjšamo
verjetnost napak pri naslednjih klasifikacijah. (Čuček, 2010)
Pogosto se naenkrat uporablja več pravil ali statističnih metod, s katerimi se izbere najbolj
primeren znak od vseh predlaganih.
Po končani obdelavi lahko zvišamo odstotek pravilno prepoznanih znakov z različnimi
postopki. Pogost primer je združevanje znakov v besede, ki jih nato preverimo v slovarju
besed. OCR sistem ob nizki gotovosti prepoznanega znaka sestavi celotno besedo, v kateri se
nahaja znak in v slovarju poišče besedo, ki se najbolj ujema. V naslednjem koraku se
primerjata znak v sestavljeni besedi in znak v besedi iz slovarja. Ob zadovoljivem ujemanju
se znak potrdi z višjo gotovostjo ali pa se ga zavrne in predlaga drugačen znak. Uporaba
slovarja je odvisna od dokumentacije, ki jo želimo obdelati. V primeru dokumentacije, ki
vsebuje izključno slovenski jezik, lahko uporabimo slovar z izključno slovenskimi besedami
in tako izboljšamo kvaliteto prepoznave. Poleg preverjanja s slovarjem lahko slabo
prepoznane znake iz tega koraka pošljemo v predhodne faze, ki pa v drugem krogu
12
prepoznave uporabljajo alternativne metode. Če ima ponovno izbrani znak večjo verjetnost
pravilnosti, ga zamenjamo s predhodno izbranim.
Najbolj preprost izhod iz OCR postopka je tekstovni zapis znakov, ki so prisotni na vhodni
sliki. Poleg osnovnega tekstovnega zapisa nekateri OCR programi omogočajo še množico
dodatnih izhodov kot so npr.:
lokacija prepoznanih znakov,
stopnja verjetnosti prepoznanih znakov,
tip, velikost in stil pisave,
razporeditev tabel, slik in teksta.
Dodatni izhodi so izjemno koristi pri izdelavi PDF datotek, po katerih lahko iščemo. Nekatere
rešitve lahko namreč z zgoraj omenjenimi izhodi kreirajo tekstovno plast v PDF dokumentu in
jo na podlagi lokacije prepoznanih znakov povežejo s slikovno plastjo. Na tak način lahko
prikazujemo optično prebrane slike dokumentov, na katerih lahko izberemo želeni tekst.
Slika 2.2: Koraki optične prepoznave znakov
Vir: prirejeno po Trier in drugi (1995, str. 2)
Za uspešno prepoznavo teksta potrebujemo vse zgoraj naštete metode, a na akademskem
področju se največ raziskav osredotoča posveča fazi ekstrakcije in klasifikacije. Razlog za to
je, da procesa ponujata največ matematičnih, statističnih in logičnih izzivov. Prvi OCR
sistemi so uporabljali osnovno metodo ekstrakcije poimenovano kukalo (angl. peephole). Pri
Fizična dokumentacija
Optično branje
Sivinska/črnobela slika
Samostojni znak
Poenostavljena podoba
Prepoznan znak
Prepoznan tekst
Predprocesiranja slike
Ekstrakcija
Klasifikacija
Končana obdelava
13
metodi opazujemo prej definirane točke (Slika 2.3). Ob pogoju, da je znak vedno na enakem
mestu, lahko določimo, katere točke vsebujejo črnino in na katerih je belo ozadje. Posledično
ustvarimo algoritem, ki nam pove, kateremu znaku pripada kombinacija zaznanih točk.
Težava nastopi, ko želimo prepoznati znake, ki uporabljajo drugačno pisavo, so rotirani ali
slabo natisnjeni. Takšna osnovna metoda se še vedno uporablja pri OMR tehnologiji, na
področju OCR, ICR in IWR pa se razvijajo nove, pogosto zelo kompleksne metode.
Slika 2.3: Metoda kukala
Vir: Shunji in drugi (1992, str. 3)
2.6 Metoda glasovanja
V praksi se pogosto pojavi metoda glasovanja (angl. voting). Dejstvo je, da je 100 % pravilna
prepoznava pri dokumentih slabše kakovosti nemogoča, z metodo glasovanja pa se lahko tej
meji vsaj približamo. Metoda načeloma podpira več različnih OCR sistemov ali različne
variante enega in s kombinacijo posameznih rezultatov v končni fazi pridobi bolj kvaliteten
končni rezultat. Za vsak dodaten OCR pogon se čas obdelave podaljša, zato je potrebno
poiskati pravilno razmerje med hitrostjo in kvaliteto.
Metoda glasovanja obljublja potencialni pristop do bolj zanesljivih rezultatov, kar je potrjeno
tudi s strani mnogih raziskovalcev. Rice in ostali so pri uporabi glasovanja ugotovili možnost
znižanja napak prepoznave za približno 40 %. (Rice in drugi, 1994)
Zanimivo je tudi opaženo dejstvo, da postopek glasovanja postane drastično manj
efektiven ob uporabi enega neprimernega OCR sistema oz. variante OCR sistema. Preveč
14
drastične razlike med rezultati glasov botrujejo slabim končnim rezultatom glasovanja.
Čeprav glasovanje OCR sistemov ni čudežno zdravilo, pa vseeno ponuja zadovoljive
rezultate, še posebej na področju OCR tehnologije. (Bunke in drugi 1997, str. 237)
Glasovanje je torej smiselno uporabiti ob slabši kvaliteti dokumentacije, a le z OCR pogoni,
ki so za takšne dokumente primerni. Slabost glasovanja je dejstvo, da je potrebno za uspešno
nastavitev pogosto porabiti večjo količino časa. Potrebno je namreč preizkusiti več različnih
OCR sistemov in se prepričati, da rezultati posameznih želenih sistemov drastično ne
odstopajo. Končni rezultat je znižanje napak za približno 40 %, kar pri 96 % pravilno
prepoznanih znakov prinese le odstotek ali dva več. Odstotek več pri pravilni prepoznavi
teksta ni drastična izboljšava, a vseeno lahko prinese konkretno znižanje stroškov pri ročnem
preverjanju rezultatov na dolgi rok.
2.7 Optimizacija OCR postopka
Pogost podporni proces je optimizacija ali treniranje (angl. training) OCR postopka.
Optimizacija OCR je bolj splošen pojem, postopek se lahko uporablja pri metodah ekstrakcije
ali slovarjih. Izraz trening pa se uporablja izključno za izboljšavo metod ekstrakcije.
Nekateri OCR programi imajo zmožnost treniranja. ABBYY ponuja vmesnik, ki omogoča
uporabniku potrditev ali popravek prepoznanih znakov. Na podlagi rezultatov, ki jih
uporabnik podaja, se OCR postopek avtomatično izboljšuje z dodajanjem oblik v bazo.
Ta postopek je izjemno uporaben predvsem za starejše pisave, dokumentacijo slabše
kakovosti ali dokumentacijo s poškodovanimi znaki v celotnem besedilu. Po treniranju si
program zapomni popravke uporabnika in jih aplicira na podobne primere
dokumentacije v prihodnosti. Treniranje je lahko učinkovito vendar je obenem časovno
zahtevno in se iz tega razloga ni uporabljalo za večje projekte digitalizacije. (Rose,
2009)
V obeh primerih optimizacije je v ozadju vzpostavljena baza. V primeru optimizacije metod
prepoznave se v bazo shranjujejo vzorci značilni za specifično dokumentacijo katero želimo
obdelati. Pri optimizaciji slovarjev v bazo dopolnjujemo besede, ki se pogosto pojavljajo in
jih slovar še ne vsebuje. Nasprotno pa lahko iz slovarja brišemo besede, ki se v besedilu ne
15
smejo pojavljati. Obe optimizaciji se navadno izvajata po končani obdelavi in uporabljata v
naslednjem postopku OCR obdelave.
2.8 Tipi dokumentacije
Na področju implementacije SDK OCR je zagotovo pomembna tudi lastnost dokumentacije,
katere tekst pretvarjamo v digitalno obliko. Ponudniki celovitih plačljivih produktov se
pogosto specializirajo na posamezen tip dokumentov. Pri nekaterih OCR SDK rešitvah je
možno enako kakor pri plačljivih produktih upoštevati lastnosti različnih tipov dokumentacije
in tako izboljšati kvaliteto izhoda. Klasična delitev tipa dokumentov je sledeča:
Strukturirani dokumenti so obrazci. Zanje je značilno, da so podatki, ki jih
želimo zajeti, vedno na istem mestu. Rezultati strojnega zajema so zato pri
obrazcih najboljši, saj natanko vemo, kateri podatek iščemo in kje na
dokumentu ga najdemo. Primeri strukturiranih dokumentov so plačilni nalogi,
obrazci za DDV in dohodninski obrazci.
Polstrukturirani dokumenti so tisti dokumenti, pri katerih vemo, katere podatke
iščemo, ti pa so lahko kjerkoli na dokumentu. Najpogostejši polstrukturirani
dokumenti so računi. Niti dva prejeta računa različnih dobaviteljev nista
enaka, čeprav prav vsak vsebuje enake podatke: datum, številko računa,
davčno številko, znesek. Podatki so pri različnih izdajateljih računov na
različnih mestih. Preden lahko strojno zajamemo vsebino takšnega dokumenta,
moramo z uporabo ustreznih programskih orodij poiskati mesto na računu,
kjer je podatek. Primeri polstrukturiranih dokumentov so poleg računov
dobaviteljev še naročilnice, dobavnice, tovorni listi idr.
Nestrukturirani so tisti dokumenti, pri katerih je uspešna strojna prepoznava
najtežja, saj ne vemo, kateri podatki so pomembni za zajem, niti kje so. Med
take spada večina poslovne korespondence. (Dobrovoljc 2012, str. 12)
V praksi je pred začetkom digitalizacije dokumentov potrebno le-te vsaj osnovno analizirati.
Na podlagi tipa dokumentov se odločimo za najbolj primeren način digitalizacije in zajema
vsebine. V primeru strukturiranih dokumentov je zajem želenih podatkov najlažji, OCR
preprosto usmerimo na definirane lokacije in razberemo želeni podatek. Pri polstrukturiranih
16
dokumentih se načeloma najprej izvede OCR postopek na celotnem dokumentu. Po
izvedenem OCR procesu v prepoznanem besedilu iščemo ključne besede, ki so lahko
»skupaj«, »€ za plačilo« ali »TRR:«. Program nato zazna znake poleg ključnih besed in tako
pridobi želeni podatek. Pri nestrukturiranih dokumentih navadno izvedemo postopek OCR in
nato uporabljamo izhodni tekst za namene iskanja po dokumentu.
2.9 Implementacija OCR
Izdelati samostojne programe za optično prepoznavo znakov je zelo zahtevna naloga na kar
nakazuje tudi zelo majhno število podjetij, ki delujejo na področju razvoja OCR. Ta podjetja
načeloma ponujajo celovitejše produkte in podporo pri implementaciji v poslovne procese,
redkeje pa ponujajo ogrodje OCR, na katerem stoji celovitejši produkt. Kljub temu se
nekatera podjetja posvečajo tudi razvoju rešitev, ki jih je možno implementirati lastnoročno.
SDK, razvojno orodje ali knjižnica je pojem, s katerim označujemo takšne rešitve. S takšnimi
rešitvami se pokrije t.i. dolgi rep trga, v katerega spadajo majhna in srednja podjetja, ki si
dražjih celovitih produktov nočejo oz. ne morejo privoščiti.
Posamezni uporabniki imajo le redko želje ali znanje po urejanju izvorne kode, ki
poganja programe. Kljub temu morajo biti programi prilagodljivi, načeloma potrebuje
tipični končni uporabnik specifičen nabor funkcionalnosti, ki pogosto odstopajo od
potreb drugega končnega uporabnika. Obstaja torej potreba za razvoj sistema, ki skrbi
za pretvorbo dokumentov, deluje po principu črne škatlice in obenem vsebuje možnosti
prilagajanja nastavitev funkcionalnosti. Navdih lahko črpamo iz ostalih podobnih
primerov, npr. uporaba Excelovih makrojev za prilagajanje obnašanja preglednic.
(Blostein in Nagy 2012, str. 6)
Po implementaciji OCR tehnologije v naš program so za implementacijo zaželeni še podporni
procesi digitalizacije. Funkcijo optičnega branja neposredno v program lahko omogoča
uporaba dodatne TWAIN, WIA (angl. Windows Image Acquisition) ali ISIS (angl. Image and
Scanner Interface Specification) SDK knjižnice. TWAIN, WIA ali ISIS so protokoli, ki
skrbijo za komunikacijo z optičnim čitalnikom oz. drugo slikovno strojno opremo.
17
3 PRIMERNE OCR SDK REŠITVE
3.1 Argumentacija za izbor rešitev
Produkti izbrani za primerjalno analizo morajo ustrezati osnovnim pogojem, na podlagi
katerih bo lahko primerjava sploh izvedena.
Glavni pogoj za izbor je možnost implementacije v lastne rešitve, kar pomeni, da mora biti
produkt samostojna OCR knjižnica (SDK, angl. Software Development Kit). Takšne knjižnice
lahko uporabimo kot alternativo uporabi dražjih izdelanih produktov ali razvoju lastnih
knjižnic. Primer izdelanega produkta je lahko program FlexiCapture 10 proizvajalca ABBYY,
ki nudi celovito rešitev za zajem in obdelavo dokumentov. Na žalost produkt ni najbolj
primeren za srednja in mala podjetja zaradi svoje okornosti in cene. V končni fazi tako
nastanejo nepotrebni stroški za funkcionalnosti, ki jih sploh ne uporabljamo. Iz tega razloga je
diplomsko delo omejeno na OCR SDK produkte in ne vključuje izdelanih celovitih rešitev.
V primeru prevelikega števila primernih rešitev, se le-te omeji še glede na spodnje
sekundarne pogoje.
Zaželen je izbor tako lastniških OCR SDK kot tudi odprtokodnih knjižnic. Razlog je testiranje
hipoteze, da so odprtokodni produkti zaradi manjšega obsega dokumentacije in podpore manj
primerni kot lastniški produkti. Kljub očitnim razlikam med obema vrstama knjižnic sta le-ti
na trgu konkurenca, kar pomeni, da je med njima mogoča primerjava.
Možnost uporabe programskega jezika, ki je uveljavljen in dobro dokumentiran. Prednost
imajo knjižnice, ki uporabljajo C#, C++ in jih je možno implementirati v .NET okolje.
Področje operacijskega sistema je za OCR knjižnice težko omejiti, implementacija je namreč
na strani uporabnika SDK.
Podpora za več jezikov in pisav je naslednji logični kriterij. Knjižnice brez podpore za
slovenski jezik v prvem koraku ne bodo izključene, bo pa podpora slovenskemu jeziku močan
kriterij pri ocenjevanju produktov. Po mnenju naročnika raziskave je poslovna programska
rešitev brez podpore za slovenske znake v Sloveniji nezanimiva. Pogoj deluje po principu več
18
je bolje. Knjižnice, ki podpirajo za naše področje izključno eksotične jezike in pisave, kot so
npr. japonščina, devangerska pisava, bengalska pisava itd. se v ocenjevanje ne vključi.
3.2 Komercialni ponudniki
Pregled ponudbe komercialnih podjetij na OCR področju je prvi korak pri iskanju primernih
OCR SDK rešitev. Zanimive informacije bi podala analiza trga na področju programske
opreme namenjene prepoznavi znakov, a takšne raziskave nismo našli. Za potrebe grobe
ocene priljubljenosti ponudnikov OCR rešitev je v nadaljevanju prikazan graf (Graf 3.1)
iskanja poznanih podjetij s področja OCR v iskalniku Google. Na grafu ni prikazanih manj
znanih ponudnikov.
Graf 3.1: Google smernice iskanja OCR ponudnikov
Vir: Google trends (2013)
Na grafu je moč opaziti indeks iskanja ključne besede Abbyy in Naunce ter rešitev Tesseract,
ostali podjetji se glede na iskalni indeks omenjenim niti ne približata.
3.2.1 Abbyy
Abbyy je eno izmed vodilnih evropskih podjetij na področju razvoja OCR rešitev s kar 1250
zaposlenimi. Poleg OCR se osredotočajo na razvoj jezikoslovja ter s pridobljenim znanjem
izboljšujejo odstotek pravilno prepoznanih besed v svojem OCR sistemu. Skupaj s celovitimi
rešitvami za delo z dokumenti nudijo še samostojno OCR knjižnico in programsko opremo
namenjeno prevajanju in pretvarjanju dokumentov. Zanimiva je tudi njihova usmeritev na
mobilne naprave. Dejstvo namreč je, da v zadnjih letih fotoaparati v mobilnih napravah
kreirajo dovolj kvalitetne slike za izvedbo OCR obdelave.
19
3.2.2 Nuance Communications
Leta 2005 sta se združili podjetji ScanSoft in Nuance ter nadaljevali skupno pot pod imenom
Nuance Communications. Scansoft je bilo uspešno podjetje na področju OCR, podjetje
Nuance pa je delovalo predvsem na področju prepoznave govora. Njihov ključni produkt na
področju OCR je celovita rešitev OmniPage, za katero pa nudijo tudi SDK verzijo. Poleg
OCR se ukvarjajo še s prepoznavo govora, tukaj izstopa rešitev prepoznave govora v
Applovih telefonih poimenovana Siri. Delno se osredotočajo tudi na področje mobilne
tehnologije s priljubljeno aplikacijo Swype in slovarji T9.
3.2.3 ExpertVision
Podjetje se za razliko od konkurence osredotoča izključno na razvoj OCR in svetovalne
storitve s tega področja. Na neodvisnih testih univerze v Nevadi pod okriljem Information
Science Research Institute (ISRI) je bilo s svojim produktom ExpertVision Recognition
Toolkit na vodilnem mestu med leti 1992–1994. Žal deset let stari testi ne povedo mnogo o
trenutnem stanju OCR sistema, trdimo pa lahko, da je podjetje razvijalo OCR na zelo uspešni
osnovi.
3.2.4 LeadTools
Ameriško podjetje z dvajsetletno tradicijo na področju slikovne manipulacije in pretvarjanja
dokumentov. Razvoj in implementacija OCR je sicer ozek del tržne ponudbe, a zaradi
velikega poudarka na predprocesiranju po mnenju podjetja dosega zavidljive rezultate.
20
3.2.5 Transym
Malo manj znano angleško podjetje, katerega lastnost je, da svoje rešitve ponuja za nizko
ceno. Njihova OCR rešitev se osredotoča ravno na SDK implementacije. Konkurenčna
prednost rešitve je poleg cene še poudarek na evropskih jezikih in branje slabo berljivega
teksta.
3.2.6 Dynamsoft
Mlajše podjetje iz Kanade, poudarja delo z dokumenti revizijo le-teh. Poleg osnovne
dejavnosti ponuja še OCR SDK, ki ga je mogoče implementirati tudi v spletne aplikacije. V
osnovi je njihova OCR rešitev odprtokodni Tesseract OCR sistem.
3.2.7 Aquaforest
Britansko podjetje, ustanovljeno leta 2001, se ukvarja s tokokrogom dokumentov.
Najpomembnejši produkt podjetja je OCR knjižnica, ki poudarja pretvarjanje dokumentov z
možnostjo branja teksta ter črtnih kod.
3.2.8 Nicomsoft
Manjše rusko podjetje, ki ponuja izključno kompakten in preprost OCR SDK. Podjetje je eno
redkih, ki sprejema enkratno plačilo za svoj produkt namesto obračunavanja uporabe. V
primeru interne uporabe je cena še nižja.
21
3.2.9 Accusoft
Ameriško podjetje ustanovljeno leta 1991. Podjetje je dejavno na različnih področjih:
obdelava dokumentov, razvoj aplikacij za mobilne naprave, razvoj upravljanja z
elektronskimi poslovnimi vsebinami (ECM, angl. Enterprise content management) in
kompresija dokumentov.
3.2.10 Atalasoft
Izdelava knjižnic je glavni trg tega ameriškega podjetja. Glavni produkt, imenovan DotImage,
je OCR SDK z možnostjo integracije v spletne aplikacije ali programske rešitve. Atalasoft je
del bolj prepoznavnega globalnega podjetja Kofax.
3.3 Opis izbranih rešitev
Na podlagi pogojev, opisanih v poglavju 3.1, so v tem poglavju predstavljene knjižnice, ki se
najbolj optimalno prilegajo tem kriterijem. Za nadaljnjo primerjavo je izbranih dvanajst OCR
knjižnic, ki jih je možno implementirati ali okoli njih zgraditi lastno rešitev. Od dvanajstih
knjižnic sta na seznamu dve z odprtokodno licenco.
Vir za opis OCR SDK rešitev so spletne strani ponudnikov rešitev med 1. 5. 2013 in 1. 7.
2013. V primeru navajanja neresničnih dejstev na spletni strani ponudnika so lahko opisi in
ocenjevanje za to rešitev napačni.
Lastniške rešitve so zaradi večje preglednosti razdeljene v tri cenovne razrede:
višji cenovni razred nad 3.000,00 €,
srednji razred med 1.000,00 in 3.000,00 €,
nižji razred pod 1.000,00 €.
22
3.3.1 Abbyy OCR SDK
Rešitev enega izmed vodilnih podjetij na evropskem področju uporablja OCR knjižnice, ki so
bile razvite za njihov lastniški produkt Abbyy FineReader. Podjetje opisuje svoj SDK kot
izjemno natančno in večkrat nagrajeno rešitev. Cena rešitve na spletni strani ni objavljena, ker
si ceno lahko popolnoma prilagodimo glede na količino prepoznanih znakov, strani oz. število
procesorskih jeder. Po grobi oceni pa lahko rešitev uvrščamo v višji cenovni razred.
Na jezikovnem področju nam ponujajo:
OCR je omogočen za 198 jezikov, od tega jih je 113 podprtih tudi za ICR;
podpora slovenskemu jeziku za OCR, ICR in možnost uporabe slovenskega slovarja;
možnost prilagajanja jezika z optimizacijo slovarja;
podpora nekaterim starejšim jezikom kot je npr. stara angleščina.
Vhodni dokumenti so lahko v formatih: PDF, BMP, PCX, DCX, JPEG, GIF, TIFF, PNG in
DjVu. Po obdelavi lahko shranimo prepoznan tekst v formate DOC, RTF, TXT, XML, XLS,
PPT, DOCX, XLSX, PPTX, PDF, PDF/A. Ob izvozu v DOC, PDF ali RTF se ohrani tekst v
obliki izvornega dokumenta. V izhodni dokument se prenesejo elementi kot so npr. glava,
noga, št. strani, stolpci, tabele … Poleg zaznave osnovnih elementov dokumenta je možna še
zaznava tipa pisave, smeri pisave, slik in tabel skupaj s podnaslovitvijo.
Poleg OCR knjižnice nam nudijo tudi podporo pri delu z datotekami PDF (PDF, angl.
Portable Document Format). V PDF datotekah lahko manipuliramo s t.i. metapodatki, tipi
pisav, tokom vsebine, hiperpovezavami. Omogočeno nam je tudi šifriranje, zaklepanje in
omejevanje nekaterih funkcionalnosti PDF datotek.
Poleg podpore predprocesiranju optično branih dokumentov ponujajo tudi podporo
fotografijam zajetim z digitalnimi fotoaparati. Oba tipa vhodov lahko popravljamo s
funkcionalnostmi predprocesiranja:
avtomatično popravljanje ločljivosti,
ravnanje zamaknjenih posnetkov,
popravljanje zamegljenih posnetkov.
23
Podpora .NET okolju z možnostjo uporabe sledečih programskih jezikov, za katere so
izdelani testni primeri:
C#,
Visual basic,
Visual C++,
VB script,
Borland Delphi,
Java.
Omogočen je dostop do hipotez oz. verjetnosti prepoznanih znakov, ki se lahko skupaj z
izhodi iz drugih OCR SDK rešitev uporabijo za t.i. glasovanje prepoznanih znakov. Takšna
metoda lahko zviša natančnost prepoznave v našem programu, ker se prepoznava znakov
normalizira. Odstranijo se namreč očitni napačno prepoznani znaki, za pravilnega pa se
vzame največkrat zastopani znak. (Abbyy OCR SDK, 2013)
3.3.2 ExpertVision
ExpertVision ponuja rešitev OpenRTK 7.0, ki je med leti 1992–1994 v Annual Test of OCR
Accuracy izkazovala najboljše rezultate. »Na splošno se je rešitev ExpertVision RTK v
letošnjem testu odrezal najbolje. Konsistentno je prikazovala visoko natančnost. Posebno
dobro se je rešitev obnesla na delno zamaknjenem tekstu, obenem pa ponuja zanesljivost tudi
ob nizki resoluciji skenogramov (200 dpi). Rešitev premore dobre rezultate tudi na področju
zaznavanja oblike dokumenta.« (Rice in drugi 1994, str. 7).
Cena rešitve se prilagaja glede na namen uporabe. Za najnižjo ceno rešitve smo upravičeni do
uporabe našega programa z enim uporabnikom naenkrat in brez možnosti množične
pretvorbe. Za manjše ali srednje veliko podjetje bi bila najbolj primerna verzija za enega
uporabnika z možnostjo množične pretvorbe, ki po pomanjkljivih podatkih s spletne strani
spada v srednji cenovni razred.
SDK nam ponuja delo z vsemi priljubljenimi slikovnimi formati z možnostjo prepoznave
usmeritve in avtomatično rotacijo slike, če je to potrebno.
24
Področje za OCR prepoznavo se lahko natančno določi. Pri strukturiranih dokumentih, kjer je
podatek vedno na istem mestu, nam to dejstvo prinese pospešen čas obdelave. Nepotrebnega
teksta na tak način ne prepoznavamo, bolj pa se lahko osredotočimo na ključne podatke.
OCR podpira 14 jezikov, med katerimi pa ni slovenščine. Posledično lahko to pomeni, da
znake značilne za slovensko pisavo ta rešitev prepoznava manj optimalno ali sploh ne. Možen
je prenos izvorne pisave, velikosti, tipa in sloga pisave iz izvornega dokumenta. Poleg
naštetih funkcionalnosti je možna ohranitev postavitve teksta.
Vhodni dokumenti so lahko v formatih: PCX, DCX, PDF, BMP, TIFF in JPEG. Izhodni
dokumenti so lahko shranjeni v različnih formatih:
TXT,
HTML,
PDF,
RTF,
XML.
OpenRTK nam za integracijo nudi vmesnik za programiranje (API, angl. application
programming interface), kjer lahko uporabljamo programska jezika C/C++. Pregled
dokumentacije nam je ponujen šele po nakupu rešitve. (ExpertVision OpenRTK, 2013)
3.3.3 OmniPage
OmniPage SDK poleg osnovne OCR, OMR in ICR prepoznave ponuja tudi predprocesiranje
in možnosti za delo s PDF datotekami. Poleg omenjenih funkcij nam ponujajo že
sprogramirane komponente z grafičnim vmesnikom, ki jih lahko preprosto vključimo v naš
program. Omenjena je le najnižja možna cena rešitve, 3.731,00 €, kar rešitev postavi v
kategorijo višjega cenovnega razreda.
Jezikovna podpora obsega 123 svetovnih jezikov. Azijski jeziki so vključeni v tem številu,
vendar jih je potrebno dokupiti. Zanimiva je funkcionalnost dinamičnega prilagajanja jezika.
V primeru spremembe jezika na dokumentih se OCR prilagodi temu jeziku. Posledično nam
programa ni potrebno zaustavljati in prilagajati med delom, kar pomeni, da procesa
prepoznave ni potrebno nadzirati.
25
OmniPage podpira .NET okolje in predvideva uporabo jezikov C/C++ ali C# in VB.NET.
Ponuja dva vmesnika za programiranje, v katerih nadzorujemo slikovne vhode, prepoznavo in
izhode. Izvajanje je podprto na 64-bitni različici operacijskega sistema Windows in na
večjedrnih procesorjih.
Predviden vhodni format je lahko: TIFF, JPG, BMP, PNG ali PDF. Pri slikovnih formatih je
možna prepoznava barvnih in sivinskih datotek. Kot izhod prepoznave lahko dobimo najbolj
pogost navadni tekstovni zapis, PDF, slikovni zapis, XML, HTML, PDF z možnostjo iskanja
ali PDF z deli neprepoznanega teksta pretvorjenimi v slike.
Na področju predprocesiranja so ponujene naslednje funkcionalnosti:
obračanje slike,
uravnavanje poševne slike,
zrcaljenje slike,
uravnavanje šumov,
spreminjanje ločljivosti.
Unikatna funkcionalnost OmniPage SDK je možnost pretvarjanja prepoznanega teksta v
sintetičen glas. Kot izhod dobimo zvočno datoteko, ki lahko olajša delo z dokumenti za slepe
in slabovidne. Ta funkcionalnost pa nam omogoča tudi branje klasičnih dokumentov na
napravah brez zaslona. (Nuance Communications OmniPage, 2013)
3.3.4 LeadTools
Zelo dobro podprta rešitev imenovana Recognition Imaging Developer Toolkit prihaja izpod
rok podjetja LeadTools. Videovodiči, ki jih ponujajo brezplačno, pomagajo neizkušenim
programerjem razumeti delovanje SDK in olajšajo kreiranje lastnega programa. Rešitev je na
spletni strani proizvajalca zelo dobro in logično predstavljena, kar je pogosto pomanjkljivost
pri ostalih lastniških OCR SDK. Produkt vsebuje več modulov, ki skupaj sestavljajo
Recognition Imaging Developer Toolkit. Poleg omenjene rešitve obstaja možnost nakupa
osem različnih rešitev, ki vsebujejo določene module ali nakup posameznih večjih modulov.
Če želimo razviti rešitev za interno uporabo, spada cena v višji cenovni razred. Najprej je
26
potrebno kupiti razvojno licenco v vrednosti 3.045,00 €, nato pa še dodatnih 400,00 €/na
uporabnika za uporabo končne rešitve.
Rešitev omogoča uporabo OCR, ICR, OMR, MICR in prilagajanje za prepoznavo podatkov s
strukturiranih obrazcev. OCR omogoča 30 različnih jezikov med katerimi slovenščine ni
omenjene. Mogoča je prepoznava več jezikov na enakem dokumentu zaradi delne prepoznave
dokumenta. Dokument se namreč najprej prepozna v celoti, nato pa se razdeli na več delov za
katere lahko določimo nadaljnje korake pri obdelavi. OCR omogoča sistem glasovanja za
višjo stopnjo pravilne prepoznave ter delno učenje na podlagi prejšnjih primerov. Zanimiva
funkcionalnost je izklop dodatnih funkcionalnosti, ki drastično pospešijo prepoznavo za ceno
kakovosti prepoznave.
Predprocesiranje dokumenta omogoča:
čiščenje šumov,
popravek tiska iz matričnih tiskalnikov,
odstranjevanje črt,
obračanje slik,
uravnavanje poševne slike,
zrcaljenje slike.
Natančen podatek o vhodnih formatih ni znan, modul za delo z datotekami pa podpira 150
različnih formatov. Z uporabo modula je možno pretvarjati vektorske ali nekatere
dokumentne datoteke v rastrski format. Za obdelavo lahko uporabimo le rastrske slike,
predvidevamo lahko torej, da so podprti formati vsaj BMP, TIFF in JPEG.
Izhod prepoznave z lastnostmi izvornega dokumenta je mogoče shraniti v naslednje formate:
PDF, PDF/A,
DOC,
XLS,
XPS,
RTF, TXT,
HTML.
Dodatno je podprto delo z datotekami PDF, kjer lahko urejamo metapodatke, zaščito
dokumentov in ostale lastnosti dokumentov.
27
V primeru večjega števila dokumentov lahko uporabimo omrežje računalnikov za t.i.
delovanje v oblaku ali pa uporabljamo klasično strežnik-odjemalec strukturo. Uporaba enega
izmed omenjenih načinov pospeši delovanje našega končnega programa ob večjih količinah
vhodnih dokumentov, saj se procesorska moč porazdeli na vse procesorje vključene v
omrežje.
Programska jezika namenjena programiranju v API, sta C in C++. Poleg API lahko
uporabljamo .NET okolje (C#, VB, C++/CLI, XAML), kjer kličemo funkcionalnosti iz
knjižnice. Nekateri moduli podpirajo spletne rešitve, kjer se uporablja JavaScript. (LeadTools
Recognition Imaging Developer Toolkit, 2013)
3.3.5 Transym
TOCR 4.0 je rešitev, predvidena izključno za izdelavo lastnih programov ali integracijo v
obstoječ program. Poleg omenjenega je rešitev osredotočena na kakovost in ne na hitrost, kar
zmanjša potrebo po preverjanju obdelanih dokumentov. Za uporabnike je najbrž zanimiva
nizka cena rešitve SDK. Cena rešitve je 70,00 €, kar je v primerjavi z nekaterimi ostalimi
lastniškimi rešitvami drastično nižje in tako spada v nižji cenovni razred.
Rešitev ne razlikuje tipov pisave na vhodu (izjema je OCR-B) in ponuja izhod v enotnem tipu
pisave. OCR podpira enajst različnih jezikov, med katerimi ni slovenščine. Predogled tabele
znakov, ki jih rešitev lahko prepozna, pokaže možnost prepoznave vseh šumnikov z izjemo č
in Č. Obdelava je možna z ali brez tabele verjetnosti oz. frekvenc, ki poveča kvaliteto
prepoznave glede na sosednje znake.
Vhod sta lahko samo BMP ali TIFF, po obdelavi pa je možno prepoznani tekst izvoziti v
tekstovni zapis. Rešitev vsebuje vmesnik TWAIN za optično branje, s katerim lahko optično
preberemo dokument neposredno v naš program.
Podprta sta programska jezika Visual Basic in C++, možno je prilagoditi strukturo za uporabo
v ostalih jezikih. Dokumentacija je dostopna samo za programski jezik VB.NET, testni
primeri so dostopni za naslednje jezike:
VB.NET,
VB6,
28
C#,
C/C++,
Delphi,
Python.
(Transym TOCR 4.0, 2013)
3.3.6 Dynamsoft OCR
Vmesnik imenovan Dynamic .NET Twain je komercialna rešitev, v katero lahko vključimo
Tesseract OCR knjižnico. Rešitev je predvidena za programerje, knjižnice pa lahko prek
vmesnika kličemo v programskem jeziku C++. Cena rešitve spada v srednji razred s
preračunanimi 2.890,00 € za osnovno rešitev optičnega branja, modul prepoznave črtnih kod
in modul OCR prepoznave.
Za vhod so predvidene rastrske slike v formatih: TIFF, JPG, GIF, PNG, BMP. Slike lahko
zajemamo neposredno iz optičnega bralnika, digitalnega fotoaparata ali spletne kamere.
Trenutno je možno uporabiti 40 različnih jezikov, spisek jezikov pa se širi zaradi
konstantnega razvoja Tesseract knjižnice. Kakovost branja različnih jezikov se razlikuje
zaradi boljše optimizacije bolj zastopanih jezikov. Uporabniki lahko namreč sami prispevajo
svojo optimizacijo (angl. training). Poleg OCR je podprt tudi ICR za prepoznavo ročno
pisanega besedila.
V izhodu lahko ohranimo pisavo, velikost in položaj teksta. Zanimiva je lastnost slike nad
tekstom (angl. Image-Over-Text), kar omogoča ogled izvornega dokumenta z možnostjo
iskanja, kopiranja ali izbiro po tekstu.
Več informacij o samem OCR sistemu se nahaja pri opisu rešitve Tesseract. (Dynamsoft
Dynamic .NET Twain, 2013)
29
3.3.7 Aquaforest
Aquaforest OCR SDK je rešitev srednjega cenovnega razreda, ki opravičuje svoj cenovni
razred z dodatnimi lastnostmi na področju predprocesiranja vhodov v OCR sistem. Ponujene
so tri različice rešitve; osnovna verzija stane 1.144,00 €, standardna različica 2.292,00 €,
napredna različica pa 3.057,00 €. Standardna različica nam nudi delo z več procesorskimi
jedri in vhod ali izhod prepoznave v PDF formatu. Napredna verzija pa nam ponuja
neomejeno uporabo procesorja, algoritem stiskanja za PDF format in optimizacijo OCR
sistema. V nadaljevanju predvidevamo uporabo napredne verzije, kar pomeni, da rešitev
spada v višji cenovni razred.
Vhodi v rešitev so lahko v formatu TIFF, BMP ali PDF. Izhodi pa so možni v formatu PDF,
RTF in TXT. Vhode lahko optimiziramo z različnimi funkcijami predprocesiranja:
čiščenje šumov,
uravnavanje poševne slike,
odstranjevanje črt,
avtomatično obračanje slik.
Omogočena je uporaba .NET okolja, v katerem so testnimi primeri in dokumentacijo podprti
naslednji programski jeziki:
C#,
VB.NET,
ASP.NET.
Za uporabo je optimiziranih 40 jezikov, žal pa je spletna stran ponudnika skopa s podatki,
zato ni znano, če je slovenščina v ta seznam vključena. (Aquaforest OCR SDK 2013)
30
3.3.8 Nicomsoft
Rešitev v primeru interne uporabe, kjer je dovoljena uporaba le za interni razvoj in uporabo,
spada v nižji cenovni razred s preračunano ceno 304,00 €. Osnovno verzijo, s katero smo
upravičeni do preprodaje našega programa, lahko kupimo za 1.068,00 €. V ceno je vključena
še podpora za šest mesecev in dostop do posodobitev. Predvidevamo uporabo napredne
licence, zato rešitev spada v srednji cenovni razred.
Med 26 podprtimi jeziki se nahaja tudi slovenščina, možna pa je uporaba ICR za numerične
znake in OMR za črtne kode. Za obdelavo na celotni strani ali specifičnem področju lahko
uporabimo več jezikov naenkrat, kar je koristno pri dokumentih, na katerih je uporabljenih
več jezikov. Dodatne funkcionalnosti, ki lahko dvignejo kvaliteto prepoznave:
uporaba slovarjev,
prilagajanje slovarjev,
uporaba regularnih izrazov,
izključitev želenih znakov iz prepoznave,
prilagajanje lastnosti za specifičen del slike.
Vhodi in izhodi so standardni slikovni formati BMP, JPG, PNG, TIFF, GIF izhod pa je
mogoč v formatu PDF, RTF in TXT. Izvoz v PDF omogoča ohranitev postavitve identične
izvornemu dokumentu. Za vhod lahko uporabimo dokument neposredno iz optičnega čitalnika
zaradi podpore vmesnikov TWAIN in WIA.
Kot funkcije predprocesiranja so navedene:
avtomatično obračanje slik,
obračanje in zrcaljenje dela oz. celotne slike,
uravnavanje poševne slike,
binarizacija.
Podprto je okolje .NET s testnimi primeri za naslednje jezike:
C#,
C/C++,
31
VB.NET,
Delphi,
Visual Basic,
VBScript,
JScript.
(Nicomsoft OCR SDK, 2013)
3.3.9 ImageGear
Podjetje Accusoft nudi celovitejšo rešitev, ki poleg OCR podpira še napredno delo z
datotekami in vektorskimi slikami, napredno predprocesiranje rastrskih slik, tiskanje,
dodajanje opomb dokumentom, delo v oblaku in integracije v spletno okolje. Zaradi dodatnih
funkcionalnosti se rešitev uvršča v višji cenovni razred. Za SDK, ki je predviden za interno
uporabo, moramo odšteti 4.200,00 €.
Rešitev podpira delo z več kot 100 različnimi formati datotek, s katerimi lahko manipuliramo
pred in po OCR obdelavi. Slednjo lahko izvedemo samo za rastrske slike, ki jih lahko
uvozimo neposredno iz optičnega čitalnika. Format izhodnih datotek je lahko PDF, TXT,
RTF, HTML ali XML. V izhod lahko izvozimo še pisavo in postavitev identično izvornemu
dokumentu.
OCR podpira več kot 100 jezikov, med katerimi je navedena tudi slovenščina. Črtne kode
lahko prepoznavamo (in zapisujemo) z ločenim modulom za OMR tehnologijo.
Okolje .NET je podprto skupaj z obsežno dokumentacijo in primeri v programskem jeziku
C#. (Accusoft ImageGear, 2013)
3.3.10 DotImage
Atalasoft ponuja rešitev, ki se osredotoča predvsem na predprocesiranje in za OCR postopke
ne uporablja lastnih OCR knjižnic. Ponujena nam je izbira:
Tesseract OCR – 1.140,00 €,
32
GlyphReader OCR – 1.600,00 €,
RecoStar ICR/OCR – 4.573,00 €.
Poleg osnovne različice uporabimo brezplačno knjižnico za predprocesiranje slik. Brezplačno
različico lahko uporabimo kot dopolnitev nekaterim drugim OCR SDK rešitvam, ki ne
podpirajo predprocesiranja, tako ekonomično pridobimo dodatne funkcionalnosti za naš
program. Cena za osnovno rešitev DotImage Document Imaging je 2.302,00 €, poleg osnovne
rešitve predvidevamo še nakup RecoStar ICR/OCR modula. Končna cena je torej 6.875,00 €,
kar uvrsti rešitev v višji cenovni razred.
Kot vhode v rešitev lahko uporabljamo rastrske slike, ki jih lahko pred OCR postopki
obdelamo z naslednjimi funkcionalnostmi:
obrezovanje slike,
obračanje,
stiskanje slik,
urejanje metapodatkov,
odstranjevanje šumov,
odstranjevanje robov.
Osnovna rešitev omogoča še uporabo vmesnika TWAIN, ki omogoča neposredno optično
branje v program.
Tehnologija OMR namenjena branju črtnih kod je v rešitev že vključena, za namene OCR pa
izberemo še želen modul. RecoStar modul podpira:
prepoznavo 32 jezikov,
uporabo slovarjev,
TIFF, JPG, JFIF, BMP in PCX kot vhod,
OCR ali ICR prepoznavo,
izhod v tekstovnem ali PDF formatu,
ohranjanje postavitve izvornega dokumenta,
izhod internih OCR podatkov,
C++, C ali Visual C za programiranje.
(Accusoft DotImage, 2013)
33
3.3.11 Puma.NET
Jedro programa CuneiForm je podjetje Cognitive Technologies izdalo kot odprtokodno po več
letih stagnacije na področju razvoja. Maxim Saplin je knjižnico prilagodil za potrebe
svetovnega trga tako, da jo je možno uporabljati v .NET okolju. Obenem je napisal osnovno
dokumentacijo v angleškem jeziku. Svojo iteracijo knjižnice je Maxim poimenoval Puma.net
Knjižnica je zelo osnovna in osredotočena le na prepoznavo znakov z rastrskih slik.
Pomanjkljivost rešitve je, da ne podpira predprocesiranja ali dela z množično obdelavo.
Rešitev je optimizirana za prepoznavanje dokumentov s slabšo kvaliteto. Podpira 27 jezikov
med katerimi je tudi slovenščina. Omogoča preverjanje črkovanja in avtomatično popravljanje
napak. OCR lahko zazna velikost, stil in obliko pisave in nato vse lastnosti skupaj s
postavitvijo besedila shrani v formate TXT, RTF ali HTML.
Vhodi so lahko BMP, GIF, EXIG, JPG, PNG ali TIFF.
Že iz imena rešitve vidimo, da Puma.Net podpira .NET okolje. Poleg izvorne kode lahko
brezplačno prenesemo še dokumentacijo in primere v programskem jeziku C#.
Kot zanimivost, CuneiForm je pred odprtokodno izdajo konkuriralo podjetju Abbyy, ki je
trenutno eno večjih podjetij na področju OCR tehnologij. (Puma.NET, 2013)
3.3.12 Tesseract
Jedro rešitve prihaja iz laboratorijev podjetja Hewlett Packard, ki je po opustitvi razvoja
skupaj z Univerzo v Nevadi izdalo odprtokodno različico v letu 2005. Razvoj odprtokodne
rešitve od leta 2006 dalje sponzorira Google, glavni razvijalec pa je Ray Smith.
Knjižnica ne podpira predprocesiranja slik, uporabniki rešitve Tesseract zaradi tega pogosto
uporabljajo še ostale knjižnice, ki omogočajo funkcionalnosti predprocesiranja slik. Rešitev
obljublja kar 98 % natančnost pri prepoznavi angleškega jezika. Z dostopom do internih
podatkov zanesljivosti prepoznanih znakov lahko uporabljamo Tesseract skupaj z drugimi
rešitvami v metodi glasovanja. Optimizacija za ostale jezike, med katerimi je tudi slovenščina,
je dostopna za prenos, možno pa je kreirati lastno optimizacijo z želenimi znaki. Optimizacija
34
se shrani v datoteko, ki jo nato preberemo med izvajanjem OCR postopka. Optimiziranih je
63 jezikov, med njimi so tudi nekateri starejši jeziki npr. srednja angleščina (12–15 stol.),
stara grščina …
Obdelati je možno le slike v formatu TIFF. Knjižnica omogoča tekstovni izhod, skupnost pa s
svojim prostovoljnim delom izdaja različne rešitve s katerimi lahko implementiramo dodatne
funkcionalnosti, kot je npr. izdelava PDF datotek. Rešitev nam poleg karakteristik
prepoznanega teksta ponuja še prepoznavo postavitve in umestitve teksta na dokumentu.
Izvorna koda rešitve je zapisana v programskem jeziku VC++, knjižnico pa je možno
implementirati v .NET okolje, kjer lahko uporabimo ostale programske jezike. Dokumentacija
in primeri uporabe so dostopni na spletu, kjer jih dopolnjujejo uporabniki rešitve. (Tesseract
OCR engine, 2013)
4 KRITERIJI OCENJEVANJA
Za potrebe lažjega ocenjevanja predstavljenih rešitev so v nadaljevanju postavljeni kriteriji, ki
bodo služili kot izhodišče za pripravo preglednice rešitev. Kriteriji imajo v nadaljevanju poleg
opisa določeno tudi utež, s pomočjo katere lahko pripišem večji pomen nekaterim kriterijem.
Utež se v poglavju ocenjevanje produkta uporabi za izračun ocene OCR SDK rešitev, na
podlagi katere bomo lahko izbrali najprimernejše rešitve. Najnižja možna utež ima negativno
stopnjo –10, najvišja utež pa ima stopnjo 7.
Določanje kriterijev ocenjevanja je sovpadalo s prvim raziskovalnim vprašanjem, ki se glasi:
»Kakšne funkcionalnosti potrebuje dobra OCR SDK rešitev?« Najprej so bili izbrani splošni
kriteriji, ki se tičejo OCR SDK rešitev:
cena rešitve,
natančnost prepoznave OCR procesa,
število podprtih jezikov v OCR procesu,
podpora ICR in OMR,
35
podpora .NET okolju.
Zgoraj našteti kriteriji se nanašajo predvsem na samo OCR tehnologijo in implementacijo le-
te v naš program. Poleg OCR tehnologije sta omenjeni še tehnologiji OMR in ICR, ki
omogočata obdelavo dokumentacije, kjer nam izključno tekst z dokumenta ne pomeni veliko.
V nadaljnjem koraku so bili določeni bolj specifični kriteriji. Določene funkcionalnosti so se
ob pregledovanju rešitev pogosto pojavljale in so bile zato vključene kot kriteriji ocenjevanja:
uporaba slovarjev in optimizacija OCR jezikov;
podpora optičnim čitalnikom;
predprocesiranje vhodnih skenogramov;
število različnih vhodnih in izhodnih formatov v postopku OCR obdelave;
prepoznava lastnosti pisave in ohranjanje teh lastnosti v izhodu OCR;
ohranjanje oblike dokumenta;
število različnih programskih jezikov, s katerimi lahko knjižnico uporabljamo;
dostop do internih podatkov OCR obdelave.
Omenjeni kriteriji označujejo podporne procese OCR tehnologije. Ti procesi vključujejo
optično branje dokumentacije ter napredne funkcionalnosti, ki pripomorejo h kvaliteti OCR
procesa.
V zadnjem koraku sta bila določena še kriterija, ki upoštevata uporabo knjižnic v manjših ali
srednje velikih slovenskih podjetjih:
prepoznava specifičnih lastnosti slovenskega jezika,
dostop do dokumentacije in primerov uporabe rešitev.
Kriterija se osredotočata na dejstvo, da naročnik analize prisoten na slovenskem trgu in z
implementacijo OCR SDK rešitve v lastnem programu cilja na potrebe malih in srednje
velikih podjetij.
4.1 Optimalna rešitev
Želja naročnika, ki je podal predlog za raziskavo OCR SDK rešitev, je poiskati najbolj
optimalno rešitev na trgu. Podjetje želi rešitev, ki jo bo možno implementirati v samostojni
36
program namenjen zajemu podatkov z dokumentacije polstrukturiranega tipa. Najbolj
zaželena je prepoznava podatkov s prejetih računov. Za takšen tip dokumentov je najbolj
smiselno izvesti OCR postopek na dokumentih in nato z lastnim razvojem in uporabo internih
OCR podatkov o postavitvi znakov zaznati ključne podatke v prepoznanem tekstu. Močan
poudarek je namenjen podpori slovenskega jezika v OCR postopku in dostopu do
dokumentacije skupaj s primeri uporabe, ki bi drastično olajšali začetno implementacijo
rešitve v program.
4.2 Opis izbranih kriterijev
4.2.1 Cena rešitve
Cena je zagotovo eden izmed najbolj pomembnih faktorjev pri iskanju primerne rešitve.
Zaradi lažje preglednosti in pomanjkljivega podatka o ceni pri nekaterih rešitvah je poleg
specifične cene rešitve postavljen tudi cenovni razred rešitve. Omeniti je vredno, da lahko pri
večini rešitev prilagodimo licenco glede na število obdelanih strani, prepoznanih znakov,
procesorskih jeder ipd., kar lahko drastično spremeni ceno. V diplomski nalogi se navaja cena
licenc brez omejitve števila obdelanih strani ali znakov. Utež kriterija je negativno
predznačena, ker je višja cena negativna lastnost rešitve. Utež kriterija je postavljena tako, da
rešitve iz najvišjega cenovnega razreda zgubijo večje število točk. Razlog za to odločitev je
prilagajanje končnim uporabnikom naročnika, ki se osredotoča na srednja in majhna podjetja.
Utež kriterija: –10 (minus 10)
4.2.2 Natančnost prepoznave
Kakovost OCR obdelave je naslednja pomembna lastnost OCR SDK rešitve. Zaradi časovne
omejenosti se v diplomski nalogi testiranje ne bo izvajalo, predvidena pa je izbira najbolj
primernih rešitev za izvedbo dotičnega testiranja izven sklopa diplomske naloge. Za namene
testiranja so na voljo skenogrami, ki jih je Information Science Research Institute uporabljal
za testiranje OCR rešitev med leti 1992 do 1996. Skenograme lahko prenesemo s spletne
37
strani: https://code.google.com/p/isri-ocr-evaluation-tools/. Testiranje se bo izvajalo na
prototipnih implementacijah rešitev.
Utež kriterija: / (kriterij se ne uporabi)
4.2.3 Podpora slovenskemu jeziku
Zaradi specifičnih znakov v slovenski abecedi je eden izmed pomembnejših kriterijev tudi
uspešnost OCR sistema pri prepoznavi šumnikov. Poleg branja specifičnih znakov je
pozitivna lastnost tudi optimizacija za slovenski jezik s prej pripravljenimi slovarji. Dejstvo,
da je končni program namenjen slovenskemu trgu, daje kriteriju močno pomembnost.
Utež kriterija: 7
4.2.4 Podpora jezikom
Širša izbira jezikov je za OCR rešitev dodatna vrednost. Pogosto se pri poslovanju s tujimi
partnerji pojavlja dokumentacija, ki ni v slovenskem jeziku. Kakovost prepoznave je navadno
višja, če OCR rešitev uspešno prepozna tudi specifične znake za tuje jezike, kakor je npr. ß v
nemškem jeziku. V kategorijo spada tudi optimizacija specifičnih lastnosti, ki se pojavljajo pri
ročno pisanem besedilu. Slog pisanja se namreč med različnimi jeziki zaradi različnih
dejavnikov lahko očitno razlikuje. Zaradi velikega števila podprtih jezikov pri nekaterih
rešitvah se kriterij ocenjuje z 0.05 točk na jezik. Na ta način se skupna ocena s 100 podprtimi
jeziki zviša le za 5 točk, kar ne vpliva drastično na skupno oceno.
Utež kriterija: 0.05/jezik
4.2.5 Uporaba slovarjev in optimizacija OCR jezikov
Optimizacija se pri OCR rešitvah pojavlja v obliki uporabe slovarjev, ki omogočajo višjo
kvaliteto prepoznave teksta. V slovarju so navadno navedene pogosto uporabljene besede, na
38
katere se sklicuje OCR pri slabo prepoznanem znaku. Primer: OCR prepozna sledeč niz:
»k*jiga«. Po iskanju v slovarju se najde primerna beseda: »knjiga«. Sistem nato primerja oba
znaka na enakem mestu in ob dovolj visoki gotovosti zamenja neprepoznan znak »*« z »n«.
Alternativa optimizaciji s slovarji ne vključuje zbirke besed, na katero se sistem sklicuje,
ampak samo posamezne znake. Tako lahko v primeru večkratne napačne prepoznave
zamenjamo določene nize ali znake z drugačnim znakom. Primer: niz »r ' n« je pogosto
prepoznan namesto znaka »m«, ta niz lahko v sistemu zamenjamo z znakom »m«. Če se niz
pojavi dovolj redko ali sploh ne, nam kakovost prepoznave zraste. Omenjene funkcionalnosti
so zelo koristen podporni proces OCR tehnologije, ki kljub časovni zahtevnosti prinaša
konkretne rezultate.
Utež kriterija: 5
4.2.6 Podpora optičnim čitalnikom
Pretvarjanje dokumentov iz fizične v digitalno obliko načeloma poteka s pomočjo optičnih
čitalnikov. Nekatere OCR rešitve omogočajo podporo neposrednemu zajemu dokumentov s
pomočjo standardov TWAIN, WIA ali ISIS. S to funkcionalnostjo se izognemo potrebi po
uporabi specifične programske opreme namenjene optičnemu branju in dodatnemu koraku
shranjevanja ter dostopa do datoteke s sliko dokumenta. Kljub priročnosti je ta
funkcionalnosti manj pomembna, predvsem pri večji količini dokumentacije. V praksi
navadno optično preberemo množico dokumentov in nato z OCR tehnologijo obdelujemo več
dokumentov naenkrat.
Utež kriterija: 3
4.2.7 Predprocesiranje
Pomembna funkcionalnost za zagotavljanje kvalitetne OCR prepoznave je tudi priprava slik
za obdelavo. V skupino predprocesiranje spadajo sledeče funkcionalnosti:
obrezovanje,
39
obračanje,
stiskanje,
odstranjevanje šumov,
odstranjevanje robov,
binarizacija,
segmentacija.
S spleta je možno prenesti brezplačne knjižnice, ki omogočajo izvedbo zgoraj naštetih
funkcionalnosti, vendar možnost predprocesiranja v OCR rešitvi olajša izdelavo lastnega
programa. Optimiziran postopek funkcionalnosti lahko zviša kvaliteto prepoznanega teksta
oz. omogoči prepoznavo teksta tudi pri dokumentaciji v slabši kvaliteti.
Utež kriterija: 5
4.2.8 Formati vhodov
Širok nabor formatov datotek, ki jih lahko uporabimo v OCR sistemu, je manj pomemben
kriterij. Razlog je, da v praksi večinoma uporablja le formata TIFF in JPG. Oba formata
namreč pogosto podpirajo tako optični čitalniki, kot tudi ostale naprave za pretvarjanje fizične
dokumentacije. Formata sta postala nekakšen nenapisan standard za vhod procesa OCR
obdelave. Format TIFF uporabljajo vse rešitve medtem ko format JPG uporablja velika večina
rešitev. Poleg odličnih kompresijskih lastnosti je možno v eno datoteko TIF zapisati več slik
naenkrat. Takšne datoteke se imenujejo večstranske datoteke TIF in se pogosto uporabljajo
zaradi svoje priročnosti.
Utež kriterija: 0,5
4.2.9 Prepoznava in izhod lastnosti pisave
Nekatere rešitve lahko zaznajo različne karakteristike prepoznanega teksta, kot so:
velikost pisave;
slog pisave: krepko, podčrtano ali ležeče;
40
tip pisave: Times New Roman, Arial …
Glavna prednost takšne zaznave je možnost izvoza karakteristik v izhod OCR sistema.
Izhodno besedilo je posledično bolj podobno izvornemu, kar pa pri nekaterih tipih
dokumentacije ni glavni cilj.
Utež kriterija: 4
4.2.10 Ohranjanje oblike dokumenta
Nekatere rešitve lahko zaznajo obliko dokumenta, kot so npr. stolpci. V končni fazi je zaradi
te lastnosti izhod OCR sistema bolj podoben izvornemu dokumentu. Lastnost je koristna
predvsem, ko imamo dokumentacijo v več vzporednih stolpcih in ne želimo prepoznavati
teksta čez celotno stran. Na tak način namreč popolnoma izgubimo kontekst besedila.
Priljubljena alternativa tej funkcionalnosti je zapis položaja teksta skupaj s prepoznanim
tekstom in sliko dokumenta v iskalno PDF datoteko. Vhodni in izhodni dokument sta na tak
način popolnoma identična, razlika je edino v možnosti tekstovnega iskanja ali kopiranja
besedila iz izhodnega dokumenta. Pomembnost funkcionalnosti je popolnoma odvisna od tipa
dokumentacije in naših potreb, zato je utež kriterija srednje visoka.
Utež kriterija: 5
4.2.11 Formati izhodov
Širok nabor formatov datotek, ki jih OCR sistem kreira kot svoj izhod je pomembna lastnost
za OCR SDK rešitve. Medtem ko so vhodni formati v praksi večinoma podobni, se izhodni
formati pogosto razlikujejo glede na različne potrebe uporabnikov rešitve. Najpogostejša sta
preprost tekstovni izhod in priljubljeni format PDF. Poleg omenjenih pa poznamo še množico
drugačnih formatov, najbolj pogosti so:
XML,
XPS,
RTF,
41
DOCX.
Utež je zaradi tega razloga višja kakor pri kriteriju vhodnih formatov.
Utež kriterija: 1
4.2.12 Podpora ICR
Prepoznava ročno pisanega besedila prinaša rešitvi visoko dodano vrednost, čeprav je splošna
uporaba te funkcionalnosti zaradi nizke natančnosti manj pogosta. ICR sistemi se načeloma
pojavljajo pri prepoznavanju vsebine strukturiranih obrazcev, kjer se izpolnjuje prej določena
polja. Če je lastnost polja že vnaprej znana, lahko ICR dosega zadovoljive rezultate. Uporaba
ICR tehnologije je še posebno pogosta pri prepoznavi ročno pisanih števil, zato nekatere
rešitve z ICR podpirajo samo arabska numerična števila. Kriterij ima zelo visoko utež, ker je
tehnologija ICR že sama po sebi uporabna v skoraj enaki meri kakor OCR.
Utež kriterija: 7
4.2.13 Podpora OMR
Prepoznava vzorcev je pogosto sestavni del OCR SDK rešitve. Predvsem črtne kode so na
področju pretvarjanja dokumentacije zelo pogoste. Pogosto namreč črtne kode označujejo
vodilni dokument v seriji dokumentov, kar nam omogoča izdelavo avtomatičnih tokokrogov
za ločevanje dokumentacije. Zaradi visoke uporabnosti OMR tehnologije nekatere rešitve
ponujajo možnost zakupa dodatnega OMR modula. Kljub dodatnem doplačilu pri nekaterih
ocenjevanih rešitvah, je OMR modul vedno, kadar je to bilo možno, vključen v rešitev. Zaradi
visoke priljubljenosti črtnih ali kod QR na dokumentaciji je podpora OMR tehnologiji
pomembnejši kriterij.
Utež kriterija: 7
42
4.2.14 Podpora .NET okolju
Uporaba .NET okolja prinaša mnogo prednosti, ki omogočajo lažjo implementacijo OCR
SDK v naš progam. Uporaba različnih programskih jezikov, učinkovit vmesnik za
programiranje, podpora namiznim ali spletnim aplikacijam in preprosto vključevanje knjižnic
so glavne prednosti. Podpora .NET okolju v kombinaciji s primeri za uporabo knjižnice OCR
lahko drastično zmanjšajo čas in zahtevnost izdelave lastnega programa.
Utež kriterija: 7
4.2.15 Podprti programski jeziki
Širši nabor programskih jezikov namenjenih implementaciji knjižnice v končni program je
manj pomemben kriterij. Dodatna izbira je sicer prednost, ampak obenem kakovost
dokumentacije in primerov z večjim številom programskih jezikov pada.
Utež kriterija: 1
4.2.16 Dokumentacija in primeri
Dobro dokumentiran in s primeri podprt postopek uporabe OCR knjižnice olajša delo tako
manj izkušenim kakor tudi izkušenim programerjem. Iz tega preprostega razloga je ta kriterij
dokaj pomemben pri ocenjevanju. Kriterij je izpolnjen, če je dokumentacija omenjena na
spletni strani produkta. Omeniti pa je potrebno, da se kakovost dokumentacije in primerov ne
preverja zaradi časovne omejitve.
Utež kriterija: 7
43
4.2.17 Dostop do internih OCR podatkov
Ob izdelavi bolj naprednih programov, ki uporabljajo metodo glasovanja in tako zvišujejo
kvaliteto OCR prepoznave, je podatek o verjetnosti pravilno prepoznanega znaka obvezen.
Prednost rešitve je torej možnost dostopa do vseh podatkov, s katerimi OCR sistem operira.
Kriterij je težko merljiv, ker se podatki med rešitvami drastično razlikujejo, zaradi tega je
manj pomemben. Poleg tega se lahko kriterij zadostno preveri šele po implementaciji v
prototipni program.
Utež kriterija: 2
5 OCENJEVANJE OCR SDK REŠITEV
V poglavju je najprej prikazano pridobljeno znanje o rešitvah OCR SDK. V nadaljevanju so te
informacije uporabljene za izračun ocene rešitve, glede na kriterije ocenjevanja
5.1 Preglednica OCR SDK rešitev
V preglednici so združene vse opisane rešitve skupaj s predvidenimi kriteriji za ocenjevanje
ter navedenimi rezultati. Pri cenovnem kriteriju je naveden cenovni razred v katerega se
rešitev uvršča, v primeru odprtokodnih rešitev pa trga kriterija ne upoštevamo. Naslednji tip
kriterija je številski, kjer se navede količina, s katero je kriteriju zadoščeno. Pri ostalih
kriterijih se navede ali rešitev izpolnjuje pogoje kriterija, kar je označeno z »✓«, ob
neizpolnjevanju se uporabi znak »X«.
44
Tabela 5.1: Prikaz funkcionalnosti
Kriterij \ Rešitev
AB
BY
Y
ExpertV
ision
Om
niPage
Lead T
ools
Transym
Dynam
soft
Aquaforest
Nicom
soft
ImageG
ear
DotIm
age
Pum
a.net
Tesseract
Cena rešitve
3 2 3 3 1 2 3 2 3 3 / /
Podpora slovenskemu
jeziku ✓ X ✓ X X ✓ X ✓ ✓ ✓ ✓ ✓
Podpora jezikom
198 14 123 30 12 40 20 26 100 32 27 63
Uporaba slovarjev in
optimizacija OCR
jezikov
✓ ✓ X ✓ ✓ ✓ X ✓ X ✓ X ✓
Podpora optičnim
čitalnikom ✓ X ✓ ✓ ✓ ✓ X ✓ ✓ ✓ X X
Predprocesiranje
✓ X ✓ ✓ X X ✓ ✓ ✓ ✓ X X
Formati vhodov
8 6 5 3 2 5 3 5 2 5 6 1
Prepoznava in izhod
lastnosti pisave ✓ ✓ X ✓ X ✓ X X ✓ X ✓ ✓
Ohranjanje oblike
dokumenta ✓ X X ✓ X ✓ ✓ ✓ ✓ ✓ ✓ ✓
Formati izhodov
11 5 6 7 1 2 3 3 5 2 3 1
45
Podpora ICR
✓ X ✓ ✓ X ✓ X ✓/2 X ✓ X X
Podpora OMR
✓ X ✓ ✓ X ✓ X ✓ ✓ ✓ X X
Podpora .NET okolju
✓ X ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Podprti programski jeziki
6 2 4 6 6 2 3 7 1 3 1 1
Dokumentacija in
primeri ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Dostop do internih OCR
podatkov ✓ X X ✓ X ✓ ✓ ✓ ✓ ✓ X ✓
Vir: Kegljevič, lastna raziskava (2013)
5.2 Ocenjevanje rešitev
V preglednici 5.2 so navedeni rezultati ocenjevanja. V primeru številskega kriterija je ocena
rešitve zmnožek uteži in količine, ki jo je rešitev dosegla. Pri ostalih kriterijih je v primeru
izpolnitve kriterija ocena kar utež sama, v nasprotnem primeru pa je ocena enaka nič. V zadnji
vrstici je naveden in na eno decimalno vejico zaokrožen seštevek vseh ocen za posamezno
rešitev. Do skupnega seštevka posamezne rešitve pridemo po naslednji enačbi:
� = (�� ∗ ��) + (�� ∗ ��) … + (��� ∗ ���)
Kjer je:
� … ���ž ���������
� … �������� ��� ��� ��š���� ��� ��������� (������ 5.1)
� … ������ ��š����� ��������ℎ ����������
46
Tabela 5.2: Rezultati ocenjevanja
UT
EŽ
I
AB
BY
Y
Ex
pertV
ision
Om
niP
age
Lead
To
ols
Tran
sym
Dy
nam
soft
Aq
uafo
rest
Nico
mso
ft
Imag
eGear
Do
tImag
e
Pu
ma.n
et
Tesseract
Cena rešitve
-10 -30 -20 -30 -30 -10 -20 -30 -20 -30 -30 0 0
Podpora
slovenskemu
jeziku
7 7 0 7 0 0 7 0 7 7 7 7 7
Podpora
jezikom 0,05 9,9 0,7 6,15 1,5 0,6 2 1 1,3 5 1,6 1,35 3,15
Uporaba
slovarjev in
optimizacija
OCR jezikov
5 5 5 0 5 5 5 0 5 0 5 0 5
Podpora
optičnim
čitalnikom
3 3 0 3 3 3 3 0 3 3 3 0 0
Predprocesiran
je 5 5 0 5 5 0 0 5 5 5 5 0 0
Formati
vhodov 0,5 4 3 2,5 1,5 1 2,5 1,5 2,5 1 2,5 3 0,5
Prepoznava in
izhod lastnosti
pisave
4 4 4 0 4 0 4 0 0 4 0 4 4
Ohranjanje
oblike
dokumenta
5 5 0 0 5 0 5 5 5 5 5 5 5
47
Formati
izhodov 1 11 5 6 7 1 2 3 3 5 2 3 1
Podpora ICR
7 7 0 7 7 0 7 0 3,5 0 7 0 0
Podpora OMR
7 7 0 7 7 0 7 0 7 7 7 0 0
Podpora .NET
okolju 7 7 0 7 7 7 7 7 7 7 7 7 7
Podprti
programski
jeziki
1 6 2 4 6 6 2 3 7 1 3 1 1
Dokumentacija
in primeri 7 7 7 7 7 7 7 7 7 7 7 7 7
Dostop do
internih OCR
podatkov
2 2 0 0 2 0 2 2 2 2 2 0 2
Seštevek ocene
59,9 6,7 31,7 38 20,6 42,5 4,5 45,3 29 34,1 38,4 42,7
Vir: Kegljevič, lastna raziskava (2013)
5.3 Predstavitev rezultatov
V naslednjem poglavju so grafično predstavljeni in opisani rezultati ocenjevanja OCR SDK
rešitev. Graf (Graf 5.1) prikazuje skupno oceno posamezne rešitve. Z njega lahko razberemo
tri najbolje ocenjene rešitve, ki so:
ABBYY OCR SDK,
Nicomsoft OCR SDK,
48
Tesseract.
Opazimo lahko še, da imajo nekatere rešitve zelo nizko skupno oceno. S svojo oceno vidno
izstopa ABBYY OCR SDK.
Graf 5.1: Skupna ocena OCR SDK rešitev
Vir: Kegljevič, lastna raziskava (2013)
Najbolj pomemben kriterij ocenjevanja (cena rešitve) je vizualno predstavljen v sledečem
grafu (Graf 5.2). Opazimo lahko, da cena nima negativnega vpliva na skupno oceno pri
odprtokodnih rešitvah. Opazni so tudi cenovni razredi, pri katerih prevladuje višji cenovni
razred.
0
10
20
30
40
50
60
70
Sku
pn
a o
cen
a
OCR SDK rešitev
49
Graf 5.2: Cena OCR SDK rešitev
Vir: Kegljevič, lastna raziskava (2013)
V naslednjem grafu (Graf 5.3) sta skupaj predstavljeni ocena cenovnega kriterija in skupna
ocena brez prištetega cenovnega kriterija. Opazimo lahko, da pri nekaterih rešitvah cenovni
kriterij skoraj izniči preostalo oceno rešitve. V praksi to pomeni, da rešitev kljub višjemu
cenovnemu razredu ne zagotavlja dodatnih funkcionalnosti.
Naslednje opažanje je, da odprtokodni rešitvi glede na oceno lahko konkurirata tudi nekaterim
lastniškim rešitvam. Nevtralna ocena pri cenovnem kriteriju še dodatno pripomore k višji
skupni oceni odprtokodnih rešitev. S tem dejstvom lahko ovržem prvo hipotezo diplomske
naloge. Odprtokodne rešitve so torej enako ali celo bolj primerne kakor lastniški produkti.
-35
-30
-25
-20
-15
-10
-5
0
Ce
na
reši
tve
OCR SDK rešitev
50
Graf 5.3: Skupna ocena z ločeno oceno cene
Vir: Kegljevič, lastna raziskava (2013)
V bližini aritmetične sredine vseh skupnih ocen (Graf 5.4) je v zelo ozkem intervalu prisotnih
več rešitev. Razlika med OCR produktom na drugem mestu in produktom na šestem mestu je
le 6 točk, medtem ko je razlika med najbolje in najslabše ocenjenim kar 55,4 točk. To dejstvo
nam pove, da bi bile potencialno tržno zanimive tudi ostale rešitve v bližini aritmetične
sredine. Navkljub temu dejstvu se bomo v nadaljevanju osredotočil le na tri najbolje ocenjene
rešitve.
-40
-20
0
20
40
60
80
100
Oce
na
OCR SDK rešitev
Cenovni kriterij
Skupna ocena (brez cenovnega kriterija)
51
Graf 5.4: Prikaz aritmetične sredine
Vir: Kegljevič, lastna raziskava (2013)
5.4 Izbor končnih produktov
Na podlagi ocenjevanja je seznam rešitev, ki jih bomo predlagali za nadaljnje testiranje,
naslednji:
ABBYY OCR SDK,
Nicomsoft OCR SDK,
Tesseract.
ABBYY OCR SDK je kljub višjem cenovnem razredu zaradi širokega nabora funkcionalnosti
visoko nad povprečno oceno. Visoka ocena tudi delno pritrdilno odgovarja na raziskovalno
vprašanje, ki se glasi: »Je najbolj prepoznaven produkt nujno najboljši?«. ABBYY OCR SDK
je od evropskih rešitev med najbolj prepoznavnimi, kar pritrjuje raziskovalnemu vprašanju.
Bolj prepoznavne rešitve z ameriškega tržišča so pri ocenjevanju dosegale le povprečne
0
10
20
30
40
50
60
70Skupna ocena Aritmetična sredina
52
rezultate, kar raziskovalnemu vprašanju nasprotuje. Za popolnoma natančen odgovor na
raziskovalno vprašanje bi bilo potrebno pridobiti raziskavo tržnega deleža ocenjenih rešitev in
tako nedvoumno določiti prepoznavne produkte.
Nicomsoft OCR SDK se s kombinacijo srednjega cenovnega razreda in z zadovoljivimi
funkcionalnostmi uvršča na tretje mesto po skupni oceni rešitve. Rešitev je trenutno še
relativno nova, zato lahko v prihodnosti pričakujemo intenziven razvoj.
Odprtokodna rešitev Tesseract je, samo glede na funkcionalnosti sodeč, celo boljša od
nekaterih lastniških rešitev. Dejstvo, da je rešitev odprtokodnega tipa, pa lahko prinese
nekatere omejitve pri distribuciji našega programa končnim uporabnikom. Program lahko v
končni fazi omejimo le z licenco, ki je enaka vključeni odprtokodni knjižnici. Hipotezo o
manjši primernosti odprtokodnih rešitev lahko tako še enkrat zavrnemo, ob pogoju, da nas
odprtokodno licenciranje našega končnega programa ne moti.
Glavni pogoj za izbiro rešitev je bila možnost implementacije OCR SDK knjižnice v lastni
program, namenjen slovenskem trgu. Omenjenemu pogoju je teoretično zadostilo osem od
dvanajstih ocenjevanih rešitev. Štiri rešitve za namene OCR postopka ne podpirajo
slovenskega jezika, zato jih ne prištejemo k primernim rešitvam. S tem dejstvom je potrjena
druga hipoteza: »Obstajajo OCR SDK rešitve, ki nudijo osnovne funkcionalnosti za uspešno
implementacijo v srednja in mala podjetja. Za namene naročnika bodo primerne več kakor tri
rešitve.«. Tri izbrane rešitve nudijo najbolj optimalno mešanico OCR funkcionalnosti, ki so
primerne za majhna in srednja podjetja na slovenskem trgu. Omenjene tri rešitve so bile
izbrane izključno na podlagi ocenjevanja.
5.5 Opis in SWOT analiza izbranih produktov
Analiza SWOT izbranih rešitev je izdelana z vidika našega naročnika, ki želi implementirati
eno izmed izbranih optimalnih rešitev v svojem programu. Namen bodočega programa je
OCR prepoznava dokumentov in zajem ključnih metapodatkov.
53
Tabela 5.3: SWOT analiza ABBYY OCR SDK
PREDNOSTI SLABOSTI
Možen širok nabor funkcionalnosti končnega produkta.
Uveljavljeno ime rešitve. Stabilno in prepoznavno podjetje
rešitev razvija. Največ podprtih jezikov v OCR. Brezplačna tehnična pomoč.
Višja cena OCR SDK rešitve v primerjavi z ostalimi.
Zakup nepotrebnih funkcionalnosti.
PRILOŽNOSTI NEVARNOSTI
Prilagajanje cene glede na uporabo v končnem programu.
Uporaba v načinu glasovanja skupaj z ostalimi rešitvami za višjo kakovost OCR branja.
Višja tržna cena končnega programa zaradi uporabe prepoznavne rešitve.
Razvoj končnega programskega orodja je brezplačen, rešitev je možno implementirati v preizkusnem načinu.
Omejitve distribucije s strani ABBYY Hiter tehnološki razvoj zahteva nova
vlaganja. ABBYY izda novo ločeno verzijo
rešitve.
Vir: Kegljevič, lastna raziskava (2013)
Rešitev ABBYY OCR SDK omogoča v primerjavi z ostalimi opisanimi rešitvami največji
obseg funkcionalnosti, ki zajema celotni postopek obdelave OCR skupaj s podpornimi
procesi. Podpora optičnim čitalnikom nam omogoča neposreden vnos dokumenta v končni
program, kar negira potrebo po dodatnih knjižnicah, s katerimi lahko dosežemo enako
funkcionalnost. Različne možnosti predprocesiranja omogočajo obdelavo pridobljene slike,
kar v končni fazi pripomore k zmanjševanju napak med samo ekstrakcijo in klasifikacijo
znakov. Podpora OMR poleg navadne pisarniške dokumentacije dovoljuje tudi obdelovanje
dokumentacije strukturiranega tipa, kot je npr. izpitni vprašalnik na maturi. Na podlagi tega
dejstva je možno prilagoditi končni program za končne uporabnike s področja šolstva.
Tehnologija ICR omogoča podporo pri zajemanju ročno pisanega besedila, ki se pogosto
pojavlja tudi pri poslovni dokumentaciji.
54
Ravno dejstvo, da je dostopen tako širok nabor funkcionalnosti, pa s sabo prinese očitno
slabost. Naročnik tako širokega nabora funkcionalnosti ne potrebuje, kar pomeni, da plačuje
tudi nepotrebne funkcionalnosti. Rešitev se v tem smislu približa celovitim lastniškim
rešitvam, ki premorejo enako slabost. Smiselno bi bilo primerjati ceno in funkcionalnosti
rešitve ABBYY OCR SDK z nekaterimi celovitimi OCR rešitvami. Podjetje ABBYY ponuja
porazdelitev stroškov uporabe glede na količino, kar zaradi manjšega obsega dokumentacije
zniža potencialno zniža končne stroške uporabe predvsem v manjših in srednjih podjetjih.
Stroške zniža tudi možnost brezplačne uporabe OCR knjižnice v fazi implementacije ter
brezplačna osnovna podpora pri implementaciji. Rešitev je možno uporabiti v načinu
glasovanja (angl. voting) skupaj z ostalimi rešitvami, ponuja namreč dostop do stopnje
verjetnosti prepoznanega znaka. Omenjena možnost potencialno pripomore k izboljšavi
prepoznave, vendar je potrebno za implementacijo porabiti več časa. Nevarnosti, ki jih
predstavlja uporaba omenjene rešitve se osredotočajo na izdajo nove ločene verzije rešitve,
kar navadno povzroči zmanjšanje podpore prejšnjim verzijam. Posledica omenjenega
scenarija je lahko uporaba nove verzije, kar s sabo prinese nenapovedane stroške.
Tabela 5.4: SWOT analiza Nicomsoft OCR SDK
PREDNOSTI SLABOSTI
Enkratno plačilo brez licenčnin. Srednji cenovni razred. Vse osnovne funkcionalnosti. Brezplačna tehnična pomoč za
obdobje 6 mesecev.
Nepoznana rešitev. Neuveljavljen ponudnik rešitve.
PRILOŽNOSTI NEVARNOSTI
Razvoj končnega programskega orodja je brezplačen, rešitev je možno implementirati v preizkusnem načinu.
Uporaba v načinu glasovanja skupaj z ostalimi rešitvami za višjo kvaliteto OCR branja.
Upočasnjen ali prekinjen razvoj rešitve.
Vir: Kegljevič, lastna raziskava (2013)
Nicomsoft je v primerjavi z bolj uveljavljenimi imeni na področju OCR tehnologije mlajše
podjetje, ki je na trg vstopilo šele v letu 1999. Ta manjša količina izkušenj se izkazuje v nižji
ceni njihove OCR SDK rešitve. Poleg nizke cene je možno pridobiti verzijo rešitve, ki jo je
55
možno tržiti končnim uporabnikom brez licenčnin ali plačila glede na uporabo. To dejstvo se
izkaže za izjemno prednost ravno pri ciljnih končnih uporabnikih našega naročnika. Naročnik
namreč predvideva prodajo programa majhnim in srednje velikim podjetjem, ki so na
slovenskem trgu prisotna v večjem številu. Predvidevamo tudi, da so majhna in srednja
podjetja zaradi svoje dinamičnosti pripravljena preizkusiti tudi manj poznane rešitve. Dejstvo,
da je rešitev nepoznana kljub temu ostaja glavna slabost. Priložnosti, ki jih ponuja uporaba
Nicomsoft OCR SDK, so podobne rešitvi ABBYY OCR SDK. Pri obeh je faza
implementacije rešitve brezplačna, kar pomeni, da lahko v tem obdobju rešitev testiramo in
prilagodimo končnemu uporabniku. Obstaja možnost implementacije glasovanja, rešitev nam
namreč ponuja dostop do podatka o kvaliteti prepoznanih znakov. Nevarnost rešitve je propad
oz. preusmeritev podjetja Nicomsoft, ki bi lahko pripeljal do popolne opustitve nadaljnjega
razvoja.
Tabela 5.5: SWOT analiza Tesseract
PREDNOSTI SLABOSTI
Brezplačna odprtokodna rešitev. Minimalni stroški vstopa na tržišče. Najbolj prepoznavna odprtokodna
OCR SDK rešitev. Uporaba programa z implementirano
Tesseract knjižnico ima manj omejitev od lastniških OCR rešitev.
Pomanjkanje predprocesiranja slik. ICR tehnologija ni prisotna. OMR tehnologija ni prisotna. Omejitve odprtokodnega licenciranja.
PRILOŽNOSTI NEVARNOSTI
Možno množično zunanje izvajanje (angl. crowdsourcing).
Nezaupanje končnih uporabnikov zaradi uporabe odprtokodne rešitve.
Zaustavitev razvoja rešitve v prihodnosti.
Vir: Kegljevič, lastna raziskava (2013)
Ena izmed glavnih prednosti, ki se je izkazala kot ključna pri ocenjevanju, je cena rešitve
Tesseract. Rešitev je namreč brezplačna zaradi svoje odprtokodne licence, kar posledično
pomeni minimalne stroške pri prodaji programa z implementiranimi OCR funkcionalnostmi.
Rešitev je od vseh odprtokodnih najbolj poznana, predvsem zaradi delnega sodelovanja
računalniškega giganta Google pri samem razvoju rešitve. Odprtokodna licenca prinaša še
manjše omejitve glede licenciranja rešitve v končnem produktu, ponujenem na trgu. Po drugi
56
strani je zaradi odprtokodnega licenciranja potrebno posredovati spremembe v programski
kodi komurkoli, ki to želi. Slaba stran rešitve Tesseract je tudi pomanjkanje nekaterih
funkcionalnosti, ki so samoumevne za lastniške rešitve. Pomanjkanje predprocesiranja slik,
ICR in OMR tehnologij nam odpira dve poti. Lahko se zadovoljimo le z OCR tehnologijo in
končni program specializiramo. Alternativna možnost je uporaba drugih odprtokodnih
knjižnic, ki nam omenjene funkcionalnosti ponujajo.
Obstaja potencialna možnost t.i. množičnega zunanjega izvajanja (angl. crowdsourcing). S to
metodo, ki je priljubljena na področju oglaševanja, lahko brez lastnega razvoja pridemo do
končnega programa. Pri tem nam lahko pomaga skupnost Tesseract ali izobraževalne
inštitucije v Sloveniji. Najprej objavimo seznam želenih funkcionalnosti in počakamo na
programe z implementirano Tesseract rešitvijo. V naslednji fazi izberemo najbolj primerne
implementacije, nagradimo razvijalca in tržimo programsko rešitev. Omenjena metoda bi
lahko delovala tudi z ostalimi rešitvami vendar je množično zunanje izvajanje bolj v duhu
odprte kode. Nezaupanje majhnih in srednjih podjetij do odprtokodnih rešitev lahko
primerjamo z nezaupanjem nepoznani rešitvi Nicomsoft. Nevarnost se namreč delno negira
zaradi dinamičnosti majhnih in srednjih podjetij. Zaustavitev razvoja je nevarnost identična
vsem rešitvam, ki je v primeru rešitve Tesseract manj pomembna. Velika verjetnost namreč
je, da bodo tudi v primeru opustitve razvoja, le-tega nadaljevali sami uporabniki odprtokodne
rešitve.
5.6 Ugotovitve hipotez in raziskovalnih vprašanj
Med opravljanjem raziskave smo poskusili odgovoriti na naslednji dve raziskovalni vprašanji.
Prvo vprašanje se je nanašalo na funkcionalnosti dobrih OCR SDK rešitev. S pomočjo tega
vprašanja smo lažje določili kriterije, na podlagi katerih se je izvedlo ocenjevanje rešitev.
Glavno in prvo funkcionalnost je določil naročnik. Možnost obdelave dokumentacije v
slovenščini oz. podpora slovenskemu jeziku je to zelo pomemben kriterij, ki znaša 7 točk.
Naslednja pomembna funkcionalnost je dostop do dokumentacije in primerov uporabe.
Pomanjkanje kakršnekoli dokumentacije namreč drastično otežuje končni cilj, ki v našem
primeru pomeni razvoj programa na osnovi OCR SDK rešitve. Pomembna kriterija sta bila še
možnost uporabe OMR in ICR tehnologije. Uporaba črtnih kod na dokumentaciji se pogosto
pojavi že pri manjšem obsegu dokumentacije. OMR tehnologija prinese prednost
57
avtomatičnega ločevanja dokumentov na podlagi črtne kode vodilnega dokumenta. Ta lastnost
je sicer bolj koristna za velika podjetja, kjer je zagotovljen večji obseg dokumentacije, a
slednja značilnost ni izključena za srednja in majhna podjetja. ICR tehnologija je še posebno
koristna pri obdelavi strukturiranega tipa dokumentacije, ki se tudi pogosto pojavi pri manjših
in srednjih podjetjih. Dejstvo, da je program z implementirano OCR rešitvijo namenjen
majhnim in srednjim podjetjem, pa poda izjemno visoko pomembnost cenovnemu kriteriju.
Za razliko od velikih podjetij si srednja in majhna podjetja težko privoščijo večje naložbe v
digitalizacijo dokumentov. Predvsem v manjših podjetjih je zaradi manjšega obsega
dokumentacije bolj ekonomično ročno vnašati ključne podatke. Zadnji pomembni kriterij je še
podpora .NET okolju. Programiranje v omenjenem okolju prinaša učinkovit vmesnik za
programiranje, možnost uporabe različnih programskih jezikov, podporo namiznim in
spletnim aplikacijam in preprosto vključevanje knjižnic v naš program.
Drugo vprašanje se navezuje na mnenje naročnika, ki je predlagal, da med ocenjevane rešitve
vključim ABBYY OCR SDK zaradi prepoznavnosti rešitve. Vprašanje se glasi: »Je najbolj
prepoznaven produkt nujno najboljši?«. Na mnenje naročnika so rezultati ocenjevanja OCR
SDK rešitev pritrdilno odgovorili. ABBYY OCR SDK ima namreč izmed vseh ocenjevanih
rešitev najboljšo oceno. To dejstvo sicer potrdi mnenje naročnika, ne odgovori pa pritrdilno
na drugo vprašanje moje diplomske naloge. Med prepoznaven produkt namreč vključujem
tudi rešitev podjetja Nuance Communications imenovano OmniPage SDK. Nuance
Communications je na področju OCR tehnologije eno izmed najbolj prepoznavnih podjetij na
ameriškem tržišču (Graf 3.1). Kljub dejstvu, da je rešitev dobro poznana, je skupna ocena
rešitve le 24,7 točk. Rešitev ABBYY OCR SDK je dosegla 59,9 točk, kar prikazuje očitno
razliko pri obsegu funkcionalnosti. Najbolj prepoznavna rešitev je torej najboljša le, če se
osredotočimo na evropsko tržišče OCR SDK rešitev.
Prva hipoteza deloma izhaja iz drugega raziskovalnega vprašanja, a se za razliko od vprašanja
bolj osredotoča na splošen problem nezaupanja odprtokodnim rešitvam. Za namen hipoteze
predvidevamo, da se odprtokodne rešitve v primerjavi z licenčnimi produkti manj pogosto
uporabljajo v praksi. Razlog za manjši obseg uporabe je pomanjkanje dokumentacije in
manjša zanesljivost odprtokodnih rešitev. Hipoteza se zavrže v primeru izbire odprtokodne
rešitve v skupino treh najbolj optimalnih rešitev. Na podlagi ocenjevanja lahko ovržem
hipotezo, med izbranimi rezultati je namreč OCR SDK rešitev Tesseract, ki je odprtokodnega
tipa. Razlog za drugo mesto rešitve glede na skupno število točk, je dejstvo, da rešitev pri
cenovnem kriteriju ni izgubila točk. Če zanemarimo cenovni kriterij in se osredotočimo le na
58
funkcionalnosti, Tesseract vseeno dosega povprečne rezultate. Rešitev torej s svojimi
funkcionalnostmi konkurira celo nekaterim rešitvam iz visokega cenovnega razreda.
Hipoteza: »Odprtokodne rešitve so zaradi manjšega obsega dokumentacije in podpore manj
primerne kot lastniški produkti. Med najbolj primernimi produkti tako ne bo odprtokodne
rešitve.« se zavrne.
Druga hipoteza se navezuje na število primernih OCR SDK rešitev. Naročnik pričakuje vsaj
tri potencialno zanimive rešitve, po našem mnenju pa je takšnih rešitev več. Ker je naročnik
večkrat poudaril podporo OCR tehnologije slovenskemu jeziku, se rešitve, ki te
funkcionalnosti ne podpirajo, smatra kot neprimerne. Od dvanajstih rešitev jih temu pogoju
zadostuje osem. Osem rešitev torej podpira izvajanje osnovnega OCR postopka in obenem v
tem postopku podpira dokumentacijo v slovenskem jeziku. Hipoteza: »Obstajajo OCR SDK
rešitve, ki nudijo osnovne funkcionalnosti za uspešno implementacijo v srednja in mala
podjetja. Za namene naročnika bodo primerne več kakor tri rešitve.« se potrdi.
Zadnja hipoteza se osredotoča na pomen tehnične dokumentacije in primerov uporabe rešitev
OCR SDK. Pogoj potrditve hipoteze je, da vsaka rešitev vključuje vsaj osnovno
dokumentacijo in primere uporabe. Od dvanajstih rešitev je temu pogoju zadostilo vseh
dvanajst rešitev, kar hipotezo potrjuje (Tabela 5.1). Omeniti je vredno, da kakovost
dokumentacije variira od rešitve do rešitve, enako velja tudi pri primerih uporabe. Hipoteza:
»Tehnična dokumentacija skupaj s testnimi primeri je ključnega pomena za uspešno
implementacijo OCR SDK rešitve. Vse rešitve ponujajo vsaj osnovno dokumentacijo in testne
primere.« se potrdi.
6 ZAKLJUČEK
Gonilo diplomske naloge sta bila dva razloga. Prvi razlog je bil lastna želja po dopolnjevanju
znanj s področja digitalizacije in optičnega prepoznavanja znakov. Naslednji razlog je bil
potreba naročnika po zelo specifični raziskavi OCR SDK rešitev.
59
V prvem koraku smo preučili teorijo s širšega OCR področja. V nadaljevanju smo se
osredotočili na iskanje OCR SDK rešitev, ki so ustrezale osnovnemu pogoju naročnika. Pogoj
za izbiro je bila možnost implementacije OCR rešitve v lastni program, namenjen majhnim in
srednje velikim podjetjem na slovenskem trgu. Izbrali smo dvanajst različnih rešitev, od tega
sta bili dve odprtokodni. Naslednji korak je bil izbira obteženih kriterijev, na podlagi katerih
smo ocenili prej izbrane rešitve. Izbrali smo šestnajst različnih kriterijev ocenjevanja, ki
predstavljajo različne funkcionalnosti in podporne procese OCR tehnologije. Kriterije smo
obtežili, saj so nekateri bolj pomembni od drugih. Preglednico OCR SDK rešitev (Tabela 5.1)
smo izpolnili s podatki o funkcionalnostih s spletnih strani ponudnikov posamezne rešitve. V
naslednji tabeli (Tabela 5.2) smo izračunali število točk, ki jih je rešitev dosegla pri vsakem
kriteriju. V zadnjem stolpcu tabele je bila navedena skupna ocena za vsako rešitev. Na
podlagi tabele je bil izpeljan še grafični prikaz rezultatov in podrobna razlaga le-teh.
Na podlagi rezultatov ocenjevanja smo ugotovili naslednje. Od dvanajstih OCR SDK rešitev
jih osem izpolnjuje pogoj naročnika. Naročnik je izrazil željo po izboru treh najbolj
optimalnih rešitev. Seznam rešitev, ki smo jih predlagali za nadaljnje testiranje, je naslednji:
ABBYY OCR SDK – 59,9 točk,
Nicomsoft OCR SDK – 45,3 točk,
Tesseract – 42,7 točk.
Za testiranje bi bile zanimive tudi ostale rešitve, ki imajo skupno oceno v bližini aritmetične
sredine skupnih ocen. Rešitev ABBYY OCR SDK je dosegla najboljšo oceno. Vsebuje
najširši obseg funkcionalnosti in s tem dejstvom opravičuje visoki cenovni razred. Nicomsoft
OCR SDK ponuja osnovne funkcionalnosti OCR skupaj z nekaterimi podpornimi procesi, ki
dvigujejo kvaliteto prepoznave. Rešitev spada v srednji cenovni razred, licenca pa omogoča
distribucijo končnim uporabnikom brez plačevanja licenčnin. Odprtokodna rešitev Tesseract
premore le osnovno OCR procesiranje, vendar je uporaba vseh funkcionalnosti rešitve
popolnoma brezplačna. Odprtokodni rešitvi sta na ocenjevanju, v primerjavi z lastniškimi,
dosegali primerljive ali celo boljše rezultate.
60
61
7 LITERATURA IN VIRI
1. ABBYY OCR SDK. Dostopno prek: http://www.abbyy.com/ocr_sdk/ (10. 03. 2013).
2. ACCUSOFT IMAGEGEAR. Dostopno prek: http://www.accusoft.com/igocr.htm (15. 03.
2013).
3. ATALASOFT DOTIMAGE. Dostopno prek: http://www.atalasoft.com/products/
dotimage/ (22. 03. 2013).
4. AQUAFOREST OCR SDK. Dostopno prek: http://www.aquaforest.com/en/ocrsdk.asp
(22. 03. 2013).
5. BAIRD S., HENRY in CASEY, MATTHEW (2006) Towards Versatile Document
Analysis Systems. Lehigh University: Computer Science & Engineering Dept. Dostopno
prek: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.6579&rep=
rep1&type=pdf (24. 02. 2013).
6. BLOSTEIN, DOROTHEA in NAGY, GEORGE (2012) Asymptotic cost in document
conversion. Ontario: School of Computing. Dostopno prek:
http://www.ecse.rpi.edu/homepages/nagy/PDF_chrono/2012_Blostein_Asymptotic_Costs
_DRR.pdf (24. 02. 2013).
7. BUNKE, HORST in WANG S. P., PATRICK (1997) Handbook of Character
Recognition and Document Image Analysis. Singapur: World Scientific. Dostopno prek:
http://www.google.si/books?id=yn6DN5hAPywC&lpg=PA1&ots=QEgn5GdKH1&dq=O
CR%20analysis&lr&hl=sl&pg=PR5#v=onepage&q&f=false (15. 02. 2013).
8. ČUČEK, IVAN (2010) Filtriranje elektronske pošte z bayesovim klasifikatorjem.
Maribor: Fakulteta za elektrotehniko, računalništvo in informatiko. Dostopno prek:
http://dkum.uni-mb.si/Dokument.php?id=19636 (27. 07. 2013).
9. DOBROVOLJC, ANDREJ (2012) Osnove dokumentnih sistemov. Novo mesto: Fakulteta
za informacijske študije.
10. DYNAMSOFT DYNAMIC .NET Twain. Dostopno prek:
http://www.dynamsoft.com/Products/Optical-Character-Recognition-OCR.aspx (22. 03.
2013).
11. EXPERTVISON OPENRTK. Dostopno prek: http://www.expervision.com/ocr-sdk-
toolkit/openrtk-ocr-toolkit-sdk (15. 03. 2013).
12. GOOGLE TRENDS. Dostopno prek: http://www.google.com/trends/ (23. 07. 2013)
62
63
13. HOLLEY, ROSE (2009) Analysing and Improving OCR Accuracy in Large Scale
Historic Newspaper Digitisation Programs. D-Lib Magazine. Dostopno prek:
http://www.dlib.org/dlib/march09/holley/03holley.html (20. 02. 2013).
14. IMPEDOVO, SEBASTIANO, OTTAVIANO, LUCA in OCCHINEGRO, SILVIA
(1991) Optical character recognition - a survey. Bari: Università degli Studi di Bari.
Dostopno prek: http://www.worldscientific.com/doi/pdf/10.1142/S0218001491000041
(15. 02. 2013).
15. LEADTOOLS RECOGNITION IMAGING DEVELOPER TOOLKIT. Dostopno prek:
http://www.leadtools.com/sdk/recognition-imaging.htm (15. 03. 2013).
16. NICOMSOFT OCR SDK. Dostopno prek:
http://www.nicomsoft.com/products/ocr/download/ (15. 03. 2013).
17. NUANCE COMMUNICATIONS OMNIPAGE. Dostopno prek:
http://www.nuance.com/for-business/by-product/omnipage/csdk/index.htm (15. 03.
2013).
18. PUMA.NET. Dostopno prek: http://pumanet.codeplex.com/ (20. 02. 2013).
19. RICE V., STEPHEN, KANAI, JUNICHI in NARTKER A., THOMAS (1994) The Third
Annual Test of OCR Accuracy. Information Science Research Institute. Dostopno prek:
http://www.stephenvrice.com/images/AT-1994.pdf (28. 02. 2013).
20. RICE V., STEPHEN , JENKINS R., FRANK in NARTKER A., THOMAS (1995) The
Fourth Annual Test of OCR Accuracy. Information Science Research Institute. Dostopno
prek: http://stephenvrice.com/images/AT-1995.pdf (28. 02. 2013).
21. RICE V., STEPHEN , JENKINS R., FRANK in NARTKER A., THOMAS (1996) The
Fifth Annual Test of OCR Accuracy. Information Science Research Institute. Dostopno
prek: http://www.stephenvrice.com/images/AT-1996.pdf (28. 02. 2013).
22. SHUNJI, MORI, CHING Y., SUEN in YAMAMOTO, KAZUHIKO (1992) Historical
Review of OCR Research and Development. Proceedings of the IEEE. Dostopno prek:
http://www.handwritten.net/mv/papers/mori92historical_review_of_ocr_research_and_de
velopment.pdf (25. 03. 2013).
23. TRIER D., ØIVIND, TAXTT, TORFINN in JAIN K., ANIL (1995) Feature extraction
methods for character recognition-a survey. Oslo: Department of Informatics, University
of Oslo. Dostopno prek: http://citeseerx.ist.psu.edu/viewdoc/download?doi=
10.1.1.51.7439&rep=rep1&type=pdf (24. 02. 2013).
24. TESSERACT OCR ENGINE. Dostopno prek: http://code.google.com/p/tesseract-ocr/
(20. 02. 2013).
64
65
25. TRANSYM TOCR 4.0. Dostopno prek: http://www.transym.com/download-sample-
source-code.htm (15. 03. 2013).
26. WIKIPEDIA (2013) Comparison of optical character recognition software. Dostopno
prek: http://en.wikipedia.org/wiki/Comparison_of_optical_character_recognition
_software (20. 02. 2013).
27. WIKIPEDIA (2013a) Intelligent character recognition. Dostopno prek:
http://en.wikipedia.org/wiki/Intelligent_character_recognition (4. 05. 2013).
28. WIKIPEDIA (2013b) Intelligent word recognition. Dostopno prek:
http://en.wikipedia.org/wiki/Intelligent_word_recognition (4. 05. 2013).
29. WIKIPEDIA (2013c) Optical character recognition. Dostopno prek:
http://en.wikipedia.org/wiki/Character_recognition (4. 05. 2013).