# Karaktereen ezagutze optiko

Karaktereen ezagutze optikoa (ingelesetik, Optical Character Recognition edo OCR), idazmakinaz edo eskuz idatzita, edo paperean inprimatuta, dauden testuak, makina-kode gisa gordetako testu bihurtzea da. Horrela, hauekin lan egitea posible izango litzateke testu-editore baten bitartez.
Azken urteotan, informazioaren digitalizazioa (testuak, irudiak, soinua, eta abar) gero eta interesgarriago bihurtu da gizartean. Testuen kasuan, informazio mota idatzien edo tipografikoen kopuru handiak etengabe sortzen jarraitu da. Testuinguru honetan, karaktereak sartzeko garaian, teklatuaren sarrera saihesteak, giza baliabideen aurrezpen garrantzitsua eta produktibitatea areagotzea dakar eta gainera, zerbitzuen kalitatea mantendu edo hobetu.

## Arazoak

OCR prozesuan zehar, irudi batean dagoen testua editatu daitekeen fitxategi bihurtzea da, fitxategi hori fitxategi-editore batek tratatzeko aukera edukitzeko.
Jatorrizko irudi perfektu bat erabili behar da, hau da, zuri-beltzez soilik eratutako irudi bat. Karaktereen antzematea karaktere guztiak biltzen dituzten patroi edo txantiloi batzuekin konparatuz lortzen da. Baina, errealitatean aurkitzen ditugun irudiak ez dira perfektuak, beraz, OCRak zenbait arazorekin aurkitu daiteke:
* Irudia prozesatzean jatorrizko irudikoak ez diren grisak interpreta ditzake.
* Irudiaren erresoluzioan zarata sartu dezake, prozesatu beharreko pixelak kaltetuz.
* Karaktereen arteko distantzia desberdina izaten denez, honek erroreak sor ditzake ezagutzan.
* Pixel komunak dituzten karaktereak antzematean arazoak sor daitezke.

## OCR algoritmo baten oinarrizko eskema

KEO algoritmo guztiek irudiak eta testuak bereizteko gai izan behar dute. Horretarako, lau urratsetan oinarritzen dira:
* Binarizazioa.
* Irudien bereizmena edo segmentazioa.
* Osagaien argaltzea.
* Alderatze-eredua.

### Binarizazioa

OCR algoritmo gehienak irudi bitar (bi kolore) batean oinarritzen dira. Horregatik, komenigarria da gris-eskalako irudi bat, edo koloretakoa, irudia zuri-beltz bihurtzea, irudiaren funtsezko ezaugarriak mantentzeko. Horretarako, irudiaren histograma erabil liteke, irudian agertzen den gris-maila bakoitzeko pixel kopurua bistaratuz. Irudia binarizatzeko atalase egoki bat hautatu behar dugu, hori gainditzen ez duten pixel guztiak beltz bihurtuko dira eta gainerakoak zuri geratuko dira.
Prozesu honen bidez irudi zuri-beltz bat lortzen dugu, non karaktere eta ikurren ingurumenak markatuta gelditzen diren. Hemendik testua duten irudien zatiak isolatu ditzakegu (zuri-beltzeko trantsizio gehiago).

### Irudien banaketa edo segmentazioa

Prozesu hau garestiena da eta beharrezkoa ere karaktereen ezagutze optikorako. Irudi baten segmentazioak, prozesu "etiketatzaile determinista" edo estokastiko bat dakar irudiaren inguruarekin, intentsitate edo informazio espazialean oinarrituta.
Testu bat deskonposatzea ahalbidetzen du entitate logiko ezberdinetan. Hauek, aldaezinak izan behar dute idazlearekiko independenteak izateko eta esanguratsuak beren onarpenerako.
Ez dago testu baten analisirako, alegia, irudiaren segmentazio hau egiteko nahikoa eraginkorra den metodo orokor bat. Erabilitako teknika gehienak, proiekzio linealetan oinarritutako metodoen aldakuntzak dira.
Gris mailako irudientzat den teknika sinple eta erabilienetarikoa, histogramen elkartzean datza, eskualde homogeneotan pixelen sailkapena edo segmentazioa ahalbidetuz.

### Osagaien argaltzea

Irudiaren osagaiak isolatuak ditugunean, bakoitzari argaltze-prozesu bat aplikatu beharko zaio. Prozedura hau osagai bakoitzaren ingurunean, puntuak ezabatzean oinarritzen da haien tipologia mantenduz.
Puntuen ezabatze honek, ondoz ondoko ekorketa-eskema bat jarraitu behar du, irudiak jatorrizkoaren proportzio berberak izaten mantentzeko eta horrela ez deformatzeko.
Ekorketa paralelo bat egin behar da, hau da, ezabagarriak diren pixelak adierazi, aldi berean guztiak ezabatzeko. Prozesu hori sailkapena eta aintzatespena posible bihurtzeko egiten da, osagaien forma sinplifikatuz.

### Alderatze-eredua

Une honetan, aurrez datu-base batean biltegiratutako eredu bidez lortutako karaktereak dira. KEO baten funtzionamendu egokia, fase honetan oinarritzen da gehien bat.
Konparazioa egiteko metodo desberdinak daude. Horietako bat proiekzio-metodoa da, non aztertzeko dagoen karakterearen proiekzio bertikala eta horizontala lortzen diren. Hauek, karaktere-alfabetoarekin alderatzen dira bateragarritasun maximoa aurkitu arte.
* Beste metodo batzuk ere badaude:
* Egiturazko metodoak.
* Metodo neuromimetikoak.
* Metodo markoviarra (Márkov-en eredu ezkutua).
* Zadeh metodoak.

## Aplikazioak

OCR algoritmoak agertu zirenetik hamaika zerbitzu, prozesu hauek erabiltzen saiatu dira beren errendimendua hobetzeko; beste zerbitzu batzuk, aldiz, teknologia honetan oinarritu dira ehuneko ehunean. Jarraian KEOen aplikazio batzuk ikusiko ditugu.

### Eskuz idatzitako testuak ezagutzea

Ezin dira alderatu eskuz egindako testu bat antzematen saiatzen garenean sortzen diren arazoak eta makinaz idatzitako testu bat antzematean sortzen direnak. Guztiok era desberdinetan idazten dugu eta era uniformean. Hori dela eta, eskuz idatzitako testuak antzematea erronka bat da gaur egun ere. Karaktereen ezagutze adimenduna edo ICR (ingelesez Intelligent Character Recognition) aplikazio honetan sortzen diren arazoak ekiditeko teknikei deritzo.
Testu gehienak karaktere indibidualez osatuta egon arren, OCR algoritmo gehienak emaitza kaxkarrak lortzen dituzte, testu osoko segmentazioa prozesu konplexu bat delako.
Eskuz idatzitako testuen kasuan, azterketen zuzenketan, adibidez, lexiko bat definitzen badugu, testuaren azterketa % 100ean zuzena izatea lortu daiteke. ICRko erantzun-laukiei esker hitzak antzeman daitezke: herrien izenak, eskualdeenak, marka komertzialenak; laburbilduz, hitz-zerrenda batean erregistratu daitekeen guztienak antzeman daitezke. Zerrenda hori handitu daiteke lortu nahi diren ezaugarrien arabera.
Mundu errealean gerta daiteke esaldi bat ez ulertzea osorik irakurri arte. Prozesu hori automatizatzeko maila desberdinetan egiten diren eragiketa morfologiko, lexiko eta semantikoen beharra sortzen da, hori hizketa-ezagutze automatikoaren bidez lortzen da. Metodologia hori burutzeko, aurre-segmentazioa erabiltzen duten algoritmo sendoak erabiltzen dira, deskodeketarekin automatikoki lortzen baitira.
ICR teknologiak, antzemate-prozesua errazteko, dokumentuetan lauki bakoitzean karaktere bat idaztera behartzen dio idazleari. Teknika hau eskuz bete behar diren formularioetan erabiltzen da eta hizkiak larriz idatzi behar dira.

### Matrikula-zenbakiak ezagutzea

Aplikazioetako bat autobidean aurkitzen ditugun radarrenak dira. Hauek, autoen matrikula-zenbakiak antzeman behar dituzte argiztapen, ikuspuntu eta ingurune desberdinetan.
Segmentazio-fasean, matrikularen laukizuzenaren antzekoak diren irudiak bilatzen dira eta hauek isolatzen dira ondoren.
Azkenik, matrikularen parte diren pixelei sailkapen anizkun prozesu bat ezartzen zaio, horrela formatu ezagun batean dagoen karaktere-katea lortuz: matrikula baten formatua. Errore bat egonez gero, errore hori zuzentzen da.

### Datu-baseen indexazioa

Azken urteetan publikatutako informazioaren gehitzea dela medio, gero eta metodo gehiago sortzen dira informazio hori kudeatzeko. Esaterako, Interneten irudiak aurkitzeko erabiltzen den teknika ohikoena, erabiltzaileak sartutako metadatuen arabera egitea da. Azkenaldian argazkietan agertzen den testuaren arabera bilatzeko aukera ematen duten bilatzaileak agertu dira, DIRS (Document Image Retrieval System), adibidez. Bilatzaile horrek OCR algoritmoak erabiltzen ditu irudietan agertzen den testua ezagutzeko, behin informazio hori eskuratuta, metadatu moduan erabili ahal izateko. Teknologia honek irudien bilaketari aukera berri bat ematen dio eta OCR-k daukan indarra irudikatzeko balio du ere.

### Egituradun datuak ezagutzea OCR zonalaren bitartez

Era masiboan egitura edo erdi-egituradun dokumentuen (fakturak, soldata-orriak, emate-agiriak, polizak, banku-justifikazioak, etab.) kantitate handiak digitalizatzeko erabiltzen da, metadatuei esker egiten den sailkapen automatiko baten bidez, eta formatu digitalez modu indexatuan gordetzen dira dokumentuak, gero bilaketa errazagoa izateko. Eragozpen bakarra, txantiloiak aurretik definitu behar direla, baina, konfigurazio egoki batekin denbora asko aurrezten da digitalizazio-prozesuan.

## Erreferentziak

* OCR, ICR y OMR. ¿Qué son y para qué sirven?

## Kanpo estekak
### Biografia

* latam.abbyy.com/finereader/ocr?source=products OCR buruz (teknologia eta softwarea).
* latam.abbyy.com/Default.aspx?DN=d2740918-c2fd-4fe6-a8b1-f0bd2816b561 hodeieko OCR konponbideak (cloud computing).
* www.iti.es/media/about/docs/tic/13/articulo2.pdf Instituto Tecnológico de Informática (ITI).
* observatorio.iti.upv.es/resources/project/58 Instituto Tecnológico de Informática. ITI OCR: Inprimatutako formularioen eta eskuz idatzitako dokumentuen OCR/ICRrako teknika berrien ikerketa.
* www.iti.es/lineas-i-d-i/proyectos-de-investigacion/2010/itiocr/index.html Instituto Tecnológico de Informática. ITI OCR: Inprimatutako formularioen eta eskuz idatzitako testuen ezagupen funtzionalitate berriak.
* observatorio.iti.upv.es/resources/new/12088 Instituto Tecnológico de Informática (ITI): Digitalizazio prozesu masiboak hobetzeko OCRko I+G proiektua.

### OCRrako softwarea

* info.captricity.com Captricity. (Unix, Windows, Mac OS) ROC Zonal Solamente.
* latam.abbyy.com/finereader/ ABBYY FineReader (Unix, Windows, Mac OS).
* Adobe Acrobat Professional (Windows, Mac OS).
* BIT-Alpha (Windows).
* exactscan.de/ ExactScan Pro (Mac OS).
* www.baseside.com/software-producto/diamond-vision Office Gemini. Software de Digitalización (Mac OS).
* Neoptec (Windows, Mac OS, Unix).
* www.nicomsoft.com/products/ocr/ Nicomsoft OCR (Windows, Unix).
* ocrkit.com OCRKit (Mac OS).
* Readiris (Unix, Windows, Mac OS).
* Scansoft Omnipage (Windows).
* GEXCAT (Windows, Mac OS, Unix).
* Tesseract OCR