06.06.2015 Views

Automatické rozpoznávanie ŠPZ motorových vozidiel v ... - Utc.sk

Automatické rozpoznávanie ŠPZ motorových vozidiel v ... - Utc.sk

Automatické rozpoznávanie ŠPZ motorových vozidiel v ... - Utc.sk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Automatické rozpoznávanie ŠPZ motorových <strong>vozidiel</strong> v<br />

obraze a vo videosekvenciách<br />

DIPLOMOVÁ PRÁCA<br />

ERIK MELICHER<br />

ŽILINSKÁ UNIVERZITA V ŽILINE<br />

Elektrotechnická fakulta<br />

Katedra telekomunikácií<br />

Študijný odbor: TELEKOMUNIKÁCIE<br />

Vedúci diplomovej práce: Ing. Miroslav Benčo<br />

Stupeň kvalifikácie: inžinier(Ing.)<br />

Dátum odovzdania diplomovej práce: 18.5.2007<br />

ŽILINA 2007<br />

I


Abstrakt<br />

V tejto práci je popísaná metóda na automatickú detekciu a znakové rozpoznaniue štátnej<br />

poznávacej značky motorových <strong>vozidiel</strong>. Úlohou je demonštrovať na tomto príklade<br />

z praxe možné využitia v oblastiach, ktoré slúžia na automatizáciu a zjednodušenie<br />

ľud<strong>sk</strong>ej činnosti. Pre tento fakt sa jadro práce sústredí nielen na vysvetlenie samostatných<br />

rozpoznávaní objektov v obraze ale, rozoberá aj množstvo teoretických vedomostí<br />

týkajúcich sa preprocesingu obrazu a videosekvencií. Sú vysvetlené mnohé postupy<br />

a metódy, akými sú napríklad hranové de<strong>sk</strong>riptory, charakteristické extremálne regióny,<br />

neurónové siete atď.<br />

II


Žilin<strong>sk</strong>á univerzita v Žiline, Elektrotechnická fakulta,<br />

Katedra telekomunikácií<br />

________________________________________________________________________<br />

ANOTAČNÝ ZÁZNAM – DIPLOMOVÁ PRÁCA<br />

Priezvi<strong>sk</strong>o, meno: Melicher Erik škol<strong>sk</strong>ý rok: 2006/2007<br />

Názov dipl. práce: Automatické rozpoznávanie ŠPZ motorových <strong>vozidiel</strong> v obraze a vo<br />

videosekvenciách<br />

Počet strán: 56 Počet obrázkov: 51 Počet tabuliek: 0<br />

Počet grafov: 0 Počet príloh: 1 Použitá lit.: 10<br />

Anotácia<br />

V tejto práci sa prezentuje metóda na automatickú detekciu a znakové<br />

rozpoznávanie štátnej poznávacej značky motorových <strong>vozidiel</strong>. Spolu s týmto<br />

problémom, práca teoreticky rozoberá metódy k spracovaniu snímkov a videosekvencií.<br />

Zároveň prezentuje množstvo postupov k učeniu a rozpoznaniu objektov v obraze.<br />

Napríklad hranové de<strong>sk</strong>riptory, charakteristické extremálne regióny, neurónové siete atď.<br />

Anotácia v cudzom jazyku ( anglický jazyk ):<br />

This work, present a method to automatic detection and character recognition<br />

Vehicle Licence-Plate. Together with this problem, the work show theoretical method to<br />

processing the images and moves scenes. At the same time it present many advancements<br />

to learn and recognize object category in images. For example edge description,<br />

characteristic extremal regions, neural network etc.<br />

Kľúčové slová: Štátna poznávacia značka, selekcia, detekcia, verifikácia, transformácia,<br />

znakové rozpoznávanie, predspracovanie obrazu, separácia, neurónové siete.<br />

Vedúci práce: Ing. Miroslav Benčo<br />

Recenzent práce:.........................................................<br />

Dátum odovzdania práce:..........................................<br />

III


Obsah<br />

Zoznam obrázkov .......................................................................................................VI<br />

Zoznam použitých <strong>sk</strong>ratiek ..................................................................................VIII<br />

Úvod...................................................................................................................................1<br />

1 Teoretické spracovanie problematiky rozpoznávania znakov<br />

a všeobecne objektov v obraze a vo videosekvenciách ....................................3<br />

1.1 Transformácie ..........................................................................................................4<br />

1.1.1 Fourierova transformácia-(používaná napríklad pri rozpoznávaní ŠPZ vo<br />

vieosekvenciách)..........................................................................................................4<br />

1.1.2 Di<strong>sk</strong>rétna Fourierova transformácia ...................................................................5<br />

1.1.3 Radonova transformácia .....................................................................................6<br />

1.2 Predspracovanie obrazu..........................................................................................8<br />

1.2.1 Jasové transformácie (využité v programe).........................................................8<br />

1.2.2 Geometrické transformácie.................................................................................8<br />

1.2.3 Lokálne predspracovanie ....................................................................................9<br />

1.2.3.1 Vyhľadzovanie..............................................................................................9<br />

1.2.3.2 Ostrenie- Hranové detektory (Gradientné operátory).................................9<br />

1.3 Segmentácia obrazu (využité v programe).............................................................10<br />

1.3.1 Prahovanie (využité v programe) ......................................................................10<br />

1.3.2 Segmentácia založená na hranách (využité v programe) ..................................11<br />

1.3.2.1 Prahovanie obrazu hrán (využité v programe)..........................................11<br />

1.3.2.2 Určovanie hranice ako heuristické hľadanie.............................................11<br />

1.3.2.3 Dynamické programovanie........................................................................12<br />

1.3.2.4 Houghova transformácia (využité v programe).........................................12<br />

1.3.3 Segmentácia založená na oblastiach .................................................................14<br />

1.3.3.1 Spájanie oblastí..........................................................................................14<br />

1.3.3.2 Delenie oblastí ...........................................................................................15<br />

1.3.3.3 Delenie-a-spájanie oblastí.........................................................................15<br />

1.4 Porovnávanie so vzorom (matching)....................................................................16<br />

1.5 Rozpoznávacie techniky (využité v programe)......................................................16<br />

1.5.1 Štatistické rozpoznávanie obrazcov..................................................................16<br />

1.5.2 Neurónové siete (využité v programe) ..............................................................16<br />

1.5.2.1 Pracovná fáza umelej neurónovej siete .....................................................18<br />

1.5.2.2 Učenie (trénovanie) ...................................................................................18<br />

1.5.2.3 Vybavenie(testovanie) ................................................................................18<br />

1.5.3 Syntaktické rozpoznávanie obrazcov................................................................18<br />

1.5.4 Rozpoznávanie ako porovnávanie zhody dvoch grafov ...................................19<br />

2 Prehľad a porovnanie dostupných algoritmov automatického<br />

rozpoznávania ŠPZ.....................................................................................................20<br />

2.1 Metódy detekcie ŠPZ motorových <strong>vozidiel</strong>..........................................................20<br />

2.1.1 Metóda prahovania vstupného obrázka na binárny ..........................................20<br />

2.1.2 Metóda relatívne pravidelného prechodu hrán jasovej úrovne medzi písmenami<br />

a medzerami znakov ŠPZ (Metóda vertikálnych hrán)..............................................21<br />

IV


2.2 Metódy selekcie znakov ŠPZ motorových <strong>vozidiel</strong> .............................................22<br />

2.2.1 Metóda segmentácie pomocou vertikálnej a horizontálnej projekcie...............22<br />

2.2.2 Metóda CER (Characteristic Extremal Regions)..............................................23<br />

2.2.2.1 Extremálna oblasť......................................................................................23<br />

2.2.2.2 Algoritmus detekcie a selekcie CER ..........................................................24<br />

2.3 Selektor ...................................................................................................................25<br />

2.3.1 Neurónová sieť programovacieho jazyka Matlab.............................................26<br />

2.3.2 Sieťové architektúry ponúkajúce prostredie Matlab.........................................27<br />

2.3.3 Neurónová sieť na znakové rozpoznávanie(Matlab) ........................................29<br />

3 Praktická realizácia programu na automatické rozpoznanie ŠPZ .......31<br />

3.1 Vstupné dáta...........................................................................................................31<br />

3.1.1 Algoritmus na detekciu pohybu ........................................................................31<br />

3.2 Predspracovanie vstupných dát............................................................................32<br />

3.2.1 Prevod farebného RGB formátu do formátu 256 odtieňov sivej farby.............32<br />

3.2.2 Zaistenie dostatočného množstva jasových (kontrastových) úrov....................33<br />

3.2.3 Prevod obrázku 256 odtieňov sivej (grey) na binárny obrázok pozostávajúci<br />

z logických jednotiek a núl pomocou techniky prahovania.......................................34<br />

3.3 Výber kandidátov na ŠPZ značku........................................................................34<br />

3.3.1 Algoritmus číslo 1.............................................................................................34<br />

3.3.1.1 Prvá funkcia trasovania(trace) ..................................................................35<br />

3.3.1.2 Rozšírenie hrán rámiku ŠPZ ......................................................................36<br />

3.3.1.3 Úprava matice vhodnej na odpočet ...........................................................37<br />

3.3.1.4 Po odpočte odstránenie miniatúrnych oblastí ...........................................37<br />

3.3.1.5 Funkcia na zlúčenie čiastkových oblastí....................................................38<br />

3.3.1.6 Odstránenie malých oblastí .......................................................................39<br />

3.3.1.7 Druhá funkcia trasovania (trace) ..............................................................39<br />

3.3.2 Algoritmus číslo 2.............................................................................................40<br />

3.3.2.1 Prvá funkcia trasovania(trace) ..................................................................40<br />

3.3.2.2 Selekcia malých oblastí..............................................................................41<br />

3.3.2.3 Zlúčenie čiastkových oblastí ......................................................................41<br />

3.3.2.4 Druhá funkcia trasovania(trace) ...............................................................42<br />

3.4 Verifikácia a selekcia ŠPZ.....................................................................................43<br />

3.4.1 Spracovanie vstupného objektu ........................................................................44<br />

3.4.2 Verifikátor – podmienky...................................................................................44<br />

3.4.2.1 Prvá časť verifikátoru ................................................................................45<br />

3.4.2.2 Druhá časť verifikátoru .............................................................................48<br />

3.4.3 Preprocesing OCR (Separácia jednotlivých znakov)........................................51<br />

3.4.3.1 Preprocesing značky ŠPZ ..........................................................................51<br />

3.4.3.2 Horizontálna separácia znakov .................................................................51<br />

3.4.3.3 Vertikálne ohraničenie a konverzia znakov ...............................................52<br />

3.4.4 Neurónová sieť ako funkcia rozpoznania znaku...............................................52<br />

Záver................................................................................................................................53<br />

Použitá literatúra ........................................................................................................54<br />

Prílohová časť ..............................................................................................................55<br />

V


Zoznam obrázkov<br />

Obr. 1.1 Dvojrozmerná Fourierova transformácia v di<strong>sk</strong>rétnej podobe...............................5<br />

Obr. 1.2 Fourierova transformácia, a) di<strong>sk</strong>rétne vyjadrenie funkcie f(u,v), b) jej<br />

amplitúdové frekvenčné spektrum........................................................................6<br />

Obr. 1.3 Geometria Radonovej transformácie......................................................................7<br />

Obr. 1.4 Typické hranové profily, a) kroku, b)vrchu, c) priamky, d)šumu ....................10<br />

Obr. 1.5 Aplikácia na využitie Houghovej transformácie, a)určenie konvexného obalu,<br />

b)zistenie uhlu otočenia voči rovine....................................................................14<br />

Obr. 1.6 Stromová segmentácia delenia a spájania oblastí................................................15<br />

Obr. 1.7 Základný model jednoduchého neurónu..............................................................17<br />

Obr. 1.8 Rôzne druhy prenosovej funkcie Neurónovej siete, a)jemná limita, b)tvrdá limita<br />

c)logaritmus signálu ...........................................................................................17<br />

Obr. 2.1 Segmentácia znakov pomocou horizontálnej projekcie (určuje vo vertikálnej<br />

rovine vrch a spodok znakov v ŠPZ) ..................................................................22<br />

Obr. 2.2 Segmentácia znakov pomocou vertikálnej projekcie (určuje v horizontálnej<br />

rovine maximá pre oblasti medzi znakmi) .........................................................23<br />

Obr. 2.3 Rast prahu a spájanie extremálnych oblastí........................................................ 24<br />

Obr. 2.4 Algoritmus detekcie a selekcie CER....................................................................25<br />

Obr. 2.5 Neurón s vektorovým vstupom............................................................................26<br />

Obr. 2.6 Zovšeobecnený vektorový neurón.......................................................................27<br />

Obr. 2.7 Prenosové funkcie používajúce sa v NN..............................................................27<br />

Obr. 2.8 Zobrazenie vrstvy neurónov, a) vrstva neurónov, b) zovšeobecnená vrstva<br />

neurónov..............................................................................................................28<br />

Obr. 2.9 Viacvrstvová neurónová sieť...............................................................................28<br />

Obr. 2.10 Zovšeobecnená viacvrstvová neurónová sieť....................................................29<br />

Obr. 2.11 Príklad metrixu znakov, a) bez šumu, b)zo šumom...........................................29<br />

Obr. 2.12 Architektúra využívaná na znakové rozpoznávanie...........................................30<br />

Obr. 3.1 Funkčnosť algoritmu na detekciu pohybu............................................................31<br />

Obr. 3.2 Prevod RGB (farebného) obrázku na obrázok Gray (256 odtieňov sivej),<br />

a)trojdimenzionálny metrix RGB obrázku, b)RGB obrázok,<br />

c)jednodimenzionálny metrix Gray obrázku, d)obrázok gray............................32<br />

Obr. 3.3 Ilustruje zmeny jasových(kontrastových) úrovní Gray obrázku..........................33<br />

Obr. 3.4 Prevod obrázku 256 odtieňov sivej(gray) na binárny obrázok, a)pôvodný<br />

obrázok gray, b) binárny obrázok po prevode....................................................34<br />

Obr. 3.5 Demonštratívny obrázok auta, a) RGB, b) Gray.................................................35<br />

Obr. 3.6 Názornosť funkcie trasovania na základe hranových detektorov,<br />

a)pred trasovaním, b)po trasovaní.......................................................................35<br />

VI


Obr. 3.7 Zobrazuje jednotlivé kroky rozšírenia hrán, a)pôvodný binárny obrázok<br />

b)prevod obrázku na opačný 1-0, c)roztiahnutie hrán d)spätný prevod............36<br />

Obr. 3.8 Demonštruje kroky odpočtu, a)pôvodný binárny obrázok, b)obrázok na odpočet,<br />

c)výsledný obrázok po odpočte...........................................................................37<br />

Obr. 3.9 Odstránenie miniatúrnych oblastí, a)pred selekciou, b)po selekcií......................38<br />

Obr. 3.10 Zlúčenie čiastkových oblastí, a)pred zlúčením, b)po zlúčení............................38<br />

Obr. 3.11 Odstránenie malých oblastí, a)pred odstránením, b)po odstránení..................39<br />

Obr. 3.12 Druhá funkcia trasovania a zobrazenie oblasti vstupujúcich do verifikátora,<br />

a) jednotlivé oblasti, b)farebné odlíšenie pre lepšiu názornosť..........................40<br />

Obr. 3.13 Demonštratívny obrázok auta, a) RGB, b)Gray ...............................................40<br />

Obr. 3.14 Názornosť funkcie trasovania na základe hranových detektorov algoritmu č.2.,<br />

a) pred trasovaním, b)po trasovaní.....................................................................41<br />

Obr. 3.15 Zobrazuje odstránenie malých oblastí algoritmu č.2.,<br />

a)pred odstránením, b)po odstránení..................................................................41<br />

Obr. 3.16 Zobrazenia zlúčenie čiastkových oblastí algoritmu č.2.,<br />

a)pred zlúčením, b)po zlúčení............................................................................42<br />

Obr. 3.17 Druhá funkcia trasovania a zobrazenie oblastí vstupujúcich do verifikátora<br />

algoritmu č.2., a) jednotlivé oblasti, b)farebné odlíšenie pre lepšiu názornosť42<br />

Obr. 3.18 Oblasti vstupujúce do verifikátoru a ich číslovanie...........................................43<br />

Obr. 3.19 Spracovanie oblastí vstupujúcich do verifikátora s podmienkami.....................44<br />

Obr. 3.20 Podmienka číslo jedna prvej časti verifikátoru..................................................45<br />

Obr. 3.21 Podmienka atribútov..........................................................................................46<br />

Obr. 3.22 Výrez stredného riadku, a) detekovaná oblasť, b)vyrezaná oblasť a jej stredný<br />

riadok...................................................................................................................47<br />

Obr. 3.23 Podmienka intervalu počtu svetlých miest v horizontálnom reze značky.........47<br />

Obr. 3.24 Vystrihnutie ŠPZ značky z pôvodného RGB obrázku, a) detekovaná oblasť,<br />

b)rovnaká oblasť vyrezaná z pôvodného RGB snímku.......................................48<br />

Obr. 3.25 Prevod RGB značky na základe priemerného prahu do BW podoby................49<br />

Obr. 3.26 Odstránenie miniatúrnych oblastí a zistenie uhla otočenia pomocou HT..........49<br />

Obr. 3.27 Rotácia, a)upravenej binárnej matice, b)pôvodnej binárnej matice,<br />

c) pôvodnej RGB matice.................................................................................... 49<br />

Obr. 3.28 Výsledok orezania..............................................................................................51<br />

Obr. 3.29 Preprocesing značky ŠPZ, a) pôvodný výrez značky, b) výrez značky upravený<br />

vyhľadením hrán.................................................................................................51<br />

Obr. 3.30 Horizontálna separácia znakov značky..............................................................52<br />

Obr. 3.31 Vertikálne ohraničenie a konverzia znakov.......................................................52<br />

VII


Zoznam použitých <strong>sk</strong>ratiek<br />

ŠPZ Vehicle Licence-Plate Štátna poznávacia značka<br />

WWW World Wide Web Celosvetová internetová sieť<br />

FT Fourier transform Fourierova transformácia<br />

HT Hough transform Houghova transformácia<br />

NN Neural network Neurónová sieť<br />

CER Characteristic Extremal Regions Charakteristické extremálne regióny<br />

RGB (Red-Green-Blue) image Farebné vyjadrenie snímku<br />

Gray (Gray) image Vyjadrenie obrázku v 256 odtieňov<br />

sivej<br />

OCR Optical character recognition Optické rozpoznávanie znakov<br />

VIII


Úvod<br />

Z dôvodu nových technologických možností súvisiacich s vývojom, ale nesporne<br />

aj s nárastom zložitosti a náročnosti riadenia v rôznych odvetviach je potrebné u<strong>sk</strong>utočniť<br />

množstvo nevyhnutných krokov na optimalizáciu a automatizáciu riadiacich procesoch.<br />

Do tohto rámca samozrejme spadajú aj také oblasti, akými sú doprava a spoje. Jednou<br />

z priorít v doprave sa považuje cestná premávka jej riadenie, bezpečnosť a služby.<br />

Riešením rôznych problémov spojených s cestnou premávkou môže byť automatické<br />

spracovanie textu ŠPZ a iných informácií zistiteľných z prostého obrazového vyjadrenia<br />

dopravných prostriedkoch. Tieto metódy automatického spracovania databáz podľa<br />

obrazových informácií môžu byť ne<strong>sk</strong>ôr využité na rôzne účely od bezpečnosti v cestnej<br />

premávke až po rôzne komerčné využitie napríklad na parkovi<strong>sk</strong>ách, alebo rôznych<br />

servisných centrách.<br />

Prostredníctvom rôznych vlastností z obrazového vyjadrenia je možné zí<strong>sk</strong>ať<br />

množstvo hodnotných informácií. Existuje mnoho metód, ktoré na základe týchto<br />

vlastností umožňujú riešiť problémy spojené s cestnou dopravou.<br />

V tejto práci sa prezentuje metóda na automatickú detekciu a znakové rozpoznanie<br />

štátnej poznávacej značky motorových <strong>vozidiel</strong>. Spolu s týmto problémom, práca<br />

rozoberá teoretické metódy k spracovaniu rôznych snímkoch a videosekvencií. Zároveň<br />

prezentuje množstvo postupov k učeniu a rozpoznaniu objektov v obraze. Napríklad<br />

hranové de<strong>sk</strong>riptory, charakteristické extremálne regióny, neurónové siete atď.<br />

1


Štruktúra práce<br />

• Kapitola 1 obsahuje teoretické spracovanie problematiky rozpoznávania textu a<br />

objektov v obraze a uvádza rôzne využívané metódy a postupy pri spracovaní<br />

obrazu všeobecne.<br />

• Kapitola 2 obsahuje prehľad a porovnanie dostupných algoritmov automatického<br />

rozpoznávania ŠPZ.<br />

• Kapitola 3 popisuje praktickú realizáciu mnou vytvoreného programu na<br />

rozpoznávanie ŠPZ motorových <strong>vozidiel</strong>.<br />

• V kapitole Záver je zhrnutie.<br />

• Prílohová časť obsahuje zdrojový kód programu a jeho výsledky.<br />

2


1 Teoretické spracovanie problematiky rozpoznávania znakov<br />

a všeobecne objektov v obraze a vo videosekvenciách<br />

Pojem detekcia znakov respektíve textu v obraze a videosekvenciách, môžeme<br />

rozdeliť na niekoľko podúloh:<br />

Detekcia znakov v obraze<br />

• Detekcia za ideálnych podmienok – ide o zisťovanie textu pri jednoduchých<br />

podmienkach, text je na jednoduchom pozadí (zvyčajne sa jedná o tmavé<br />

zobrazenie textu na bielom podklade), text neobsahuje žiadne <strong>sk</strong>reslenia, šumy,<br />

geometrické deformácie, ako afinita a otočenie voči rovine atď.<br />

• Detekcia za normálnych podmienok – zisťovanie textu sa u<strong>sk</strong>utočňuje pri rôznych<br />

zhoršujúcich faktorov, medzi ktoré patria šumy, <strong>sk</strong>reslenia, nedokonalá jasová<br />

úroveň, jemné geometrické deformácie a pod.<br />

• Detekcia za extrémnych podmienok – rozpoznávanie textu sa u<strong>sk</strong>utočňuje za<br />

veľmi nepriaznivých podmienok, veľké šumové <strong>sk</strong>reslenie, silné geometrické<br />

<strong>sk</strong>reslenie, ako afinita a otočenie voči rovine, viacfarebnosť textu, splývanie<br />

s pozadím a pod.<br />

Detekcia znakov vo videosekvenciách<br />

• Detekcia statického textu na pohyblivom pozadí – ide napríklad o detekciu textu<br />

pri filme(titulky).<br />

• Detekcia pohyblivého textu na statickom pozadí – ide o detekciu textu, ktorá sa<br />

využíva na spravodaj<strong>sk</strong>ých kanáloch, alebo pohyblivý text na statických<br />

stránkach(WWW)<br />

• Detekcia pohyblivého textu na pohyblivom pozadí, avšak zo známej pozície – ide<br />

o rozpoznávanie napríklad ŠPZ Furierovou metódou<br />

• Detekcia pohyblivého textu na pohyblivom pozadí bez známej pozície textu<br />

Detekcia za ľubovoľných podmienok<br />

• Ide o detekciu, ktorá sa dokáže vysporiadať s ktoroukoľvek nepríjemnou<br />

situáciou. V reálnych podmienkach je typ takejto detekcie takmer<br />

nedosiahnuteľný.<br />

3


Napriek tomu, že práca je zameraná aj na detekciu ŠPZ motorových <strong>vozidiel</strong> vo<br />

videosekvenciách, bude sa zaoberať výhradne detekciou znakov v obraze. Ide o podstatu<br />

veci pretože je zrejmé, že každá videosekvencia sa <strong>sk</strong>ladá z určitého počtu statických<br />

obrázkov idúcich sériovo za sebou. Úkolom práce bude spracovať niekoľko takýchto<br />

statických snímkov a vytvoriť program na detekciu značky ŠPZ a jej textu.<br />

Z dôvodu, že prínosom tejto práce nieje len samostatné rozpoznanie znakov, je<br />

nutné si priblížiť jednotlivé metódy a postupy, ktoré slúžia už spomínanej problematike.<br />

Vo všeobecnom merítku sa dá povedať, že detekciou znakov (textu) nejde len o detekciu<br />

nejakej formy znakovej komunikácie, ale o zisťovanie ľubovolných objektov v obraze.<br />

Potrebným kritériom toho, aby problematika bola pochopená čo<br />

najzrozumiteľnejšie, je nutné rozobrať teoretický základ, ktorý nám dá aký taký rozhľad.<br />

V ďalšej časti textu uvediem metódy a postupy používajúce sa na spracovanie obrazu,<br />

a už spomínanú detekciu ľubovoľných objektov v obraze. Nieje možné sa venovať<br />

z dôvodu obšírnosti jednotlivým metódam veľmi podrobne, napriek tomu metódy a<br />

postupy, ktoré využíva program na detekciu ŠPZ rozoberiem trošku detailnejšie.<br />

1.1 Transformácie<br />

Do tejto kategórie spracovania patria frekvenčné a obrazové transformácie, ktoré<br />

slúžia na zlepšenie vlastnosti obrazu pre ďalšie spracovanie, ale zároveň po<strong>sk</strong>ytujú aj iné<br />

možnosti využitia.<br />

1.1.1 Fourierova transformácia-(používaná napríklad pri rozpoznávaní ŠPZ vo<br />

vieosekvenciách)<br />

Fourierova transformácia je zovšeobecnením komplexného Fourierovho radu.<br />

Fourierov rad je rozšírením periodickej funkcie f(x) na nekonečný súčet sínusov a<br />

kosínusov, využívajúc ortogonalitu týchto funkcií. Výpočet a štúdium Fourierovho radu<br />

je známy ako harmonická analýza funkcie, a je dobre použiteľná na rozklad ľubovolnej<br />

periodickej funkcie na jednoduché časti, ktoré sa dajú jednoducho riešiť, následne zí<strong>sk</strong>ať<br />

riešenie celkového problému, alebo jeho aproximáciu.<br />

Fourierova transformácia je definovaná:<br />

Nech f(x) je spojitá integrovatelná funkcia reálnej premennej x. Fourierovú transformáciu<br />

funkcie f(x) definujeme ako<br />

4


∞<br />

∫<br />

−∞<br />

I( f ( x))<br />

= F(<br />

u)<br />

= f ( x) exp[ −2π ux]<br />

dx ,<br />

kde j = −1<br />

. (1.1)<br />

Nech F(u) je integrovatelná funkcia, potom pre inverznú Fourierovú transformáciu platí:<br />

I<br />

−1<br />

∞<br />

∫<br />

−∞<br />

( F ( x))<br />

= f ( u)<br />

= F(<br />

x) exp[ −2π ux]<br />

dx<br />

(1.2)<br />

Funkcia F(u) zí<strong>sk</strong>aná Fourierovou transformáciou je komplexná funkcia. Môžeme ju<br />

zapísať v tvare<br />

F ( u)<br />

= R(<br />

u)<br />

+ jI ( u)<br />

, (1.3)<br />

kde R(u) je reálna a I(u) je imaginárna zložka funkcie F(u).<br />

Amplitúdové frekvenčné spektrum funkcie F(u) je<br />

2<br />

2<br />

| F ( u)<br />

| = R ( u)<br />

+ I ( u)<br />

, (1.4)<br />

frekvenčné spektrum je<br />

−1<br />

⎡ I(<br />

u)<br />

⎤<br />

φ ( u)<br />

= tan ⎢ ⎥ , (1.5)<br />

⎣ R(<br />

u)<br />

⎦<br />

a výkonové spektrum je<br />

2 2<br />

2<br />

P ( u)<br />

= | F(<br />

u)<br />

| = R ( u)<br />

+ I ( u)<br />

. (1.6)<br />

Fourierovú transformáciu môžeme rozšíriť na dvojrozmernú. Z toho dôvodu frekvenčné,<br />

fázové a výkonové spektrum je definované ako dvojrozmerná funkciu F(u,v).<br />

1.1.2 Di<strong>sk</strong>rétna Fourierova transformácia<br />

Obr. 1.1 Dvojrozmerná Fourierova transformácia v di<strong>sk</strong>rétnej podobe<br />

5


Ak sa aplikuje obrazová transformácia je nutné previesť Fourierovu transformáciu<br />

do di<strong>sk</strong>rétnej podoby. Jednorozmerná di<strong>sk</strong>rétna Fourierova transformácia je definovaná<br />

rovnicou:<br />

1<br />

ux<br />

F(<br />

u)<br />

= f ( x) exp[ −2<br />

jπ ]<br />

(1.7)<br />

N<br />

N<br />

N<br />

∑ − 1<br />

x=<br />

0<br />

pre u = 0, 1, ..., N-1.<br />

Di<strong>sk</strong>rétna inverzná Fourierova transformácia je definovaná vzťahom:<br />

1<br />

ux<br />

f ( x)<br />

= F(<br />

u) exp[ j2π ]<br />

(1.8)<br />

N<br />

N<br />

N<br />

∑ − 1<br />

x=<br />

0<br />

pre x = 0, 1, ..., N-1.<br />

a) b)<br />

Obr. 1.2 Fourierova transformácia, a) di<strong>sk</strong>rétne vyjadrenie funkcie f(u,v), b) jej<br />

amplitúdové frekvenčné spektrum<br />

1.1.3 Radonova transformácia<br />

Ide o integrálnu transformáciu, ktorá reálnej funkcii f definovanej na n-rozmernom<br />

reálnom priestore priradí inú funkciu nesúcu informáciu o integráloch funkcie f cez<br />

všetky afinné nadroviny priestoru na ktorom je definovaná. Tejto novej funkcii sa<br />

niekedy hovorí Radonov obraz funkcie f. Transformácia, ktorá Radonovmu obrazu priradí<br />

pôvodnú funkciu sa nazýva inverzná Radonova transformácia.<br />

Napríklad, ak je f funkcia dvoch premenných, teda ak n = 2, afinné nadroviny<br />

priestoru, na ktorom je definovaná, sú všetky priamky ležiace v rovine. Každá rovinná<br />

priamka je jednoznačne určená uhlom α ktorý zviera jej normála s x-ovou osou a jej<br />

6


vzdialenosťou r od počiatku v smere normály. Radonov obraz funkcie f sa dá potom<br />

definovať ako funkcia týchto dvoch parametrov takto:<br />

∞<br />

R [ f ]( α , r)<br />

= ∫ f ( r sin( α)<br />

− t cos( α),<br />

r cos( α)<br />

+ t sin( α))<br />

dt<br />

−∞<br />

Definícia Radonovej tranformácie:<br />

(1.9)<br />

Afinné nadroviny n-rozmerného priestoru, sú všetky jeho (n − 1)-rozmerné afinné<br />

podpriestory. Tie sú úplne určené svojim jednotkovým normálovým vektorom d ∈ S n− 1 a<br />

vzdialenosťou od počiatku<br />

r ∈ R rátanou v smere vektora d. Radonov obraz funkcie n-<br />

premenných f sa preto najčastejšie definuje ako funkcia definovaná ako funkcia:<br />

R f ]: S<br />

n<br />

× R → R<br />

[ (1.10)<br />

−1<br />

daná vzťahom:<br />

∫<br />

R[ f ]( d,<br />

r)<br />

= fds , (1.11)<br />

L d , r<br />

kde L d,r je afinná nadrovina určená dvojicou parametrov d a r v zmysle uvedenom vyššie<br />

a ds je (n − 1)-rozmerná Lebesgueova miera na tejto nadrovine.<br />

Obr. 1.3 Geometria Radonovej transformácie<br />

Ďalšie typy transformácií:<br />

Di<strong>sk</strong>rétna kosínusová transformácia, Hadamardova transformácia, Wavelety (Vlnková<br />

transformácia), Trace transformácia. Ich teóriou sa z dôvodu limitovania tejto práce<br />

nebudeme zaoberať.<br />

7


1.2 Predspracovanie obrazu<br />

Sú to operácie s obrazmi na najnižšej úrovni abstrakcie – vstup a výstup sú<br />

ikonické dáta, ktoré obsahujú veľkosť jasu v každom obrazovom bode.<br />

Cieľom predspracovania je zlepšenie kvality obrazových dát, ktorá potlačí<br />

neželané deformácie a <strong>sk</strong>reslenia, alebo zlepší niektoré črty obrazu, ktoré sú dôležité z<br />

hľadi<strong>sk</strong>a ďalšieho spracovania.<br />

Existujú tri základné typy metód predspracovania:<br />

• Jasové transformácie – transformácia závisí od vlastností pixela samotného<br />

• Geometrické transformácie<br />

• Lokálne predspracovanie – transformácie závisia od samotného pixela a jeho<br />

okolia<br />

1.2.1 Jasové transformácie (využité v programe)<br />

Existujú dve <strong>sk</strong>upiny jasových transformácií:<br />

Jasové korekcie modifikujú jas pixela, berúc do úvahy jeho hodnotu a jeho polohu<br />

v obraze:<br />

• f (i, j) = e (i, j) g (i, j), kde e (i, j) je multiplikatívny koeficient chyby<br />

• obraz s konštantným jasom c, je potom<br />

c.<br />

f ( i,<br />

j)<br />

g(<br />

i,<br />

j)<br />

= (1.12)<br />

f ( i,<br />

j)<br />

c<br />

Šedotónové transformácie menia jasovú úroveň bez ohľadu na pozíciu v obraze..<br />

q = T(p) (1.13)<br />

1.2.2 Geometrické transformácie<br />

Geometrické transformácie umožňujú eliminovať geometrické deformácie, ktoré<br />

sa môžu objaviť pri snímaní obrazu.<br />

x´ = T (x,y) y´ = T (x,y) (1.14)<br />

x y<br />

Geometrická transformácia typicky pozostáva z dvoch základných krokov:<br />

Transformácia pixelových súradníc - mapuje súradnice pixela vstupného obrazu na<br />

obrazový bod výstupného obrazu; často sa používajú afinné a bilineárne transformácie.<br />

x′<br />

=<br />

m m<br />

∑ ∑<br />

− r<br />

r = 0 k = 0<br />

a<br />

rk<br />

x<br />

r<br />

y<br />

k<br />

y′<br />

=<br />

m m<br />

∑ ∑<br />

− r<br />

r = 0 k = 0<br />

b<br />

rk<br />

x<br />

r<br />

y<br />

k<br />

(1.15)<br />

8


Používajú sa polynómy stupňa m = 2 alebo 3, potrebujú 6 až 10 zodpovedajúcich bodov.<br />

Jasová interpolácia – jas sa vypočíta ako interpolácia jasu v niekoľkých bodoch okolia<br />

Súradnice výstupného pixela obyčajne nezodpovedajú digitálnej mriežke a preto sa<br />

používa interpolácia na určenie jasu výstupného pixela; interpolácia najbližšieho suseda,<br />

lineárna interpolácia a bikubická interpolácia sa používajú najčastejšie.<br />

1.2.3 Lokálne predspracovanie<br />

Metódy lokálneho predspracovania používajú malé okolie obrazového bodu<br />

(obyčajne štvorcové) zo vstupného obrazu na vytvorenie novej jasovej hodnoty<br />

obrazového bodu vo výstupnom obraze. Také operácie sa nazývajú filtrácie.<br />

Predspracovaním sledujeme najmä tieto ciele: vyhladzovanie a ostrenie - (zvýraznenie<br />

hrán).<br />

1.2.3.1 Vyhladzovanie<br />

Cieľom vyhladzovania je potlačiť šum, alebo malé fluktuácie v obraze s využitím<br />

redundancie (nadbytočnosti) obrazových dát. Vyhladzovanie je založené na priemerovaní<br />

jasových hodnôt v nejakom okolí pixela. Jeho nevýhodou je rozmazávanie hrán.<br />

1.2.3.2 Ostrenie- Hranové detektory (Gradientné operátory)<br />

Ostrenie obrazu zvýrazňuje hrany – to sú miesta, kde sa obrazová funkcia rýchlo<br />

mení; má rovnaký efekt ako potlačenie nízkych frekvencií v obore Fourierovej<br />

transformácie, čiže zodpovedá použitiu vysokofrekvenčného filtra. Vysokofrekvenčnému<br />

filtru zodpovedá ma<strong>sk</strong>a.<br />

Hrana je vlastnosť, ktorá je priradená k jednotlivému pixelu a počíta sa z priebehu<br />

obrazovej funkcie v okolí toho pixela. Hrana má dva komponenty, veľkosť, ktorá je<br />

totožná s veľkosťou gradientu a smer, ktorý je kolmý na smer gradientu.<br />

2<br />

2<br />

⎛ ∂g<br />

⎞ ⎛ ∂g<br />

⎞<br />

| grad g ( x,<br />

y)<br />

| = ⎜ ⎟ + ⎜ ⎟<br />

(1.16)<br />

⎝ ∂x<br />

⎠ ⎝ ∂y<br />

⎠<br />

⎛ ∂g ∂g<br />

⎞<br />

ϕ = arg ⎜ , ⎟<br />

(1.17)<br />

⎝ ∂x<br />

∂y<br />

⎠<br />

9


Obr. 1.4 Typické hranové profily, a) kroku, b)vrchu, c) priamky, d)šumu<br />

1.3 Segmentácia obrazu (využité v programe)<br />

Hlavným cieľom segmentácie je rozdeliť obraz na časti, ktoré majú silnú koreláciu<br />

s objektami, alebo oblasťami reálneho sveta zobrazenými v obraze. Pri čiastočnej<br />

segmentácii je cieľom rozdeliť obraz na časti, ktoré sú homogénne z hľadi<strong>sk</strong>a vybranej<br />

vlastnosti napr. jasu, farby, odrazivosti, textúry a pod. Pri segmentácii šedoúrovňových<br />

obrazov využívame dve základné vlastnosti týchto obrazov: di<strong>sk</strong>ontinuitu a podobnosť.<br />

Segmentačné metódy možno rozdeliť na tri <strong>sk</strong>upiny:<br />

Prahovanie, segmentácia založená na hranách (di<strong>sk</strong>ontinuita), segmentácia založená na<br />

oblastiach (podobnosť).<br />

1.3.1 Prahovanie (využité v programe)<br />

Najjednoduchšia segmentačná technika, je výpočtovo nenáročná a rýchla. Na<br />

segmentovanie objektov od pozadia sa používa jasová konštanta, ktorá sa na nazýva prah.<br />

Prahovanie je transformácia, ktorá zobrazuje vstupný obraz f (i, j) na výstupný obraz g(i,j)<br />

následovne:<br />

g (i, j) = 1 ak f (i, j) ≥ T = 0 ak f (i, j) < T (1.18)<br />

10


Prahovanie s jedným prahom možno aplikovať na celý obraz (vtedy ide o globálne<br />

prahovanie), alebo sa prah môže meniť v jednotlivých častiach obrazu (lokálne<br />

prahovanie). Iba za veľmi špeciálnych okolností môže byť prahovanie úspešné s jedným<br />

prahom v celom obraze.<br />

• globálne prahovanie T = T (f )<br />

• lokálne prahovanie T = T( f, f ), kde f je časť obrazu, v ktorej sa určuje prah.<br />

c c<br />

Metódy na určenie prahu sa snažia určiť prah automaticky. Na určenie prahu sa používajú<br />

metóda p-podielu, metóda analýzy tvaru histogramu a optimálne prahovanie.<br />

1.3.2 Segmentácia založená na hranách (využité v programe)<br />

Je založená na lokálnych hranách, ktoré boli detekované hranovými operátormi.<br />

Lokálne hrany zodpovedajú ostrému prechodu v úrovni šedej, vo farbe, v textúre apod.<br />

Najväčšími problémami segmentácie založenej na hranách, ktoré sú spôsobené<br />

obrazovým šumom ,alebo nevhodnou informáciou v obraze, je prítomnosť lokálnych hrán<br />

v miestach, kde neexistuje globálna hranica a naopak neprítomnosť lokálnej hrany tam,<br />

kde globálna hranica existuje.<br />

1.3.2.1 Prahovanie obrazu hrán (využité v programe)<br />

Je založené na vytvorení lokálnych hrán, ktoré sa prahujú vhodným prahom<br />

(predpokladá sa, že silnejšie lokálne hrany sú časťou globálnej hranice).<br />

Relaxácia (optimalizácia) hrán- vlastnosti hrany sa posudzujú v kontexte okolitých<br />

hrán. Ak existujú dostatočné príznaky existencie hranice, lokálna hrana sa posilňuje a<br />

naopak. Napr. slabá hrana medzi dvoma silnými hranami, je veľmi pravdepodobné, že<br />

táto slabá hrana bude súčasťou globálnej hranice. Ak sa použije globálna relaxácia<br />

(optimalizácia), vytvoria sa súvislé hrany.<br />

1.3.2.2 Určovanie hranice ako heuristické hľadanie<br />

Proces určovania hranice sa transformuje na hľadanie optimálnej cesty v<br />

ohodnotenom grafe. Ohodnotenia (ceny) sú spojené s každým vrcholom a vyjadrujú<br />

šancu, že hranica povedie cez tento vrchol (pixel). Cieľom je nájsť optimálnu hranicu<br />

(vzhľadom na určité optimalizačné kritérium), ktorá spája dva špecifikované obrazové<br />

body alebo množiny obrazových bodov, ktoré reprezentujú začiatok a koniec hranice.<br />

11


Definícia ohodnotenia - (ohodnocujúce funkcie) sú kľúčom k úspešnej detekcii<br />

hranice. Zložitosť výpočtu ceny vrcholu môže byť taká, že je to prevrátená hodnota<br />

veľkosti lokálnej hrany v danom bode až po apriórnu znalosť o hľadanej hranici, cieli<br />

segmentácie, obrazových dátach a pod.<br />

f(n) = g(n) + h(n) (1.19)<br />

kde g vyjadruje ohodnotenie cesty a h je heuristicka zložka, ktorá odhaduje ohodnotenie<br />

cesty.<br />

Algoritmus vyberá na ďalšie expandovanie taký vrchol, ktorý má minimálne f(n), pričom<br />

berie do úvahy všetky otvorené vrcholy, t.j. tie, ktoré ešte neboli expandované.<br />

1.3.2.3 Dynamické programovanie<br />

Je založené na princípe optimality a reprezentuje efektívnu cestu simultánneho<br />

hľadania optimálnych ciest z viacerých začiatočných a koncových bodov. Hľadá optimá<br />

funkcií, v ktorých nie všetky premenné sú navzájom závislé. Keď sa používa algoritmus<br />

A* na prehľadávanie grafu, je nutné vytvárať celý graf, čo je protikladom ku<br />

heuristickému hľadaniu.<br />

Myšlienka princípu optimality je:<br />

Ak existuje optimálna cesta z počiatočného do koncového vrcholu, ktorá ide cez E, tak<br />

obidve podcesty z počiatočného vrcholu do E a z E do koncového vrcholu musia byť tiež<br />

optimálne.<br />

1.3.2.4 Houghova transformácia (využité v programe)<br />

Je segmentačná technika použiteľná vtedy, keď treba detekovať objekty so<br />

známym tvarom hranice(ich analitické vyjadrenie). Ide o transformáciu, ktorá mapuje<br />

body, alebo množinu bodov vstupného vektorového priestoru V na parametrický priestor<br />

P parametrov krivky(alebo iného parametricky popísateľného formálneho objektu), ktorý<br />

je analiticky definovaný rovnicou.<br />

Houghova transformácia je definovaná:<br />

Ak máme analitickú rovnicu f (( aˆ<br />

1<br />

,...., aˆ<br />

m<br />

),( x,<br />

y))<br />

= 0 , vyjadrujúcu tvar hľadaných<br />

elementov, v parametroch<br />

a ,...., aˆ<br />

ˆ1<br />

a premenných x,y. Spätná projekcia g sa zí<strong>sk</strong>a<br />

m<br />

zámenou parametrov a premenných bodov [ x ˆ, yˆ<br />

] na všetky tvary s parametrami<br />

( a 1<br />

,...., a m<br />

) , ktoré tento bod obsahujú.<br />

g(( xˆ,<br />

yˆ),<br />

( a1,..,<br />

am )) = f (( a1,...,<br />

am<br />

), ( xˆ,<br />

yˆ))<br />

(1.20)<br />

12


Spätná projekcia vstupných bodov F ∈ F = {( x , y ) | j 1,..., n}<br />

Houghovej<br />

transformácie (pre tvar f) sa definuje následovne:<br />

HT<br />

f<br />

n<br />

∑<br />

j j j<br />

=<br />

( a1,...,<br />

am<br />

) = h((<br />

x<br />

j<br />

, y<br />

j<br />

), ( a1,...,<br />

am<br />

)<br />

(1.21)<br />

j=<br />

1<br />

kde<br />

⎧1<br />

h (( xˆ,<br />

yˆ),(<br />

a1 ,..., am<br />

)) = ⎨ pro g(( xˆ,<br />

yˆ),<br />

( a1,...,<br />

am<br />

)) = 0<br />

(1.22)<br />

⎩0<br />

Interpretácia tejto definície je následovná. Pri predpoklade, že je daný vstupný obraz,<br />

ktorý sa <strong>sk</strong>ladá z bodov a na ňom sa hľadá analytická rovnica vyjadrujúcu objekt(tvar).<br />

Body, ktoré ležia na takomto objekte majú tú vlastnosť, že splňujú jeho analitickú<br />

rovnicu. Houghova transformácia prikazuje každej m-tici parametrov, tzn. každému tvaru<br />

počet bodov vstupného obrazu, ktoré na ňom ležia. Tento princíp sa chápe ako voľba<br />

kandidáta na objekt vstupného obrazu: každý vstupný bod F j tu hlasuje pre všetky<br />

kandidáty o parametroch a ,...., a ) , ktoré sú pre neho prípustné. Taká m-tica<br />

( 1 m<br />

parametrov, ktorá dosiahne medzného počtu hlasov, je považovaná za kandidáta na objekt<br />

vo vstupnom obraze.<br />

Výška tohto prahu je závislá na parametroch samotných, preto sa často hovorí<br />

o adaptívnom prahovaní, kde sa prahová hodnota spočíta so zreteľom na hodnoty<br />

parametrov.<br />

Možná aplikácia:<br />

Houghova transformácia je určená napríklad k detekcií priamok(hrán), alebo lineárnych<br />

oblastí, použitím parametrického vyjadrenia priamky<br />

φ = x*cos(θ) + y*sin(θ), (1.23)<br />

kde φ je vzdialenosť od tejto priamky, a θ je uhol medzi x-rovinou a rovinou vektoru tejto<br />

priamky.<br />

13


a) b)<br />

Obr. 1.5 Aplikácia na využitie Houghovej transformácie, a) určenie konvexného obalu ,<br />

b) zistenie uhlu otočenia voči rovine<br />

1.3.3 Segmentácia založená na oblastiach<br />

Segmentácia založená na oblastiach musí spĺňať následovné kritérium úplnej<br />

segmentácie:<br />

U S<br />

R i<br />

i=1<br />

R = R<br />

iI R<br />

j<br />

i ≠ j<br />

(1.24)<br />

a podmienky maximálnej homogenity:<br />

H ( R i<br />

) = TRUE , pre i=1,2,...,S (1.25)<br />

H ( R I R ) FALSE , pre i ≠ j a R i je susedné s R j (1.26)<br />

i j<br />

=<br />

Kritérium homogenity môže byť priemerná šedá úroveň oblasti, farebné vlastnosti,<br />

textúrne vlastnosti, tvarové vlastnosti a pod.<br />

1.3.3.1 Spájanie oblastí<br />

Obraz sa naj<strong>sk</strong>ôr rozdelí na malé oblasti s tým, že každá oblasť obrazu je<br />

homogénna. Následne na to sa oblasti spájajú tak, aby spĺňali druhú podmienku, že budú<br />

maximálne za podmienky, že homogenita každej oblasti sa zachová.<br />

14


Na spájanie oblastí sa používajú dve heuristiky:<br />

• dve susedné oblasti sa spoja, keď výrazná časť ich spoločnej hranice pozostáva zo<br />

slabých hrán (napr. počet slabých hrán ku celkovej dĺžke hranice),<br />

• dve susedné oblasti sa spoja, keď výrazná časť ich spoločnej hranice pozostáva zo<br />

slabých hrán, ale bez uvažovania o celkovej dĺžke hranice, táto metóda neberie do<br />

úvahy vplyv rozdielnej veľkosti oblastí.<br />

1.3.3.2 Delenie oblastí<br />

Ide o opačný proces ku spájaniu oblastí. Začína pri podsegmentovanom obraze,<br />

ktorý nespĺňa podmienku homogenity oblasti. Potom sa existujúce oblasti postupne delia<br />

tak, aby spĺňali základné podmienky.<br />

1.3.3.3 Delenie-a-spájanie oblastí<br />

Ide o metódu, ktorá má výhody oboch prístupov. Techniky delenia a spájania<br />

obyčajne požívajú pyramídové obrazové reprezentácie. Pretože je k dispozícii aj delenie<br />

aj spájanie, počiatočný obrázok nemusí spĺňať ani podmienku homogenity oblasti, ani<br />

maximálnosti homogénnej oblasti.<br />

Obr. 1.6 Stromová segmentácia delenia a spájania oblastí<br />

Algoritmus:<br />

Definuj homogenitu a následne na to zisti homogenitu v obraze. Ak niektoré oblasti<br />

nespĺňajú podmienku homogenity rozdeľ ich na 4 podoblasti. Ak niektoré podoblasti<br />

v tejto oblasti je možné na základe homogenity spojiť, dôjde k ich spojeniu. Následne na<br />

15


to zistí, či niektoré podoblasti v oblasti delenej štyrmi, niesu homogénne so susednou<br />

oblasťou nepatriacej danej množine. Ak tomu tak je, opätovne dôjde k spojeniu takýchto<br />

oblastí. V prípade, že treba vylúčiť malé oblasti, spoj ich s najbližšou homogénnou<br />

oblasťou.<br />

1.4 Porovnávanie so vzorom (matching)<br />

Porovnávanie so vzorom možno použiť na lokalizáciu objektov so známym<br />

vzhľadom v obraze, na hľadanie špecifických vzorov, a pod. Najlepšia zhoda je založená<br />

na nejakom kritériu optimality, ktoré záleží na vlastnostiach objektu a vzťahoch objektu.<br />

Algoritmus spočíva vo vyhodnotení kritéria zhody pre každú polohu a otočenie<br />

vzoru v obraze. Tie vyhodnotenia, ktoré presahujú stanovený prah, reprezentujú<br />

umiestnenie vzoru v obraze.<br />

Kritériá zhody možno definovať viacerými spôsobmi; špeciálne, korelácia medzi vzorom<br />

a <strong>sk</strong>úmanými obrazovými dátami sa často používa ako všeobecné kritérium.<br />

1.5 Rozpoznávacie techniky (využité v programe)<br />

Slúžia na detekciu ľubovoľných objektov v obraze. Vyžadujú sa špecifické<br />

znalosti tak o objektoch, ktoré sa rozpoznávajú, ako aj všeobecnejšie znalosti o triedach<br />

objektov.<br />

1.5.1 Štatistické rozpoznávanie obrazcov<br />

Rozpoznanie objektu je založené na priradení triedy k neznámemu objektu a<br />

zariadenie, ktoré vykonáva toto priradenie sa nazýva klasifikátor. Počet tried sa obyčajne<br />

vie dopredu a obvykle sa dá odvodiť zo špecifikácie problému. Klasifikátor nerozhoduje<br />

o zaradení do triedy na základe objektu priamo, ale na základe vlastností objektu, ktoré sa<br />

nazývajú obrazce.<br />

1.5.2 Neurónové siete (využité v programe)<br />

Neurónová sieť vznikla na podklade vý<strong>sk</strong>umu mozgu. Vedci sa snažili<br />

matematicky modelovať procesy ktoré v ňom prebiehajú. Ne<strong>sk</strong>ôr sa umelé neurónové<br />

siete rozšírili do všetkých oborov technickej praxe. Základom je neurónová jednotka, do<br />

ktorej vstupuje veľký počet vstupov a vystupuje iba jeden výstup, ktorý sa zadeľuje. Tie<br />

sa opätovne pripájajú na vstupy. Na základe tohto procesu bol definovaný prvok umelej<br />

neurónovej siete.<br />

16


N<br />

⎛<br />

= S ⎜∑<br />

⎝<br />

w x i i<br />

i=<br />

y 1<br />

⎞<br />

+ Θ⎟<br />

(1.27)<br />

⎠<br />

kde,<br />

• x i – vstupy neurónu celkom N<br />

• w i – synaptické váhy<br />

• S – nelineárna prenosová funkcia neurónu<br />

• – prah<br />

• y – výstup neurónu<br />

Výraz v zátvorke sa označuje ako vnútorný potenciál neurónu. Váhy w i predstavujú<br />

lokálnu pamäť a spojením ostatných neurónov dostávame celkovú pamäť siete . Učenie<br />

siete sa vytvára zmenou váh, ale aj tvarovaním prenosovej funkcie, počtom neurónov<br />

v sieti a ich topologickým rozložením.<br />

Obr. 1.7 Základný model jednoduchého neurónu<br />

Obr. 1.8 Rôzne druhy prenosovej funkcie neurónovej siete, a)jemná limita, b)tvrdá limita,<br />

c)logaritmus signálu<br />

17


1.5.2.1 Pracovná fáza umelej neurónovej siete<br />

Neurónová sieť pracuje v zásade vo dvoch fázach. Prvá je adaptívna a druhá<br />

aktívna. V tej prvej dochádza k učeniu (trénovaniu), a v druhej fáze vykonáva naučenú<br />

činnosť, vybavuje(testuje). Pamäť je reprezentovaná váhovými koeficientami<br />

jednotlivých vstupov neurónov.<br />

1.5.2.2 Učenie (trénovanie)<br />

Pri učení dochádza v neurónovej sieti ku zmenám. Sieť sa prispôsobuje na riešenie<br />

daného problému. Na počiatku sa váham prisúdia počiatočné hodnoty, ktoré sú náhodne<br />

zvolené. Následne nato sa privedie vytvorená trénovacia množina, ktorá bola zí<strong>sk</strong>aná<br />

z potrebných dát. Sieť po<strong>sk</strong>ytne výstup, odozvu.<br />

Učenie s učiteľom – existuje vonkajšie kritérium, ktoré určuje, ktorý vstup je správny<br />

a v sieti sa nastavujú spätné väzby podľa toho, ako blízko je výstup kritériu. Veľakrát je<br />

kritérium definované, ako rozdiel medzi testovaným a žiadaným výstupom. Váhy sa<br />

nastavujú podľa daného algoritmu. Ne<strong>sk</strong>oršie sa sieti priloží nový výstup (učiteľ) a cyklus<br />

sa opakuje.<br />

Učenie bez učiteľa – algoritmus je navrhnutý tak, že hľadá vo vstupných vzorkách isté<br />

spoločné vlastnosti.<br />

1.5.2.3 Vybavenie(testovanie)<br />

Na základe vstupu dát vznikne vo vstupnej vrstve nerovnovážny stav. Výstupy<br />

neurónov vo všetkých vrstvách sa začnú pôsobením ostatných neurónov meniť podľa<br />

istého algoritmu a menia sa dovtedy, dokiaľ nenastane opäť nerovnovážny stav. Na ich<br />

výstupoch je požadovaná odozva siete na tento vstup.<br />

1.5.3 Syntaktické rozpoznávanie obrazcov<br />

Pre syntaktické rozpoznávanie obrazcov, je charakteristický kvalitatívny popis<br />

objektov. Syntaktický popis treba použiť vtedy, ak príznakový popis nie je schopný<br />

popísať zložitosť objektu, alebo keď sa dá objekt zapísať, ako hierarchická štruktúra<br />

pozostávajúca z jednoduchších častí, napríklad slovom, alebo grafom. Elementárnymi<br />

vlastnosťami syntakticky popísaných objektov sú primitíva.<br />

Množina všetkých primitív sa nazýva abeceda. Množina všetkých slov<br />

vytvorených z abecedy, ktoré opisujú objekt z jednej triedy, sa nazýva popisný jazyk.<br />

18


Gramatika predstavuje množinu pravidiel, podľa ktorých sa vytvárajú slová nejakého<br />

jazyka z prvkov abecedy.<br />

Algoritmus:<br />

Naj<strong>sk</strong>ôr sa definuje primitíva a ich vzťahy. Ne<strong>sk</strong>ôr sa zostrojí gramatika pre každú triedu<br />

objektov. Potom sa vykoná pre každý objekt rozpoznanie primitíva a zostrojenie jeho<br />

reprezentujúceho slova. Na základe analýzy sa zaradí objekt do triedy, ktorej gramatika<br />

ho generuje.<br />

1.5.4 Rozpoznávanie, ako porovnávanie zhody dvoch grafov<br />

Ide o metódu porovnávania zhody (matching) modelu a objektu popísaných<br />

grafom. Podobnosť sa nezakladá na úplnej zhode, ale približnosti grafového vyjadrenia.<br />

19


2 Prehľad a porovnanie dostupných algoritmov automatického<br />

rozpoznávania ŠPZ<br />

Táto práca, sa bude zaoberať rozpoznávaním textu na statických<br />

obrázkoch(framoch). Je dôležité poznamenať, že tieto obrázky by vzhľadom<br />

k dosiahnutiu lepších výsledkov, nemali byť brané kamerou s dvojriadkovým<br />

vykresľovaním.<br />

2.1 Metódy detekcie ŠPZ motorových <strong>vozidiel</strong><br />

Z doterajších teoretických a praktických vedomostí sa vychádza, že existujú dve<br />

najznámejšie základné metódy detekovania ŠPZ v obraze. Prvá z nich, je metóda<br />

založená na prahovaní vstupného obrázka na binárny, a druhá na relatívne pravidelného<br />

prechodu hrán jasovej úrovne medzi písmenami a medzerami znakov ŠPZ. V princípe sú<br />

tieto metódy jednoznačne odlišné, ale napriek tomu je možné povedať, že podstata veci<br />

spočíva jak pri jednej, tak pri druhej v jasovej odlišnosti blízkych pixelov. V prvom<br />

prípade je metóda hľadania podstatne viac závislá na kvalite po jasovej a kontrastovej<br />

stránke ako druhá, napriek tomu sa nedá povedať ani o jednej z nich, že by bola naprosto<br />

dokonalá. V rozbore sa uvedú príklady nedokonalosti jednotlivých metód.<br />

2.1.1 Metóda prahovania vstupného obrázka na binárny<br />

Základom tohto procesu je uviesť pôvodný obrázok RGB poprípade Gray na<br />

binárny (BW – black and white) pomocou prahovacích techník. V takto<br />

pretransformovanom obrázku sa následne hľadajú oblasti pomocou hranových<br />

a trasových algoritmoch. Prvotnou oblasťou ktorú treba nájsť, je samostatná značka ŠPZ,<br />

ktorej pozadie je biele a znaky čierne. Pri kroku jedna sa nemusí zaoberať objektami,<br />

ktorými sú práve znaky ŠPZ, ktoré predstavujú v objekte ŠPZ takzvané diery (holes).<br />

Takto definovaná oblasť sa posunie do pravidla, ktoré určuje pomer strán dĺžky a šírky.<br />

Ak takto definovaná oblasť splňuje kritéria, postupuje na ďalšie spracovanie. Pri ďalšom<br />

spracovaní sa z oblasti vystrihne niektorý(spravidla stredný) riadok, zistí sa počet<br />

svetlých a tmavých miest. Ak daný počet spadá do určitého intervalu, dá sa s veľkou<br />

pravdepodobnosťou povedať, že ide o značku ŠPZ.<br />

Základné nevýhody tejto metódy<br />

20


• Pri prevode RGB poprípade Gray obrázku na binárny BW je nutné mať dobré<br />

jasové a kontrastové podmienky, aby bolo možné značku jednoznačne definovať.<br />

• Značka musí byť relatívne s vysokým rozlíšením, aby pri nízkom osvetlení<br />

nedošlo k spojeniu znaku s vrchom a so spodkom rámu, čo by narušilo atribúty<br />

daného objektu v tomto prípade značky. Podobne by nemal obsahovať<br />

nedokonalosti v podobe zašpinenia, čo je dôležité aj v samostatnom rozpoznávaní<br />

znakov.<br />

• Značka nesmie obsahovať cez tmavý rámik biele miesta, napríklad v podobe<br />

zasneženia.<br />

• Značka by mala byť v relatívnej rovine s rovinou obrázka.<br />

Pretože zdrojový kód je založený na tejto metóde, bolo snahou odstraniť už<br />

spomínané mnohé nedostatky. Nnohé riešenia sa v mnohých týchto aspektoch podarili,<br />

napriek tomu ostali oblasti, ktoré boli vyriešené čiastočne, alebo vôbec. Ďalšie priblíženie<br />

riešení zadaných problémov sa uvedú v kapitole [3].<br />

2.1.2 Metóda relatívne pravidelného prechodu hrán jasovej úrovne medzi<br />

písmenami a medzerami znakov ŠPZ (Metóda vertikálnych hrán)<br />

Základom tejto metódy je vzhľad v horizontálnom reze ŠPZ. Priamo v značke<br />

dochádza k relatívne pravidelnému prechodu oblastí tmavých miest, čo predstavujú znaky<br />

a svetlých miest, čo predstavujú medzery ŠPZ. V praxi ide o vertikálne hrany<br />

vyznačujúce sa pravidelnými <strong>sk</strong>okmi v jasovej úrovni. Jasová úroveň je odlíšená nejakou<br />

prahovou hodnotou. V prípade, že sú nájdené tieto <strong>sk</strong>oky v určitých intervaloch daných<br />

parametrov, dokáže sa usúdiť, v ktorom riadku môže existovať ŠPZ značka. Ak je<br />

nájdený takýto riadok, postupuje sa po kroku o jeden horizontálny bod hore a dole.<br />

V prípade, že daný riadok spĺňa opätovne podmienky, krok sa opakuje až dovtedy, kým<br />

sa pravidelnosť jasových <strong>sk</strong>okov neobmedzí, poprípade úplne nestratí. Riadky, v ktorých<br />

k tomuto dôjde, sa určia ako horizontálne maximá a minimá.<br />

Základné nevýhody tejto metódy<br />

• Je nutné vedieť, alebo mať aspoň predpoklad, aká je šírka značky, pretože je<br />

potrebné značku pretnúť v horizontálnom reze aspoň raz. Ak táto podmienka nieje<br />

splnená, môže nastať prípad, že riadok, kde existuje ŠPZ sa nemusí vôbec objaviť.<br />

21


• Nieje možné mať natočenie značky prevyšujúce relatívnu rovinu voči rovine<br />

obrázku.<br />

• Je nutné zvoliť prijateľnú prahovú hodnotu, aby nedochádzalo k tomu, že ak je<br />

značka pomerne zanesená, nebude <strong>sk</strong>ok spadať do daného intervalu, zároveň ,ak<br />

by prahová hodnota bola v moc úzkom pásme, môže dôjsť k tomu, že sa vy<strong>sk</strong>ytnú<br />

oblasti podobné oblastiam ako je ŠPZ aj v iných miestach obrázku.<br />

2.2 Metódy selekcie znakov ŠPZ motorových <strong>vozidiel</strong><br />

V tomto prípade sa bude stručne zaoberať dvoma metódami na detekciu<br />

jednotlivých znakov v obraze. Prvá je založená na priemernej jasovej úrovni značky ŠPZ<br />

a vhodným ošetrením znakov do takej podoby, aby bola vhodná na selekciu pomocou<br />

neurónovej siete. Hovorí sa o tzv. metóde segmentácie pomocou vertikálnej<br />

a horizontálnej projekcie. Druhou náročnejšou je CER (Characteristic Extremal<br />

Regions), ktorá je založená na výpočte prahovo oddeliteľných extrémálnych oblastí a ich<br />

popisom.<br />

2.2.1 Metóda segmentácie pomocou vertikálnej a horizontálnej projekcie<br />

Začiatkom tejto metódy je zvoliť vhodnú jasovú úroveň. V praxi môže táto voľba<br />

podstatne ovplyvniť výsledky. Bez ohľadu na tento fakt vysvetlí sa podstata tejto metódy<br />

následovne.<br />

Vie sa že, značka ŠPZ obsahuje jak v horizontálnom, tak vo vertikálnom smere svetlé<br />

a tmavé miesta. Uvažuje sa, že znaky sú tmavé a plochy okolo písmen svetlé. Keďže sa<br />

pracuje so značkou v binárnej podobe, je možné jednoducho spočítať svetle, alebo tmavé<br />

miesta v riadku(šírky), alebo v stĺpci(výšky) značky. Takto zí<strong>sk</strong>ané hodnoty sa posunú do<br />

podmienok s intervalmi. Jednoduchým porovnaním týchto hodnôt sa zistia maximá, čo<br />

v horizontálnom smere predstavuje medzery medzi znakmi a vo vertikálnom smere<br />

predstavuje vrchnú a spodnú hranu znakov.<br />

Obr. 2.1 Segmentácia znakov pomocou horizontálnej projekcie (určuje vo vertikálnej<br />

rovine vrch a spodok znakov v ŠPZ)<br />

22


Obr. 2.2 Segmentácia znakov pomocou vertikálnej projekcie (určuje v horizontálnej<br />

rovine maximá pre oblasti medzi znakmi)<br />

Základné nevýhody tejto metódy:<br />

• Značka ŠPZ musí byť v relatívnej rovine voči rovine obrázka.<br />

• Značka nesmie obsahovať nedokonalosti v podobe zanesených, alebo rôzne<br />

poškrabaných, poprípade zhrdzavených plôch.<br />

Program pracoval pomocou tejto metódy, ale v mnohých ohľadoch bol zdokonalený na<br />

uroveň imunity voči rotácii a nedokonalostiam. Zdokonalenia sa uvedú v kapitole [3].<br />

2.2.2 Metóda CER (Characteristic Extremal Regions)<br />

Ide o metódu, ktorá vyhľadáva extremálne oblasti, ktoré charakterizujú daný<br />

objekt. V prípade, že ide o oblasť ktorú hľadáme, hovoríme o Charakteristickej<br />

extremálnej oblasti.<br />

2.2.2.1 Extremálna oblasť<br />

Máme zobrazenie I a množinu bodov D v ňom ležiacom. Zároveň sa definuje<br />

pojem súsedstvo, čo v praxi znamená, že dva body p a q (pixely množiny D) sú od seba<br />

vzdialené menej ako jedna.<br />

n<br />

pAq ⇔ ∑|<br />

p i<br />

− qi<br />

| ≤ 1<br />

(2.1)<br />

i=<br />

1<br />

Ak sa označia bodovo súvislé množinové zobrazenia R(T), pre ktorého oblasť M = R(T)<br />

platí:<br />

• ∀ ∈<br />

( q)<br />

≤ T<br />

q<br />

M<br />

I<br />

• ∀ ∈<br />

( q)<br />

T<br />

I q δ M<br />

><br />

Potom existuje rozklad R(T) na podmnožiny R p(i) (T).<br />

Každú oblasť R p(i) (T) sa nazýva extremálnou oblasťou v počiatku p(i). Extremálne oblasti<br />

sú najväčšie súvislé oblasti oddelené prahom T. Ak sa označí množina všetkých oblastí<br />

23


R T ) = { R ( )}, (2.2)<br />

(<br />

p( i)<br />

T<br />

rozkladu, kde R(T) je množina všetkých extremálnych oblastí, ktoré na I pre daný prah T<br />

existujú. Zjednotenie<br />

tot<br />

U<br />

T<br />

R = ( T ) R(<br />

T ) , (2.3)<br />

je množina všetkých prahovo oddeliteľných oblastí, ktoré v obraze vzniknú.<br />

2.2.2.2 Algoritmus detekcie a selekcie CER<br />

Pomocou dynamického prahovania a priebežnej klasifikácie vzniknutých R(T)<br />

oblastí sa zvolí jedna z tried (1.ponechaj, 2.zahoď). Oblasti v prvej triede sú posunuté na<br />

ďalšiu klasifikáciu.<br />

Je potrebné, aby množina extremálnych R(T) oblastí bola generovaná v reálnom čase. Pri<br />

tejto podmienke sa spolieha na to, že každý prah<br />

T ∈ S {0….255 odtieňov jasu}.<br />

∀<br />

r ∈ R( T )<br />

∃R<br />

∈R(<br />

T + 1)<br />

: r1<br />

⊆<br />

2 . (2.4)<br />

! r<br />

1 2<br />

Tento fakt je zobrazený na nasledujúcom obrázku (obr. 2.3). Vidíme, že s rastúcim<br />

prahom dochádza k spojovaniu oblastí a pripojovaniu menších oblastí k väčším. Oblasť,<br />

ktorá vznikne pri nejakom prahu T 1 narastá, alebo sa pri nejakom T 2 pripojí k inej oblasti,<br />

ale jej body pre všetky T > T1 patria R(T).<br />

Obr. 2.3 Rast prahu a spájanie extremálnych oblastí<br />

Pre každý prvok<br />

r<br />

= φ( r(<br />

T ))<br />

F r<br />

r ∈ R(T) sa určí vektor náznakov.<br />

(2.5)<br />

Každý takýto vektor sa oklasifikuje na už vyššie zmienené dve triedy (ponechaj, zahoď).<br />

Tie ktoré spadnú z množiny C do množiny ponechaj pripojíme na<br />

R<br />

CER<br />

= R ∪ C .<br />

Tento druh klasifikátoru nazývame selektor. Tento algoritmus je popísaný na obr.(2.4).<br />

CER<br />

24


Ďalšími počítanými výrazmi použitými v tejto metóde sú moment otočenia,<br />

kompaktnosť objektov, počet dier v oblasti atď. Napriek tomu sa nebude hlbšie zaoberať<br />

ich definovaním a podstatou. Môže sa len stručne povedať, že využívajú metódy<br />

zmienené v kapitole[1]. Napríklad moment otočenia zvláda Houghova transformácia atď..<br />

Obr. 2.4 Algoritmus detekcie a selekcie CER<br />

2.3 Selektor<br />

Ako selekčné metódy sa volia techniky porovnávania so vzorom (matching), alebo<br />

optimalizačne techniky rozpoznávania. Ich podstatou sa zaoberá iná kapitola, takže<br />

podrobne sa sústredíme na vysvetlenia mnou zvoleného selektoru neurónovej siete<br />

prostredia Matlab.<br />

Neurónová sieť sa využíva vo väčšine prípadov zadanej problematiky. Rozdielom<br />

môže byť len zvolený programovací jazyk. Jej základ tvorí trénovacia a testovaná<br />

množina . Pri popise neurónovej siete sa vychádza viac menej z typu, ktorý sa použil<br />

v zdrojovom kóde programu.<br />

25


2.3.1 Neurónová sieť programovacieho jazyka Matlab<br />

Z dôvodu, že program na detekciu znakov ŠPZ používa programovací jazyk<br />

Matlab je namieste, aby sa priblížili základy neurónovej siete práve v tomto jazyku.<br />

Matlab je známy tým, že pracuje v metrickom systéme. Z toho dôvodu neurónová sieť<br />

programu matlab využíva množiny vektorov, ktoré predstavujú vstupy do neurónu<br />

poprípade siete.<br />

Túto alternatívu demonštrujú nasledujúce obrázky:<br />

Obr. 2.5 Neurón s vektorovým vstupom, (p 1 ,p 2 ,p 3 .....p R predstavujú vstupy,<br />

w 1,1 ,w 1,2 a w 1,3 .....w 1,R predstavujú váhy a f je prenosová funkcia)<br />

Neurón predstavuje funkcia<br />

n = w p + w p + ... + w p b . (2.6)<br />

1,1 1 1,2 2<br />

1,R R<br />

+<br />

Matematicky sa môže vyjadriť zápisom<br />

n = W * p + b . (2.7)<br />

26


Obr. 2.6 Zovšeobecnený vektorový neurón<br />

Obr. 2.7 Prenosové funkcie používajúce sa v NN<br />

2.3.2 Sieťové architektúry ponúkajúce prostredie Matlab<br />

Jednotlivé neuróny môžu byť kombinovane spájané do jednotlivých vrstiev<br />

a rozšírené siete pozostávajú z jednej alebo viacerých vrstiev. Jednotlivé príklady sa<br />

prezentujú na obrázkoch.<br />

27


Obr. 2.8 Zobrazenie vrstvy neurónov, a) vrstva neurónov,<br />

b) zovšeobecnená vrstva neurónov<br />

Vzorec pre vrstvu neurónov sa dá vyjadriť vzťahom:<br />

n{1} = net.IW{1,1}* p + net.b{1}<br />

(2.8)<br />

Obr. 2.9 Viacvrstvová neurónová sieť<br />

28


Obr. 2.10 Zovšeobecnená viacvrstvová neurónová sieť<br />

Vzorec pre sieť neurónov sa dá vyjadriť vzťahom:<br />

3<br />

a<br />

3,2<br />

2,1 1,1 1 2 3<br />

3<br />

2<br />

1<br />

= f (LW f (LW f (IW p + b ) + b ) + b = y<br />

(2.9)<br />

2.3.3 Neurónová sieť na znakové rozpoznávanie(Matlab)<br />

Trénovacia množina obsahuje N počet znakov. N je tvorená číslicami a abecedou<br />

bez diakritiky. Každý znak je reprezentovaný maticovými hodnotami. Je ľubovľné, akú<br />

dimenziu bude matica popisujúca znak obsahovať. Napriek tomu, v programe sa vyjadrilo<br />

matrixom 7*5 hodnôt. Z takto definovanej matice sa vytvorí vektor o veľkosti 35.<br />

Obr. 2.11 Príklad metrixu znakov a) bez šumu b) so šumom<br />

Neurónová sieť pozostáva z 35 vstupných bolean hodnôt na znak a podľa počtu znakov<br />

obsahuje aj poradový vektor, ktorý udáva celkový počet trénovaných číslic a znakov.<br />

29


Architektúra:<br />

Zdokonalená Neurónová sieť používajúca sa na znakové rozpoznávanie obsahuje<br />

dvojvrstvovú log-sig log-sig neurónovú sieť. Log-sig prenosová funkcia je výhodná<br />

vzhľadom na to, že výstup je v intervale (0,1) čo je výhodné na naučenie výstupných<br />

hodnôt.<br />

Obr. 2.12 Architektúra využívaná na znakové rozpoznávanie<br />

Skrytá vrstva obsahuje desať neurónov a využíva sa vtedy keď má sieť problémy<br />

s naučením.<br />

Inicializácia je u<strong>sk</strong>utočnená nasledovným príkazom:<br />

net = newff(minmax(P) , [S1 S2] , {‘logsig’ ‘logsig’, ‘traingdx’);<br />

trénovanie:<br />

[netn, tr] = train(netn, P, T);<br />

30


3 Praktická realizácia programu na automatické rozpoznanie ŠPZ<br />

Táto časť diplomovej práce sa zaoberá samostatným popisom vytvoreného<br />

programu. Popisuje jednotlivé kroky u<strong>sk</strong>utočnené v procese prechodu vstupných dát od<br />

vstupu, až po výstup programu. Zreteľ kladie jak na popisnú, tak na obrazovú ilustráciu.<br />

Vyhýba sa teoretickému vysvetleniu jednotlivých procedúr, pretože väčšina bola<br />

podrobne rozobratá.<br />

3.1 Vstupné dáta<br />

V tejto časti je stručne popísané štádium vstupných dát. Zároveň sa rozoberie<br />

úprava akej sa predchádzalo, kým sa vstupné dáta dostali do programu. Bodom, že<br />

jednotlivé obrázky sú buď snímky z fotoaparátu, alebo jednotlivé snímky videa sa nebude<br />

zaoberať.<br />

3.1.1 Algoritmus na detekciu pohybu<br />

Vzhľadom k tomu, že sa uvažuje o istých objektov na karosérii áut, je veľmi<br />

výhodné, keď pomocou dostupných algoritmov pohybu sa ošetria jednotlivé framy videa<br />

tak, aby výsledný obraz obsahoval výlučne, alebo z väčšej časti karosériu auta. Keďže sa<br />

nevie, na akom mieste sa zí<strong>sk</strong>ajú videa, alebo obrázky auta, je zrejmé, že týmto spôsobom<br />

sa predíde možným nepresnostiam v podobe objektov okolia, ktoré sa s veľkou<br />

pravdepodobnosťou môžu javiť ako možné ŠPZ motorových <strong>vozidiel</strong>. Pomocou<br />

algoritmu na detekciu pohybu sa dokázalo dostatočne upraviť jednotlivé obrázky na<br />

vyhovujúcu formu. Cieľom tohoto predspracovania, bolo dopomôcť nasledujúcemu<br />

algoritmu k výberu a verifikácie v podobe zníženia uvažovaných objektov. Tento<br />

algoritmu funguje na videosekvenciách.<br />

Obr. 3.1 Funkčnosť algoritmu na detekciu pohybu<br />

31


3.2 Predspracovanie vstupných dát<br />

Cieľom predspracovania, bolo upraviť a konkretizovať vstupné dáta do takej<br />

podoby, aby boli vhodné na ďalšie spracovanie s ohľadom na výber a verifikáciu<br />

kandidátov vhodných na separáciu ŠPZ motorového vozidla.<br />

Pri tomto spracovaní sa postupne zobral v úvahu sled náhodne vybratých ľubovoľne<br />

vzdialených za sebou idúcich frámov jednotlivých áut.<br />

3.2.1 Prevod farebného RGB formátu do formátu 256 odtieňov sivej farby<br />

Je jasne dané, že na vyjadrenie obrázku, ktorý obsahuje zlúčenie troch základných<br />

farieb červenej, zelenej a modrej potrebujeme trojvrstvový model. Dôsledkom toho sa<br />

v prípade programovacieho jazyka Matlab dostávame do trojrozmerného priestoru<br />

vyjadrenia troch matíc. Pomocou funkcie na prevod farebného RGB štandardu do 256<br />

odtieňov sivej sa docieli výraznejšie zjednodušenie práce. Týmto prevodom sa u<strong>sk</strong>utoční<br />

prechod do dvojrozmerného priestoru matice, ktorý je výhodný na ďalšie spracovanie.<br />

Súčastne s týmto krokom sa implementovala funkciu zmenšenia na rozlíšenie 800*600.<br />

PREVOD<br />

Obr. 3.2 Prevod RGB (farebného) obrázku na obrázok Gray (256 odtieňov sivej),<br />

a)trojdimenzionálny matrix RGB obrázku, b)RGB obrázok, c)jednodimenzionálny matrix<br />

Gray obrázku, d)obrázok gray<br />

32


3.2.2 Zaistenie dostatočného množstva jasových (kontrastových) úrovní<br />

Vplyvom toho, že navrhnutá metóda je založená na prahovaní vstupného obrázku,<br />

bola snaha odstrániť nedostatok v podobe nevyrovnaných jasových a kontrastových<br />

podmienok v reálnom nasadení. Z tohto dôvodu je implementovaný cyklický algoritmus,<br />

ktorý zabezpečí zmenu jasových úrovní. Postupným testovaním sa dospelo k záveru, že<br />

bude dobré použiť približne deväť jasových úrovní, ktoré s veľkou pravdepodobnosťou<br />

zreteľne vyjadria jak značku s vysokým kontrastom tak aj s nízkym kontrastom.<br />

Obr. 3.3 Ilustruje zmeny jasových(kontrastových) úrovní Gray obrázku<br />

33


3.2.3 Prevod obrázku 256 odtieňov sivej (grey) na binárny obrázok pozostávajúci<br />

z logických jednotiek a núl pomocou techniky prahovania<br />

Po jasovom spracovaní sa obrázok konvertuje do podoby, ktorá bude<br />

najvhodnejšia a zároveň najjednoznačnejšia na hľadanie objektov v obraze.<br />

Najjednoduchší spôsob tohto vyjadrenia je práve binárny obrázok, ktorý vznikne<br />

prahovaním jasovej intenzity gray obrazku. Táto funkciu sa môže pomerne dobre<br />

menežovať, podobne ako jas v gray obrázku a to tým, že manuálne sa zvolí prah<br />

v intervale (0-255), od ktorého sa budú jednotlivé jednotky a nuly rozlišovať. Druhou<br />

možnosťou je využiť funkciu na spriemerovanie, ktorá automaticky zvolí vhodný prah na<br />

vyjadrenie binárneho obrázku.<br />

a) b)<br />

Obr. 3.4 Prevod obrázku 256 odtieňov sivej(grey) na binárny obrázok, a)pôvodný<br />

obrázok gray, b) binárny obrázok po prevode<br />

3.3 Výber kandidátov na ŠPZ značku<br />

Zohľadnením vlastností transformácií, bolo nútené vytvoriť cyklický <strong>sk</strong>ript, ktorý<br />

by zahŕňal a fungoval na veľkom množstve testovaných áut. Dlhodobým testovaním<br />

a zároveň <strong>sk</strong>úmaním sa dospelo k záveru, že je lepšie kvôli funkčnosti použiť dva sériové<br />

<strong>sk</strong>ripty, ktoré jak z logického, tak funkčného hľadi<strong>sk</strong>a <strong>sk</strong>valitňujú výsledky programu.<br />

V tomto prípade sa použilo dvojcyklu. S tým, že druhý vykompenzoval nedostatky<br />

prvého. Dôvody viacerých možností budú popísané ďalej.<br />

3.3.1 Algoritmus číslo 1.<br />

Je efektívny vo väčšine prípadov a nemá nejaké výrazné obmedzenia. Algoritmus<br />

číslo jedna sa vyznačuje tým, že dokáže rozpoznávať značky vo väčšine prípadov, či už<br />

34


sa jedná o tmavé, alebo svetlé auta. Čiastočnú nedokonalosť kompenzuje algoritmus číslo<br />

dva, ktorý hľadá ešte s vyššou úspešnosťou na tmavších autách, avšak jeho obmedzením<br />

je nemožnosť hľadania na svetlých autách z dôvodu splývania pozadia ŠPZ s karosériou<br />

auta.<br />

a) b)<br />

Obr. 3.5 Demonštratívny obrázok auta, a) RGB, b) Gray<br />

3.3.1.1 Prvá funkcia trasovania(trace)<br />

Ide o funkciu ktorá umožní v binárnom obrázku rozlíšiť hrany alebo vnútro<br />

bielych jednotlivých objektov, nachádzajúcich sa na tmavom podklade a priradiť im isté<br />

poradové číslo, ktoré reprezentujú jednotlivé pixely daného objektu. Toto číslo môže byť<br />

priradené podľa zvolenej funkcie buď na okraj (hranu), alebo na celé vnútro daného<br />

objektu. Zároveň umožňuje identifikovať objekty nachádzajúce sa v už definovaných<br />

objektoch (diery) atď. Tato funkcia je založená na princípe vektorového rozdielu dvoch<br />

pixelov v ôsmich smeroch posunu a využíva hranových detektorov.<br />

a) b)<br />

Obr. 3.6 Názornosť funkcie trasovania na základe hranových detektorov,<br />

a)pred trasovaním, b)po trasovaní<br />

35


3.3.1.2 Rozšírenie hrán rámiku ŠPZ<br />

V dôsledku nedokonalostí značek ŠPZ, akými sú splývania znakov ŠPZ<br />

s orámovaním je potrebné spájať čiastkové elementy jednotlivých značiek. Nevýhodou<br />

tohoto kroku je, že ak je z pravej, alebo ľavej strany značky oblasť so svetlou intenzitou<br />

jasu dôjde k splynutiu tejto oblasti s oblasťou značky. Preto sa pristúpilo ku kroku,<br />

ktorým je rozšírenie hrán rámiku ŠPZ.<br />

Postup, ktorým sa docielilo tohoto účinku je nasledovný. Pôvodná binárna matica<br />

obrázku sa prevedie na opačnú. To znamená, binárna jednotka bude nulou a naopak.<br />

Následne pomocou funkcie, ktorá je založená na zmene nulových pixelov v okolí<br />

jednotkových na jednotkové s tým, že smer aj počet sa manuálne definuje, upravia sa<br />

všetky svetlé miesta tak, že sa pridá do všetkých strán niekoľko pixelov jednotkovej<br />

hodnoty. Takto upravená binárna matica sa opätovne prevedie naspať na opačnú ,avšak<br />

zdrojovú s rozšírenými hranami.<br />

Obr. 3.7 Zobrazuje jednotlivé kroky rozšírenia hrán, a)pôvodný binárny obrázok<br />

b)prevod obrázku na opačný 1-0, c)roztiahnutie hrán, d)spätný prevod<br />

36


3.3.1.3 Úprava matice vhodnej na odpočet<br />

Z takto zí<strong>sk</strong>anej matice sa odstránia všetky malé objekty. Zí<strong>sk</strong>aná matica sa odráta<br />

od pôvodnej matice obrázku. Na výslednej matici zostanú len objekty, ktoré sú veľké<br />

približne ako značka ŠPZ a menšie.<br />

Obr. 3.8 Demonštruje kroky odpočtu, a)pôvodný binárny obrázok, b)obrázok na odpočet,<br />

c)výsledný obrázok po odpočte<br />

3.3.1.4 Po odpočte odstránenie miniatúrnych oblastí<br />

Z dôvodu pokračujúceho procesu sa muselo pristúpiť na odseparovanie<br />

nepotrebných oblastí. Jedným zo spôsobov ako to dosiahnúť, je využitie funkcie na<br />

odstránenie oblastí, ktorých súčet pixelov je menší ako dopredu definovaná hodnota.<br />

Preto pred zlučovaním čiastkových objektov sa pristúpi k odstráneniu malých oblastí,<br />

ktorých súčet sa rovná menej ako tretina ŠPZ.<br />

37


a) b)<br />

Obr. 3.9 Odstránenie miniatúrnych oblastí, a) pred selekciou, b) po selekcií<br />

3.3.1.5 Funkcia na zlúčenie čiastkových oblastí<br />

Vplyvom toho, že vo väčšine prípadov je značka snímaná zvrchu, dochádza<br />

k tomu, že vrch jednotlivých znakov splynie s karosériou, alebo s tmavým tieňom, ktorý<br />

vrhá karoséria na danú značku. Ak sú značky fotené v zlej kvalite, pri veľmi zlom<br />

osvetlení, prahovaním môže dôjsť k prípadu, že niektorý znak, alebo viac znakov rozdelí<br />

značku na viac častí. Túto korekciu vykonáva už spomínaná funkcia, ktorá zlúči ŠPZ<br />

značku do opäť pôvodného tvaru respektíve veľkosti a tým zachová atribúty potrebné k<br />

selekcii. Jej funkcia je založená na zmene nulových pixelov na jednotkové s tým, že smer<br />

a počet je manuálne definovaný. Samozrejme, že táto funkcia má aj svoje ú<strong>sk</strong>alia,<br />

pretože umožňuje zlúčenie aj iných čiastkových objektov, alebo objektov značky s iným<br />

okolím.<br />

a) b)<br />

Obr. 3.10 Zlúčenie čiastkových oblastí, a)pred zlúčením, b)po zlúčení<br />

38


3.3.1.6 Odstránenie malých oblastí<br />

Z dôvodu výpočtovej náročnosti pokračujúceho procesu sa muselo pristúpiť na<br />

odseparovanie nepotrebných oblastí. Dosiahlo sa to funkciou na odstránenie oblastí,<br />

ktorých súčet pixelov je menší ako vopred definovaná hodnota. V tejto fáze sa využilo<br />

dynamicky počítanej hodnoty, ktorá bola zisťovaná už v predspracovaní vstupných dát.<br />

Vychádzalo sa z predpokladu, že oblasť bude mať určitú veľkosť vzhľadom na<br />

vzdialenosť snímaného objektu (karosérie áut). Táto hodnota (Pmin), je dynamicky sa<br />

meniaca s tým, že jej veľkosť je stopercentne menšia ako cca tretina ŠPZ (záleží od<br />

nastavenia parametrov). Jej hodnota súvisí so spracovaním detektora pohybu, keďže<br />

prostredníctvom výstupného obrázku je umožnené približné identifikovanie vzdialenosti,<br />

šírky a výšky karosérie. Týmto spôsobom sa odstránilo nespočetné množstvo oblastí,<br />

ktoré by následne vstupovali do verifikátora a spomalovali tak proces.<br />

a) b)<br />

Obr. 3.11 Odstránenie malých oblastí, a)pred odstránením, b)po odstránení<br />

3.3.1.7 Druhá funkcia trasovania (trace)<br />

Po predchádzajúcich úkonoch selekcie a zlúčenia sa pristúpi k tomu, že sa<br />

opätovne trasujú hrany oblastí už oblastí vyselektovaných predchádzajúcimi cyklami.<br />

Výsledkom tohto kroku je zí<strong>sk</strong>anie malého množstva objektov, ktoré sú vhodné na<br />

spracovanie a testovanie verifikátorom.<br />

39


a) b)<br />

Obr. 3.12 Druhá funkcia trasovania a zobrazenie oblasti vstupujúcich do verifikátora,<br />

a) jednotlivé oblasti, b)farebné odlíšenie pre lepšiu názornosť<br />

3.3.2 Algoritmus číslo 2.<br />

Jeho obmedzením je hľadanie len na tmavých autách, zato však s väčšou<br />

pravdepodobnosťou ako v algoritme č.1.<br />

Hľadá sa ŠPZ áut, ktoré okolo jasnej značky nemajú vo veľkej vzdialenosti žiadny<br />

iný objekt rovnakej, alebo podobnej jasovej intenzity.<br />

a) b)<br />

Obr. 3.13 Demonštratívny obrázok auta, a) RGB, b)Gray<br />

3.3.2.1 Prvá funkcia trasovania(trace)<br />

Jedná sa o totožný postup ako algoritme číslo jedna. Ide o funkciu, ktorá ohraničí<br />

a priradí hodnotu jednotlivým svetlým objektom nachádzajúcim sa na obrázku.<br />

40


a) b)<br />

Obr. 3.14 Názornosť funkcie trasovania na základe hranových detektorov algoritmu č.2.,<br />

a) pred trasovaním, b)po trasovaní<br />

3.3.2.2 Selekcia malých oblastí<br />

Ide o postup ktorý bol popisovaný už v predchádzajúcom algoritme. Podstata<br />

spočíva v odseparovaní objektov, ktorých hodnota súčtu pixelov nezodpovedá dopredu<br />

definovanej hodnote na základe predspracovania pomocou detekcie pohybu.<br />

a) b)<br />

Obr. 3.15 Zobrazuje odstránenie malých oblastí algoritmu č.2.,<br />

a)pred odstránením, b)po odstránení<br />

3.3.2.3 Zlúčenie čiastkových oblastí<br />

Z dôvodu zlepšenia algoritmu je potrebné zlúčiť čiastkové oblasti ŠPZ a tým<br />

zachovať atribúty, ktoré sú potrebné pri daľšom spracovaní programom.<br />

41


a) b)<br />

Obr. 3.16 Zobrazenia zlúčenie čiastkových oblastí algoritmu č.2.,<br />

a) pred zlúčením, b) po zlúčení<br />

3.3.2.4 Druhá funkcia trasovania(trace)<br />

Konečnou fázou algoritmu č.2. je ako v predchádzajúcom algoritme opätovne<br />

funkcia trasovania, ktorá trasuje hrany oblastí už vyselektovaných v predchádzajúcich<br />

úkonov. Malé množstvo objektov vstupuje do verifikátoru.<br />

a) b)<br />

Obr. 3.17 Druhá funkcia trasovania a zobrazenie oblasti vstupujúcich do verifikátora<br />

algoritmu č.2., a) jednotlivé oblasti, b)farebné odlíšenie pre lepšiu názornosť<br />

42


3.4 Verifikácia a selekcia ŠPZ<br />

Jednotlivé oblasti sú posunuté z predchádzajúceho cyklu a sú importované do<br />

verifikátoru. Jeho úlohou je jednoznačne určiť, s akou pravdepodobnosťou ide o značku<br />

ŠPZ. V prípade, že oblasť po prechode zlyhá, je automaticky pre<strong>sk</strong>očená a cyklus začne<br />

testovať oblasť, ktorej číslo je ďalšie v poradí. Takto sa cykluje dovtedy, kým sa nenarazí<br />

na správnu oblasť, poprípade k dispozícii niesu ďalšie vstupy na testovanie.<br />

Podmienky a pravidlá na selekciu sa môžu vhodne upravovať podľa typu kvality<br />

obrázku, rozlíšenia a iných vonkajších podmienok. Z dôvodu robustnosti je namieste, keď<br />

systém vyzistí čo najviac správnych výsledkov. Každopádne, závislosť na kvalite<br />

vstupných dát je nepopierateľná. V niektorých prípadoch, kedy ide o veľmi kvalitné<br />

snímky je lepšie nastaviť verifikátor prísnejšie, poprípade pridať podmienky, ktoré sa<br />

veľmi ľahko implementujú do systému. V opačnom prípade, kedy ide o veľmi nekvalitné<br />

snímky a hodnota vstupných dát je veľmi nízka, je nanajvýš rozumné podmienky<br />

zjemňovať, aby nedochádzalo k zlyhaniu systému. Najlepšou alternatívou vytvárania<br />

a práce s podmienkami je priamo na mieste, kde by bol daný systém umiestnený.<br />

V zásade platí, že prax je najlepší školiteľ a to samozrejme platí aj pre automatizované<br />

systémy. Pri vývoji programu bolo vytvorených viacero alternatív detekcie vzhľadom na<br />

kvalitu vstupných dát. Konkrétne tri.<br />

Obr. 3.18 Oblasti vstupujúce do verifikátoru a ich číslovanie<br />

43


3.4.1 Spracovanie vstupného objektu<br />

Cyklus bol navrhnutý, aby dopredu poznal množstvo testovaných objektov, ktoré<br />

budú prechádzať jeho telom. Demonštruje obrázok (obr. 3.18).<br />

Základom tohto systému je, že v úvode sa spracujú atribúty daného objektu. Zistia<br />

sa dva vektory, ktoré predstavujú jednotlivé pixely pre horizontálny a vertikálny smer.<br />

Z takto vytvorených vektorov sa určia jednotlivé maximá a minimá pre daný objekt. Platí,<br />

že pre minimum vertikálneho vektora ide o vrchnú hranu uvažovaného objektu a pre<br />

maximum o spodnú hranu objektu. Tento istý spôsob sa použije aj pre horizontálny<br />

vektor z ktorého minima sa zistí ľavá hranu objektu a z maxima pravá hranu objektu<br />

v celkovom obraze. Následne na to klasickým odčítaním vzdialeností maxím a miním, sa<br />

určí veľkosť jednotlivých strán objektu. V podstate výstupom spracovania je štvorsten,<br />

v ktorom je umiestnený uvažovaný objekt a ktorého hrany sa dotýkajú.<br />

Po tomto kroku sa vypočíta pomer strán tohto štvorstena. Výsledkom je reálne číslo<br />

delenia dĺžky (horizontálneho smeru), a šírky objektu(vertikálneho smeru). Toto číslo sa<br />

využije pri implementácií do podmienok.<br />

Ďalším krokom je zistenie veľkosti testovaného obrázku respektíve výšky a šírky<br />

rozlíšenia.<br />

Obr. 3.19 Spracovanie oblastí vstupujúcich do verifikátora s podmienkami<br />

Nasleduje vstup do podmienok (verifikácia), ktorý vykonáva testovanie rôznych<br />

parametrov objektu.<br />

3.4.2 Verifikátor – podmienky<br />

Bol vytvorený cyklus, ktorý uvažuje aj v rovine kvality obrazu. Preto sa vytvoril<br />

sériový verifikátor pozostávajúci z dvoch častí. Pri prechode prvou časťou je umožnené<br />

uložiť výrez ŠPZ, ale nieje umožnená detekcia znakov, keďže sa jedna o nekvalitné<br />

snímky. Detekciu znakov umožní až prechod aj druhou časťou verifikátora.<br />

44


3.4.2.1 Prvá časť verifikátoru<br />

Pozostáva z týchto častí:<br />

Maximálne prípustná hodnota šírky objektu<br />

Vstupným argumentom je už vyššie spomínaná šírka uvažovaného objektu<br />

a dynamicky meniaca sa hodnota maximálnej prístupnej šírky. Jej hodnota sa mení na<br />

základe predspracovania pomocou detektora pohybu. Táto dynamická hodnota je<br />

navrhnutá tak, aby šírka objektu bola menšia ako polovica šírky obrysu karosérie auta. To<br />

zabezpečí vyselektovanie objektov, ktoré sú zbytočne veľké, ale ich atribúty majú<br />

náznaky podobnosti s ŠPZ značkou.<br />

Ak<br />

šírka(objektu) < šírka(polovica šírky obrysu auta) pokračuj ďalej.<br />

Obr. 3.20 Podmienka číslo jedna prvej časti verifikátoru<br />

45


Pomer dĺžky a šírky objektu (uvažovanej ŠPZ) je v nejakom intervale<br />

Vstupným argumentom je reálne číslo, ktoré sa zí<strong>sk</strong>alo delením šírky a výšky<br />

objektu. Keďže sa zaoberá Európ<strong>sk</strong>ym štandardom ŠPZ značky, vie adekvátne<br />

odpovedať, koľko by mal pomer <strong>sk</strong>utočnej ŠPZ značky obsahovať. Napriek tomu je šanca<br />

na rovnosť takýchto dvoch čísel nulová. V žiadnych reálnych podmienkach sa nedocieli,<br />

aby značka bola <strong>sk</strong>utočne vodorovná a neobsahovala aj nejaké pridružené oblasti.<br />

Vzhľadom k týmto okolnostiam sa pristúpilo na možnosť intervalu, ktorý sa volí podľa<br />

vyhotovenia snímkov.<br />

V tomto prípade sa použil dostatočne otvorený interval , ktorý umožňuje<br />

detekovať aj ŠPZ s uhlom otočenia do 30 stupňov.<br />

Ak pomer (strán uvažovaného objektu) > reálne číslo(3) a súčastne pomer(strán<br />

uvažovaného objektu < reálne číslo(6) ide s veľkou pravdepodobnosťou o značku<br />

a pokračuj ďalej.<br />

Obr. 3.21 Podmienka atribútov<br />

Medzipodmienkové spracovanie<br />

Po tomto kroku sa postupuje tak, že daný objekt sa vystrihne z pôvodného<br />

binárneho obrázku, ktorý nieje postihnutý postupnými úpravami a transformáciami. Takto<br />

vyrezaný obdĺžnikový objekt sa uloží do pamäte. Následnými krokmi sa zistí ľubovolný<br />

riadok (spravidla stredný) daného objektu, ktorý sa využije na ďalšie spracovanie.<br />

V našom prípade stredný. Nieje problémom zistiť viacero takýchto riadkov. Cieľom<br />

tohoto kroku, je zistiť počet tmavých a svetlých miest v danom riadku. Na u<strong>sk</strong>utočnenie<br />

tohto zistenia sa využije opätovne funkciu trasovania, ktorá spočíta počet svetlým miest<br />

v danom riadku. Následne na to táto hodnota vstupuje do ďalšieho pravidla.<br />

46


a) b)<br />

Obr. 3.22 Výrez stredného riadku, a) detekovaná oblasť, b) vyrezaná oblasť a jej stredný<br />

riadok<br />

Stredný, alebo niekoľko riadkov okolo stredu šírky objektov, má určitý počet<br />

svetlých a tmavých miest<br />

Vstupnou hodnotou tohoto pravidla je počet svetlých miest v horizontálnom reze<br />

objektu, ktorého zistenie bolo vysvetlené vyššie.<br />

Na základe vedomosti zo štandardu Európ<strong>sk</strong>ej ŠPZ značky je možné povedať, že<br />

dochádza k striedaniu svetlých a tmavých miest. Tmavé miesta predstavujú znaky,<br />

značky a svetlé priestory medzi nimi, alebo vnútra znakov. Z tohoto dôvodu sa<br />

formuloval istý interval hodnôt, ktorý s veľkou pravdepodobnosťou hovorí, či sa <strong>sk</strong>utočne<br />

jedná o ŠPZ značku. Nevýhodou je, že otočenie nemôže byť prílišne veľké. Čím<br />

vodorovnejšie značka je ,tým sa dosahuje lepších výsledkov. Napriek tomu systém<br />

funguje tak aby bolo možné značku do 30 a viac stupňov otočenia detekovať. Interval sa<br />

zvolil hodnôt.<br />

Ak počet (svetlých miest v reze značky) > reálne číslo(6) a súčastne počet(svetlých<br />

miest v reze značky) < reálne číslo(14). Pokračuj ďalej.<br />

Obr. 3.23 Podmienka intervalu počtu svetlých miest v horizontálnom reze značky<br />

47


Vystrihnutie ŠPZ značky z pôvodného RGB obrázku<br />

V prípade, že je obraz v tele programu konvertovaný na menší, je potrebné tento<br />

problém odstrániť.<br />

Spraví sa to tým, že sa zistí reálne číslo prevodu obrázku na menší. Takto zí<strong>sk</strong>ané<br />

číslo sa postupne násobí s okrajmi objektu. Takto sa zistí <strong>sk</strong>utočné umiestnenie značky<br />

ŠPZ v pôvodnom nekonvertovanom farebnom obrázku.<br />

Pomocou atribútov umiestnenia sa uloží objekt vo forme matice. V prípade, že sa<br />

zvolí najhoršia kvalita, pri spracovaní dôjde k uloženiu takto vystrihnutej značky do<br />

obrázku *.png. Pri ukladaní dochádza aj k rozpoznaniu v akej jasovej úrovni bola<br />

detekovaná ŠPZ značka. Jasová úroveň je zaznamenaná v podobe čísla v názve súboru.<br />

a) b)<br />

Obr. 3.24 Vystrihnutie ŠPZ značky z pôvodného RGB obrázku, a) detekovaná oblasť,<br />

b)rovnaká oblasť vyrezaná z pôvodného RGB snímku<br />

3.4.2.2 Druhá časť verifikátoru<br />

Značka sa spracuje, upravia sa geometrické deformácie a v poslednom rade sa<br />

u<strong>sk</strong>utoční prechod k znakovému rozpoznávaniu.<br />

Pozostáva z týchto častí:<br />

Otočenie<br />

Je založené na detekcií uhla pomocou Houghovej transformácie.<br />

Otočenie obsahuje kroky:<br />

• zistenie priemerného prahu vystrihnutej značky ŠPZ zí<strong>sk</strong>anej v prvej časti<br />

verifikátoru a prevod na binárny obrázok (Obr. 3.25)<br />

• odstránenie miniatúrnych oblastí (Obr. 3.26)<br />

• na základe Houghovej transformácie zistenie uhla otočenia značky (Obr. 3.26)<br />

• otočenie binárnej, binárnej upravenej, a v poslednom rade RGB matice (Obr.<br />

3.27)<br />

48


Obr. 3.25 Prevod RGB značky na základe priemerného prahu do BW podoby<br />

Obr. 3.26 Odstránenie miniatúrnych oblastí a zistenie uhla otočenia pomocou HT<br />

a)<br />

b)<br />

c)<br />

Obr. 3.27 Rotácia, a) upravenej binárnej matice, b)pôvodnej binárnej matice,<br />

c) pôvodnej RGB matice<br />

49


Maticové vyjadrenie binárneho upraveného obrázku (obr. 3.27a) slúži na zistenie<br />

hrán ŠPZ, zároveň maticové vyjadrenie binárneho rotovaného obrázku (obr. 3.27b) je<br />

použité na výrez pre OCR spracovanie a maticové vyjadrenie rotovaného RGB obrázku<br />

(obr. 3.27c) je použité na orezanie a uloženie výslednej značky ŠPZ.<br />

Otočenie obsahuje jedno z pravidiel, ktoré umožňuje prechod ďalej. Jeho podstata<br />

spočíva v tom, že v ošetrenej binárnej matici (obr. 3.26) musí existovať určitý počet<br />

svetlých pixelov. Ich súčet musí byť väčší, ako počet pixelov štyroch riadkov v matici<br />

(môže sa ľubovolne voliť). Ak nesplňuje toto pravidlo oblasť je zahodená z dôvodu, že sa<br />

pravdepodobne nejedná o značku ŠPZ.<br />

Ak suma(svetlých pixelov značky) > suma (štvornásobku súčtu pixelov v riadku).<br />

Pokračuj ďalej.<br />

Orezanie<br />

Ide o zisťovaciu metódu, ktorá sa vytvorí na základe sumy svetlých pixelov<br />

v riadkoch a stĺpcoch. Ak je nájdená istá suma detekuje sa hrana ŠPZ. Zlepšenie sa<br />

vykonalo pri určovaní vrchnej a spodnej hrany, ktorá sa nezisťuje len na základne prvého<br />

pixelu od vrchu a spodku matice, ale aj na základe intervalového maxima v rozmedzí<br />

blízkeho okolia prvotne detekovanej hrany. Detekciu vykonáva v matici (obr. 3.27a),<br />

a samostatný výrez u<strong>sk</strong>utoční na maticiach (obr. 3.27b, obr. 3.27c).<br />

V tejto časti obsahuje tri podmienky, ktoré musí značka ŠPZ splniť pokiaľ chce byť<br />

posunutá na uloženie a v poslednom rade detekciu samostatných znakov.<br />

• Výška vyrezaného objektu musí byť väčšia, ako jedna tretina výšky upravenej<br />

binárnej matice (obr. 3.27a).<br />

• Šírka vyrezaného objektu musí byť väčšia, ako jedna polovica šírky upravenej<br />

binárnej matice (obr. 3.27a).<br />

• Pomer počtu svetlých (plocha medzi znakmi) a tmavých (znaky) pixelov<br />

vyrezaného objektu musí byť väčší, ako tri pätiny.<br />

Pri splnení všetkých týchto podmienok postupuje na znakové spracovanie.<br />

Obr. 3.28 Výsledok orezania<br />

50


3.4.3 Preprocesing OCR (Separácia jednotlivých znakov)<br />

3.4.3.1 Preprocesing značky ŠPZ<br />

Obsahuje tri kroky:<br />

• V prvom kroku sa vykoná zväčšenie značky.<br />

• V druhom kroku sa odstránia nepotrebné objekty(zanesenia a pod.).<br />

• Pri treťom kroku sa vykonajú metódy na vyhladenie hrán jednotlivých znakov,<br />

výsledkom je zosílenie znakov a ich jednoduchšia separácia.<br />

Obr. 3.29 Preprocesing značky ŠPZ, a) pôvodný vyrez značky,<br />

b) výrez značky upravený vyhľadením hrán<br />

3.4.3.2 Horizontálna separácia znakov<br />

V prípade, že hodnota stĺpcového súčtu pixelov znaku je väčšia ako istá hodnota,<br />

vykoná sa hranovanie. Táto hodnota je v tomto prípade niekoľko pixelov, čo zaručí<br />

dostatočnú schopnosť imunity na rôzne zanesenia medzi znakmi.<br />

Obr. 3.30 Horizontálna separácia znakov značky<br />

51


3.4.3.3 Vertikálne ohraničenie a konverzia znakov<br />

Cieľom tohto kroku je vertikálne ohraničenie znaku a konverzia na metrix 30*20<br />

pixelov.<br />

Pri vertikálnom ohraničení je podobný postup ako pri horizontálnom členení.<br />

Program je upravený tak ,aby rozlišoval medzi úzkymi znakmi, ako sú I a 1 a ostatnými<br />

a prispôsobil veľkosť vhodnú na vstup do neurónovej siete.<br />

Obr. 3.31 Vertikálne ohraničenie a konverzia znakov<br />

Táto časť programu obsahuje separátor na základe vlastnosti výšky. To znamená,<br />

ak je nejaký znak v nevhodnej forme, alebo značka obsahuje nejaké zanesenie, je<br />

automaticky odstránené a nepostupuje ďalej na rozdpoznanie do neurónovej siete.<br />

Ak výška(znaku) > výška (päť osmín (5/8) výšky značky). Pokračuj ďalej.<br />

3.4.4 Neurónová sieť ako funkcia rozpoznania znaku<br />

Základom je vytvorenie vektorov jednotlivých znakov. Zvolil sa vektorový systém<br />

pozostávajúci z 7*5 bolean prvkov. Neurónová sieť bola natrénovaná na množine<br />

vektorov zo znakov zí<strong>sk</strong>aných priamo na značkách ŠPZ. Ako testovaciu množinu sa<br />

privedie metrix vektorov písmen značky. Bližšie sa vytvorenej neurónovej sieti venuje<br />

kapitola[2].<br />

52


Záver:<br />

Podstatou tejto práce bolo vytvorenie a zdokonalenie už existujúcich algoritmov<br />

na detekciu ŠPZ motorových <strong>vozidiel</strong> a ich znakov. Bola využitá známa metóda<br />

prahovania s tým, že prah sa prispôsoboval aktuálnym požiadavkám daného osvetlenia. Je<br />

zrejmé, že týmto spôsobom sa čiastočne kompenzovala nedokonalosť, ktorá je tomuto<br />

postupu vyčítaná. Napriek tomu je jasné, že za žiadnych podmienok sa nedá docieliť<br />

stopercentnej úspešnosti. Z tohto hľadi<strong>sk</strong>a je zaujímavé, že práve úspešnosť sa stala<br />

prvotným cieľom na zlepšenie. Snahou bolo program priviesť do takého stavu , aby bol<br />

robustný a schopný odpovedať na akékoľvek požiadavky. Boli využité rôzne metódy<br />

a postupy, ktoré zlepšujú jeho prácu. Po ich odtestovaní bol zostavený algoritmus<br />

(program), ktorý je imúnny voči miernemu natočeniu k rovine obrázku, ďalej dokáže<br />

pracovať aj v prípade, že jednotlivé znaky splývajú s okolím ŠPZ a taktiež nereaguje na<br />

drobné nečistoty.<br />

Je ťažké zhodnotiť, ktoré systémy sa lepšie hodia do reálnej prevádzky. V každom<br />

prípade je nanajvýš zrejmé, že jak v prahovacích metódach založených na hranových<br />

detektoroch, tak aj v metódach založených na vertikálnych hranách spolu s CER, je<br />

priestor na zlepšovanie. Je dobré, že existuje množstvo testov pre jednotlivé metódy, ale<br />

napriek tomu málokde je uvádzaná aj podmienka kvality, ktorá je v celej problematike<br />

veľmi dôležitá. Aj tento fakt nás nabuduzuje k tomu, aby sa zodpovedne pristúpilo<br />

k otázke rozpoznávania objektov v obraze.<br />

Absolútnym záverom tejto práce, by sa mala stať motivácia, ktorá prináša už<br />

samotný cieľ tejto práce. Jej úlohou je uľahčenie človeku vytvoriť si priestor na to, aby sa<br />

mohol spoľahnúť na prostriedky, ktoré má k dispozícii a tým si výrazne zjednodušil prácu<br />

a venoval sa veciam len nevyhnutelným, ktoré sa za žiadnych okolností nemôžu vytvárať<br />

automatizovanými systémami.<br />

53


Použitá literatúra:<br />

[1] Žára J., Beneš B., Felkel P.: Moderní počítačová grafika. Computer Press, Praha,<br />

1998.<br />

[2] MILAN FTACNIK-Department of Applied Informatics, Faculty of Mathematics,<br />

Physics and Informatics, Comenius University, - prednášky z teórie spracovania<br />

obrazu(dostupné na webe)<br />

[3] Karel Zimmermann, Diplomová práce -Detekce a rozpoznávání znakú v obraze a<br />

vidoesekvencích<br />

[4] Jun-Wei Hsieh, Shih-Hao Yu, Yung-Sheng Chen, “Morphologybased,License<br />

Plate Detection from Complex Scenes”, 16th International Conference on Pattern<br />

Recognition (ICPR'02) Vol 3,2002.<br />

[5] Intl. Conf. in Computer Science – RIVF’05 February 21-24, 2005, Can Tho,<br />

Vietnam-Building an Automatic Vehicle License-Plate Recognition Systém(Web)<br />

[6] A. Rahman, Ahmad Radmanesh, “A Real Time Vehicle’s Licence Plate<br />

Recognition”, Proceedings of the IEEE on Advanced Video and Signal Based<br />

Surveillance, AVSS’03, 2003.<br />

[7] Schlesinger M., Hlaváč V.: Deset přednášsek z teorie statistického a strukturního<br />

rozpoznávání. ČVUT, Praha, 1999.<br />

[8] Klapka P.: Diplomová práce – Rozpoznávání státních poznávacích značek. ČVUT<br />

v Praze,fakulta elektrotechnická, katedra kybernetiky, Praha, 2001.<br />

[9] Janošek V.: Diplomová práce – Detekce a rozpoznávání státních poznávacích<br />

značek. ČVUT v Praze, fakulta elektrotechnická, katedra kybernetiky, Praha,<br />

2001.<br />

[10] M.Rousson, T.Brox, R.Deriche Active Unsupervised Texture Segmentation on a<br />

Diffusion Based Feature Space. CVPR’03 v.2, pp.699, 2003.<br />

54


Prílohová časť<br />

Táto časť sa nachádza na priloženom médiu CD. Obsahuje samostatný zdrojový kód<br />

programu a jeho popis. Ďalej množstvo experimentálnych výsledkov a v neposlednom<br />

rade jeho samostatnú prezentáciu.<br />

Výpis obsahu CD:<br />

• Diplomová práca<br />

o Diplomová_práca.pdf<br />

• Zdrojové kódy(program)<br />

o Neurónová sieť<br />

edu_imgresize.m<br />

neural_pismena.m<br />

neuraln_komplet.m<br />

test.m<br />

uc_neuronky.m<br />

o area_min.m<br />

o edu_imgresize.m<br />

o finding_1.m<br />

o finding_2.m<br />

o finding_3.m<br />

o load_pic.m<br />

o orezanie.m<br />

o otocenie.m<br />

o preprocesing_OCR.m<br />

o program.m<br />

o program_komplet.m<br />

o rospoznanie.m<br />

o separator_znakov.m<br />

o ulozenie_k3.m<br />

o ulozenie_k12.m<br />

• Vstupné dáta<br />

• Programy<br />

o Matlab 7.0.1 with SP1<br />

55


Čestné prehlásenie<br />

Prehlasujem, že som zadanú diplomovú prácu vypracoval samostatne, pod<br />

odborným vedením vedúceho diplomovej práce Ing. Miroslava Benča a používal som len<br />

literatúru uvedenú v práci.<br />

Súhlasím so zapožičiavaním diplomovej práce.<br />

V Žiline, dňa 18.5.2007<br />

______________________<br />

Podpis diplomanta<br />

56


Poďakovanie<br />

Moje poďakovanie patri panu inžinierovi Miroslavovi Benčovi, za jeho odborné vedenie,<br />

ale najmä za pomoc a morálnu podporu, ktorú mi prejavoval počas celého obdobia<br />

tvorby diplomovej práce.<br />

57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!