Kako deluje?
S kratico OCR, ki izhaja iz angleškega poimenovanja Optical Character Recognition (slov. optična prepoznava znakov), označujemo proces pretvorbe skeniranega ali fotografiranega besedila v računalniško berljivo obliko.
Zgledi besedila v slikah naravnih prizorov
Z drugimi besedami, naloga OCR je prebrati besedilo, ki je na vhodni sliki, in ga zapisati kot zaporedje znakov v določeni kodni tabeli (na primer ASCII ali Unicode). Če je na sliki prikazana beseda »ABBA«, jo program OCR prebere in zapiše kot zaporedje znakov Unicode: 0041, 0042, 0042 in 0041.
Ljudje z branjem nimamo težav in z lahkoto beremo besedilo različnih velikosti, barv in oblik. Tudi kadar so črke slogovno zavite in umetniško oblikovane, se nam zdi branje enostavno in popolnoma samoumevno. Pri zelo slabo vidnih ali celo nepopolnih besedah (besedah z manjkajočimi črkami) znajo naši možgani še vedno pravilno ugotoviti, za katero besedo gre. Kljub temu, da se branje na prvi pogled zdi enostavno in popolnoma podzavestno, pa predstavlja za računalnike trd oreh – tako zelo trd, da ga znanosti še vedno ni uspelo popolnoma razbiti. Treba se je namreč zavedati, da za razliko od ljudi, ki slike dojemamo »inteligentno«, računalniki slike vidijo kot suhoparno zaporedje števil. Slika 1 prikazuje zgled takega zaporedja. Lahko iz slike ugotovimo, kaj to zaporedje števil predstavlja? Najbrž zelo težko. Odgovor se skriva na sliki 2: zaporedje števil ustreza sliki črke »G«. Prepričan sem, da je marsikdo, ki je bil pred branjem tega sestavka trdno prepričan, da bi morali računalniki branje stresati iz rokava, po ogledu slik 1 in 2 spremenil mnenje in se kar naenkrat začudeno sprašuje, kako je sploh mogoče, da računalnike naučimo brati. Odgovor je preprost: »Težko!« Pa vendar, so načini, kako pravilno interpretirati kupe na videz neurejenih števil in ugotoviti, za katere črke gre.
Slika1: Številska predstavitev črke G
Slika 2: Črka G, kot je razumljiva ljudem.
Zgodovina OCR
Optično prepoznavanje znakov sega že v zgodnja petdeseta leta prejšnjega stoletja. Metode OCR so se sprva osredotočale na prepoznavanje črnih tiskanih črk na beli podlagi, kar označujemo z izrazom »klasični OCR«. V kasnejših letih so se metode postopoma izboljševale, v 60. in 70. letih pa so že nastale prve komercialne aplikacije OCR, ki so jih uporabljali v bankah, zavarovalnicah in podobnih ustanovah. Ker so aplikacije delovale slabo, so se s strani izdelovalcev sistemov OCR porodile težnje po standardizaciji pisav, ki bi izboljšali natančnost prepoznave. Tako sta se v 70. letih razvila nova nabora pisav, namenjena optični prepoznavi znakov, OCRA in OCRB, ki sta ju vpeljala ANSI (angl. American National Standards Institute) oziroma ECMA (angl. European Computer Manufacturers Association). Oba nabora pisav je sprejela tudi organizacija ISO (angl. International Standards Organization).
Faze prepoznavanja OCR
Potreba po avtomatiziranju branja velikanskih količin pisanega besedila (naslovi na pisemskih ovojnicah, izpolnjeni čeki, podpisi na obrazcih ipd.), ki so jih v računalnik dotlej vnašali ročno, je botrovala razvoju sistemov OCR za prepoznavo pisanih črk. Ker so bile začetne rešitve zelo preproste in niso delovale dovolj dobro, so v 70. in 80. letih nastali posebni obrazci, ki so določali natančno obliko pisanih črk in okenca, v katera so ljudje vpisovali črke. S tem so dosegli enotnejšo obliko črk in tako višjo natančnost prepoznave.
Z digitalizacijo video vsebin v 90. letih so začele nastajati rešitve za prepoznavo besedila na video posnetkih, zadnja leta pa je razvoj vedno bolj usmerjen tudi v prepoznavo besedila na t. i. slikah naravnih prizorov. Gre za široko paleto raznovrstnih slik, najpogosteje posnetih z digitalnimi fotoaparati in pametnimi telefoni. Ker so te slike podvržene zelo različnim vremenskim in svetlobnim razmeram in ker besedilo v njih nastopa v najrazličnejših oblikah, velikostih in barvah, ga je zelo težko prepoznati. Problem so tudi kompleksna ozadja slik naravnih prizorov, ki še dodatno otežijo pravilno prepoznavo.
Iskanje besedila v sliki. Najdene regije so označene z rdečimi pravokotniki.
Delovanje sistemov OCR
Sistemi OCR so praviloma sestavljeni iz štirih korakov. V fazi iskanja besedila (angl. text detection) se na sliki poiščejo vse regije, ki vsebujejo besedilo. Sistemi za klasični OCR te faze ne uporabljajo, saj predvidevajo, da vhodna slika vsebuje le besedilo, ki leži na homogeni podlagi. Pri kompleksnih slikah pa je iskanje besedila nepogrešljivo in nujno, drugače so rezultati prepoznave najpogosteje popolnoma napačni (bralci lahko to preverijo s poganjanjem komercialnih sistemov OCR na kompleksnih slikah). Čeprav se zdi iskanje besedila na prvi pogled enostavno, gre za zelo zahteven problem, ki mu raziskovalci v zadnjem času posvečajo precejšnjo pozornost.
Najdene regije (predstavljamo si jih lahko kot izrezane sličice besedila – npr. pravokotnik »BREAK« na sliki »Break glass for key«) po končani fazi iskanja besedila vstopajo v fazo predprocesiranja, kjer se obdelajo s posebnimi algoritmi za izboljšavo kakovosti slik in binarizirajo. Postopek binarizacije temne slikovne elemente (angl. pixels) označi z vrednostjo 1, svetle slikovne elemente pa z vrednostjo 0. Ker je besedilo praviloma temnejše barve kot ozadje, postopek binarizacije z 1 označi samo tiste slikovne elemente, ki pripadajo besedilu. Kadar regija vsebuje več črk, se dodatno razbije na podregije posameznih črk. Pri regiji »FOR« se regija razbije na podregije »F«, »O« in »R«. Ker besedilo v slikah nastopi v veliko inačicah, je zelo pomembno, da se v fazi predprocesiranja črke dodatno normalizirajo, z drugimi besedami, postavijo v neko enotno obliko. Normalizacija med drugim zajema poravnavo nagnjenih črk in spremembo velikosti črk na enotno, vnaprej določeno velikost (npr. 64 × 64 slikovnih elementov).
V fazi izračuna značilk se za vsako normalizirano binarno črko posebej določijo vrednosti njenih značilk. Značilke so lastnosti črk, ki se upoštevajo pri prepoznavi. Najbolj vsakdanja vrsta značilke je širina črke. Pri prepoznavi črk na podlagi njihove širine bi lahko sklepali, da ozka črka ustreza črki »I«, širša črka pa npr. črki »O«. Podobno deluje koncept značilk, pri čemer se praviloma uporabljajo kombinacije različnega števila kompleksnih značilk. Mednje se uvrščajo geometrijske značilke, momenti, Fourierovi deskriptorji ipd.
Binarizacija črke »R« v fazi predprocesiranja. Slika (levo) in njena binarna slika (desno).
V fazi klasifikacije, ki sledi fazi izračuna značilk, se klasifikator na podlagi pripadajočega vektorja značilk odloči, katero črko predstavlja določena vhodna regija. Preprosto gledano, so klasifikatorji nekakšne odločitvene funkcije, ki na podlagi metod strojnega učenja odločajo, v kateri razred spadajo določeni vhodni podatki. Značilni klasifikatorji, ki se uporabljajo v sistemih OCR, so metoda podpornih vektorjev oziroma SVM (angl. Support Vector Machine), nevronske mreže oziroma ANN (angl. Artificial Neural Network) ter kombinacije različnih klasifikatorjev. Klasifikatorji sami po sebi ne vsebujejo znanja o črkah, zato jih je treba prej naučiti, kakšne so lastnosti določenih črk. V praksi učenje klasifikatorja poteka tako, da se izbere dovolj velika učna množica slik črk (praviloma nekaj tisoč), na podlagi teh pa klasifikator ugotovi, kakšni vektorji značilk ustrezajo določenim črkam. Tako v samem postopku klasifikacije klasifikator vhodni vektor značilk »primerja« z naučenimi in se na podlagi statističnih zakonitosti odloči, kateri črki je vhodna črka najbližja. Poseben izziv pri prepoznavi predstavljajo črke oziroma znaki, sestavljeni iz več delov, ki se ne držijo skupaj, kot so na primer kitajske, japonske in korejske pismenke, pa tudi slovenske črke s strešicami. V takem primeru je treba nabor značilk in samo klasifikacijo prilagoditi taki prepoznavi.
Googlova aplikacija Goggles omogoča hitro branje besedil, ki jih »poslikamo« s telefonom. In celo prevajanje teh besedil.
Nadaljnji razvoj sistemov OCR
Metode OCR kljub velikanskemu napredku še vedno ne dosegajo natančnosti, ki bi bila primerljiva z natančnostjo branja pri ljudeh. Kadar gre za prepoznavo črnega besedila na beli podlagi in ko je oblika pisave vnaprej znana, sistemi za klasični OCR sicer dosegajo natančnost tudi do 99 %, v vseh drugih primerih pa natančnost metod korenito pade. Tako v raziskovalnih sferah čedalje več pozornosti namenjajo metodam iskanja in prepoznave besedila na kompleksnih slikah naravnih prizorov. Njihova praktična uporabnost je namreč velikanska – od avtomatičnega preiskovanja vizualnih vsebin ter pomoči slepim in slabovidnim pa vse do prepoznavanja in prevajanja napisov, posnetih s pametnimi telefoni. Treba je poudariti, da gre za razvoj metod, ki grejo še korak dlje od zdajšnjih aplikacij (npr. Google Goggles), saj omogočajo prepoznavo zelo zapletenega, slogovno oblikovanega (tudi nehorizontalnega) besedila, ki ga večina uveljavljenih aplikacij ni sposobna prepoznati. V zadnjem času je zelo priljubljena tudi uporaba slovarjev, ki močno izboljšajo prepoznavo. Kadar je določena črka slabo vidna in klasificirana s prenizko verjetnostjo, lahko sistem OCR na podlagi konteksta (drugih črk v besedi) ugotovi, za katero črko gre.