OCR, optické rozpoznávání písma

 

Úvodem si připomeňme, co to vlastně OCR je. Jsou to ty aplikace, kde se požaduje čitelnost dat lidským okem (na rozdíl od čárového kódu), při zpracování peněžních transakcí, v obchodních systémech atd. Většinou je však znám ze všeobecných aplikací, kde se požaduje vstup dat v textové podobě, jinými slovy jde o naskenování písma a z tohoto obrazu textu opět vytvořit text místo přepisu textu pomocí klávesnice.

ocr-a.gif (8930 bytes)
Standard OCR-A
(převzato z http://www.identifont.com/show?SR)

Snahy o optické rozpoznávání písma (OCR) se poprvé objevily zhruba v polovině minulého století. Zlom však přinesl teprve rok 1966, kdy se v USA standardizovalo tzv. písmo OCR-A, první písmo umožňující strojové čtení. Tvary tohoto písma byly zjednodušeny aby strojové čtení bylo co nejpřesnější, ale písmo nebylo dobře čitelné okem. Tento standard našel uplatnění především ve velkých bankách. Krátce na to se v Evropě objevil standard OCR-B. Bylo to v roce 1968 a jeho autorem byl Adrian Frutiger. Tento standard není sice tak dobře opticky čitelný, je však dobře čitelný okem.

Celý postup optického rozpoznávání písma lze rozdělit do 2 fází. Nejprve se pomocí skaneru sejme předloha. Dále se pak obraz písma digitalizuje, tj. převádí se do matice černých a bílých bodů (informace o stupni šedi se ztrácí). Klasický formát A4, při rozlišení skaneru 300 bodů na palec (tj. 118 bodů na centimetr), je tak převeden na 8 950 500bodů, což představuje 1,125 MB paměti. Tato matice je přenesena do počítače jako obrázkový soubor, tedy bodový rastr. Počítač “ví” v tomto okamžiku o černých a bílých bodech ale “nezná” obsah textu. ten teprve vytvoří software, tj. program pro rozpoznávání písma. V této fázi je nejprve třeba provést analýzu oblastí, které patří k sobě, neboť stránka může obsahovat bloky textu, obrázky, tabulky atd. Komfortní a výkonné programy samy oddělují části textů od obrázků a zpracují i text rozdělený do sloupců. Jednoduché programy počítají s pomocí zvenčí, tzn. že prvotní analýzu provádí obsluha. Tak se text rozdělí do řádků a zjistí se umístění písmen v řádcích. Teprve teď může nastoupit rozpoznávací logika.

 

Přiřazení bodových rastrů písmenům a určení kódů těchto písmen, tak, jak s nimi pracuje počítač, může provádět program různými postupy. Základní způsoby jsou dva: rozpoznávání podle předlohové matice a podle charakteristických tahů písmen. V prvém případě se využívá vzorů písmen v digitalizované podobě pro různé typy písmen. Písmo, které počítač nemá v paměti, rozpoznat nemůže. Také jakákoliv deformace písma (např. zúžení) přináší komplikace. V druhém případě program analyzuje určité části poznávaného písmene (vodorovná, svislá či šikmá čára, typ oblouku atd.), tj. provádí tzv. topologickou analýzu. Rozpoznávání je účinnější, ani velikost rastru zde nepůsobí potíže.

V obou případech se předpokládá spoluúčast obsluhy, která musí dodat programu chybějící inteligenci. Např. pokud je určité písmeno špatně rozpoznáváno, obsluha “naučí” program toto písmeno správně identifikovat.

 

dale.gif (1388 bytes)