OCR (optical character recognition) - rozpoznávání textu v obraze



Podobné dokumenty
POPIS TESTOVACÍHO PROSTEDÍ 1 ZÁLOŽKA PARSER

Autocad ( zdroj )

Cykly Intermezzo. FOR cyklus

KUSOVNÍK Zásady vyplování

Pídavný modul rozvaha lze vyvolat z hlavní nabídky po stisku tlaítka Výkazy / pídavné moduly.

Obsah Úvod...2 Slovníek pojm Popis instalace...3 Nároky na hardware a software...3 Instalace a spouštní...3 Vstupní soubory

VYTVÁENÍ VÝBROVÝCH DOTAZ

Instalace multiimportu

1 KOMBINATORIKA, KLASICKÁ PRAVDPODOBNOST

Správa obsahu ízené dokumentace v aplikaci SPM Vema

Gymnázium. Kromíž. Zpracování textu. Word 1 SIPVZ-modul-P0

PRÁCE S GRAFICKÝMI VÝSTUPY SESTAV

Zbytky zákaznického materiálu

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

IMPORT DAT Z TABULEK MICROSOFT EXCEL

Formáty výkresů a úprava výkresových listů

Promnné. [citováno z

Použité zdroje a odkazy: Nápověda Corel Draw X6, J. Švercl: Technické kreslení a deskriptivní geometrie pro školu a praxi

Rzné algoritmy mají rznou složitost

WWW poštovní klient s úložištm v MySQL databázi

= = 25

Lepení plexi v bonici pružnými lepidly

Párování. Nápovdu k ostatním modulm naleznete v "Pehledu nápovd pro Apollo".

27. asové, kmitotové a kódové dlení (TDM, FDM, CDM). Funkce a poslání úzkopásmových a širokopásmových sítí.

Dokumentaní píruka k aplikaci. Visor: Focení vzork. VisorCam. Verze 1.0

POÍTAOVÁ PODPORA DETEKCE ZAJÍMAVÝCH OBRÁZK

Datový typ POLE. Jednorozmrné pole - vektor

Digitální pekreslení leteckého snímku

1 Píklady popisu typických konstrukcí

MATEMATIKA MATEMATIKA

DUM 09 téma: Kusovník

Efektivní hodnota proudu a nap tí

Dodatek dokumentace KEO-Moderní kancelá verze 7.40

VYUŽITÍ MODULU EXCELENT PRO MANAŽERSKÉ ANALÝZY V APLIKACÍCH VEMA

2.1 Pokyny k otev eným úlohám. 2.2 Pokyny k uzav eným úlohám. Testový sešit neotvírejte, po kejte na pokyn!

WWW poštovní klient s úložištm v MySQL databázi

LABORATORNÍ CVIENÍ Stední prmyslová škola elektrotechnická

SHOPTRONIC SERVIS - ZAKÁZKA

Postup pi importu. Zdroje: ElkoValenta, HP tronic. A. export vytvoených kategorií

2-4 hrá, 10+, 60 min pravidla peložil Prokop Opletal Reiner Knizia

Prezentaní program PowerPoint

Prostedky automatického ízení

PROJEKTOVÁNÍ POZEMNÍCH KOMUNIKACÍ

Inventury verze 1.40

Definice : Jsou li povrchové pímky kolmé k rovin, vzniká kolmá kruhová válcová plocha a pomocí roviny také kolmý kruhový válec.

K 98k Mauser - nejlepší nmecká puška

DUM. Databáze - úvod

Tato stručná uživatelská příručka vám pomůže začít používat produkt IRISPen TM Executive 7.

ESKÝ JAZYK ESKÝ JAZYK

R O V N O B Ž N Í K (2 HODINY)

Prbh funkce Jaroslav Reichl, 2006

TopoL sbr bod pro AAT

Przkum kvality služby v Mstském dopravním podniku Opava, a.s. v roce 2007

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

STAVBA SLOVA V UEBNICÍCH ESKÉHO JAZYKA PRO ZŠ PRO NESLYŠÍCÍ A ZŠ

PEDPISY PRO PRAVIDELNÉ PERIODICKÉ KONTROLY (REVIZE) TEXTILNÍCH OOPP

Hůlkové písmo. Alternativa ve výuce psaní

aj.) a ekonomiky firmy v jejich celistvosti. A tímto nástrojem jsou práv vhodn sestavené manažerské simulátory 1.

Aditivní barevný model RGB pidává na erné stínítko svtla 3 barev a tak skládá veškeré barvy. Pi použití všech svtel souasn tak vytvoí bílou.

POTRUBNÍ SYSTÉMY PROGRAMU INVENTOR PROFESSIONAL V REALIZACI ISTÍRNY ODPADNÍCH VOD

1. Exponenciální rst Spojitý pípad. Rstový zákon je vyjáden diferenciální rovnicí

Píloha 1. Oduhliená zóna 10 mení v oduhliené zón

Diagnostika u voz s 2-místnými diagnostickými kódy

Aplikace vytěžování dat

EVROPSKÁ ÚMLUVA O DOBROVOLNÉM KODEXU O POSKYTOVÁNÍ PEDSMLUVNÍCH INFORMACÍCH SOUVISEJÍCÍCH S ÚVRY NA BYDLENÍ (dále jen ÚMLUVA )

Efektivní uení. Žádná zpráva dobrá zpráva. (Structured training) Schopnost pracovat nezávisí od IQ. Marc Gold

Nový InfoFIT. Manuál k systému Alfresco DMS. Obsah. Úvod. Pihlášení do systému pes webové rozhraní

Roní plán pro 1.roník

Úvodní studie (pokraov

ZNALECKÝ POSUDEK. 004/mov/2012

Programové vybavení pro elektronické docházkové a přístupové systémy. Uživatelská příručka. Revize

P ehled nep ítomnosti

Identifikace organizaních jednotek Junáka

Stední prmyslová škola strojní a elektrotechnická a Vyšší odborná škola Masarykova 3, LIBEREC jiri.hauzer@spsselib.hiedu.cz.

Statistický popis dat. Tvorba kontingenních tabulek. Grafická prezentace dat.

Vyhodnocování úspšnosti

Zamení fasády stavebního objektu

ZÁSADY OCHRANY OSOBNÍCH ÚDAJ. po jakou dobu budeme Vaše osobní údaje zpracovávat;

L I C H O B Ž N Í K (2 HODINY) ? Co to vlastn lichobžník je? Podívej se napíklad na následující obrázky:

INTERSTENO 2013Ghent Mistrovstvísvta v profesionálním word processingu

UŽIVATELSKY DEFINOVANÉ FUNKCE

EXPORT DAT TABULEK V MÍŽKÁCH HROMADNÉHO PROHLÍŽENÍ

Vysoká škola báská Technická univerzita Ostrava Institut geoinformatiky. Analýza dojíždní z dotazníkového šetení v MSK. Semestrální projekt

Ing. Jaroslav Halva. UDS Fakturace

Dlitel, násobek Znak dlitelnosti Prvoíslo, íslo složené, rozklad na prvoinitele Nejvtší spolený dlitel, nejmenší spolený násobek

Výukový materiál zpracován v rámci projektu EU peníze školám

ŠANCE PRO SPOLENOST, obanské sdružení

Pravdpodobnost výskytu náhodné veliiny na njakém intervalu urujeme na základ tchto vztah: f(x)

Žákovský (roníkový projekt)

Disciplinární ád Asociace finanních zprostedkovatel a finanních poradc eské republiky (AFIZ)

DIPLOMOVÝ PROJEKT ELEKTRONICKÁ ZA ÍZENÍ PRO OSOBNÍ AUTOMOBILY

Windok P100. Úvodní píruka k programu

Princip fotovoltaika

Informace pro autory píspvk na konferenci ICTM 2007

Programovací jazyk Python. Objektov orientovaný. [citováno z

REKLAMANÍ ÁD. ATLANTIK finanní trhy, a.s _Reklamaní ád

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Mendelova univerzita v Brn SMRNICE. 4/2013. Vydávání prkazu zamstnance Mendelovy univerzity v Brn a nkterých dalších prkaz

Název: VY_32_INOVACE_PG3303 Pohyb ve 3D prostoru 3DS Max. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Univerzální ovlada LP20 DÁLKOVÝ OVLADA S MOŽNOSTÍ UENÍ SE OD PVODNÍCH OVLADA

Transkript:

OCR (optical character recognition) - rozpoznávání textu v obraze Martin Koníek, I46 programová dokumentace

1. Úvod Tento projekt vznikl na MFF UK a jeho cílem bylo vytvoit algoritmus schopný rozpoznávat text v obraze (OCR). Algoritmus pochází od autora a nepoužívá žádné dobe známé metody (jak se dotete dále) a jeho výsledky jsou velmi uspokojivé (jak si mžete vyzkoušet). Chtl bych podkovat Dejvovi, že mi jej umožnil vyvíjet jako mj zápotový program, jelikož mi tato tematika pipadá zajímavjší, než ostatní nabízené na cviení.

2. Metodika Po vyzkoušení programu si možná íkáte: A jak to tedy funguje? Správná otázka, protože to je samozejm to hlavní, o em tento dokument pojednává. Jádrem je algoritmus, který dokáže analyzovat obsah obrazu a výsledky analýzy porovnat s obsahem databáze, píp. je do databáze pidat. 2.1. Analýza Obraz je projíždn svislými linkami zleva doprava a je zkoumán pro souvislé neprázdné oblasti. Vždy, když skoní zapoatá neprázdná oblast, máme další svislý pás, který mžeme podrobn zkoumat. Tedy každé 2 znaky musí být možno oddlit svislou linií. Z toho ihned vyplývají 2 omezení: znaky se nemohou pekrývat a musí být horizontáln souvislé. Máme-li pás, najdeme ješt horní a dolní hranici znaku, ímž získáme ohraniující obdélník a zábava mže zaít. O znaku uvnit obdélníku jsou zjištny následující parametry. Parametry: - prbh linie zleva - prbh linie zprava - prbh linie zespodu - prbh linie shora - poet prseík s horizontální linií - poet prseík s vertikální linií - poet prseík s diagonální linií - pomr šíka / výška Význam parametr: Prbh linie (celkový vzhled znaku) Nejjednodušší je to na píkladu. Pedstavte si písmeno A. To vypadá z takto: - zleva má charakter vlevo (pjdeme-li odshora dol po jeho levé linii, pjdeme vlevo) - zprava má charakter vpravo (stejný dvod) - zespodu má charakter nahoru, rovn, dol (pjdeme-li zleva doprava po jeho spodní linii, pjdeme nahoru, pak chvíli rovn, pak dol) - shora má charakter nahoru, dol (stejný dvod) Tyto 4 parametry staí na jednoznanou identifikaci velké ásti abecedy (!). Nkterá písmena (H, L, T, F, E, I) by však obdržela naprosto stejnou charakteristiku (jsou rovné ze všech stran). Proto byly pidány další parametry. Poet prseík Pes obdélník jsou taženy 3 linie a spoteny poty prseíku s plnou oblastí (tj. když postupující paprsek vstoupí na plný pixel).

Šíka / výška Reálné íslo urující pomr stran ohraniujícího obdélníku (tak se dobe pozná nap. I od L). Implementace zjištní parametr: Prbh linie Vezmme si jeden ze 4 pípad, ostatní jsou obdobné. Nap. levá strana: Míme vzdálenost od levého okraje a porovnáváme s pedchozí vzdáleností a ve 3 promnných si poítáme, kolikrát už vzdálenost vzrostla, klesla, resp. zstala konstantní. Pokud vzdálenost vzroste (klense, nezmní se), zvýšíme poet rst (pokles, nemn) o 1 a ostatní 2 poty snížíme. Tyto 3 promnné se tedy petahují o dominanci, až jedna z nich zvítzí dosáhne pednastavené hodnoty (TOLERANCE). Na obrázku je poet pokles posupn: 1, 2, 3, 2 (nárst - zelen), 3, 4 poklesy zvítzily, dosáhly hodnoty 4, která byla nastavena jako tolerance. Prohlásíme tedy úsek za vlevo a ostatní 2 hodnoty (rsty a nemny) vynulujeme. erná linie na obrázku by takto dostala charakteristiku: vlevo, rovn, vpravo. Poet prseík Jsou taženy 3 paprsky (horizontální, vertikální, diagonální ne pesn po uhlopíce, odvozeno experimentáln ) a pi vstupu na vyplnný pixel se zapoítá prseík. Vydlení 2 ísel. Šíka / výška 2.2. Databáze V databázi jsou uložené znakové sady skupiny znak. Každá z nich obsahuje znaky a u každého z nich jméno (mže být i dlouhé) + zmínných 8 parametr. Databázi jsem pojal pro pehlednost jako soubor na disku ve formátu XML, takže jsem si mohl vyzkoušet i napsat jednoduchý XML parser. Ten jsem kvli rekurzivní struktue formátu XML implementoval jako rekurzivní funkci. Po analýze znaku z obrazu je možno ho pojmenovat a pidat do databáze.

Vlastní rozpoznání textu v obraze probíhá tak, že se každý znak analyzuje zvláš, získané parametry se porovnají se vším v aktuální znakové sad, vybere se maximální shoda a jméno tohoto znaku z databáze se prohlásí za výsledek. Výsledky pro jednotlivé znaky se poskládají a máme text. 2.3. Vlastní implementace Program byl vytvoen v Delphi 7. Vše je zapouzdeno v tíd TAnalyzer (jednotka Analyzer.pas), jejíž hlavní metody jsou: function CharSimilarity(L1, L2 : TCharInfo) : real; - vrací, jak moc jsou si 2 struktury typu TCharInfo (používané pro ukládání znak) podobné procedure AnalyzeFrom(Can : TCanvas; Left, Top, W, H, Tlr : integer); - z dané oblasti na daném canvasu analyzuje znak a získanými parametry naplní strukturu AnalyzedChar function GetAnalyzedCharInfo : TCharInfo; - vrací strukturu AnalyzedChar function GetAnalyzedString : string; - vrací celkový poskládaný výsledek function LoadCharsFrom(FileName : string) : boolean; function SaveCharsTo(FileName : string) : boolean; - nate xml soubor do pole FCharsets patícího tíd TAnalyzer / uloží zpt do souboru procedure SetCharsetIdx(idx : integer); - vybere aktuální znakovou sadu function GetResultPrecision : real; - vrátí, jak úspšná byla celková analýza obrazu, tj. jak podobné byly znaky v obraze tm v databázi Zbytek je okomentován ve zdrojovém kódu. Ostatní jednotky (Main.pas, TeachDlg.pas, EditChar.pas) obsahují formuláe a slouží jako grafické rozhraní pro demonstraci použití tídy TAnalyzer.

3. Závr a další práce Musím se piznat, že jsem byl sám pekvapený, jak dobré výsledky zaal program podávat po pidání dostatku parametr pro znaky. První verze pracovala naivn jen s analýzou levé a pravé linie (už i to ale stailo na naprosto bezpené rozpoznání A od B ). Po pidání horní a dolní strany se vyskytl zmiovaný problém písmen T, L, H apod. Byly tedy ješt pidány 3 linie, které asov tém zadarmo poskytly daleko pesnjší výsledky. Algoritmus opravdu funguje dobe jak na znakové sad písmen kreslených myší (obdoba PDA a dotykové tužky), tak na bžných znakových sadách. Jeho návrh ho ale peduruje k rozpoznávání písmen velikosti alespo 20 pixel znak musí být dost velký na to, aby se na nm bylo eho chytit. Tady hraje velmi dležitou úlohu nastavená tolerance. Pro menší písmo je samozejm daleko vhodnjší mensí tolerance, protože tak mže být úsek vysoký 10px oznaen za vlevo, rovn, vpravo, piemž pi vyšší toleranci by byl oznaen jen jako rovn, pípadn by nebyl oznaen vbec a byl by považován za hrbol. Program nyní také pracuje pouze s jedním ádkem textu, což by nebyl problém v další verzi zmnit. Možná by se dal použít i pro petení naskenované strany textu, pi dostatené velikosti obrazu. Pro tento úel nebyl však nebyl navržen. Zajímavostí je, že rozpoznávané znaky nemusí být jen písmena. Staí znak analyzovat a pojmenovat. Program tak mže poznat domek, tank, letadlo a spoustu dalších vcí.