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
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