BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA MASTER S THESIS. Bc.

Podobné dokumenty
Roman Juránek. Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 30

SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Úloha - rozpoznávání číslic

Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 39

Jasové transformace. Karel Horák. Rozvrh přednášky:

13 Barvy a úpravy rastrového

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

Přehled vhodných metod georeferencování starých map

Operace s obrazem II

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

TSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

Funkce - pro třídu 1EB

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

Matematika I 12a Euklidovská geometrie

5. Lokální, vázané a globální extrémy

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář,

Matematické modelování dopravního proudu

Úvod do zpracování signálů

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Rozpoznávání v obraze

Jana Dannhoferová Ústav informatiky, PEF MZLU

Lineární klasifikátory

PRŮZKUMOVÁ ANALÝZA JEDNOROZMĚRNÝCH DAT Exploratory Data Analysis (EDA)

Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

Přednáška 13 Redukce dimenzionality

Analýza a zpracování digitálního obrazu

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

0.1 Úvod do matematické analýzy

Matematika I (KMI/PMATE)

Matematika (KMI/PMATE)

Zpracování digitalizovaného obrazu (ZDO) - Popisy III

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Numerické metody a programování. Lekce 8

Algoritmizace prostorových úloh

0.1 Funkce a její vlastnosti

Automatické rozpoznávání dopravních značek

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Elementární křivky a plochy

Funkce jedné reálné proměnné. lineární kvadratická racionální exponenciální logaritmická s absolutní hodnotou

metodou Monte Carlo J. Matěna, Gymnázium Českolipská, Praha

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0

1 Projekce a projektory

Porovnání dvou výběrů

Globální matice konstrukce

ROZ1 CVIČENÍ VI. Geometrická registrace (matching) obrazů

Funkce a lineární funkce pro studijní obory

19 Eukleidovský bodový prostor

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Návod k použití softwaru Solar Viewer 3D

Programátorská dokumentace

ELIMINACE VLIVU DRUHÉ ROTACE PŘI AFINNĚ INVARIANTNÍM 2D ROZPOZNÁVÁNÍ

Operace s obrazem I. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

Vytěžování znalostí z dat

Rosenblattův perceptron

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Příklady použití tenkých vrstev Jaromír Křepelka

Algoritmy pro shlukování prostorových dat

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

MATURITNÍ TÉMATA Z MATEMATIKY

Pravděpodobnost v závislosti na proměnné x je zde modelován pomocí logistického modelu. exp x. x x x. log 1

Vojtěch Franc. Biometrie ZS Poděkování Janu Šochmanovi za slajdy vysvětlující AdaBoost

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Státnice odborné č. 20

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

Algoritmy a struktury neuropočítačů ASN - P11

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení

CVIČNÝ TEST 5. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Trénování sítě pomocí učení s učitelem

Statistická teorie učení

ICT podporuje moderní způsoby výuky CZ.1.07/1.5.00/ Matematika planimetrie. Mgr. Tomáš Novotný

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

Zpracování digitalizovaného obrazu (ZDO) - Segmentace

MATEMATIKA ZÁKLADNÍ ÚROVEŇ

Popis objektů. Karel Horák. Rozvrh přednášky:

Napěťový vektor 3d. Díky Wikipedia za obrázek. n n n

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

5. Umělé neuronové sítě. Neuronové sítě

MATEMATIKA II - vybrané úlohy ze zkoušek (2015)

MATEMATIKA II - vybrané úlohy ze zkoušek ( 2015)

Popisná statistika kvantitativní veličiny

WhyCon: Přesný, rychlý a levný lokalizační systém

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA DETEKCE POZNÁVACÍ ZNAČKY V OBRAZE DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR Bc. MICHAL VACEK BRNO 2009

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA DETEKCE POZNÁVACÍ ZNAČKY V OBRAZE IMAGE-BASED LICENCE PLATE RECOGNITION DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. MICHAL VACEK Ing. VÍTĚZSLAV BERAN BRNO 2009

Abstrakt V první části se práce zabývá již známými metodami detekce značek. Jsou zde popsány metody využívající zpracování obrazu, AdaBoost, či detekci extrémních regionů. Následuje návrh a implementace vlastního přístupu k detekci poznávacích značek využívající lokální detektory k vytvoření slovníku vizuálních slov. V závěru je metoda vyhodnocena. Klíčová slova detekce, registrační značka, zpracování obrazu, Houghova transformace, detekce hran, vertikální a horizontální detekce, lokální detektory, Harris-affine, MSER, EBR, IBR, SIFT, SURF, vizuální slovník, PCA Abstract In first part thesis contains known methods of license plate detection. Preprocessing-based methods, AdaBoost-based methods and extremal region detection methods are described. Finally, there is a described and implemented own access using local detectors to creating visual vocabulary, which is used to plate recognition. All measurements are summarized on the end. Keywords detection, license plate, preprocessing, Hough transformation, edge detection, vertical and horizontal projection, local descriptor, Harris-affine, MSER, EBR, IBR, SIFT, SURF, visual vocabulary, PCA Citace Michal Vacek: Detekce poznávací značky v obraze, diplomová práce, Brno, FIT VUT v Brně, 2009

Detekce poznávací značky v obraze Prohlášení Prohlašuji, že jsem tuto práci vypracoval samostatně pod vedením pana Ing. Vítězslava Berana....................... Michal Vacek 31. května 2009 Poděkování Rád bych poděkoval Ing. Vítězslavu Beranovi, za všechny nápady a pomoc s přípravou diplomové práce. c Michal Vacek, 2009. Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.

Obsah 1 Úvod 3 2 Analýza dosavadního stavu 4 2.1 Metody využívající zpracování obrazu..................... 4 2.1.1 Houghova transformace......................... 4 2.1.2 Hranové detekce............................. 5 2.1.3 Horizontální a vertikální projekce.................... 7 2.1.4 Konkrétní metody............................ 8 2.2 Metody založené na AdaBoostu......................... 12 2.2.1 Sada dat................................. 12 2.2.2 Výběr příznaků.............................. 12 2.2.3 Shrnutí.................................. 16 2.3 Metody založené na rozpoznání extrémních regionů.............. 17 2.3.1 Shrnutí.................................. 17 3 Visuální slova pro detekci 19 3.1 Lokální detektory................................. 19 3.1.1 Harris-affine................................ 20 3.1.2 EBR.................................... 20 3.1.3 IBR.................................... 21 3.1.4 SIFT a SURF............................... 22 3.1.5 MSER................................... 23 3.2 Vizuální slovník.................................. 24 3.2.1 Analýza hlavních komponent (PCA).................. 24 3.2.2 Shlukování................................ 25 3.3 Vyhledávání.................................... 26 3.3.1 kd-strom................................. 27 3.3.2 Průměrování............................... 27 4 Tvorba a využití slovníku 28 4.1 Tvorba slovníku................................. 28 4.1.1 Trénovací sada, anotace......................... 28 4.1.2 Detekce bodů............................... 29 4.1.3 Nastavení parametrů........................... 29 4.1.4 Načtení obrázků a detekovaných bodů................. 30 4.1.5 Vytvoření slovníku............................ 31 4.2 Využití slovníku................................. 32 4.2.1 Nastavení a inicializace parametrů................... 32 1

4.2.2 Detekce.................................. 33 5 Dosažené výsledky 34 5.1 Vytváření slovníku................................ 34 5.2 Výsledky detekce................................. 35 5.2.1 Testovací sada.............................. 36 5.2.2 Srovnání detektorů a jejich slovníků.................. 36 5.2.3 Detekce na malých obrázcích...................... 38 5.2.4 Natočená či zkosená značka....................... 38 5.2.5 Detekce na testovací sadě........................ 39 5.2.6 Shrnutí.................................. 42 6 Závěr 47 A Příklady detekcí 51 2

Kapitola 1 Úvod Cílem mé diplomové práce je navrhnout a otestovat metodu pro detekci poznávacích značek (dále jen značek) v obraze. Metody pro takovou detekci již existují, tudíž ve značné části této práce se zabývám jejich porovnáním, shrnutím a analýzou dosavadního stavu problematiky. V druhé části se věnuji navržení metody, pomocí které bude možné značku v obraze detekovat, důvodům pro její zvolení a samotné implementaci. 3

Kapitola 2 Analýza dosavadního stavu Detekce značek je již mnoha algoritmy zpracovaný a vyřešený problém, ovšem s různými výsledky. V následující části uvedené metody se liší spolehlivostí, robustností a rychlostí detekce. Jejich rozdělení jsem provedl zhruba podle způsobu, který k detekci používají. Jedná se především o metody založené na zpracování obrazu, využívající AdaBoost či rozpoznávání extrémních regionů. Další metody jako použití neuronové sítě je zmíněno alespoň v závěru. Srovnání metod je složité. Ovšem kvalitní metoda musí být co nejvíce robustní vůči osvětlení, natočení či různým šumům v obraze. Důležitá je rovněž rychlost, jelikož mnoho metod má tendence být použity v reálném čase. Mnohdy však platí, že čím je metoda kvalitnější, tím je také pomalejší... 2.1 Metody využívající zpracování obrazu Tyto metody jsou založeny na Houghově transformaci 2.1.1, detekci hran 2.1.2, vlastnostech značky a analýzách histogramů 2.1.3. Slouží k nalezení kandidátních regionů, z nich se posléze vybírají ty, které skutečně obsahují značku. V této podkapitole nejdříve shrnu příklady nejpoužívanějších zpracování obrazu a poté uvedu konkrétní metody, kde se tyto způsoby uplatnily. Pro metody využívající zpracování obrazu jsou dále velmi důležité vlastnosti značky, které víme dopředu. Pomocí těchto příznaků lze vybrat vhodné kandidátní regiony. Zde je shrnutí nejpoužívanějších vlastností. Značka je obdélníkového tvaru s poměrem šířky k výšce 2-10. Obsahuje černá písmena na bílém pozadí. Některé metody využívají pravděpodobnost, že značka je umístěna více méně vodorovně 2.1.1 Houghova transformace Houghova transformace je metoda pro nalezení parametrického popisu objektů v obraze. Používá se především pro segmentaci objektů, jejichž hranice lze popsat jednoduchými křivkami, při detekci značky přímkami. Hlavní výhodou této metody je robustnost vůči nepravidelnostem a přerušení hledané křivky. Houghova transformace je využívána k nalezení 4

parametrů matematického modelu hledaného objektu za předpokladu známých vstupních dat (pixelů). Pro popis přímky slouží vzorec: x cos θ + y sin θ = r, (2.1) kde r je délka normály od přímky k počátku souřadnic, θ je úhel mezi normálou a osou x. Jestliže do předchozí rovnice dosadíme souřadnice nějakého bodu (x i, y i ), pak množina všech možných řešení (r, θ) vytvoří v Houghově prostoru spojitou křivku. Jestliže si tímto způsobem promítneme do Houghova prostoru všechny body ležící na nějaké přímce p, pak uvidíme, že křivky odpovidající jednotlivým bodům (x i, y i ) se protnou v jediném bodě (r max, θ max ). Tato dvojice jsou ve skutečnosti hledané parametry přímky p. [19] 2.1.2 Hranové detekce Jelikož poznávací značka je vždy ohraničeného obdélníkového tvaru, samozřejmě různě natočená, lze ji v obraze nalést pomocí detekce hran (obvodové hrany či hrany písmen uvnitř). Pokud hranu definujeme jako velkou změnu jasové funkce, bude v místě hrany velká hodnota derivace jasové funkce. Maximální hodnota derivace bude ve směru kolmo na hranu. Kvůli jednoduššímu výpočtu se ale hrany detekují jen ve dvou, resp. ve čtyř směrech. Velká skupina metod na detekci hran aproximuje tuto derivaci pomocí konvoluce s vhodným jádrem. Nejjednodušší taková jsou (-1 1) a (-1, 1)T, případně (-1, 0, 1) a (-1, 0, 1)T. [20] V následujících podkapitolách jsou uvedeny příklady způsobů detekcí hran. Konvoluční matice Každý obrazová operace (filtr) je definována konvoluční maticí. Ta určuje, jakým způsobem je daný pixel (reprezentován uprostřed matice) ovlivněn okolními pixely (obr. 2.1). Pixel y je ovlivněn pixely x 0... x 8 podle vzorce: y = x 0 xm 0 + x 1 xm 1 + x 2 xm 2 + x 3 xm 3 + x 4 xm 4 + x 5 xm 5 + x 6 xm 6 + x 7 xm 7 + x 8 xm 8 (2.2) Vertikální a horizontální hranová detekce Detekovat horizontální resp. vertikální hrany můžeme jednoduše pomocí matice m he resp. m ve (obr. 2.2). Pokud bychom použili větší matice, dokážeme zdetekovat i silnější hrany. [15] Sobelova hranová detekce Sobelova detekce hran používá pár konvolučních matic o velikosti 3x3. První je určena k ohodnocení vertikálních a druhý horizontálních hran (obr. 2.3). Výsledný pixel se poté vypočítá ze vzorce: G = G 2 x + G 2 y (2.3) V praxi se ale používá rychlejší verze vzorce: G = G x + G y (2.4) 5

Obrázek 2.1: Pixel je ovlivněn sousedícími pixely podle konvoluční matice. [15] Obrázek 2.2: Pixel je ovlivněn sousedícími pixely podle konvoluční matice. [15] Obrázek 2.3: Sobelovy matice pro detekci horizontálních a vertikálních hran 6

Obrázek 2.4: Výsledky aplikování rank filtru a hranových detekcí. [15] Rank filtry Především horizontálně a vertikálně orientované rank-filtry jsou používány k detekci shluků hran v místě značky. Šířka matice pro horizontálně orientovaný rank filtr je mnohem větší než její výška (a obráceně pro vertikálně orientovaný filtr). K zachování celkové intenzity obrazu je nutné nahradit každý pixel průměrem intenzity pixelů překrytých maticí. [15] Konvoluční matice tedy splňuje: kde w a h jsou rozměry matice. w 1 h 1 m h r[i, j] = 1.0 (2.5) i=0 j=0 2.1.3 Horizontální a vertikální projekce Po řadě konvolučních operací můžeme zdetekovat značku pomocí statistických analýz v obraze. Existuje jich celá řada, já zde uvedu pouze horizontální a vertikální projekci. Pokud vstupní obrázek definujeme funkcí f(x, y), vertikální projekce p y funkce f v bodě y je součet všech významných pixelů v y-tém řádku. Podobně horizontální projekce v bodě x funkce f je součet pixelů v x-tém sloupci. Pokud tuto projekci počítáme z obrazu po provedení vertikální hranové detekce, velikost křivky v určitém bodě reprezentuje výskyt vertikálních hran na daném řádku. Z vertikálního grafu (obr. 2.5) lze vyčíst vertikální polohu dopravní značky. Obdobně může být použita horizontální projekce podle osy x. 7

Obrázek 2.5: Vertikální projekce v obraze. [15] 2.1.4 Konkrétní metody V této kapitole uváděné metody jsou reprezentativním vzorkem přístupů. Všechny ostatní metody založené na zpracování obrazu se liší kombinacemi použitých způsobů zpracování či různými typy optimalizací, principy detekce však zůstávají stejné. An Efficient Implementation of the Hough Transform for Detecting Vehicle License Plates Using DSP V roce 1995 zveřejnili Varsha Kamat a Subramaniam Ganesan metodu detekce poznávací značky pomocí Houghovy transformace. Rozhodl jsem se tuto metodu zmínit, protože z tohoto článku vychází mnoho dalších metod, což dokazují zejména četné citace. Nejdříve použili Sobelovu detekci hran na obrázek ve stupních šedi. Na něj poté aplikovali adaptivní prahování, práh počítali z průměrného jasu. Následuje již zmíněná Houghova transformace k detekci přímek v obraze. Ze všech přímek byly vybrány pouze ty horizontální a vertikální. Z nich poté hledají spojené přímky do obdélníku. [19] Ideální nalezený řětěz přímek, který by měl detekovat značku by měl obsahovat 4 přímky (4 strany obdélníka) a musí spňovat: přímky naproti sobě mají stejné x resp. y souřadnice počátečního a koncového bodu (záleží pokud jsou horizontální či vertikální), což znamená, že jsou stejné dlouhé dále tyto přímky jsou rovnoběžné přiléhající přímky přímky jsou v úhlu 90 K testování byla použita statická kamera, zabírající automobily v konstantním úhlu. Přesnost detekce není v článku uvedena. Je zřejmé, že metoda není robustní a při testování 8

Obrázek 2.6: Na prvním obrázku je provedena hranová detekce, na druhém po provedené Houghově transformaci na široké škále obrázků by neměla velký úspěch. Je to však jedna z prvních metod pro detekci značek. An Efficient Features Based License Plate Localization Method Hamid Mahini, Shohreh Kasaei, Faezeh Dorri a Fatemeh Dorri založili svoji metodu na klasické kombinaci nalezení kandidátních regionů a jejich ověření pomocí vlastností hledané poznávací značky. [14] Při hledání kandidátních regionů používají především toho, že značka má mnoho vertikálních hran, které vytváří tmavé znaky na světlém pozadí. Dále pak také toho, že intenzita každého pixelu na značce je téměř stejná pro všechny tři barevné části (R, G, B), bud jsou pixely bílé nebo černé. K nalezení vertikálních hran používají sobelovu vertikální masku. Získané hrany ještě vyhladí. K odstranění šumu typu pepř a sůl použili 5x5 mediánový filtr. Na obrázku 2.7 je původní a zpracováný obrázek. Ke konečnému nalezení kandidátů jsou ještě zapotřebí další dva obrázky. První vytvořili z původního obrázku nastavením pixelů na 1, pokud jejich intenzita všech tří složek (R,G,B) je shodná, ostatní nastavili na 0. Druhý obsahuje pouze regiony, které mají světlé pozadí (obr. 2.8). Tyto tři obrázky sloučili. Vybrali kandidáty, na které ještě aplikovali prahování (hodnota prahu uvedena není). Aby byly získané regiony označeny jako poznávací značka, musí splnit následující kritéria: region nesmí být příliš malý tvar regionu by měl být podobný obdélníku a poměr mezi šířkou a výškou musí být mezi 2 až 10. průměrná intenzita musím být dostatečně světlá region by se neměl dotýkat okraje obrázku natočení regionu nesmí být větší jak 35% Testování metody bylo prováděno na sadě obrázků o velikosti 800x600 pixelů zachycující reálné scény. Obrázky byly pořízeny za různých povětrnostích podmínek, z různých úhlů, vzdáleností a za různého osvětlení v úmyslu vytvoření co možná nejširší škály dat 9

Obrázek 2.7: Původní z zpracovaný obrázek. [14] (podle autorů). Autoři vyzdvihují vlastnost algoritmu detekovat i značky už od velikosti 1/50 velikosti původního obrázku (při velkém rozlišení, jinak je hranice výšky značky 10px). Ostatní podobné metody se pohybují okolo hranice 5% velikosti obrazu či tuto vlastnost vůbec nemiňují. Metoda byla otestována na 269 obrázcích, 13 z nich žádnou značku neobsahovaly. Algoritmus v těchto 13 obrázcích žádnou značku nedetekoval, ve zbylých byl úspěšný z 96.5%. Rychlost se pohybuje kolem 300ms/obrázek. Na závěr je zdůrazněna robustnost algoritmu vůči rozdílným světelným podmínkám, stínům, malým obrázkům a natočení. Vehicle License Plate Location Based on Histogramming and Mathematical Morphology Tato metoda reprezentuje skupinu metod využívající histogramy obrazu. Popsali ji Feng Yang a Zheng Ma. [10] Poznávací značku detekují ve čtyřech fázích: hrubá detekce regionů založená na zpracování histogramu extrakce kandidátních regionů určení vertikální polohy značky za pomocí matematické morfologie přesné určení polohy značky pomocí příznaků poznávací značky Diagram 2.9 znázorňuje průběh použitého algoritmu. V první části se využije toho, že značka se skládá z černých písmen na bílém pozadí, čili po převodu obrázku do stupňů šedi mají jinou hodnotu. Vypočítáme průměrnou změnu gradientu. V místech nějvětšího výskytu přechodů lze očekávat poznávací značku (obr. 2.10). Takto hrubě lze nalést kandidátní regiony. Vertikální gradient lze snadno vypočítat ze vzorce g v (i, j) = f(i, j 1) f(i, j). (2.6) Z obrázku 2.10 je patrné, že region obsahující značku bude mít velkou hodnotu horizontální projekce. Horizontální projekce vertikálního gradientu je znázorněna na grafu 2.11. Jak je ovšem vidět z grafu, není snadné vybrat jednoznačně jeden vrchol, který by detekoval 10

Obrázek 2.8: a)hrany po konvoluci b)kandidátmní regiony c)zpracovávané kandidátní regiony d)umístění značky [14] 11

značku v obraze. Proto je použit Gaussový filtr, jehož výstup je na obrázku 2.12. Po použití filtru je již možné určit vrchol křivky. K získání kandidátních regionů nyní použili dvě vlastnosti značek. Poznávací značka leží nejčastěji ve spodní obrazu a maxima v horizontální projeci značí možnou horizontální polohu značky. Cílem je tedy nalést maxima a minima jednotlivých vln křivky, porovnat je a získat nejpravděpodopnější horizontální pozici značek. Z původního obrázku je vyříznut pruh s potenciální značkou (obr. 2.13). Stejně jako provedli horizontální projekci vertikálního gradientu, použili postupně na všechny kandidátní regiony vertikální projekci horizontálního gradientu. Matematická morfologie je nelineární filtr k odstranění šumu, extrakci příznaků a členení obrazu. Základní operace jsou eroze a dilatace. Označili vertikální projekci písmenem A, použili jednodimenzionální prvek B k dilataci prvku A. Výsledek označili jako C. Poté označili prvek D určený k erozi prvku C při výsledku E. K pozdějšímu vykreslení značky, ke zrychlení a zvýšení přesnosti detekce, vybrali strukturu složky podle geometrických vlastností vlastní poznávací značky. Předpokládali, že maximální mezera mezi znaky na značce bude a, výška znaků potom 4B. Délka struktury B by měla být (2a + 1) a struktury D (2b + 1). Z řady testů vyšla hodnota a = 15 a b = 10. Výsledek těchto operací je znázorněn na grafu 2.14. Následně provedli prahování s prahem t = 1.23 (hodnota určena při testování) a vytvoří černobílý obraz (obr. 2.15). Při průchodu se zapamatují přechody mezi bílou a černou a z nich se vypočítají šířky potenciálních značek, ty s malou odstraní. Dále se odstraní i regiony s příliš malým či příliš velkým poměrem výšky a šířky. Zbylé regiony obsahují poznávací značku. Metodu testovali na 360 obrázcích různých scén a s odlišnými podmínkami reálného světa (natočení, osvětlení, atd.). Velikost testovacích obrázků byla 600x450px. Přesnost detekce udávají 97.78%. Při osmi obrázcích detekce selhala. O rychlosti se v článku nezmiňují. 2.2 Metody založené na AdaBoostu Jako příklad zde můžeme uvést metodu prezentovanou L. Dlagnekovem License Plate Detection Using AdaBoost. [5] Zabývá se problémem, jak dobře lze metody založené na detekci objektů využívající rozpoznávání textu a detekci obličeje využít v problému detekce poznávacích značek. Silný klasifikátor trénovaný AdaBoost algoritmem slouží k rozpoznávání částí obrázku se značkou a bez ní. 2.2.1 Sada dat Podle článku byla použita sada 1500 obrázků. Normalizace použita nebyla, protože neměla přílišný vliv na výsledky a je výpočetně náročnější. Příklady negativních regionů (neobsahují značku) o velikosti 45 x 15 px, byly získány náhodně z obrázků, o kterých se ví, že neobsahují poznávací značku. Těch použili 5431. 2.2.2 Výběr příznaků AdaBoost (Adaptive Boosting) je metoda, která umožnuje vhodné spojení několika slabých klasifikátorů do jednoho tzv. silného klasifikátoru. Vytváří klasifikace dle součtu vah vybraných slabých klasifikátorů. Vstupem slabých klasifikátorů může být pouze jeden příznak 12

Obrázek 2.9: Diagram popisující průběh algoritmu. [10] 13

Obrázek 2.10: Vertikální gradient obrázku. [10] Obrázek 2.11: Horizontální projece vertikální gradientu. [10] 14

Obrázek 2.12: Horizontální projekce po Gaussově filtru. [10] Obrázek 2.13: Kandidátní region. [10] Obrázek 2.14: Vertikální projekce po provedení dilatace a eroze. [10] Obrázek 2.15: Binary image. [10] 15

Obrázek 2.16: Příklad příznaků vybraných AdaBoostem. [5] Obrázek 2.17: Příklad příznaků vybraných AdaBoostem. [5] a odpověd musí být alespoň o něco lepší než náhodné rozhodnutí. Viola a Jones využívají Haarovy příznaky, kde je vypočítán součet intenzit pixelů v dané obdélníkové části obrázku. Je žádoucí vybrat příznaky, které vytvářejí stejné výsledky na všechny snímky s poznávací značkou a jsou dostatečně různé od obrázků bez značky. Pro zpracování bylo určeno 2400 příznaků, varianty Haarových příznaků, ale více generalizované. Nakonec bylo vybráno 100 příznaků, příklady některých prvních příznaků na obrázku 2.16. Na obrázku 2.17 je znázorněna chyba silného klasifikátoru na trénovácí sadě. 2.2.3 Shrnutí Dlagnekov rovněž vyzkoušel optimalizaci Violy a Jonese s kaskádovým uspořádáním klasifikátorů. Každý má jiné false-positive a false-negative hodnocení, což urychluje prohledávání segmentů obrázku. Kvůli časové náročnosti algoritmu však nebyla tato přesnější optimalizace implementována. [16] Na testovacích datech byla dosažena přesnost 95.6% při 5.7% false-positive. Falsepositive (tedy regiony označené jako značky, které značku neobsahují) byly redukovány pomocí shlukování regionů do skupin a vyloučení skupin s méně členy. Dále byly použity 16

Obrázek 2.18: False-negative detekce vzhledem k úhlu natočení. [11] filtry založené na barevném obsahu, jelikož většina false-positive byla způsobena vegetací, která má velkou zelenou složku. 2.3 Metody založené na rozpoznání extrémních regionů Extrémní region je ohraničená skupina pixelů, která má nižší nebo vyšší jas (lokální extrém) než okolí po celém obvodu. S metodou použití deskriptory extrémních regionů přišli Jiří Matas a Karel Zimmermann z ČVUT. V článku s názvem Unconstrained Licence Plate and Text Localization and Recognition upravili MSER detektor (viz. 3.1.5) k detekci poznávacích značek. [11] Nejdříve detekují extrémní regiony. Proces výčtu regionů je přibližně lineárně složitý k počtu pixelů v obrazu a přibližná rychlost je 10 snímků za sekundu při velikosti 700x500px. Problém je však určit ze všech regionů ty relevantní. Metoda je založena na rozpoznání extrémních regionů, které mohou být písmena. Ze všech regionů vybírá relevantní regiony klasifikátor (trénovaný AdaBoostem), který byl trénován v tomto případě na 1600 znacích. Popsání a ohodnocení regionů probíhá v konstantním čase. Největší množství těchto za sebou jdoucích regionů je označeno jako značka, kritériem je hlavně množství větší než 3 a konstantní výška. Uvedená přesnost je 98%, ovšem test byl proveden pouze na 70 obrázcích. False-positive byla 1 ve 20 obrázcích bez značky. Rychlost celkové detekce je 1.1s při velikosti obrázku 640x480px a 0.25s při velikosti 320x240px. Hlavní předností této metody by měla být robustnost vůči natočení značky. Tabulka zachycující míru false-negative (tedy nezdetekovaných značek) v závislosti na úhlu natočení značky je uveden v tabulce 2.18. Dále uvádějí, že metoda dokáže zdetekovat značky již od velikosti 7-8 pixelů, což by v tomto směru předčí všechny již zmíněné metody. Metoda dále dokáže nalést i zčásti zakrytou značku (obr.2.19). 2.3.1 Shrnutí Je velmi obtížné porovnávat jednotlivé uvedené či příbuzné metody, jelikož nebyly měřeny na stejné testovací sadě. Každý článek (psaný autory) vychvaluje poctivě daný přístup, vyzdvihuje robustnost a přesnost metody. Z článku navíc nelze metody spolehlivě převzít, autoři si chrání své know-how, většinou se jedná o nastavení proměnných, použitých parametrech konvolučních matic, atd. Tím je ovšem znemožněno porovnání metod. Přesto lze určit přesnost metod okolo 95%, pokročilé metody jsou již robustní vůči osvětlení, natočení či různým stínům. Především u metod založených na zpracování obrazu potom rychlost záleží na velikosti obrazu, ale obecně se pohybuje okolo 1-5 snímků za sekundu. Samozřejmě hodně záleží na použitém hardwarovém zařízení. 17

Obrázek 2.19: Zčásti zakrytá značka. [11] 18

Kapitola 3 Visuální slova pro detekci Jak je z předchozí kapitoly zřejmé, metod k detekci poznávací značky existuje velká řada. Jelikož není cílem mé práce pouze implementovat či ověřit některou z uvedených metod, pokusím se využít několik typů lokálních detektorů 3.1. Ve spojení s již známou metodou obecného rozpoznávání objektů v obraze, tzv. general object detection and classification [7], bych je rád vyzkoušel pro detekci značek. Cílem tedy bude porovnat a zjistit, které lokální detektory jsou pro detekci značky v obraze vhodné a které nikoliv. Konkrétně se jedná o metodu, kdy se z trénovacích dat získají vektory příznaků význačných bodů získaných detektory a z nich se poté shlukováním vytvoří vizuální slovník. Takový slovník obsahuje většinou několik tisíc slov a je posléze použit pro detekci značky v obraze. V této kapitole bude vysvětlen teoretický základ použitých lokálních detektorů a následné celého budoucího klasifikátoru. Popsány budou detailně všechny dílčí části aplikace včetně jejich významu a principu použití. Podle anotací trénovacích dat můžeme u každého slova ve slovníku určit pravděpodobnost, s jakou popisuje námi hledaný objekt. Detekce je poté založena na nalezení nejbližšího slova k získanému příznakovému vektoru význačných bodů získaných detektory. Tím zjistíme i pravděpodobnost, se kterou se daný bod vyskytuje v hledaném objektu, v našem případě ve značce. 3.1 Lokální detektory Jak bylo naznačeno v úvodu celé této kapitoly, pro detekci se využijí význačné body, které jsou detekovány lokálními detektory. Jelikož všechny detektory hledají jiné druhy bodů v obraze, vyzkouším a porovnám více z nich. Tato kapitola tedy tvoří nezbytný teoretický úvod k jednotlivým nejznámějším lokálním detektorům. Zaměřím se na pět typů detektorů: detektory založeny na normalizaci okolo Harrisových bodů (Harris-affine) 3.1.1, detektory založeny na detekcích hran EBR (3.1.2) a hledání extrémů intenzity IBR (3.1.3). Dále uvedu a srovnám detektory a deskriptory SIFT a SURF (3.1.4). [6] Na závěr uvedu ještě pro srovnání i detektor MSER, který byl použit pro detekci značky, jak je popsáno v části 2.3. Ten ovšem nedetekuje význačné body, ale celé regiony. Nebyl tak v pro následnou detekci využit. 19

Obrázek 3.1: Harris-affine regions. [6] 3.1.1 Harris-affine Detektory označované jako Harris-affine vybírají význačné body (rohové) v obraze, poté provedou analýzu Gaussova prostoru a na závěr afiní normalizaci využívající iterativní adaptive shape adaptation algoritmus k určení přesného tvaru elipsy. [12] Rohový bod je charakteristický výraznou změnou intenzity ve více směrech. Harris- Laplace detektor kombinuje tradiční 2D Harrisův detektor význačných bodů s Gaussovským popisem prostoru za účelem vytvoření prostorově invariantního detektoru. Na tomto předpokladu je postavena následující matice (označována jako autokorelační): M = µ(x, σ 1, σ D ) = µ 11 µ 12 µ 21 µ 22 = σ2 Dg(σ I ) I 2 x(x, σ D ) I x I y (x, σ D ) I x I y (x, σ D ) Iy 2 (x, σ D ), (3.1) kde g(σ D ) je gaussovské jádro s vahou σ D, I(x) je gaussovsky vyhlazený obraz. I x (x, σ D ) je derivace v daném směru aplikována na vyhlazený obraz vypočítána použitím gaussova jádra s vahou σ D. Dále je pomocí iterační algoritmu (zveřejněného Lindenbergem v roce 1998) je určena charakteristický význam pro všechny nalezené body. Dalším iteračním algoritmem najdeme afiní eliptický region, který popisuje daný význačný bod. Příklad regionů jsou na obrázku 3.1. 3.1.2 EBR EBR je zkratka spojení An Edge-based Region Detector. Tato kapitola tedy popisuje detekci afiních kovariantních regionů využívající hrany v obraze. Hrany jsou poměrně stabilní příznak, které lze detekovat ve velkém rozsahu natočení či osvětlení obrazu. Navíc využitím geometrie hran počet dimenzí problému lze významně snížit, dokonce až na jednu dimenzi. [18] V praxi se vychází z význačných bodů získaných Harrisovým detektorem a příslušných hran extrahovaných pomocí Cannyho detektoru. Na příkladu 3.2 je na hraně l vyznačen významný bod (roh) p a k němu dva body p 1 a p 2, pro které platí: l i = abs( p (1) i (s i )p p i (s i ) )ds i, (3.2) 20

Obrázek 3.2: Rohový bod. [18] kde s i je parametr křivky, p (1) i (s i ) je první derivace p i (s i ), abs() značí absolutní hodnotu a... determinant. Tedy cílem je nalést takové body, kde plocha mezi přímým spojením < p, p 1 > a příslušnou křivkou mezi body je rovna ploše mezi přímým spojením < p, p 2 > a příslušnou křivkou (tedy l 1 = l 2 ). Výsledně tedy pro každou hodnotu l, dva body p 1 a p 2 a roh p definujeme rovnoběžník. Z takto zjištěné skupiny rovnoběžníků vybereme jeden, pro něhož prochází následující formule extrémem: Inv 1 = abs( p 1 p g p 2 p g p p 1 p p 2 ) M00 1 M 2 00 M00 0 (M 00 1 )2 (3.3) kde Inv 1 = abs( p p g g p g p p 1 p p 2 ) M00 1 M 2 00 M00 0 (M (3.4) 00 1 )2, Mpq n = I n (x, y)x p y q dxdy (3.5) δ p g = ( M 10 1 M00 1, M 01 1 M00 1 ). (3.6) M n pq je n-tého řádu a (p+g)-tého stupně vypočítaného nad daným regionem δ(l). p g je těžiště regionu počítáno skrz intenzitu I(x, y) a q je druhý roh rovnoběžníku než nalezený bod p. Problémem jsou přímé hrany (přímky), u kterých je obsah plochy mezi přímým spojením bodů a křivkou u všech bodů rovna 0. V těchto případech lze však jednoduše použít metodu označující průsečíky dvou přímek. Příklad detekce pomocí EBR je na obrázku 3.3 3.1.3 IBR IBR je zkratka spojení Intensity Extrema-Based Region Detector, označuje tedy způsob detekce regionů založených na hledání extrémů intenzity v obraze. Konkrétně hledají regiony, které začínají v místech lokálních extrémů intenzity a dále prozkoumává okolí v paprscích. Nelezené regiony jsou označeny elipsou co možná nejlepšího tvaru. [18] Každý paprsek je ohodnocen následující rovnicí: f I (t) = abs(i(t) I 0 ) R t, (3.7) 0 max( abs(i(t) I 0)dt t, d) 21

Obrázek 3.3: EBR [6] Obrázek 3.4: IBR [6] kde t je libovolný parametr paprsku, I(t) je intenzita na pozici t, I 0 je intenzita extrému a d je malé číslo, které má zabránit dělení nulou. Typicky metoda dokáže zdetekovat především regiony, ve kterých prudce klesá či stoupá intenzita. Poté jsou vybrány pouze body, pro něž zmíněná funkce dosáhne maxima, vytvoří se tak robustní detektor. Na závěr je většinou nepravidelný region ohraničen elipsou, jak je vidět na obrázku 3.4. 3.1.4 SIFT a SURF Tuto podkapitolu věnuji detektorům a deskriptorům SIFT (Scale-invariant feature transform) a SURF (Speeded Up Robust Feature). Algoritmus SIFT publikoval David Lowe v roce 2004, SURF Herbert Bay a spol. v roce 2006. Obě metody nejsou založeny pouze na detekci význačných bodů v obraze, ale snaží se vytvořit i invariantní deskriptor. Ty se poté nejčastěji používají pro nalezení odpovídajících částí mezi dvěma obrázky zachycující stejnou scénu. Nejdříve vyberou v obraze význačné body, jako jsou rohy, tečky či T-spojení. Nejcenější vlastnost detektorů je jeho opakovatelnost, tedy že dokáží nalést opakovaně stejný bod v různých zobrazeních (např. jiný úhel pohledu). Následně je okolí bodů reprezentováno vektorem příznaků. Příznaky musí být výrazné, relativně lehce extrahovatelné, a musí být 22

Obrázek 3.5: MSER [6] pomocí nich možné správně identifikovat daný objekt s co možná nejnižší pravděpodobností záměny. SIFT k detekci bodu využívá Gaussovu funkci (Difference of Gaussian - DoG). Po nalezení umístění bodů, je u každého popsána jeho orientace, což zajištuje rotační invarianci. Body jsou popsány skrz své okolí, deskriptor vytvoří 128 prvkový normalizovaný příznakový vektor. SURF poté nachází význačné body pomocí rychlé Hessianovy matice (Fast-Hessian matrix), která je vychází z Harrisovy matice 3.1.1. A vektor, kterým se popisují body, obsahuje 64 floatových hodnot, které rovněž mohou být rozšířeny na 128. Počet nalezených význačných bodů je obecně větší pro SIFT, ovšem kvalitou se téměř shodují. [8] Test potvrdil 95% odolnost vůči natočení. Rovněž srovnání metod v ostatních kritériích je znázorněno na následujících grafech. V souhrnu byl označen SIFT jako o něco málo přesnější než SURF, který je ovšem výrazně rychlejší. 3.1.5 MSER MSER je zkratka Maximally Stable Extremal Region Detector, označuje tedy detektory hledající maximálně stabilní extrémní regiony. Extrémní v tomto případě znamená, že všechny pixely v regionu mají bud vyšší (světlé) nebo nižší (tmavé) intenzitu než všechny ohraničující pixely. Maximálně stabilní poté popisuje optimalizaci při procesu výběru. [9] Výběr sady extrémních regionů ɛ je složitostí téměř lineární s počtem pixelů v obraze. Nejdříve jsou pixely seřazeny podle intenzity, dále jsou označeny v obraze (bud v klesajícím nebo vzestupném pořadí). Sloučení jednotlivých ploch se provádí pomocí union-find algoritmu. Během hledání regionů se ukládá plocha všech spojených částí jako funkce intenzity. MSER jsou části obrazu, kde lokální dvojice jsou stejně ohodnoceny přes velký rozsah prahů. Jinými slovy je mezi jednotlivými pixely malý rozdíl intenzity, tím jsou maximálně stabilní. Detekce MSER souvisí tedy s prahováním, nicméně se nehledá žádný globální či optimální práh. Všechny prahy jsou vyhodnoceny jednotlivě pro každý spojený útvar. Výsledkem MSER detektoru tedy není binární obraz (kde pixely jsou bud nad prahem nebo pod ním). Příklad MSER regionů jsou na obrázku 3.5. 23

3.2 Vizuální slovník V následující podkapitolách popíši teoretické základy jednotlivých částí tvorby slovníků z vektorů příznaků získaných lokálními detektory a deskriptory. Jak již bylo naznačeno, vizuální slovníky se vytvoří ze všech trénovacích a oanotovaných dat a následně budou sloužit k detekování značky v obraze. Nejprve je možné redukovat dimenzi dat příznakových vektorů pomocí PCA. Poté se pomocí shlukovací metody vytvoří slovníky. 3.2.1 Analýza hlavních komponent (PCA) Deskriptory SIFT a SURF popisují body získané pomocí lokálních detektorů 128 prvkovými vektory příznaků. To je pro naše použití příliš, výpočet tříd (shluků) by byl extrémně časově a pamět ově náročný. Proto se použije metoda PCA, která analyzuje data a redukuje dimenzi vektoru příznaků s minimální ztrátou informace v datech. Je založena na transformaci souřadného systému - nalezení speciální ortonormální báze prostoru, ve kterém jsou data umístěna. [21] Vektory hledané ortonormální báze jsou uspořádány tak, že první určuje směr obsahující největší možnou jednorozměrnou informaci v datech a ve směru posledního bázového vektoru je obsah informace v datech minimální. [17] PCA obsahuje následující kroky: 1. uspořádá data do matice rxs, kde řádky obsahují jednotlivá pozorování (v našem případě vektor příznaků jednotlivých bodů) a sloupce odpovídají měřeným veličinám. 2. Vypočítá pro každou dimenzi (měřenou veličinu) průměr hodnot, získáme tedy průměrný vektor dat (průměrný řádek X). Od každé položky matice poté odečte průměr v dané dimenzi (výsledkem je matice X), výsledné položky tedy znamenají odchylku od průměru. Průměr jednotlivých sloupců je tedy 0. 3. výpočítá kovarianční matici C = 1 (r 1) XT.X, kde X* značí zmíněnou matici odchylek od průměrů. 4. Spočítá eigenvalues ( vlastní čísla ) a eigenvectors ( vlastní vektory ) kovarianční matice C. Tyto vlastní vektory jsou jednotkové, jejich délka je 1. Tím získáme informace o rozložení příznaků v datech. 5. Pokud seřadíme vlastní čísla uspořádaná v absolutní hodnotě podle velikosti od největšího k nejmenšímu, zjistíme, které vektory nesou nejmenší informaci (ty s nejmenší hodnoutou eigenvalue). Poté se vybere počet n komponent (n udává počet dimenzí dat) a sestaví transformační matici T n typu rxn obsahující prvních n vlastních vektorů kovarianční matice C ve sloupcích. 6. Redukuje původní data (ortogonálně je promítne do podprostoru generovaného hlavními komponentami) Z n = XT n. Získáme redukovaná původní data z hlediska vypočítaných vlastních vektorů. 7. Rekonstruuje redukovaná vycentrovaná data Y = ZT t n 8. Rekonstruuje původní data Y = Y +1.x T 24

Matice Y tedy obsahuje původní data kolmo promítnutá do afinního podprostoru dimenze n, který má nejmenší chybu způsobenou promítnutím. Pro potřeby detekce by měla postačovat velikost dimenze mezi 10 až 40. Přesný počet bude určen až při testování. 3.2.2 Shlukování Kapitola bude věnována obecnému popisu shlukování, poté konkrétně metody k means, pomocí které budeme moci vytvořit jednotlivé slovníky. Shlukování obecně hledá určitou strukturu v neohodnocených datech. Obecně se jedná o proces rozdělení objektů do tříd (shluků) na základě podobnosti. Třídou tedy označujeme skupinu prostorově blízkých objektů. Uvnitř skupin by tak měly být objekty co nejpodobnější a naopak mezi skupinami objekty co nejméně podobné. Podobnost se v tomto případě převádí na vzdálenost. Typicky by se hustota objektů s rostoucí vzdáleností od středu námi definované třídy měla zmenšovat. Vizuální slovník je tvořen právě takovými třídami, každé slovo představuje jednu třídu. K-means Metoda k-means (česky k-průměrů) je jedna ze shlukovacích algoritmů a je založena na vzdálenosti bodů (často v mnoharozměrném) prostoru. Každý objekt je reprezentován jedním bodem a každá popsaná veličina jednou souřadnicí. K-means je vhodný zejména pro velké množství dat, které mají být roztříděny do poměrně malého počtu tříd. Algoritmus iterativně hledá hodnoty vektorů (třídy) tak, že minimalizuje střední odchylku mezi zadanou množinou dat a vektory (vzdálenost objektů od středu třídy), které mají k těmto datům nejmenší euklidovskou vzdálenost. Předem ovšem musí být znám počet hledaných tříd. Jednotlivé třídy musí splňovat následující podmínky: každá třída musí obsahovat alespoň jeden objekt každý objekt musí patřit pouze do jedné třídy Základní algoritmus používá euklidovskou vzdálenost a µ j představuje vektor udávající střed třídy. Vstupem algoritmu poté je množina dat x1, x2,... x n a k udávající počet vektorů µ i, kde i = 1,..., k. Nejprve se inicializují vektory u j, kde j = 1,..., k, na náhodně zvolenou hodnotu či použitím nějaké vhodné heuristiky (pokud máme např. určitou znalost o datech). Následně se opakují iterativně kroky, kdy je každý bod přiřazen nejbližšímu vektoru uj (středu třídy) a ten je následně aktualizován jako průměrný vektor všech jemu přiřazených bodů. Iterace pokračuje, dokud se mění příslušnost některých bodů ke třídám. Je dokázáno, že algoritmus je konečný [13] Matematicky lze postup vyjádřit kroky: 1. Všechna data x i, kde i = 1,..., l, se klasifikují do tříd určených vektory µ j, kde j = 1,..., k, podle minima euklidovské vzdálenosti. Tedy bod x i je přiřazen do nejbližší třídy podle nejmenší vzdálenosti ke středu třídy. 2. Vypočítají se nové hodnoty vektorů µ j jako střední hodnoty dat x i, které byly klasifikovány do třídy určené příslušným vektorem µ j. Tedy nová hodnota µ j se spočte podle vztahu µ j = 1 l j ɛ l i=1,y i =1 (x i), kde l j je počet vzorů x i klasifikovaných v druhém kroku do třídy určené vektorem µ j. 25

K-means nezaručuje nejlepší rozdělení dat, nalezne pouze lokální optimum. Nevede ani pokaždé ke stejným výsledkům, záleží na počáteční inicializaci. Je ovšem velmi jednoduchý pro metrická data a vhodný pro rozdělování velkého počtu dat zejména pro své poměrně rozumné výpočetní nároky. Ohodnocení slov Jednotlivá slova ve slovníku vzniklém shlukováním příznakových vektorů bodů z trénovací sady je dále nutné ohodnotit. Jelikož víme, kterému slovu ve slovníku náleží které příznakové vektory, a trénovací sada je anotovaná (jsou v ní označeny hledané značky), můžeme jednoduše u všech slov určit pravděpodobnost, se kterou slovo popisuje značku v obraze. Tato pravděpodobnost vyjadřuje poměr všech bodů, jejichž příznakové vektory patří k danému slovu a byly anotovány uvnitř značky v obraze, vůči všem bodům ve slově. Pokud by byla trénovací sada velmi rozsáhlá a anotována by byla pouze její část, je mimo pozitivní pravděpodobnosti (že dané slovo popisuje značku), vypočítána i negativní pravděpodobnost, tedy že dané slovo nepopisuje značku. Při detekování značky jsou poté tyto pravděpodobnosti od sebe odečteny. Tímto získáme ze všech trénovacích dat vizuální slovníky (jedno slovo bude představovat jeden nalezený shluk dat). Jelikož všechny detektory se liší hledanými body či regiony, bude nutné pro každou dvojici detektor deskriptor vytvořit samostatný slovník. 3.3 Vyhledávání Následující kapitola již popisuje druhou část metody, kdy bude použit vytvořený vizuální slovník k samotné detekce značky. Ve vstupním obrázku nalezne značku a označí ji v obrázku na výstupu. Obrázek je popsán vybraným lokálním detektorem a k jednotlivým detekovaným bodům bude přiřazena třída (slovo) ve slovníku podle vzdálenosti v euklidovském prostoru. Jednoduše jde o to, nalést nejbližší střed třídy k příznakovému vektoru bodu. Prohledávání prostoru mívá obecně vysokou výpočetní složitost - nelineárně narůstají časové a pamět ové požadavky v závislosti na počtu bodů v prostoru. Efektivnější vyhledávání lze dosáhnout vymezením podprostoru. Pro urychlení zde budou třídy uspořádány do tzv. k-dimenzionálního stromu popsaného v podkapitole 3.3.1. Slovníky obsahují mimo slov dále pravděpodobnosti, že dané slovo popisuje bod uvnitř značky a mimo ni. Ke každému nalezenému bodu je tedy přiřazen rozdíl oněch pravděpodobností daného nejbližšího slova. Vznikne tak mapa pravděpodobností (vah). Z takto vzniklé mapy, která je stejně velká jako původní obrázek, je nutné nalést lokální maxima, která budou detekovat s určitou pravděpodobností značku. Nejdříve je však nutné mapu lehce rozmazat, aby maxima vynikla a podtlačil se šum. Lze to provést obyčejným průměrováním bodu a jeho okolí, jak je popsáno v části 3.3.2. Následně se již naleznou jednotlivá lokální maxima. Ty jsou vypočítána pro matici o určité liché velikosti. Pokud všechny body v ní jsou menší než hodnota uprostřed matice, je prostřední bod označen za lokální maximum. Takto se zkontrolují všechny body v obraze. Čím větší jsou maxima, tím je větší je pravděpodobnost, že skutečné popisují hledanou značku. 26

Obrázek 3.6: Ilustrace kd-stromu pro 2D 3.3.1 kd-strom K-dimenzionální strom (označovaný jako kd-tree) je datová struktura, která pomocí nadrovin (rovnoběžných s příslušnými osami) vymezuje část k-dimenzionálního prostoru (3.6). Ta poté bud přímo obsahuje hledané řešení, nebo umožňuje již přijatelné libovolné dohledání. Konkrétně v případě kd-stromu je prostor rozdělován zpracováním jednotlivých os tak, že se za bod dělení volí medián souřadnic bodů v příslušném intervalu vzniklém rozdělením předchozího intervalu. Vznikne tak vyvážený strom, kde jednotlivé podprostory mohou obsahovat pouze jeden bod. Horní výpočetní složitost vytvoření kd-stromu je O(n log 2 n) pro n zadaných bodů. 3.3.2 Průměrování Průměrování je nejjednodušší metoda rozostření obrazu. Pro jednotlivé body v obraze se vypočítá průměrná hodnota okolí a ta je uložena do daného bodu. Velikost okolí, použité matici, může být libovolný. Většinou se používá souměrná matice o liché velikosti stran. Například pro matici 3x3 se hodnota bodu uprostře počítá jako: w = (w [0,0] + w [0,1] + w [0,2] + w [1,0] + w [1,1] + w [1,2] + w [2,0] + w [2,1] + w [2,2] )/9 (3.8) 27

Kapitola 4 Tvorba a využití slovníku Kapitola se věnuje popisu implementace metody, jejíž jednotlivé části byly v předešlých kapitolách teoreticky nastíněny. Bude popsána celá aplikace, včetně použitých nástrojů a problémů návrhu, které bylo nutné během implementace vyřešit. Hlavní otázkou bylo, jakým způsobem ukládat detekovaná data a již vypočítané slovníky. Použité detektory vytvoří na výstupu textové soubory, při každém výpočtu nového slovníku tudíž není ideální z nich vše znovu načítat, nemluvě o tom, že běžní uživatelé by museli mít celou trénovací sadu k dispozici. Stejný problém nastává i pokud chceme na jednom obrázku vyzkoušet více slovníků. Rozhodl jsem se proto využít a vyzkoušet Video Processing Library (VPL). [4] Jedná se o soubor funkcí pro zpracování obrazu, ukládání jejích výsledků či extrakci příznaků. Tato knihovna využívá databázi PostgreSQL a OpenCV verze 1.1. [3] Díky tomu bude možné uložit i výsledné slovníky a jejich použití se tak stane nezávislé na původních textových souborech. Aplikace je napsána ve Visual Studiu 9.0 v programovacím jazyku C++. Jakým způsobem jsou obě předchozí knihovny do projektu začleněny včetně nezbytného popisu jednotlivých částí programu je popsáno v README, který je uložen společně se zdrojovými kódy aplikace. Aplikace se skládá ze dvou na sobě nezávislých částí. První část, nazvaná vocabulary, vkládá anotovanou sadu obrázků (4.1.1) do databáze a vytváří z nich slovníky 4.1. Ty jsou charakteristické detektorem, kterým byly body nalezeny, počtem slov a velikostí příznakovýh vektorů, kterými jsou slova popsána. Je tedy možné vytvořit velkou škálu slovníků. Druhá část, nazvaná iblpr (Image-Based License Plate Recognition), poté bude používat zvoleného slovníku k nalezení poznávací značky, jak bylo popsáno v kapitole 3.3. 4.1 Tvorba slovníku Kapitola je věnována celé první části, tzn. vytvoření a anotování trénovací sady, použití detektorů, import příznaků do databáze a následné vytvoření slovníku za případného využití PCA. 4.1.1 Trénovací sada, anotace Trénovací sadu tvoří 140 obrázků, kterou jsem získal stahováním z internetu z různých serverů se snahou o co největší pestrost a vyváženost. Jedná se o obrázky různé velikosti s auty s českou registrační značkou. Na každém obrázku je alespoň jedna. 28

Abychom mohli rozhodnout u tříd objektů o jejich relevanci při detekci, musíme zjistit, které body z testovacích dat jsou uvnitř značky a které vně. K tomu slouží anotace trénovacích dat. Ta je provedena pomocí programu Image Annotator stáhnutelného z http : //www.mvacek.cz/annotator. Jednoduchý nástroj pro anotaci obrázků na výstupu vytvoří XML soubory popisující jednotlivé obrázky. K anotaci značek jsem vytvořil šablonu, se kterou je anotace zjednodušena pouze na označení čtyřúhelníku v obrázku, kde je umístěna značka, a je rovněž přiložena ke zdrojovým kódům aplikace. Jednotlivé anotace poté budou načteny z xml souborů a u každé třídy se určí pravděpodobnost s jakou popisuje značku (podíl počtu bodů, které byly anotací označeny uvnitř značku, ku všem bodům). Pomocí této pravděpodobnosti poté bude možné nalést značku i v neanotovaných datech podle příslušnosti bodů k jednotlivým třídám. 4.1.2 Detekce bodů Detektory Harris-Hessian (zkráceně Harhes), IBR a EBR byly staženy z [1]. Všech 140 obrázků z trénovací sady (uloženy v /data/vocabulary/images) muselo nejdříve býti detekováno všemi detektory, výsledné body popsány deskriptorem SIFT staženým z [2]. Detektory pracují s obrázky ve formátu P GM. Zde nastává menší problém, jelikož databáze umí pracovat pouze s obrázky ve formátu JP G, které rovněž program vyžaduje. Je tak nutné provést konverzi. V následujícím seznamu jsou uvedeny parametry, se kterými byli jednotlivé detektory spuštěny: harhes :./extract f eatures harhes i img.pgm sif t pca harhessif t.basis ebr :./ibr.ln img1.pgm img1.ibr ibr :./ibr.ln img1.pgm img1.ibr VPL obsahuje funkce na detekci SIFT a OpenCV na detekci SURF, tudíž dané detekce provádí program sám a nenačítá je z textových souborů. 4.1.3 Nastavení parametrů Při spuštění programu jsou nejdříve zpracovány všechny parametry. Ukládají se do struktury, aby byly přístupné po celou dobu běhu programu. Jedná se především o nastavení cest k obrázkům, jejich detekcím či anotacím. Načítání z adresářů se jeví jako nejlepší možná metoda, namísto načítání jednotlivých obrázků. Dále se parametry nastavují vlastnosti výsledného slovníku, počet slov či velikost dimenze příznakového vektoru. Všechny možnosti nastavení jsou uvedeny v tabulce 4.1. Parametr h navíc vypíše nápovědu na standartní výstup. Při použití detektoru SIFT či SURF není samozřejmě parametr udávající cestu k detekovaným bodům použit. Po načtení všech parametrů je jejich validita zkontrolována, například nelze použít metodu redukce dimenze PCA pro větší číslo než 127, jelikož původní velikost vektorů je 128. Příklad spuštění aplikace může tedy vypadat následovně: vocabulary.exe harhes seq 0 words 10000 pca 40 (4.1) Což znamená, že se použijí Harhes detekce význačných bodů, použije se trénovací sada v sekvenci 0 (stejná jako ta, která byla použita pro celou tuto práci), vytvoří se slovník 29

Parametr Popis Inicializace harhes [ ebr, ibr, sift, surf] použitý detektor (povinný údaj) root path rootovský adresáře../data/ imgs path adresář s obrázky vocabulary/images/ pts path adresář s body vocabulary/detects/harhes/ anot path adresář s anotacemi vocabulary/annotation/ seq cislo sequence číslo sekvence s obrázky číslo sekvence pca velikost dimenze PCA neinicializována words pocet slov počet slov ve slovníku 1000 Tabulka 4.1: Popis vstupních parametrů o velikosti 10000 slov a metoda PCA redukuje příznakové vektory na velikost 40. Pořadí parametrů nemá vliv a může být libovolné. 4.1.4 Načtení obrázků a detekovaných bodů Následující kapitola je věnován importu dat do databáze. Pokud v parametrech chybí číslo zvolené sekvence, program předpokládá, že se uživatel snaží vytvořit novou trénovací sadu. Je tedy nutné všechny obrázky (resp. cesty k těmto obrázkům), detekované body a jejich popis vložit do databáze, aby bylo později možné vytvořit požadované slovníky. Vytvoří se tedy nová sekvence v databázi a nahrají se cesty ke všem obrázkům, které jsou v adresáři zadaném parametrem imgs. Trénovací sada, která byla popsána výše, je uložena v sekvenci 0 (tedy se předpokládá použití parametru seq 0). Podle zvoleného detektoru dojde poté k nahrání bodů a příznakových vektorů do databáze (v případě Harhes, EBR a IBR) či jsou všechny obrázky zdetekovány detektory SIFT či SURF. U jednotlivých bodů je ještě zkontrolováno, zda se nacházejí podle anotace uvnitř značky či vně. Je nezbytné, aby se soubor s anotacemi jmenoval stejně jako k němu příslušející obrázek (bez přípony) s příponou.xml. Je předpokládána i daná struktura dokumentu, kterou vytváří použitý anotační nástroj ImageAnnotator. Ten mimo jiné, pro tento účel nepodstatné informace, ukládá anotované značky jako elementy < object > a v něm elementy < point >, které definují jednotlivé vrcholy značky. V každém objektu by tedy měly být právě čtyři elementy point, jelikož je značka anotována čtyřúhelníkem a v nich po jednom elementu < x > a < y >, které definují umístění bodu v obraze. I soubor s detekovanými body se musí jmenovat stejně jako obrázek, ovšem s příponami, které vytvářejí jednotlivé detektory:.pgm.harhes.sif t pro Harris-Hessian,.ebr pro EBR a.ibr pro IBR. V průběhu načítání je u všech detekovaných bodů kontrolováno, zda leží uvnitř anotované značky (čtyřúhelníku definovaného čtyřmi vrcholy). A to tak, že je čtyřúhelník rozdělen na dva trojúhelníky. Daný bod poté leží uvnitř trojúhelníku (tedy i celého čtyřúhelníku), pokud součet vnitřní úhlů vždy mezi ním a dvěma vrcholy v trojúhelníku je roven 2π, resp. je větší než nastavený práh 3.26. Takto detekované body jsou poté uloženy do databáze včetně příznaku, zda byly anotovány uvnitř značky či nikoliv. Při použití detektorů SIFT a SURF je postup odlišný. Detekce i popis bodů provede přímo 30

program, obrázky tedy není nutno předem zvlášt detekovat, a nalezené body jsou pouze porovnány s anotacemi podobně, jako to bylo výše popsáno. Následně se rovněž vše uloží do databáze. Pokud je číslo sekvence zadané, program pracuje s touto sekvencí, přeskočí načítání dat a používá již uložená data v databázi. Pokud je zadané číslo sekvence větší než počet sekvencí v daném datasetu, program pracuje s poslední z nich. 4.1.5 Vytvoření slovníku Pokud již máme všechny potřebné body v databázi, lze z nich vytvořit nový slovník. Podle parametru zjistíme, pro jaký detektor a pro jakou sekvenci má být slovník vytvořen. V budoucnu se počítá s vytvořením shlukovacích funkcí ve VPL knihovně, která bude pracovat přímo nad databází. To by případný výpočet významně zrychlilo, především ve fázi načítání. Zatím bylo nutné využít funkce OpenCV. Použití knihovny OpenCV k vytvoření slovníku Všechny body v obrázcích dané sekvence a především jejich příznakové vektory se načtou do matice. Dále vznikne ještě anotační matice se stejným počtem řádků a šířkou 1, na jejichž jednotlivých řádcích je hodnota 1, pokud bod na stejném řádku byl určen uvnitř značky a 0 pokud mimo. Pokud je požadováno snížení velikosti dimenze příznakových vektorů (PCA), provede tato metoda redukci šířky matice na zadanou velikost, jak bylo popsáno v kapitole 3.2.1 Zvolená velikost musí být samozřejmě nižší než 128, což je velikost původních příznakových vektorů. Nyní je již matice připravena pro vytvoření slovníku. To se provádí shlukováním matice příznaků do daného počtu shluků (slov ve slovníku). Kromě popisu slov je vytvořena také matice indexů původních bodů na slova. Ta je právě potřeba pro natrénování klasifikátoru, tedy určení pravděpodobností jednotlivých slov. Jak bylo uvedeno v kapitole 3.2.2, jednotlivá slova obsahují body s velmi podobnými vlastnostmi (příznakovými vektory). Jelikož známe, které body patří do kterých slov, a dále u každého bodu víme, zda byl anotován uvnitř značky či vně, lze pro každé slovo vypočítat pravděpodobnost, se kterou se vyskytuje ve značce. Ta je spočítána jako poměr bodů v daném slovu anotovaných ve značce ku všem ve slově. Jelikož v našem případě byla anotována celá trénovací sada, není nutné vypočítavat i pravděpodobnost, že se slovo nevyskytuje ve značce, protože ta se poté rovná rozdílu první pravděpodobnosti od hodnoty 1. Takto dojde v podstatě k natrénování klasifikátoru. Pravděpodobnost libovolného bodu, že se nalézá ve značce, je jednoduše rovna pravděpodobnosti nejbližšího slova v takto vytvořeném slovníku. V tuto chvíli již je slovník hotov a je uložen. Ani zde ještě není databáze zcela dokončena, tudíž musí být slovníky prozatím ukládány lokálně. Během vytváření slovníku vypisuje program důležité informace včetně časové náročnosti jednotlivých úkonů. Tyto hodnoty jsou shnuty a zhodnoceny v kapitole 5. 31

4.2 Využití slovníku V této kapitole je popsána druhá část aplikace, a to využití již vytvořeného slovníku vizuálních slov pro detekci poznávací značky. Funkce jsou umístěny ve zdrojovém souboru iblpr.cpp. Na vstupu program očekává seznam obrázků, u kterých se má značka detekovat. Ty jsou postupně zpracovány, je provedena detekce a pokud se podařilo nalést značky daných vlastností, vytvoří se na výstupu obrázek s detekovanou značku. Stejně jako v první části je pro použití slovníku Harhes, EBR a IBR nejdříve nutné obrázky detekovat pomocí příslušných lokálních detektorů a následně popsat. Tato část však nenačítá body do databáze, tudíž není nutné používat pouze formát JPG, ale lze použít většinu známých grafických formátů (PNG, BMP, PGM,... ). Při použití detektorů SIFT a SURF příslušnou detekci opět zařídí program. 4.2.1 Nastavení a inicializace parametrů Při spuštění programu jsou stejně jako u první části nejdříve zpracovány všechny parametry. Jedná se především o nastavení cest k obrázkům, jejich detekcím, zvoleném slovníku či nastavení vlastností vyhledávání. Všechny možnosti nastavení jsou uvedeny v tabulce 4.2. Parametr Popis Inicializace harhes [... ] použitý detektor (povinný údaj) root string cesta do rootovského adresáře../data/iblpr/ imgs string cesta do adresáře s obrázky images/ i string jednotlivé obrázky pts string cesta do adresáře s detekovanými body detects/ detector res string cesta do adresáře s výsledky detekce results/ words integer počet slov ve slovníku 10000 pca integer velikost dimenze vektoru příznaků pokud nezadána, PCA nepoužita defocusing velikost matice pro rozostření 5 (5x5) localmax velikost matice pro lokální maxima 5 (5x5) showpoints pokud zadáno, vyhreslí i body false Tabulka 4.2: Popis vstupních parametrů Parametr i slouží pro samostatnou detekci. Pro jednoduchost totiž program načítá všechny obrázky z adresáře označeného parametrem imgs. Pokud uživatel chce detekovat pouze některé z těchto obrázků, jednoduše zadá jejich jméno za parametr i (pro každý obrázek zvlášt ). Příklad spuštění programu může vypadat následovně: iblpr.exe ebr words 10000 def ocusing 5 localmax 7 showpoints i 001.jpg (4.2) Což znamená, že uživatel chce detekovat značku pomocí EBR význačných bodů, za použití slovníku o velikosti 10000 slov. Rozostření bude provedeno v matici o velikosti 5x5 a následně budou lokální maxima hledána v matici o velikosti 7x7. Dál mimo značky chce i zakreslit do obrázku všechny význačné body. To vše chce provést pouze na obrázku 001.jpg, který je umístěn v../data/iblpr/images (protože cesta nebyla změněna). Zmíněné EBR význačné body program hledá rovněž v inicializované cestě../data/iblpr/detects/ebr. 32

4.2.2 Detekce Nejdříve program načte do matice zvolený slovník. Do druhé matice se stejným počtem řádků a šířkou 1 se načtou pravděpodobnosti jednotlivých slov. Jak bylo vysvětleno v teoretické části, detekce je založena na nalezení nejblížšího slova ke každému bodu, resp. jeho příznakovému vektoru. Aby bylo toto vyhledání co nejrychlejší, jsou všechna slova uspořádána do kd-stromu. Následně je ve smyčce pro každý obrázek postupně provedena detekce značky. Do další matice jsou načteny všechny významné body v obraze. Pro detektory Harhes, EBR a IBR jsou načteny z příslušných textových souborů, pro detektory SIFT a SURF je detekce provedena přímo na obrázku. Pro každý příznakový vektor je nalezeno nejbližších slov. Funkce pro nalezení daného slova je dobře optimalizovaná, tudíž vyhledávání trvá velmi krátkou dobu. Z matice s pravděpodobnostmi těchto slov lze následně určit, s jakou pravděpodobností se daný bod nalézá uvnitř hledané značky. Do mapy vah se pro daný bod konkrétně počítají hodnoty pravděpodobnosti, že jemu nejbližší slovo je obsaženo ve značce ( in ), od které je odečtena pravděpodobnost, že ve značce není ( out ). Jelikož byly anotována všechna vstupní data, ze kterých se vytvářel slovník, lze pravděpodobnost, že slovo nepopisuje značku vypočítat jako out = 1 in. Tím pádem ve vzniklé mapě vah jsou hodnoty 2 in 1 pro jednotlivé bodů. Pro provedení této operace pro všechny body vznikne kompletní mapa vah o stejné velikosti jako původní obrázek. Mapa je poté rozostřena, aby se zbavila šumu, tedy především osamocených bodů. Děje se tak skrz matici o zvolené velikosti. Následně jsou nalezena lokální maxima, která již označují hledanou značku. Maxima se nalézají v místech, kde byla největší koncentrace bodů s velkými pravděpodobnostmi. Kolem maxim jsou vytvořeny dvě kružnice (černá a bílá) kvůli zvýraznění. Na závěr je do obrázku vepsána informace, za použití jakého slovníku byla detekce provedena a obrázek je uložen. Pokud program měl na vstupu jen jeden obrázek, je na závěr i zobrazen. Je samozřejmě ještě uvolněna alokovaná pamět a program řádně ukončen. 33

Kapitola 5 Dosažené výsledky V této kapitole je souhrn všech dosažených výsledků včetně jejich zhodnocení. Je rovněž rozdělena na dvě části. První je věnována především vlastnostem a časové náročnosti vytváření slovníků. Kvalitu slovníku lze posoudit především podle následné detekce. Všechny její teoretické předpoklady jsou ve druhé části vyzkoušeny na testovací sadě. Jedná se o tři desítky obrázků, které byly vybrány s ohledem na vlastnosti, které jsem chtěl otestovat. 5.1 Vytváření slovníku Již popsanou výhodou databáze je, že ukládá všechna data a později je možné je jen použít. Menší nevýhodou se tedy stává, že při prvním použití trénovací sady je nutné všechny body do databáze nejdříve nahrát. V závislosti na počtu bodů se tak vytváření slovníku prodlouží o dobu nutnou k importu dat do databáze. V tabulce 5.1 je přehled počtu detekovaných bodů na použité trénovací sadě obrázků pro jednotlivé detektory. Detektor Popis Harhes 351676 EBR 46439 IBR 37117 SIFT 49223 SURF 329060 celkem 813515 Tabulka 5.1: Počet detekovaných bodů u jednotlivých detektorů Pokud jsou již data uložená v databázi, hlavní časová náročnost vytváření slovníku se poté rozdělí mezi načtení všech dat z databáze a jejich shlukování. Doba načítání je však velmi relativní, pokud se použije databáze na localhostu, tak dokonce zanedbatelná. Po načtení příznakových vektorů do matice je dalším důležitým ukazatelem doba, za kterou proběhne shlukování, tedy konečné vytvoření slovníku, jak je uvedeno v tabulce 5.2. Doba je přímo úměrná počtu slov, které požadujeme mít ve slovníku. Čím více slov, tím nalezení všech shluků trvá déle. Pro testování byly vytvořeny slovníky o velikosti 1000, 4000 a 10000 slov. 34

Detektor Počer vektorů Počet slov Doba vytváření slovníku [s] 1000 1052 Harhes 351676 4000 4372 10000 11772 1000 132 EBR 46439 4000 562 10000 1403 1000 109 IBR 37117 4000 444 10000 1132 1000 147 SIFT 49223 4000 603 10000 1530 1000 967 SURF 329060 4000 3947 10000 10136 Tabulka 5.2: Časová náročnost vytváření jednotlivých slovníků (shlukování) Dále jsem ještě vytvořil slovníky o velikosti 4000 slov za použití PCA metody k redukci dimenze příznakových vektorů na velikost 40. V tabulce 5.3 jsou uvedeny doby jak použití této metody, tak i doba následného shlukování. Jak je z ní patrné, po redukci dat se časová náročnost výrazně sníží. Otázku, zda takto vytvořený slovník může plnohodnotně nahradit původní slovníky, se pokusím zodpovědět během testování v kapitole 5.2.5. Detektor Výpočet PCA [s] Vytváření slovníku [s] Harhes 46 1135 EBR 6 141 IBR 5 113 SIFT 6 152 SURF 45 1084 Tabulka 5.3: Časová náročnost vytváření jednotlivých slovníků Všechny naměřené hodnoty jsou pouze orientační. Byly naměřeny během jediného měření, tudíž mohou být významně zkresleny různými okolnostmi. Z časové náročnosti vytváření slovníků nebylo provedeno více měření. Lze však s předpokládat, že především poměry mezi dobami vytváření jednotlivých slovníků zůstají zachovány. 5.2 Výsledky detekce Následující kapitola shrne dosažené výsledky detekce značky v obraze pomocí jednotlivých detektorů. K vyzkoušení navržené metody byla vytvořena testovací sada obrázků. Nejdříve však porovnám jednolivé detektory co se týče množství nalezených významných bodů na ideálním obrázku a dále vyzkouším extrémní případy detekce, ke kterým může dojít, protože ty by nebyly z detekce na celé testovací patrné. Vyzkouším detekci různých va- 35

riant umístění, natočení, zkosení či velikosti značky. Uvedu i jednotlivé příklady, na kterých bude dobré demonstrovat a porovnat provedené detekce. V druhé části bude proveden a vyhodnocen nejdůležitější test, a to detekce provedená na všech obrázcích z testovací sady za použití nejrůznějších slovníků. Narozdíl od předchozích dílčích testů, které pouze napoví, zda daný zkoumaný jev ovlivňuje detekci, vyhodnocená detekce na celé testovací sadě již zjistí konkrétní vlastnosti navržené metody, které budou na konci kapitoly shrnuty. Dále z naměřených dat bude možné zjistit vliv velikosti slovníku na kvalitu detekce či zda při použití metody PCA k redukci dimenze dat nedojde ke zhoršení výsledků. 5.2.1 Testovací sada Abych mohl jednotlivé použité detektory porovnat a vůbec zhodnotit úspěšnost navrženého postupu, vytvořil jsem testovací sadu, na které budou provedeny všechny experimenty, které jsou uvedeny dále. Jedná se o sadu 22 obrázků, stejně jako u trénovací sady různě velkých, obsahující různé pohledy na auta se značkou. Na dalších 10 obrázcích, které žádnou značku neobsahují vyzkouším, zda metoda skutečně žádnou neoznačí. Pro speciální experimenty, jako například detekci na velmi malých obrázcích, byly použity další obrázky, které v testovací sadě obsaženy nejsou. 5.2.2 Srovnání detektorů a jejich slovníků Postup detekce je navržen stejně pro všechny detektory, i když nemají stejné vlastnosti. Některé z nich, především Harhes a SURF, detekují značně více význačných bodů v obraze než ostatní. To ovlivní i nalézání lokálních maxim, což chci v této části porovnat. I již vytvořené slovníky naznačily, jak úspěšné budou v detekci jednotlivé metody. Slovníky IBR, SIFT a SURF detektorů totiž pravděpodobnosti slov, že jsou ve značce, mají velmi nízké. Tím pádem lze předpokládat, že ve vytvořené mapě vah bude obtížné nalést lokální maxima, tudíž detekovat značku. Což se následně prokázalo i při vlastním testování. Pro přesné srovnání slovníků by bylo za potřebí, aby detekovaly stejný počet bodů, což se však nedá v našem případě zaručit, tudíž je alespoň porovnám pomocí počtu nalezených bodů a maxim na stejném obrázku. Na obrázku 5.1 je tedy provedena detekce pomocí všech pěti druhů slovníků o velikosti 10000 slov (lze teoreticky předpokládat, že větší slovníky budou dávat lepší výsledky, což bude rovněž vyzkoušeno). Velikost matic pro rozmazání i nalezení maxima je nastavena na velikost 5x5. Testovaný obrázek je dosti velký (640x430) a znázorňuje ideální případ umístění i velikosti značky v obraze. Nalezená maxima jsou označeny v obrázku černou tečkou. V tabulce 5.4 a následném grafu 5.2 je zaznamenán počet detekovaných význačných bodů pro všechny detektory, které překračují danou pravděpodobnost. Tyto body jsou podstatné pro nalezení lokálních maxim a tedy celou detekci. Čísla v závorce u jednotlivých detektorů udávají celkový počet nalezených bodů. Následně jsou výsledky zhodnoceny a na závěr porovnány mezi sebou. Detektor Harhes, nalezl v obrázku 2346 význačných bodů. Z nich 57 dokonce přesahuje pravděpodobnost 90%. Navíc se dané body shlukovaly velmi dobře uvnitř značky, tudíž 36

Detektor/Práh 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 Harhes (2346) 825 519 375 313 295 241 223 213 194 170 EBR (753) 150 148 141 137 131 128 126 113 113 106 IBR (178) 40 36 28 24 21 20 15 15 15 13 SIFT (246) 24 19 15 8 7 6 5 4 3 2 SURF (1739) 292 128 73 42 29 23 13 12 9 4 Detektor/Práh 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0 Harhes (2346) 164 155 139 126 121 106 75 57 44 0 EBR (753) 106 104 101 95 86 79 72 59 50 0 IBR (178) 13 13 13 13 12 7 7 4 4 0 SIFT (246) 2 1 1 0 0 0 0 0 0 0 SURF (1739) 3 3 3 3 2 2 2 0 0 0 Tabulka 5.4: Počet bodů s vyšší pravděpodobností než zadaný práh nalezená maxima dosahují vysoké pravděpodobnosti. A jak je vidět z obrázku, všechna opravdu označují značku. V tomto případě lze hovořit o úspěšné detekci značky. I slovník detektoru EBR obsahuje slova s vysokými pravděpodobnostmi, 59 z celkových 753 detekovaných bodů má pravděpodobnost vyšší než 90%. Jak je patrné z obrázku, i zde vytvoří většina bodů velmi dobrý shluk ve značce. EBR nalézá body na hranách (viz. kapitola 3.1.2), tudíž se body soustředí především v okolí písmen a číslic na značce. Detektor IBR už dává horší výsledky. Vyšší pravděpodobnost než 50% má pouze 13 ze celkových 178 detekovaných bodů. Jak je patrné z obrázku, žádné maximum nebylo nalezeno, tudíž detekce neproběhla úspěšně. Stejně dopadla i detekce u SIFT a SURF. Nedostatek bodů s vysokou pravděpodobností, které navíc ani nejsou koncentrované na jednom místě má za následek nenalezení lokálního maxima, tudíž detekce není možná. V případě SIFT kritickou hodnotu 50% přesáhly pouze dva body, v případě SURF čtyři. Z principu výpočtu vah (viz. 4.2.2) vyplývá, že pro nalezení lokálních maxim je nezbytné, aby v obrázku bylo detekováno u sebe více bodů s pravděpodobností vyšší než 50%. Ty i po rozmazání stále vytvoří lokální maximum. Zatímco body s pravděpodobností pod 50% mají výslednou váhu zápornou (pravděpodobnost, že nejsou ve značce je vyšší, než že jsou uvnitř). To je limitující hlavně pro slovníky SIFT a SURF, kde slova ve slovníku jsou uspořádáná tak, že neobsahují příliš velké pravděpodobnosti. IBR je na tom sice trochu lépe, ale i přesto ve většině případů nebude možné pomocí tohoto detektoru značku detekovat. Tento jev je způsoben zřejmě vlastnostmi nalezených bodů. Při shlukování nejsou poté body s vyšší pravděpodobností koncentrovány ve stejných slovech, tudíž ani pravděpodobnosti jednotlivých slov nedosahují vysoké hodnoty. EBR a Harhes naopak mají dobré jak pravděpodobnosti jednotlivých slov, tak i následná detekce dává naději, že pomocí těchto detektorů by naopak nalezení značky mělo být možné. Obě detekce shodně nalezli čtyři lokální maxima a v obou případech byly všechny skutečně uvnitř značky na obrázku. 37

Na daném obrázku u detektorů EBR a Harhes sice poměr správných lokálních maxim je 100%, ale z jediné detekce nedostaneme žádnou vypovídající hodnotu. Proto na závěr v kapitole 5.2.6 je přehled počtu všech nalezených maxim na celé testovací sadě. Daný poměr mezi správnými lokálními maximy, které skutečně označují značku a těmi, které jsou jinde v obrázku již bude lépe vyjadřovat úspěšnost navrženého postupu pro všechny detektory. 5.2.3 Detekce na malých obrázcích Druhá část testů je věnována různým případům, ke kterým může při snaze o nalezení značky dojít. První z nich je pokus o detekci značky v malých obrázcích, tedy přibližně o velikosti 300 x 200 pixelů, kde značka je vysoká jen řádově několik pixelů. Jsou použity slovníky o velikosti 10000 slov. Při pokusu otestovat takto malý obrázek se objevil další problém. Detektor EBR, který je při procesu použit, neumí detekovat obrázky menší než přibližně 450 x 300 pixelů. V dokumentaci se o důvodu, proč jsou vynechány takto malé obrázky, nezmiňují. [18] Ani u ostatních detektorů však nelze hovořit o úspěchu, ani v jednom případě se nepodařilo nalést ani jediné lokální maximu, tedy detekovat značku. Slovníky byly vytvořeny z větších obrázků v trénovací sadě, což je zřejmě důvod neúspěchu. Kdyby trénovací sada byla zaměřena více na malé obrázky, detekce by poté proběhla zřejmě lépe. V tomto případě nelze tedy na malých obrázcích značku téměř nikdy nalézt. 5.2.4 Natočená či zkosená značka Malokterý obrázek znázorňuje auto tak, aby značka nebyla ani natočená ani zkosená. V této podkapitole porovnám odolnost detekcí vůči extrémnímu natočení značky. Pokud se snažíme detekovat značku pouze z daných bodů (jejich lokálních maxim) jako v tomto případě, je teoreticky možné určit pouze natočení značky, nikoliv její zkosení, a to ještě pouze v případě, že počet nalezených maxim bude dostatečně velký. Jak je patrné na obrázku 5.3, Harhes (na prvním řádku) a EBR (na druhém řádku) naleznou lokální maxima vah jednotlivých bodů na natočené i zkosené značce. Jak se však ukázalo, počet maxim není dostatečně velký, aby se pouze z jejich poloh dalo určit natočení či zkosení nalezené značky. Velmi hrubě (především při použití detektoru EBR) by šlo polohami nalezených maxim proložit přímku ke zjištění natočení značky. Jak je vidět z obrázků, výsledek by se příliš nevzdaloval od skutečnosti, jedná se však pouze o daný případ a u jiných obrázků by tento postup nemusel fungovat. Detektory IBR, SIFT a SURF opět žádná lokální maxima nenalezly, tudíž nejsou uvedeny ani příslušné obrázky. Jak je patrné z obrázků, metoda je vůči natočení i zkosení odolná především při použití detektorů EBR a částečně Harhes. Ostatní detektory nelze použít ani v ideálním případě, tudíž se nedalo předpokládat, že by zde byly úspěšnější. Míru úspěšnosti nelze ze dvou obrázků dosti dobře zjistit, test byl proveden spíše pro vyzkoušení, zda v daných případech nedochází k nějakým velkým odchylkám od ostatních detekcí. Použitelnost navržené metody bude ověřena až vyzkoušením jednotlivých detektorů na celé testovací sadě, které je popsáno v kapitole 5.2.5. 38

5.2.5 Detekce na testovací sadě Abych mohl vyhodnotit nejen dílčí vlastnosti navržené metody detekce značek v obraze, bylo nutné provést detekci na celé testovací sadě obrázků. Jak bylo popsáno v kapitole 5.2.1, sada obsahuje celkem 32 obrázků. V tabulkách a následných grafech jsou pro jednotlivé detektory zaznamenána všechna zjištěná data o provedené detekci. Testovací sada byla detekována všemi detektory a slovníky o velikosti 1000, 4000 a 10000 slov. Doposud použité slovníky byly vytvořeny pouze shlukováním příznakových vektorů o plné velikosti 128 prvků. Při použití metody redukce dimenze dat PCA můžeme příznakové vektory zkrátit, jak bylo popsáno v 3.2.1. Tím se sníží i čas nutný k vytvoření slovníku. Otázkou však zůstává, do jaké míry tato redukce ovlivní následnou detekci. Proto vyzkouším dále i slovníky o velikosti 4000 slov, které byly vytvořeny z příznakových vektorů redukovaných na velikost 40. Metoda, jak byla navržena, je hůře ohodnotitelná, jelikož je postavena pouze na nalezení lokálních maxim a nesnaží se ohraničit celou značku v obraze. Způsob, jakým by to bylo možné, jsou shrnuty v závěru. Pokud tedy za správnou detekci značky budeme považovat i pouze jedno nalezené maximum uvnitř značky, budou poté jednotlivé detektory lépe srovnatelné. V tabulkách 5.5 až 5.8 je u jednotlivých obrázků a slovníků uveden počet správných lokálních maxim, které skutečně v obrázku označují značku a počet všech nalezených lokálních maxim. Z tohoto poměru lze zjistit kvalitu detekce. Prvních 22 obrázků skutečně značku obsahuje, zbylých 10 nikoliv. Při testování detekcí za použití detektorů IBR a SIFT nebylo nalezeno ani jediné lokální maximum na celé testovací sadě. Je to způsobeno nízkými pravděpodobnostmi jednotlivých slov a navíc dané detektory nenacházejí v obrázku tolik bodů jako například SURF. Jeho slovníky rovněž neobsahují velké pravděpodobnosti, ale detektor SURF nalezne několikrát více bodů v obraze. Proto dojde k zajímavému jevu, kdy koncentrace záporných vah vytvoří na určitých místech lokální maxima s hodnotou menší nebo rovnu nule. Takováto maxima samozřejmě nejsou žádoucí a po jejich odstranění ani SURF nenalezne žádné lokální maximum na celé testovací sadě. Tabulky popisující tyto detekce jsou proto vynechány. Naopak detektory Harhes a poté především EBR vykazují vyšší procento správné detekce. Harhes pouze okolo 60%, ovšem EBR okolo 90%. V případě použití slovníku o velikosti 4000 slov dokonce téměř 99%! Právě vliv velikosti slovníku stejně jako další pozorovatelné vlastnosti jednotlivých detekcí budou detailně rozebrány v následujících podkapitolách. Dále se zabývám jen detektory Harhes a EBR, jelikož ostatní jsou pro detekci téměř nepoužitelné. Příklady jednotlivých detekcí na testovací sadě jsou uvedeny v příloze A. Vliv velikosti slovníku Lze teoreticky předpokládat, že slovníky obsahující více slov budou dávat i lepší výsledky. Z tabulky 5.5 popisující detekci pomocí Harhes je tento předpoklad i potvrzen, z úspěšnosti 54,5% při použití slovníku o velikosti 1000 slov vzroste na 66% u slovníku o 10000 slovech. Při použití detektoru EBR je největší úspěšnost detekce u slovníku se 4000 slovy, a to do- 39

Velikost slovníku Harhes x dimenze příznakového vektoru Obrázek 1000x128 4000x128 10000x128 4000x40 1 5/6 1/2 4/5 1/6 2 4/8 8/12 9/13 3/5 3 5/6 6/7 8/10 0/0 4 1/3 4/4 3/3 0/0 5 2/3 6/7 4/5 1/2 6 1/1 4/5 4/6 0/5 7 5/6 11/14 13/16 0/0 8 0/3 1/7 3/11 1/9 9 1/10 3/12 2/8 2/13 10 1/1 3/7 4/10 0/18 11 1/4 0/1 2/3 0/2 12 5/6 3/5 6/7 0/2 13 0/0 1/1 0/0 0/2 14 0/0 1/1 1/1 0/3 15 1/1 2/3 1/2 0/2 16 1/1 4/5 3/3 0/0 17 3/7 6/8 5/9 2/9 18 0/0 1/2 1/2 1/3 19 1/2 3/3 4/4 1/3 20 0/1 2/2 3/3 0/6 21 2/2 0/1 2/2 0/5 22 3/6 5/10 6/11 3/12 celkem 42/77 (54,5%) 75/119 (63%) 88/133 (66%) 15/107 (14%) Tabulka 5.5: Harhes: Počty lokálních maxim na obrázcích se značkou konce 98,9%. Což sice přesně neodpovídá danému předpokladu, ale tato výjimka je zřejmě způsobena tím, že na trénovací sadě bylo detektorem EBR nalezeno celkem zhruba 40000 bodů. Při vytváření slovníku o 10000 slovech tedy poměr bodů na dané slovo není příliš velký, což může negativně ovlivnit i následnou detekci. Pro vytvoření takto velkého slovníku by bylo tedy zapotřebí rozšířit trénovací sadu. Graficky jsou jednotlivé úspěšnosti zobrazeny v grafu 5.4. Použití PCA V tabulkách je mimo klasické slovníky v posledních sloupcích popsána detekce pomocí slovníku o velikosti 4000 slov, který byl vytvořen z příznakových vektorů redukovaných na velikost dimenze 40. Při použití této metody se sice výrazně sníží čas nutný k vytvoření slovníku (shlukování jednotlivých vektorů do slov), ale jak je patrné z tabulky, pravděpodobnost úspěšné detekce značky se výrazně sníží. V případě Harhes je počet nalezených lokálních maxim sice srovnatelný s ostatními slovníky, ale jejich úspěšnost je pouze 15%. U EBR naopak pravděpodobnost sice dosahuje 80%, ale počet lokálních maxim je pouze pětinový a u 13 z 22 obrázků nenalezne maximum vůbec. 40

Velikost slovníku Harhes x dimenze příznakového vektoru Obrázek 1000x128 4000x128 10000x128 4000x40 26 0 0 0 2 27 2 1 1 3 28 1 0 5 3 29 0 2 3 1 30 3 5 4 2 31 0 0 0 6 32 1 1 1 2 33 0 0 0 1 34 3 8 12 16 35 2 2 0 6 celkem 12 19 26 42 Tabulka 5.6: Harhes: Počet lokálních maxim na obrázcích bez značky Takže použití metody redukce dimenze příznakových vektorů (PCA) nelze příliš doporučit, protože dojde ke snížení úspěšnosti detekce. Nenalezení značky v obraze Chyba při níž není v obraze nalezena značka (žádné lokální maximum) přesto, že v něm je zobrazena, je označována jako false-negative. Míra takovéto chyby je rovněž jedna z důležitých vlastností každé detekce. Harhes nenašel žádnou značku při použití slovníku o 1000 slovech v pěti, u 4000 slov již jen ve dvou a u slovníku s 10000 slov pouze v jednom případě. EBR ve stejném pořadí slovníku nedetekoval dva, jeden a tři obrázky. Započítány jsou pouze obrázky, u kterých nebylo nalezeno ani jedno správné maximum. Jak je z uvedených čísel patrné, počet takto neúspěšných detekcí přibližně kopíruje míru úspěšnosti detekce. Čím je detekce úspěšnější, tím je tato chyba menší. Chybné označení Další důležitým ukazatelem kvality detekce je tzv. chyba false-positive. Vyjadřuje pravděpodobnost označení objektu (v našem případě značky) v obraze, ve kterém se nenalézá nebo označení objektu jinde v obraze, než skutečně je. Pro zjištění prvního případu byly do testovací sady zařazeny i obrázky, které značku neobsahují. Jak je patrné z tabulek 5.6 a 5.8, oba použitelné detektory se chovají na těchto obrázcích odlišně. Zatímco Harhes přesto nalezne v takovýchto obrázcích poměrně dost lokálních maxim, tedy očekává zde umístění značky, EBR detekuje pouze dvě lokální maxima na celé sadě 10 obrázků. Problém u Harhes tvoří především černobílé přechody, u kterých se velmi často domnívá, že skutečně obsahují značku. EBR je tak nejen kvalitní při detekcích značky, ale i poměrně robustní pokud značka v obrázku není. 41

Velikost slovníku EBR x dimenze příznakového vektoru Obrázek 1000x128 4000x128 10000x128 4000x40 1 3/8 6/6 4/5 1/2 2 8/8 9/9 4/5 1/2 3 1/1 3/3 2/2 0/0 4 4/4 5/5 3/3 0/0 5 0/0 0/1 0/0 0/1 6 4/4 4/4 5/5 1/1 7 7/7 5/5 2/2 0/0 8 2/3 1/1 1/2 0/0 9 6/8 5/5 8/10 4/5 10 5/8 9/9 8/11 0/5 11 2/2 3/3 2/2 0/0 12 6/6 5/5 7/7 0/0 13 9/9 5/5 6/6 2/2 14 11/11 12/12 14/14 3/3 15 0/0 2/2 0/0 0/0 16 1/1 1/1 0/0 0/0 17 3/3 4/4 5/5 2/2 18 2/2 3/3 4/4 0/0 19 3/4 4/4 4/4 4/4 20 2/2 1/1 3/3 0/0 21 2/2 2/2 2/2 0/0 22 4/4 1/1 6/11 3/4 celkem 85/97 (87,6%) 90/91 (98,9%) 90/103 (87,4%) 21/26 (80,8%) Tabulka 5.7: EBR: Počty lokálních maxim na obrázcích se značkou Druhou část této chyby, tedy chybně označená značka v obrázku, lze jednoduše vypočítat z uvedených tabulek 5.5 a 5.7 jako počet nesprávných lokálních maxim ku všem nalezeným. Jedná se tedy o doplněk uvedené úspěšnosti detekce do 100%. Nejmenší takovou chybu vykazuje opět EBR při použití slovníku se 4000 slovy, kde je přibližně 1,1%. 5.2.6 Shrnutí Po provedených detekcích na testovací sadě se ukázalo, že pouze detektory EBR a Harhes dávají alespoň částečně správné výsledky. Zatímco IBR, SIFT a SURF nelze prakticky vůbec k detekci značky, jak byla metoda navržena, použít. Naopak především EBR potom poskytuje velmi dobré výsledky. Detekuje různé typy zobrazení značky. Nevýhodou je, že neumí detekovat malé obrázky. Ovšem lze předpokládat, že by dané detekce stejně nebyly kvůli stavbě trénovací sady příliš úspěšné. Jistý vliv na detekci mají také zvolené velikosti matic pro rozmazání a nalezení maxim. Čím větší je matice používaná k průměrování, tím je následné rozmazání větší a mapa neobsahuje tak velká lokální maxima. Ovšem o to přesnější daná maxima budou. Totéž platí i o velikosti matice, ve které se lokální maxima hledají. Čím větší je, tím méně lokálních maxim bude v obraze nalezeno. 42

Velikost slovníku EBR x dimenze příznakového vektoru Obrázek 1000x128 4000x128 10000x128 4000x40 26 1 0 0 0 27 0 0 0 2 28 0 0 0 0 29 0 0 1 1 30 0 0 1 0 31 0 0 0 0 32 0 0 0 0 33 0 0 0 0 34 1 2 0 0 35 0 0 0 0 celkem 2 2 2 3 Tabulka 5.8: EBR: Počet lokálních maxim na obrázcích bez značky Obecně lze však tedy říci, že Harhes a především EBR lze s úspěchem použít především na větších obrázcích, kde s vysokou pravděpodobností detekují značku správně (naleznou větší počet lokálních maxim vah význačných bodů uvnitř značky). 43

Obrázek 5.1: Přehled detekcí pomocí všech slovníků o velikosti 10000 slov 44

Obrázek 5.2: Počet bodů s vyšší pravděpodobností než zadaný práh 45

Obrázek 5.3: Harhes (nahoře) a EBR (dole) detekce natočené (vlevo) a zkosené (vpravo) značky Obrázek 5.4: Poměr správných lokálních maxim ke všem nalezeným 46

Kapitola 6 Závěr Cílem mé práce bylo mimo rozdělení a srovnání již existujících metod vytvoření pro lokální detektory Harhes, EBR, IBR, SIFT a SURF vizuálních slovníků a pomocí nich vyzkoušet detekci značky v obraze. V této kapitole zhodnotím dosažené výsledky, pozastavím se nad důvody, proč detekce byla či nebyla v různých případech úspěšná, a navrhnu další možná rozšíření stávající metody. V první byly vytvořeny vizuální slovníky z příznakových vektorů všech význačných bodů, které byly jednotlivými detektory nalezeny v trénovací sadě. Samotné vytváření se ukázalo býti velmi časově náročné. Ovšem velkou výhodu zde vidím v použití databáze k ukládání jednotlivých příznakových vektorů pro každý detektor. Pokud uživatel dále chce vytvářet další slovníky, již nepotřebuje mít k dispozici celou testovací sadu. Stejně lze do databáze nahrávat další testovací sady. Mohlo by býti zajímavé vyzkoušet detekování značky pomocí stejně velkých slovníků, které byly vytvořeny na jiných testovacích sadách. Ve druhé části se zaměřuji na samotnou detekci značky v obraze. K tomu využívám právě vytvořené vizuální slovníky o různých velikostech. K experimentům byla vytvořena testovací sada. Jak je popsáno v předchozí kapitole 5.2, s velkou pravděpodobností lze úspěšně použít pouze detektor EBR a jeho slovníky, částečně funguje i Harhes. Zbylé tři detektory IBR, SIFT a SURF nebylo možné k detekci, jak byla metoda navržena, použít. To je zřejmě způsobeno hlavně špatnou skladbou slovníku. Body, které byly anotovány uvnitř značky, se nekoncentrují ve slovech tak, jako například u EBR. Jednotlivá slova tak nemají vysoké pravděpodobnosti, že popisují v obrázku hledanou značku. A protože je metoda založená na nalezení lokálních maxim těchto vah, nedojde k očekávané detekci. Detekce značky pouze podle nalezených lokálních maxim je dostačující, ale efektnější by zřejmě bylo označit výslednou značku přímo čtyřúhelníkem. To pomocí obecné metody, jak je navržena, není možné, jelikož pouze z pozice lokálních maxim vah nelze určit, zda náhodou nepopisují více než jednu značku v obraze. Jednoduché ohraničení takových maxim by mohlo vést k nesmyslné detekci. Popsanou a použitou metodu by šlo ovšem ještě vylepšit. Při vytváření slovníku by jednotlivé body mohly nést nejen informaci, zda jsou anotovány uvnitř značky či vně, ale také relativní pozici ve značce. Vypočítaná slova ve slovníku by tudíž rovněž obsahovala 47

určitou průměrnou informaci o relativní pozici ke značce, tudíž i u nalezených maxim by bylo teoreticky možné z těchto informací zjistit pozici a velikost značky, případně více značek. Během testování se dále ukázalo, že testovací sada by měla obsahovat více obrázků. Především vytváření slovníků pro EBR je totiž limitováno menším počtem nalezených bodů na trénovací sadě. Lze s úspěchem předpokládat, že pro mnohem větší trénovací sadu, by mohl být vytvořen ještě větší slovník, než byl vyzkoušen, a měl by přinejmenším stejně dobré vlastnosti. I přes všechny výše popsané skutečnosti, navržená metoda je schopna rozhodnout, při použití především EBR detektoru, zda a kde v obraze značka leží. 48

Literatura [1] Affine covariant region detectors. [online]. Dostupné na: http://www.robots.ox.ac.uk/ vgg/research/affine/. [2] Region descriptors. [online]. Dostupné na: http://www.robots.ox.ac.uk/ vgg/research/affine/descriptors.html. [3] Gady Agam. Introduction to programming with opencv. [online]. Dostupné na: http://www.cs.iit.edu/ agam/cs512/lect-notes/opencv-intro/index.html. [4] Vítězslav Beran. Video processing toolkit documentation. [online]. Dostupné na: http://www.fit.vutbr.cz/ beranv/vpf/vpl/. [5] L. Dlagnekov. License plate detection using adaboost. In Technical Report CA 92093-0114, UCSD University of California, San Diego, 2005. [6] K. Mikolajczyk et al. A comparison of affine region detectors. International Journal of Computer Vision, 2006. [7] K. Mikolajczyk et al. Multiple object class detection with a generative model. Proc. CVPR, 2006. [8] J. Bauer et.al. Comparing several implementations of two recently published feature detectors. Proceeding of the International Conference on Intelligent and Autonomous Systems, 2007. [9] J. Matas et.al. Robustwide baseline stereo from maximally stable extremal regions. International Journal of Computer Vision, 2002. [10] Z. Ma F. Yang. Vehicle license plate location based on histogramming and mathematical morphology. Proceedings of the Fourth IEEE Workshop on Automatic Identification Advanced Technologies, 2005. [11] K. Zimmermann J. Matas. Unconstrained licence plate and text localization and recognition. In Proc. International Conference on Intelligent Transportation Systems, pages 572 577, 2005. [12] C. Schmid K. Mikolajczyk. Scale and affine invariant interest point detectors. International Journal of Computer Vision, 2004. [13] J. B. MacQueen. Some methods for classification and analysis of multivariate observations. Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and Probability, 1967. 49

[14] H. Mahini, S. Kasaei, F. Dorri, and F. Dorri. An efficient features-based license plate localization method. In ICPR06, pages II: 841 844, 2006. [15] O. Martinský. Algorithmic and matematical principles of automatic number plate recognitions systems. Bachelor s thesis, department of inteligent systems, Brno University of Technology, Brno, 2007. [16] M. Jones P. Viola. Rapid object detection using a boosted cascade of simple features. In Computer Vision and Pattern Recognition. CVPR, 2001. [17] L. I. Smith. A tutorial on principal components analysis. 2002. Dostupné na: http://www.cs.otago.ac.nz/cosc453/student tutorials/principal components.pdf. [18] L. Van Gool T. Tuytelaars. Matching widely separated views based on affine invariant regions. International Journal of Computer Vision, 2004. [19] S. Ganesan V. Kamat. An efficient implementation of the hough transform for detecting vehicle license plates using dsp. Proceedings of the Real-Time Technology and Applications Symposium, pages 58 59, 1995. [20] Otevřená encyklopedie Wikipedia. Detekce hran. [online]. Dostupné na: http://cs.wikipedia.org/wiki/detekce hran. [21] J. Šembera. Aplikace analýzy hlavních komponent pro redukci dimenze transportně - reakčního problému. Sborník 6. mezinárodního matematického workshopu, 2007. 50

Dodatek A Příklady detekcí 51

Obrázek A.1: Příklady detekcí pomocí Harhes (vlevo) a EBR (vpravo) 52