• No results found

Image-Based Licence Plate Recognition

N/A
N/A
Protected

Academic year: 2021

Share "Image-Based Licence Plate Recognition"

Copied!
56
0
0

Loading.... (view fulltext now)

Full text

(1)

VYSOK ´

E U ˇ

CEN´I TECHNICK ´

E V BRN ˇ

E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ

CN´ICH TECHNOLOGI´I

´

USTAV PO ˇ

C´ITA ˇ

COV ´

E GRAFIKY A MULTIM ´

EDI´I

FACULTY OF INFORMATION TECHNOLOGY

DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA

DETEKCE POZN ´

AVAC´I ZNA ˇ

CKY V OBRAZE

DIPLOMOV ´

A PR ´

ACE

MASTER’S THESIS

AUTOR PR ´

ACE

Bc. MICHAL VACEK

AUTHOR

(2)

VYSOK ´

E U ˇ

CEN´I TECHNICK ´

E V BRN ˇ

E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ

CN´ICH TECHNOLOGI´I

´

USTAV PO ˇ

C´ITA ˇ

COV ´

E GRAFIKY A MULTIM ´

EDI´I

FACULTY OF INFORMATION TECHNOLOGY

DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA

DETEKCE POZN ´

AVAC´I ZNA ˇ

CKY V OBRAZE

IMAGE-BASED LICENCE PLATE RECOGNITION

DIPLOMOV ´

A PR ´

ACE

MASTER’S THESIS

AUTOR PR ´

ACE

Bc. MICHAL VACEK

AUTHOR

VEDOUC´I PR ´

ACE

Ing. V´IT ˇ

EZSLAV BERAN

SUPERVISOR

(3)

Abstrakt

V prvn´ı ˇc´asti se pr´ace zab´yv´a jiˇz zn´am´ymi metodami detekce znaˇcek. Jsou zde pops´any metody vyuˇz´ıvaj´ıc´ı zpracov´an´ı obrazu, AdaBoost, ˇci detekci extr´emn´ıch region˚u. N´asleduje n´avrh a implementace vlastn´ıho pˇr´ıstupu k detekci pozn´avac´ıch znaˇcek vyuˇz´ıvaj´ıc´ı lok´aln´ı detektory k vytvoˇren´ı slovn´ıku vizu´aln´ıch slov. V z´avˇeru je metoda vyhodnocena.

Kl´ıˇ

cov´

a slova

detekce, registraˇcn´ı znaˇcka, zpracov´an´ı obrazu, Houghova transformace, detekce hran, ver-tik´aln´ı a horizont´aln´ı detekce, lok´aln´ı detektory, Harris-affine, MSER, EBR, IBR, SIFT, SURF, vizu´aln´ı 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

(4)

Detekce pozn´

avac´ı znaˇ

cky v obraze

Prohl´

sen´ı

Prohlaˇsuji, ˇze jsem tuto pr´aci vypracoval samostatnˇe pod veden´ım pana Ing. V´ıtˇezslava Berana

. . . . Michal Vacek 31. kvˇetna 2009

Podˇ

ekov´

an´ı

R´ad bych podˇekoval Ing. V´ıtˇezslavu Beranovi, za vˇsechny n´apady a pomoc s pˇr´ıpravou diplomov´e pr´ace.

c

Michal Vacek, 2009.

Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe in-formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena autorsk´ym z´akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´avnˇen´ı autorem je nez´akonn´e, s v´yjimkou z´akonem definovan´ych pˇr´ıpad˚u.

(5)

Obsah

1 Uvod´ 3

2 Anal´yza dosavadn´ıho stavu 4

2.1 Metody vyuˇz´ıvaj´ıc´ı zpracov´an´ı obrazu . . . 4

2.1.1 Houghova transformace . . . 4

2.1.2 Hranov´e detekce . . . 5

2.1.3 Horizont´aln´ı a vertik´aln´ı projekce . . . 7

2.1.4 Konkr´etn´ı metody . . . 8

2.2 Metody zaloˇzen´e na AdaBoostu . . . 12

2.2.1 Sada dat . . . 12

2.2.2 V´ybˇer pˇr´ıznak˚u . . . 12

2.2.3 Shrnut´ı . . . 16

2.3 Metody zaloˇzen´e na rozpozn´an´ı extr´emn´ıch region˚u . . . 17

2.3.1 Shrnut´ı . . . 17

3 Visu´aln´ı slova pro detekci 19 3.1 Lok´aln´ı 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´aln´ı slovn´ık . . . 24

3.2.1 Anal´yza hlavn´ıch komponent (PCA) . . . 24

3.2.2 Shlukov´an´ı . . . 25

3.3 Vyhled´av´an´ı. . . 26

3.3.1 kd-strom . . . 27

3.3.2 Pr˚umˇerov´an´ı . . . 27

4 Tvorba a vyuˇzit´ı slovn´ıku 28 4.1 Tvorba slovn´ıku . . . 28

4.1.1 Tr´enovac´ı sada, anotace . . . 28

4.1.2 Detekce bod˚u . . . 29

4.1.3 Nastaven´ı parametr˚u . . . 29

4.1.4 Naˇcten´ı obr´azk˚u a detekovan´ych bod˚u . . . 30

4.1.5 Vytvoˇren´ı slovn´ıku . . . 31

4.2 Vyuˇzit´ı slovn´ıku . . . 32

(6)

4.2.2 Detekce . . . 33

5 Dosaˇzen´e v´ysledky 34 5.1 Vytv´aˇren´ı slovn´ıku . . . 34

5.2 V´ysledky detekce . . . 35

5.2.1 Testovac´ı sada . . . 36

5.2.2 Srovn´an´ı detektor˚u a jejich slovn´ık˚u . . . 36

5.2.3 Detekce na mal´ych obr´azc´ıch . . . 38

5.2.4 Natoˇcen´a ˇci zkosen´a znaˇcka . . . 38

5.2.5 Detekce na testovac´ı sadˇe . . . 39

5.2.6 Shrnut´ı . . . 42

6 Z´avˇer 47

(7)

Kapitola 1

´

Uvod

C´ılem m´e diplomov´e pr´ace je navrhnout a otestovat metodu pro detekci pozn´avac´ıch znaˇcek (d´ale jen znaˇcek) v obraze. Metody pro takovou detekci jiˇz existuj´ı, tud´ıˇz ve znaˇcn´e ˇc´asti t´eto pr´ace se zab´yv´am jejich porovn´an´ım, shrnut´ım a anal´yzou dosavadn´ıho stavu proble-matiky. V druh´e ˇc´asti se vˇenuji navrˇzen´ı metody, pomoc´ı kter´e bude moˇzn´e znaˇcku v obraze detekovat, d˚uvod˚um pro jej´ı zvolen´ı a samotn´e implementaci.

(8)

Kapitola 2

Anal´

yza dosavadn´ıho stavu

Detekce znaˇcek je jiˇz mnoha algoritmy zpracovan´y a vyˇreˇsen´y probl´em, ovˇsem s r˚uzn´ymi v´ysledky. V n´asleduj´ıc´ı ˇc´asti uveden´e metody se liˇs´ı spolehlivost´ı, robustnost´ı a rychlost´ı detekce. Jejich rozdˇelen´ı jsem provedl zhruba podle zp˚usobu, kter´y k detekci pouˇz´ıvaj´ı. Jedn´a se pˇredevˇs´ım o metody zaloˇzen´e na zpracov´an´ı obrazu, vyuˇz´ıvaj´ıc´ı AdaBoost ˇci roz-pozn´av´an´ı extr´emn´ıch region˚u. Dalˇs´ı metody jako pouˇzit´ı neuronov´e s´ıtˇe je zm´ınˇeno alespoˇn v z´avˇeru.

Srovn´an´ı metod je sloˇzit´e. Ovˇsem kvalitn´ı metoda mus´ı b´yt co nejv´ıce robustn´ı v˚uˇci osvˇetlen´ı, natoˇcen´ı ˇci r˚uzn´ym ˇsum˚um v obraze. D˚uleˇzit´a je rovnˇeˇz rychlost, jelikoˇz mnoho metod m´a tendence b´yt pouˇzity v re´aln´em ˇcase. Mnohdy vˇsak plat´ı, ˇze ˇc´ım je metoda kvalitnˇejˇs´ı, t´ım je tak´e pomalejˇs´ı...

2.1

Metody vyuˇ

z´ıvaj´ıc´ı zpracov´

an´ı obrazu

Tyto metody jsou zaloˇzeny na Houghovˇe transformaci 2.1.1, detekci hran 2.1.2, vlastnos-tech znaˇcky a anal´yz´ach histogram˚u 2.1.3. Slouˇz´ı k nalezen´ı kandid´atn´ıch region˚u, z nich se posl´eze vyb´ıraj´ı ty, kter´e skuteˇcnˇe obsahuj´ı znaˇcku. V t´eto podkapitole nejdˇr´ıve shrnu pˇr´ıklady nejpouˇz´ıvanˇejˇs´ıch zpracov´an´ı obrazu a pot´e uvedu konkr´etn´ı metody, kde se tyto zp˚usoby uplatnily.

Pro metody vyuˇz´ıvaj´ıc´ı zpracov´an´ı obrazu jsou d´ale velmi d˚uleˇzit´e vlastnosti znaˇcky, kter´e v´ıme dopˇredu. Pomoc´ı tˇechto pˇr´ıznak˚u lze vybrat vhodn´e kandid´atn´ı regiony. Zde je shrnut´ı nejpouˇz´ıvanˇejˇs´ıch vlastnost´ı.

• Znaˇcka je obd´eln´ıkov´eho tvaru s pomˇerem ˇs´ıˇrky k v´yˇsce 2-10. • Obsahuje ˇcern´a p´ısmena na b´ıl´em pozad´ı.

• Nˇekter´e metody vyuˇz´ıvaj´ı pravdˇepodobnost, ˇze znaˇcka je um´ıstˇena v´ıce m´enˇe vodo-rovnˇe

2.1.1 Houghova transformace

Houghova transformace je metoda pro nalezen´ı parametrick´eho popisu objekt˚u v obraze. Pouˇz´ıv´a se pˇredevˇs´ım pro segmentaci objekt˚u, jejichˇz hranice lze popsat jednoduch´ymi kˇrivkami, pˇri detekci znaˇcky pˇr´ımkami. Hlavn´ı v´yhodou t´eto metody je robustnost v˚uˇci ne-pravidelnostem a pˇreruˇsen´ı hledan´e kˇrivky. Houghova transformace je vyuˇz´ıv´ana k nalezen´ı

(9)

parametr˚u matematick´eho modelu hledan´eho objektu za pˇredpokladu zn´am´ych vstupn´ıch dat (pixel˚u). Pro popis pˇr´ımky slouˇz´ı vzorec:

x cos θ + y sin θ = r, (2.1)

kde r je d´elka norm´aly od pˇr´ımky k poˇc´atku souˇradnic, θ je ´uhel mezi norm´alou a osou x. Jestliˇze do pˇredchoz´ı rovnice dosad´ıme souˇradnice nˇejak´eho bodu (xi, yi), pak mnoˇzina

vˇsech moˇzn´ych ˇreˇsen´ı (r, θ) vytvoˇr´ı v Houghovˇe prostoru spojitou kˇrivku. Jestliˇze si t´ımto zp˚usobem prom´ıtneme do Houghova prostoru vˇsechny body leˇz´ıc´ı na nˇejak´e pˇr´ımce p, pak uvid´ıme, ˇze kˇrivky odpovidaj´ıc´ı jednotliv´ym bod˚um (xi, yi) se protnou v jedin´em bodˇe

(rmax, θmax). Tato dvojice jsou ve skuteˇcnosti hledan´e parametry pˇr´ımky p. [19]

2.1.2 Hranov´e detekce

Jelikoˇz pozn´avac´ı znaˇcka je vˇzdy ohraniˇcen´eho obd´eln´ıkov´eho tvaru, samozˇrejmˇe r˚uznˇe natoˇcen´a, lze ji v obraze nal´est pomoc´ı detekce hran (obvodov´e hrany ˇci hrany p´ısmen uvnitˇr). Pokud hranu definujeme jako velkou zmˇenu jasov´e funkce, bude v m´ıstˇe hrany velk´a hodnota derivace jasov´e funkce. Maxim´aln´ı hodnota derivace bude ve smˇeru kolmo na hranu. Kv˚uli jednoduˇsˇs´ımu v´ypoˇctu se ale hrany detekuj´ı jen ve dvou, resp. ve ˇctyˇr smˇerech. Velk´a skupina metod na detekci hran aproximuje tuto derivaci pomoc´ı konvoluce s vhodn´ym j´adrem. Nejjednoduˇsˇs´ı takov´a jsou (-1 1) a (-1, 1)T, pˇr´ıpadnˇe (-1, 0, 1) a (-1, 0, 1)T. [20] V n´asleduj´ıc´ıch podkapitol´ach jsou uvedeny pˇr´ıklady zp˚usob˚u detekc´ı hran. Konvoluˇcn´ı matice

Kaˇzd´y obrazov´a operace (filtr) je definov´ana konvoluˇcn´ı matic´ı. Ta urˇcuje, jak´ym zp˚usobem je dan´y pixel (reprezentov´an uprostˇred matice) ovlivnˇen okoln´ımi pixely (obr. 2.1). Pixel y je ovlivnˇen pixely x0. . . x8 podle vzorce:

y = x0xm0+ x1xm1+ x2xm2+ x3xm3+ x4xm4+ x5xm5+ x6xm6+ x7xm7+ x8xm8 (2.2)

Vertik´aln´ı a horizont´aln´ı hranov´a detekce

Detekovat horizont´aln´ı resp. vertik´aln´ı hrany m˚uˇzeme jednoduˇse pomoc´ı matice mhe resp.

mve (obr. 2.2). Pokud bychom pouˇzili vˇetˇs´ı matice, dok´aˇzeme zdetekovat i silnˇejˇs´ı hrany.

[15]

Sobelova hranov´a detekce

Sobelova detekce hran pouˇz´ıv´a p´ar konvoluˇcn´ıch matic o velikosti 3x3. Prvn´ı je urˇcena k ohodnocen´ı vertik´aln´ıch a druh´y horizont´aln´ıch hran (obr. 2.3). V´ysledn´y pixel se pot´e vypoˇc´ıt´a ze vzorce:

|G| =qG2

x+ G2y (2.3)

V praxi se ale pouˇz´ıv´a rychlejˇs´ı verze vzorce:

(10)

Obr´azek 2.1: Pixel je ovlivnˇen soused´ıc´ımi pixely podle konvoluˇcn´ı matice. [15]

Obr´azek 2.2: Pixel je ovlivnˇen soused´ıc´ımi pixely podle konvoluˇcn´ı matice. [15]

(11)

Obr´azek 2.4: V´ysledky aplikov´an´ı rank filtru a hranov´ych detekc´ı. [15]

Rank filtry

Pˇredevˇs´ım horizont´alnˇe a vertik´alnˇe orientovan´e rank-filtry jsou pouˇz´ıv´any k detekci shluk˚u hran v m´ıstˇe znaˇcky. ˇS´ıˇrka matice pro horizont´alnˇe orientovan´y rank filtr je mnohem vˇetˇs´ı neˇz jej´ı v´yˇska (a obr´acenˇe pro vertik´alnˇe orientovan´y filtr). K zachov´an´ı celkov´e intenzity obrazu je nutn´e nahradit kaˇzd´y pixel pr˚umˇerem intenzity pixel˚u pˇrekryt´ych matic´ı. [15]

Konvoluˇcn´ı matice tedy splˇnuje:

w−1 X i=0 h−1 X j=0 mhr[i, j] = 1.0 (2.5)

kde w a h jsou rozmˇery matice.

2.1.3 Horizont´aln´ı a vertik´aln´ı projekce

Po ˇradˇe konvoluˇcn´ıch operac´ı m˚uˇzeme zdetekovat znaˇcku pomoc´ı statistick´ych anal´yz v obraze. Existuje jich cel´a ˇrada, j´a zde uvedu pouze horizont´aln´ı a vertik´aln´ı projekci. Pokud vstupn´ı obr´azek definujeme funkc´ı f (x, y), vertik´aln´ı projekce py funkce f v bodˇe y je souˇcet

vˇsech

”v´yznamn´ych“ pixel˚u v y-t´em ˇr´adku. Podobnˇe horizont´aln´ı projekce v bodˇe x funkce f je souˇcet pixel˚u v x-t´em sloupci.

Pokud tuto projekci poˇc´ıt´ame z obrazu po proveden´ı vertik´aln´ı hranov´e detekce, velikost kˇrivky v urˇcit´em bodˇe reprezentuje v´yskyt vertik´aln´ıch hran na dan´em ˇr´adku. Z vertik´aln´ıho grafu (obr. 2.5) lze vyˇc´ıst vertik´aln´ı polohu dopravn´ı znaˇcky. Obdobnˇe m˚uˇze b´yt pouˇzita horizont´aln´ı projekce podle osy x.

(12)

Obr´azek 2.5: Vertik´aln´ı projekce v obraze. [15]

2.1.4 Konkr´etn´ı metody

V t´eto kapitole uv´adˇen´e metody jsou reprezentativn´ım vzorkem pˇr´ıstup˚u. Vˇsechny ostatn´ı metody zaloˇzen´e na zpracov´an´ı obrazu se liˇs´ı kombinacemi pouˇzit´ych zp˚usob˚u zpracov´an´ı ˇ

ci r˚uzn´ymi typy optimalizac´ı, principy detekce vˇsak z˚ust´avaj´ı stejn´e.

An Efficient Implementation of the Hough Transform for Detecting Vehicle License Plates Using DSP

V roce 1995 zveˇrejnili Varsha Kamat a Subramaniam Ganesan metodu detekce pozn´avac´ı znaˇcky pomoc´ı Houghovy transformace. Rozhodl jsem se tuto metodu zm´ınit, protoˇze z tohoto ˇcl´anku vych´az´ı mnoho dalˇs´ıch metod, coˇz dokazuj´ı zejm´ena ˇcetn´e citace.

Nejdˇr´ıve pouˇzili Sobelovu detekci hran na obr´azek ve stupn´ıch ˇsedi. Na nˇej pot´e apliko-vali adaptivn´ı prahov´an´ı, pr´ah poˇc´ıtali z pr˚umˇern´eho jasu. N´asleduje jiˇz zm´ınˇen´a Houghova transformace k detekci pˇr´ımek v obraze. Ze vˇsech pˇr´ımek byly vybr´any pouze ty horizont´aln´ı a vertik´aln´ı. Z nich pot´e hledaj´ı spojen´e pˇr´ımky do obd´eln´ıku. [19]

Ide´aln´ı nalezen´y ˇrˇetˇez pˇr´ımek, kter´y by mˇel detekovat znaˇcku by mˇel obsahovat 4 pˇr´ımky (4 strany obd´eln´ıka) a mus´ı spˇnovat:

• pˇr´ımky naproti sobˇe maj´ı stejn´e x resp. y souˇradnice poˇc´ateˇcn´ıho a koncov´eho bodu (z´aleˇz´ı pokud jsou horizont´aln´ı ˇci vertik´aln´ı), coˇz znamen´a, ˇze jsou stejn´e dlouh´e • d´ale tyto pˇr´ımky jsou rovnobˇeˇzn´e

• pˇril´ehaj´ıc´ı pˇr´ımky pˇr´ımky jsou v ´uhlu 90◦

K testov´an´ı byla pouˇzita statick´a kamera, zab´ıraj´ıc´ı automobily v konstantn´ım ´uhlu. Pˇresnost detekce nen´ı v ˇcl´anku uvedena. Je zˇrejm´e, ˇze metoda nen´ı robustn´ı a pˇri testov´an´ı

(13)

Obr´azek 2.6: Na prvn´ım obr´azku je provedena hranov´a detekce, na druh´em po proveden´e Houghovˇe transformaci

na ˇsirok´e ˇsk´ale obr´azk˚u by nemˇela velk´y ´uspˇech. Je to vˇsak jedna z prvn´ıch metod pro detekci znaˇcek.

An Efficient Features Based License Plate Localization Method

Hamid Mahini, Shohreh Kasaei, Faezeh Dorri a Fatemeh Dorri zaloˇzili svoji metodu na klasick´e kombinaci nalezen´ı kandid´atn´ıch region˚u a jejich ovˇeˇren´ı pomoc´ı vlastnost´ı hledan´e pozn´avac´ı znaˇcky. [14] Pˇri hled´an´ı kandid´atn´ıch region˚u pouˇz´ıvaj´ı pˇredevˇs´ım toho, ˇze znaˇcka m´a mnoho vertik´aln´ıch hran, kter´e vytv´aˇr´ı tmav´e znaky na svˇetl´em pozad´ı. D´ale pak tak´e toho, ˇze intenzita kaˇzd´eho pixelu na znaˇcce je t´emˇeˇr stejn´a pro vˇsechny tˇri barevn´e ˇc´asti (R, G, B), bud’ jsou pixely b´ıl´e nebo ˇcern´e.

K nalezen´ı vertik´aln´ıch hran pouˇz´ıvaj´ı sobelovu vertik´aln´ı masku. Z´ıskan´e hrany jeˇstˇe vyhlad´ı. K odstranˇen´ı ˇsumu typu

”pepˇr a s˚ul“ pouˇzili 5x5 medi´anov´y filtr. Na obr´azku2.7 je p˚uvodn´ı a zpracov´an´y obr´azek.

Ke koneˇcn´emu nalezen´ı kandid´at˚u jsou jeˇstˇe zapotˇreb´ı dalˇs´ı dva obr´azky. Prvn´ı vytvoˇrili z p˚uvodn´ıho obr´azku nastaven´ım pixel˚u na 1, pokud jejich intenzita vˇsech tˇr´ı sloˇzek (R,G,B) je shodn´a, ostatn´ı nastavili na 0. Druh´y obsahuje pouze regiony, kter´e maj´ı svˇetl´e pozad´ı (obr.2.8). Tyto tˇri obr´azky slouˇcili. Vybrali kandid´aty, na kter´e jeˇstˇe aplikovali prahov´an´ı (hodnota prahu uvedena nen´ı).

Aby byly z´ıskan´e regiony oznaˇceny jako pozn´avac´ı znaˇcka, mus´ı splnit n´asleduj´ıc´ı krit´eria: • region nesm´ı b´yt pˇr´ıliˇs mal´y

• tvar regionu by mˇel b´yt podobn´y obd´eln´ıku a pomˇer mezi ˇs´ıˇrkou a v´yˇskou mus´ı b´yt mezi 2 aˇz 10.

• pr˚umˇern´a intenzita mus´ım b´yt dostateˇcnˇe svˇetl´a • region by se nemˇel dot´ykat okraje obr´azku • natoˇcen´ı regionu nesm´ı b´yt vˇetˇs´ı jak 35%

Testov´an´ı metody bylo prov´adˇeno na sadˇe obr´azk˚u o velikosti 800x600 pixel˚u zachy-cuj´ıc´ı re´aln´e sc´eny. Obr´azky byly poˇr´ızeny za r˚uzn´ych povˇetrnost´ıch podm´ınek, z r˚uzn´ych ´

(14)

Obr´azek 2.7: P˚uvodn´ı z zpracovan´y obr´azek. [14]

(podle autor˚u). Autoˇri vyzdvihuj´ı vlastnost algoritmu detekovat i znaˇcky uˇz od velikosti 1/50 velikosti p˚uvodn´ıho obr´azku (pˇri velk´em rozliˇsen´ı, jinak je hranice v´yˇsky znaˇcky 10px). Ostatn´ı podobn´e metody se pohybuj´ı okolo hranice 5% velikosti obrazu ˇci tuto vlastnost v˚ubec nemiˇnuj´ı.

Metoda byla otestov´ana na 269 obr´azc´ıch, 13 z nich ˇz´adnou znaˇcku neobsahovaly. Algo-ritmus v tˇechto 13 obr´azc´ıch ˇz´adnou znaˇcku nedetekoval, ve zbyl´ych byl ´uspˇeˇsn´y z 96.5%. Rychlost se pohybuje kolem 300ms/obr´azek. Na z´avˇer je zd˚uraznˇena robustnost algoritmu v˚uˇci rozd´ıln´ym svˇeteln´ym podm´ınk´am, st´ın˚um, mal´ym obr´azk˚um a natoˇcen´ı.

Vehicle License Plate Location Based on Histogramming and Mathematical Morphology

Tato metoda reprezentuje skupinu metod vyuˇz´ıvaj´ıc´ı histogramy obrazu. Popsali ji Feng Yang a Zheng Ma. [10] Pozn´avac´ı znaˇcku detekuj´ı ve ˇctyˇrech f´az´ıch:

• hrub´a detekce region˚u zaloˇzen´a na zpracov´an´ı histogramu • extrakce kandid´atn´ıch region˚u

• urˇcen´ı vertik´aln´ı polohy znaˇcky za pomoc´ı matematick´e morfologie • pˇresn´e urˇcen´ı polohy znaˇcky pomoc´ı pˇr´ıznak˚u pozn´avac´ı znaˇcky

Diagram 2.9 zn´azorˇnuje pr˚ubˇeh pouˇzit´eho algoritmu. V prvn´ı ˇc´asti se vyuˇzije toho, ˇze znaˇcka se skl´ad´a z ˇcern´ych p´ısmen na b´ıl´em pozad´ı, ˇcili po pˇrevodu obr´azku do stupˇn˚u ˇsedi maj´ı jinou hodnotu. Vypoˇc´ıt´ame pr˚umˇernou zmˇenu gradientu. V m´ıstech nˇejvˇetˇs´ıho v´yskytu pˇrechod˚u lze oˇcek´avat pozn´avac´ı znaˇcku (obr. 2.10). Takto

”hrubˇe“ lze nal´est kandid´atn´ı regiony. Vertik´aln´ı gradient lze snadno vypoˇc´ıtat ze vzorce

gv(i, j) = |f (i, j a 1) − f (i, j)|. (2.6)

Z obr´azku 2.10 je patrn´e, ˇze region obsahuj´ıc´ı znaˇcku bude m´ıt velkou hodnotu hori-zont´aln´ı projekce. Horizont´aln´ı projekce vertik´aln´ıho gradientu je zn´azornˇena na grafu2.11. Jak je ovˇsem vidˇet z grafu, nen´ı snadn´e vybrat jednoznaˇcnˇe jeden vrchol, kter´y by detekoval

(15)

Obr´azek 2.8: a)hrany po konvoluci b)kandid´atmn´ı regiony c)zpracov´avan´e kandid´atn´ı regi-ony d)um´ıstˇen´ı znaˇcky [14]

(16)

znaˇcku v obraze. Proto je pouˇzit Gaussov´y filtr, jehoˇz v´ystup je na obr´azku2.12. Po pouˇzit´ı filtru je jiˇz moˇzn´e urˇcit vrchol kˇrivky.

K z´ısk´an´ı kandid´atn´ıch region˚u nyn´ı pouˇzili dvˇe vlastnosti znaˇcek. Pozn´avac´ı znaˇcka leˇz´ı nejˇcastˇeji ve spodn´ı obrazu a maxima v horizont´aln´ı projeci znaˇc´ı moˇznou horizont´aln´ı polohu znaˇcky. C´ılem je tedy nal´est maxima a minima jednotliv´ych vln kˇrivky, porovnat je a z´ıskat nejpravdˇepodopnˇejˇs´ı horizont´aln´ı pozici znaˇcek. Z p˚uvodn´ıho obr´azku je vyˇr´ıznut pruh s potenci´aln´ı znaˇckou (obr.2.13).

Stejnˇe jako provedli horizont´aln´ı projekci vertik´aln´ıho gradientu, pouˇzili postupnˇe na vˇsechny kandid´atn´ı regiony vertik´aln´ı projekci horizont´aln´ıho gradientu. Matematick´a mor-fologie je neline´arn´ı filtr k odstranˇen´ı ˇsumu, extrakci pˇr´ıznak˚u a ˇclenen´ı obrazu. Z´akladn´ı operace jsou eroze a dilatace. Oznaˇcili vertik´aln´ı projekci p´ısmenem A, pouˇzili jedno-dimenzion´aln´ı prvek B k dilataci prvku A. V´ysledek oznaˇcili jako C. Pot´e oznaˇcili prvek D urˇcen´y k erozi prvku C pˇri v´ysledku E.

K pozdˇejˇs´ımu vykreslen´ı znaˇcky, ke zrychlen´ı a zv´yˇsen´ı pˇresnosti detekce, vybrali struk-turu sloˇzky podle geometrick´ych vlastnost´ı vlastn´ı pozn´avac´ı znaˇcky. Pˇredpokl´adali, ˇze maxim´aln´ı mezera mezi znaky na znaˇcce bude a, v´yˇska znak˚u potom 4B. D´elka struktury B by mˇela b´yt (2a + 1) a struktury D (2b + 1). Z ˇrady test˚u vyˇsla hodnota a = 15 a b = 10. V´ysledek tˇechto operac´ı je zn´azornˇen na grafu 2.14.

N´aslednˇe provedli prahov´an´ı s prahem t = 1.23 (hodnota urˇcena pˇri testov´an´ı) a vytvoˇr´ı ˇ

cernob´ıl´y obraz (obr. 2.15). Pˇri pr˚uchodu se zapamatuj´ı pˇrechody mezi b´ılou a ˇcernou a z nich se vypoˇc´ıtaj´ı ˇs´ıˇrky potenci´aln´ıch znaˇcek, ty s malou odstran´ı. D´ale se odstran´ı i regiony s pˇr´ıliˇs mal´ym ˇci pˇr´ıliˇs velk´ym pomˇerem v´yˇsky a ˇs´ıˇrky. Zbyl´e regiony obsahuj´ı pozn´avac´ı znaˇcku.

Metodu testovali na 360 obr´azc´ıch r˚uzn´ych sc´en a s odliˇsn´ymi podm´ınkami re´aln´eho svˇeta (natoˇcen´ı, osvˇetlen´ı, atd.). Velikost testovac´ıch obr´azk˚u byla 600x450px. Pˇresnost detekce ud´avaj´ı 97.78%. Pˇri osmi obr´azc´ıch detekce selhala. O rychlosti se v ˇcl´anku nezmiˇnuj´ı.

2.2

Metody zaloˇ

zen´

e na AdaBoostu

Jako pˇr´ıklad zde m˚uˇzeme uv´est metodu prezentovanou L. Dlagnekovem

”License Plate Detection Using AdaBoost“. [5] Zab´yv´a se probl´emem, jak dobˇre lze metody zaloˇzen´e na detekci objekt˚u vyuˇz´ıvaj´ıc´ı rozpozn´av´an´ı textu a detekci obliˇceje vyuˇz´ıt v probl´emu de-tekce pozn´avac´ıch znaˇcek. Siln´y klasifik´ator tr´enovan´y AdaBoost algoritmem slouˇz´ı k roz-pozn´av´an´ı ˇc´ast´ı obr´azku se znaˇckou a bez n´ı.

2.2.1 Sada dat

Podle ˇcl´anku byla pouˇzita sada 1500 obr´azk˚u. Normalizace pouˇzita nebyla, protoˇze nemˇela pˇr´ıliˇsn´y vliv na v´ysledky a je v´ypoˇcetnˇe n´aroˇcnˇejˇs´ı. Pˇr´ıklady negativn´ıch region˚u (neobsahuj´ı znaˇcku) o velikosti 45 x 15 px, byly z´ısk´any n´ahodnˇe z obr´azk˚u, o kter´ych se v´ı, ˇze neobsahuj´ı pozn´avac´ı znaˇcku. Tˇech pouˇzili 5431.

2.2.2 V´ybˇer pˇr´ıznak˚u

AdaBoost (Adaptive Boosting) je metoda, kter´a umoˇznuje vhodn´e spojen´ı nˇekolika slab´ych klasifik´ator˚u do jednoho tzv. siln´eho klasifik´atoru. Vytv´aˇr´ı klasifikace dle souˇctu vah vy-bran´ych slab´ych klasifik´ator˚u. Vstupem slab´ych klasifik´ator˚u m˚uˇze b´yt pouze jeden pˇr´ıznak

(17)
(18)

Obr´azek 2.10: Vertik´aln´ı gradient obr´azku. [10]

(19)

Obr´azek 2.12: Horizont´aln´ı projekce po Gaussovˇe filtru. [10]

Obr´azek 2.13: Kandid´atn´ı region. [10]

Obr´azek 2.14: Vertik´aln´ı projekce po proveden´ı dilatace a eroze. [10]

(20)

Obr´azek 2.16: Pˇr´ıklad pˇr´ıznak˚u vybran´ych AdaBoostem. [5]

Obr´azek 2.17: Pˇr´ıklad pˇr´ıznak˚u vybran´ych AdaBoostem. [5]

a odpovˇed’ mus´ı b´yt alespoˇn o nˇeco lepˇs´ı neˇz n´ahodn´e rozhodnut´ı.

Viola a Jones vyuˇz´ıvaj´ı Haarovy pˇr´ıznaky, kde je vypoˇc´ıt´an souˇcet intenzit pixel˚u v dan´e obd´eln´ıkov´e ˇc´asti obr´azku. Je ˇz´adouc´ı vybrat pˇr´ıznaky, kter´e vytv´aˇrej´ı stejn´e v´ysledky na vˇsechny sn´ımky s pozn´avac´ı znaˇckou a jsou dostateˇcnˇe r˚uzn´e od obr´azk˚u bez znaˇcky. Pro zpracov´an´ı bylo urˇceno 2400 pˇr´ıznak˚u, varianty Haarov´ych pˇr´ıznak˚u, ale v´ıce generalizovan´e. Nakonec bylo vybr´ano 100 pˇr´ıznak˚u, pˇr´ıklady nˇekter´ych prvn´ıch pˇr´ıznak˚u na obr´azku2.16. Na obr´azku2.17 je zn´azornˇena chyba siln´eho klasifik´atoru na tr´enov´ac´ı sadˇe.

2.2.3 Shrnut´ı

Dlagnekov rovnˇeˇz vyzkouˇsel optimalizaci Violy a Jonese s kask´adov´ym uspoˇr´ad´an´ım klasi-fik´ator˚u. Kaˇzd´y m´a jin´e false-positive a false-negative hodnocen´ı, coˇz urychluje prohled´av´an´ı segment˚u obr´azku. Kv˚uli ˇcasov´e n´aroˇcnosti algoritmu vˇsak nebyla tato pˇresnˇejˇs´ı optimali-zace implementov´ana. [16]

Na testovac´ıch datech byla dosaˇzena pˇresnost 95.6% pˇri 5.7% false-positive. False-positive (tedy regiony oznaˇcen´e jako znaˇcky, kter´e znaˇcku neobsahuj´ı) byly redukov´any pomoc´ı shlukov´an´ı region˚u do skupin a vylouˇcen´ı skupin s m´enˇe ˇcleny. D´ale byly pouˇzity

(21)

Obr´azek 2.18: False-negative detekce vzhledem k ´uhlu natoˇcen´ı. [11]

filtry zaloˇzen´e na barevn´em obsahu, jelikoˇz vˇetˇsina false-positive byla zp˚usobena vegetac´ı, kter´a m´a velkou zelenou sloˇzku.

2.3

Metody zaloˇ

zen´

e na rozpozn´

an´ı extr´

emn´ıch region˚

u

Extr´emn´ı region je ohraniˇcen´a skupina pixel˚u, kter´a m´a niˇzˇs´ı nebo vyˇsˇs´ı jas (lok´aln´ı extr´em) neˇz okol´ı po cel´em obvodu. S metodou pouˇzit´ı deskriptory extr´emn´ıch region˚u pˇriˇsli Jiˇr´ı Matas a Karel Zimmermann z ˇCVUT. V ˇcl´anku s n´azvem

”Unconstrained Licence Plate and Text Localization and Recognition“ upravili MSER detektor (viz. 3.1.5) k detekci pozn´avac´ıch znaˇcek. [11]

Nejdˇr´ıve detekuj´ı extr´emn´ı regiony. Proces v´yˇctu region˚u je pˇribliˇznˇe line´arnˇe sloˇzit´y k poˇctu pixel˚u v obrazu a pˇribliˇzn´a rychlost je 10 sn´ımk˚u za sekundu pˇri velikosti 700x500px. Probl´em je vˇsak urˇcit ze vˇsech region˚u ty relevantn´ı. Metoda je zaloˇzena na rozpozn´an´ı extr´emn´ıch region˚u, kter´e mohou b´yt p´ısmena. Ze vˇsech region˚u vyb´ır´a relevantn´ı regiony klasifik´ator (tr´enovan´y AdaBoostem), kter´y byl tr´enov´an v tomto pˇr´ıpadˇe na 1600 znac´ıch. Pops´an´ı a ohodnocen´ı region˚u prob´ıh´a v konstantn´ım ˇcase. Nejvˇetˇs´ı mnoˇzstv´ı tˇechto za sebou jdouc´ıch region˚u je oznaˇceno jako znaˇcka, krit´eriem je hlavnˇe mnoˇzstv´ı vˇetˇs´ı neˇz 3 a konstantn´ı v´yˇska.

Uveden´a pˇresnost je 98%, ovˇsem test byl proveden pouze na 70 obr´azc´ıch. False-positive byla 1 ve 20 obr´azc´ıch bez znaˇcky. Rychlost celkov´e detekce je 1.1s pˇri velikosti obr´azku 640x480px a 0.25s pˇri velikosti 320x240px. Hlavn´ı pˇrednost´ı t´eto metody by mˇela b´yt robust-nost v˚uˇci natoˇcen´ı znaˇcky. Tabulka zachycuj´ıc´ı m´ıru false-negative (tedy nezdetekovan´ych znaˇcek) v z´avislosti na ´uhlu natoˇcen´ı znaˇcky je uveden v tabulce 2.18. D´ale uv´adˇej´ı, ˇze metoda dok´aˇze zdetekovat znaˇcky jiˇz od velikosti 7-8 pixel˚u, coˇz by v tomto smˇeru pˇredˇc´ı vˇsechny jiˇz zm´ınˇen´e metody. Metoda d´ale dok´aˇze nal´est i zˇc´asti zakrytou znaˇcku (obr.2.19).

2.3.1 Shrnut´ı

Je velmi obt´ıˇzn´e porovn´avat jednotliv´e uveden´e ˇci pˇr´ıbuzn´e metody, jelikoˇz nebyly mˇeˇreny na stejn´e testovac´ı sadˇe. Kaˇzd´y ˇcl´anek (psan´y autory) vychvaluje poctivˇe dan´y pˇr´ıstup, vyzdvihuje robustnost a pˇresnost metody. Z ˇcl´anku nav´ıc nelze metody spolehlivˇe pˇrevz´ıt, autoˇri si chr´an´ı sv´e know-how, vˇetˇsinou se jedn´a o nastaven´ı promˇenn´ych, pouˇzit´ych para-metrech konvoluˇcn´ıch matic, atd. T´ım je ovˇsem znemoˇznˇeno porovn´an´ı metod.

Pˇresto lze urˇcit pˇresnost metod okolo 95%, pokroˇcil´e metody jsou jiˇz robustn´ı v˚uˇci osvˇetlen´ı, natoˇcen´ı ˇci r˚uzn´ym st´ın˚um. Pˇredevˇs´ım u metod zaloˇzen´ych na zpracov´an´ı obrazu potom rychlost z´aleˇz´ı na velikosti obrazu, ale obecnˇe se pohybuje okolo 1-5 sn´ımk˚u za sekundu. Samozˇrejmˇe hodnˇe z´aleˇz´ı na pouˇzit´em hardwarov´em zaˇr´ızen´ı.

(22)
(23)

Kapitola 3

Visu´

aln´ı slova pro detekci

Jak je z pˇredchoz´ı kapitoly zˇrejm´e, metod k detekci pozn´avac´ı znaˇcky existuje velk´a ˇrada. Jelikoˇz nen´ı c´ılem m´e pr´ace pouze implementovat ˇci ovˇeˇrit nˇekterou z uveden´ych metod, pokus´ım se vyuˇz´ıt nˇekolik typ˚u lok´aln´ıch detektor˚u 3.1. Ve spojen´ı s jiˇz zn´amou metodou obecn´eho rozpozn´av´an´ı objekt˚u v obraze, tzv.

”general object detection and classification“ [7], bych je r´ad vyzkouˇsel pro detekci znaˇcek. C´ılem tedy bude porovnat a zjistit, kter´e lok´aln´ı detektory jsou pro detekci znaˇcky v obraze vhodn´e a kter´e nikoliv.

Konkr´etnˇe se jedn´a o metodu, kdy se z tr´enovac´ıch dat z´ıskaj´ı vektory pˇr´ıznak˚u v´yznaˇcn´ych bod˚u z´ıskan´ych detektory a z nich se pot´e shlukov´an´ım vytvoˇr´ı vizu´aln´ı slovn´ık. Takov´y slovn´ık obsahuje vˇetˇsinou nˇekolik tis´ıc slov a je posl´eze pouˇzit pro detekci znaˇcky v obraze. V t´eto kapitole bude vysvˇetlen teoretick´y z´aklad pouˇzit´ych lok´aln´ıch detektor˚u a n´asledn´e cel´eho budouc´ıho klasifik´atoru. Pops´any budou detailnˇe vˇsechny d´ılˇc´ı ˇc´asti aplikace vˇcetnˇe jejich v´yznamu a principu pouˇzit´ı.

Podle anotac´ı tr´enovac´ıch dat m˚uˇzeme u kaˇzd´eho slova ve slovn´ıku urˇcit pravdˇepodobnost, s jakou popisuje n´ami hledan´y objekt. Detekce je pot´e zaloˇzena na nalezen´ı

”nejbliˇzˇs´ıho slova“ k z´ıskan´emu pˇr´ıznakov´emu vektoru v´yznaˇcn´ych bod˚u z´ıskan´ych detektory. T´ım zjist´ıme i pravdˇepodobnost, se kterou se dan´y bod vyskytuje v hledan´em objektu, v naˇsem pˇr´ıpadˇe ve znaˇcce.

3.1

Lok´

aln´ı detektory

Jak bylo naznaˇceno v ´uvodu cel´e t´eto kapitoly, pro detekci se vyuˇzij´ı v´yznaˇcn´e body, kter´e jsou detekov´any lok´aln´ımi detektory. Jelikoˇz vˇsechny detektory hledaj´ı jin´e druhy bod˚u v obraze, vyzkouˇs´ım a porovn´am v´ıce z nich. Tato kapitola tedy tvoˇr´ı nezbytn´y teoretick´y ´

uvod k jednotliv´ym nejzn´amˇejˇs´ım lok´aln´ım detektor˚um.

Zamˇeˇr´ım se na pˇet typ˚u detektor˚u: detektory zaloˇzeny na normalizaci okolo Harrisov´ych bod˚u (Harris-affine) 3.1.1, detektory zaloˇzeny na detekc´ıch hran EBR (3.1.2) a hled´an´ı extr´em˚u intenzity IBR (3.1.3). D´ale uvedu a srovn´am detektory a deskriptory SIFT a SURF (3.1.4). [6] Na z´avˇer uvedu jeˇstˇe pro srovn´an´ı i detektor MSER, kter´y byl pouˇzit pro detekci znaˇcky, jak je pops´ano v ˇc´asti 2.3. Ten ovˇsem nedetekuje v´yznaˇcn´e body, ale cel´e regiony. Nebyl tak v pro n´aslednou detekci vyuˇzit.

(24)

Obr´azek 3.1: Harris-affine regions. [6]

3.1.1 Harris-affine Detektory oznaˇcovan´e jako

”Harris-affine“ vyb´ıraj´ı v´yznaˇcn´e body (rohov´e) v obraze, pot´e provedou anal´yzu Gaussova prostoru a na z´avˇer afin´ı normalizaci vyuˇz´ıvaj´ıc´ı iterativn´ı ”adaptive shape adaptation“ algoritmus k urˇcen´ı pˇresn´eho tvaru elipsy. [12]

Rohov´y bod je charakteristick´y v´yraznou zmˇenou intenzity ve v´ıce smˇerech. Harris-Laplace detektor kombinuje tradiˇcn´ı 2D Harris˚uv detektor v´yznaˇcn´ych bod˚u s Gaussovsk´ym popisem prostoru za ´uˇcelem vytvoˇren´ı prostorovˇe invariantn´ıho detektoru.

Na tomto pˇredpokladu je postavena n´asleduj´ıc´ı matice (oznaˇcov´ana jako autokorelaˇcn´ı): M = µ(x, σ1, σD) = µ11 µ12 µ21 µ22 = σ2Dg(σI) ∗ Ix2(x, σD) IxIy(x, σD) IxIy(x, σD) Iy2(x, σD) , (3.1) kde g(σD) je gaussovsk´e j´adro s vahou σD, I(x) je gaussovsky vyhlazen´y obraz. Ix(x, σD)

je derivace v dan´em smˇeru aplikov´ana na vyhlazen´y obraz vypoˇc´ıt´ana pouˇzit´ım gaussova j´adra s vahou σD.

D´ale je pomoc´ı iteraˇcn´ı algoritmu (zveˇrejnˇen´eho Lindenbergem v roce 1998) je urˇcena cha-rakteristick´y v´yznam pro vˇsechny nalezen´e body. Dalˇs´ım iteraˇcn´ım algoritmem najdeme afin´ı eliptick´y region, kter´y popisuje dan´y v´yznaˇcn´y bod. Pˇr´ıklad region˚u jsou na obr´azku

3.1.

3.1.2 EBR

EBR je zkratka spojen´ı

”An Edge-based Region Detector“. Tato kapitola tedy popisuje de-tekci afin´ıch kovariantn´ıch region˚u vyuˇz´ıvaj´ıc´ı hrany v obraze. Hrany jsou pomˇernˇe stabiln´ı pˇr´ıznak, kter´e lze detekovat ve velk´em rozsahu natoˇcen´ı ˇci osvˇetlen´ı obrazu. Nav´ıc vyuˇzit´ım geometrie hran poˇcet dimenz´ı probl´emu lze v´yznamnˇe sn´ıˇzit, dokonce aˇz na jednu dimenzi. [18]

V praxi se vych´az´ı z v´yznaˇcn´ych bod˚u z´ıskan´ych Harrisov´ym detektorem a pˇr´ısluˇsn´ych hran extrahovan´ych pomoc´ı Cannyho detektoru. Na pˇr´ıkladu 3.2 je na hranˇe l vyznaˇcen v´yznamn´y bod (roh) p a k nˇemu dva body p1 a p2, pro kter´e plat´ı:

li =

Z

(25)

Obr´azek 3.2: Rohov´y bod. [18]

kde si je parametr kˇrivky, p(1)i (si) je prvn´ı derivace pi(si), abs() znaˇc´ı absolutn´ı hodnotu

a | . . . | determinant. Tedy c´ılem je nal´est takov´e body, kde plocha mezi pˇr´ım´ym spojen´ım < p, p1 > a pˇr´ısluˇsnou kˇrivkou mezi body je rovna ploˇse mezi pˇr´ım´ym spojen´ım < p, p2 >

a pˇr´ısluˇsnou kˇrivkou (tedy l1 = l2).

V´yslednˇe tedy pro kaˇzdou hodnotu l, dva body p1a p2a roh p definujeme rovnobˇeˇzn´ık. Z

takto zjiˇstˇen´e skupiny rovnobˇeˇzn´ık˚u vybereme jeden, pro nˇehoˇz proch´az´ı n´asleduj´ıc´ı formule extr´emem: Inv1 = abs( |p1− pgp2− pg| |p − p1p − p2| ) M 1 00 pM2 00M000(M001 )2 (3.3) Inv1 = abs( |p−pgg − pg| |p − p1p − p2| ) M 1 00 pM2 00M000 (M001)2 , (3.4) kde Mpqn = Z δ In(x, y)xpyqdxdy (3.5) pg= ( M101 M1 00 ,M 1 01 M1 00 ). (3.6)

Mpqn je n-t´eho ˇr´adu a (p+g)-t´eho stupnˇe vypoˇc´ıtan´eho nad dan´ym regionem δ(l). pg je

tˇeˇziˇstˇe regionu poˇc´ıt´ano skrz intenzitu I(x, y) a q je druh´y roh rovnobˇeˇzn´ıku neˇz nalezen´y bod p.

Probl´emem jsou pˇr´ım´e hrany (pˇr´ımky), u kter´ych je obsah plochy mezi pˇr´ım´ym spojen´ım bod˚u a kˇrivkou u vˇsech bod˚u rovna 0. V tˇechto pˇr´ıpadech lze vˇsak jednoduˇse pouˇz´ıt metodu oznaˇcuj´ıc´ı pr˚useˇc´ıky dvou pˇr´ımek. Pˇr´ıklad detekce pomoc´ı EBR je na obr´azku 3.3

3.1.3 IBR

IBR je zkratka spojen´ı

”Intensity Extrema-Based Region Detector“, oznaˇcuje tedy zp˚usob detekce region˚u zaloˇzen´ych na hled´an´ı extr´em˚u intenzity v obraze. Konkr´etnˇe hledaj´ı re-giony, kter´e zaˇc´ınaj´ı v m´ıstech lok´aln´ıch extr´em˚u intenzity a d´ale prozkoum´av´a okol´ı v paprsc´ıch. Nelezen´e regiony jsou oznaˇceny elipsou co moˇzn´a nejlepˇs´ıho tvaru. [18]

Kaˇzd´y paprsek je ohodnocen n´asleduj´ıc´ı rovnic´ı: fI(t) = abs(I(t) − I0) max( Rt 0abs(I(t)−I0)dt t , d) , (3.7)

(26)

Obr´azek 3.3: EBR [6]

Obr´azek 3.4: IBR [6]

kde t je libovoln´y parametr paprsku, I(t) je intenzita na pozici t, I0 je intenzita extr´emu a d

je mal´e ˇc´ıslo, kter´e m´a zabr´anit dˇelen´ı nulou. Typicky metoda dok´aˇze zdetekovat pˇredevˇs´ım regiony, ve kter´ych prudce kles´a ˇci stoup´a intenzita. Pot´e jsou vybr´any pouze body, pro nˇeˇz zm´ınˇen´a funkce dos´ahne maxima, vytvoˇr´ı se tak robustn´ı detektor. Na z´avˇer je vˇetˇsinou nepravideln´y region ohraniˇcen elipsou, jak je vidˇet na obr´azku3.4.

3.1.4 SIFT a SURF

Tuto podkapitolu vˇenuji detektor˚um a deskriptor˚um SIFT (Scale-invariant feature trans-form) a SURF (Speeded Up Robust Feature). Algoritmus SIFT publikoval David Lowe v roce 2004, SURF Herbert Bay a spol. v roce 2006. Obˇe metody nejsou zaloˇzeny pouze na detekci v´yznaˇcn´ych bod˚u v obraze, ale snaˇz´ı se vytvoˇrit i invariantn´ı deskriptor. Ty se pot´e nejˇcastˇeji pouˇz´ıvaj´ı pro nalezen´ı odpov´ıdaj´ıc´ıch ˇc´ast´ı mezi dvˇema obr´azky zachycuj´ıc´ı stejnou sc´enu.

Nejdˇr´ıve vyberou v obraze v´yznaˇcn´e body, jako jsou rohy, teˇcky ˇci T-spojen´ı. Nejcenˇejˇs´ı vlastnost detektor˚u je jeho opakovatelnost, tedy ˇze dok´aˇz´ı nal´est opakovanˇe stejn´y bod v r˚uzn´ych zobrazen´ıch (napˇr. jin´y ´uhel pohledu). N´aslednˇe je okol´ı bod˚u reprezentov´ano vektorem pˇr´ıznak˚u. Pˇr´ıznaky mus´ı b´yt v´yrazn´e, relativnˇe lehce extrahovateln´e, a mus´ı b´yt

(27)

Obr´azek 3.5: MSER [6]

pomoc´ı nich moˇzn´e spr´avnˇe identifikovat dan´y objekt s co moˇzn´a nejniˇzˇs´ı pravdˇepodobnost´ı z´amˇeny.

SIFT k detekci bodu vyuˇz´ıv´a Gaussovu funkci (Difference of Gaussian - DoG). Po nalezen´ı um´ıstˇen´ı bod˚u, je u kaˇzd´eho pops´ana jeho orientace, coˇz zajiˇstuje rotaˇcn´ı invarianci. Body jsou pops´any skrz sv´e okol´ı, deskriptor vytvoˇr´ı 128 prvkov´y normalizovan´y pˇr´ıznakov´y vektor.

SURF pot´e nach´az´ı v´yznaˇcn´e body pomoc´ı

”rychl´e Hessianovy matice“ (Fast-Hessian matrix), kter´a je vych´az´ı z Harrisovy matice3.1.1. A vektor, kter´ym se popisuj´ı body, ob-sahuje 64 floatov´ych hodnot, kter´e rovnˇeˇz mohou b´yt rozˇs´ıˇreny na 128.

Poˇcet nalezen´ych v´yznaˇcn´ych bod˚u je obecnˇe vˇetˇs´ı pro SIFT, ovˇsem kvalitou se t´emˇeˇr shoduj´ı. [8] Test potvrdil 95% odolnost v˚uˇci natoˇcen´ı. Rovnˇeˇz srovn´an´ı metod v ostatn´ıch krit´eri´ıch je zn´azornˇeno na n´asleduj´ıc´ıch grafech. V souhrnu byl oznaˇcen SIFT jako o nˇeco m´alo pˇresnˇejˇs´ı neˇz SURF, kter´y je ovˇsem v´yraznˇe rychlejˇs´ı.

3.1.5 MSER MSER je zkratka

”Maximally Stable Extremal Region Detector“, oznaˇcuje tedy detek-tory hledaj´ıc´ı maxim´alnˇe stabiln´ı extr´emn´ı regiony. Extr´emn´ı v tomto pˇr´ıpadˇe znamen´a, ˇze vˇsechny pixely v regionu maj´ı bud vyˇsˇs´ı (svˇetl´e) nebo niˇzˇs´ı (tmav´e) intenzitu neˇz vˇsechny ohraniˇcuj´ıc´ı pixely. Maxim´alnˇe stabiln´ı pot´e popisuje optimalizaci pˇri procesu v´ybˇeru. [9]

V´ybˇer sady extr´emn´ıch region˚u  je sloˇzitost´ı t´emˇeˇr line´arn´ı s poˇctem pixel˚u v obraze. Nejdˇr´ıve jsou pixely seˇrazeny podle intenzity, d´ale jsou oznaˇceny v obraze (bud’ v klesaj´ıc´ım nebo vzestupn´em poˇrad´ı). Slouˇcen´ı jednotliv´ych ploch se prov´ad´ı pomoc´ı

”union-find“ algo-ritmu. Bˇehem hled´an´ı region˚u se ukl´ad´a plocha vˇsech spojen´ych ˇc´ast´ı jako funkce intenzity. MSER jsou ˇc´asti obrazu, kde lok´aln´ı dvojice jsou stejnˇe ohodnoceny pˇres velk´y rozsah prah˚u. Jin´ymi slovy je mezi jednotliv´ymi pixely mal´y rozd´ıl intenzity, t´ım jsou

”maxim´alnˇe stabiln´ı“.

Detekce MSER souvis´ı tedy s prahov´an´ım, nicm´enˇe se nehled´a ˇz´adn´y glob´aln´ı ˇci op-tim´aln´ı pr´ah. Vˇsechny prahy jsou vyhodnoceny jednotlivˇe pro kaˇzd´y spojen´y ´utvar. V´ysledkem MSER detektoru tedy nen´ı bin´arn´ı obraz (kde pixely jsou bud’ nad prahem nebo pod n´ım). Pˇr´ıklad MSER region˚u jsou na obr´azku3.5.

(28)

3.2

Vizu´

aln´ı slovn´ık

V n´asleduj´ıc´ı podkapitol´ach pop´ıˇsi teoretick´e z´aklady jednotliv´ych ˇc´ast´ı tvorby slovn´ık˚u z vektor˚u pˇr´ıznak˚u z´ıskan´ych lok´aln´ımi detektory a deskriptory.

Jak jiˇz bylo naznaˇceno, vizu´aln´ı slovn´ıky se vytvoˇr´ı ze vˇsech tr´enovac´ıch a oanotovan´ych dat a n´aslednˇe budou slouˇzit k detekov´an´ı znaˇcky v obraze.

Nejprve je moˇzn´e redukovat dimenzi dat pˇr´ıznakov´ych vektor˚u pomoc´ı PCA. Pot´e se pomoc´ı shlukovac´ı metody vytvoˇr´ı slovn´ıky.

3.2.1 Anal´yza hlavn´ıch komponent (PCA)

Deskriptory SIFT a SURF popisuj´ı body z´ıskan´e pomoc´ı lok´aln´ıch detektor˚u 128 prvkov´ymi vektory pˇr´ıznak˚u. To je pro naˇse pouˇzit´ı pˇr´ıliˇs, v´ypoˇcet tˇr´ıd (shluk˚u) by byl extr´emnˇe ˇcasovˇe a pamˇet’ovˇe n´aroˇcn´y. Proto se pouˇzije metoda PCA, kter´a analyzuje data a redukuje dimenzi vektoru pˇr´ıznak˚u s minim´aln´ı ztr´atou informace v datech. Je zaloˇzena na transformaci souˇradn´eho syst´emu - nalezen´ı speci´aln´ı ortonorm´aln´ı b´aze prostoru, ve kter´em jsou data um´ıstˇena. [21]

Vektory hledan´e ortonorm´aln´ı b´aze jsou uspoˇr´ad´any tak, ˇze prvn´ı urˇcuje smˇer obsa-huj´ıc´ı nejvˇetˇs´ı moˇznou jednorozmˇernou informaci v datech a ve smˇeru posledn´ıho b´azov´eho vektoru je obsah informace v datech minim´aln´ı. [17]

PCA obsahuje n´asleduj´ıc´ı kroky:

1. uspoˇr´ad´a data do matice rxs, kde ˇr´adky obsahuj´ı jednotliv´a pozorov´an´ı (v naˇsem pˇr´ıpadˇe vektor pˇr´ıznak˚u jednotliv´ych bod˚u) a sloupce odpov´ıdaj´ı mˇeˇren´ym veliˇcin´am. 2. Vypoˇc´ıt´a pro kaˇzdou dimenzi (mˇeˇrenou veliˇcinu) pr˚umˇer hodnot, z´ısk´ame tedy pr˚umˇern´y

vektor dat (pr˚umˇern´y ˇr´adek X). Od kaˇzd´e poloˇzky matice pot´e odeˇcte pr˚umˇer v dan´e dimenzi (v´ysledkem je matice X), v´ysledn´e poloˇzky tedy znamenaj´ı odchylku od pr˚umˇeru. Pr˚umˇer jednotliv´ych sloupc˚u je tedy 0.

3. v´ypoˇc´ıt´a kovarianˇcn´ı matici C = (r−1)1 XT.X, kde X* znaˇc´ı zm´ınˇenou matici odchylek od pr˚umˇer˚u.

4. Spoˇc´ıt´a eigenvalues (

”vlastn´ı ˇc´ısla“) a eigenvectors (”vlastn´ı vektory“) kovarianˇcn´ı matice C. Tyto vlastn´ı vektory jsou jednotkov´e, jejich d´elka je 1. T´ım z´ısk´ame infor-mace o rozloˇzen´ı pˇr´ıznak˚u v datech.

5. Pokud seˇrad´ıme vlastn´ı ˇc´ısla uspoˇr´adan´a v absolutn´ı hodnotˇe podle velikosti od nejvˇetˇs´ıho k nejmenˇs´ımu, zjist´ıme, kter´e vektory nesou nejmenˇs´ı informaci (ty s nejmenˇs´ı hodnoutou eigenvalue). Pot´e se vybere poˇcet n komponent (n ud´av´a poˇcet dimenz´ı dat) a sestav´ı transformaˇcn´ı matici Tntypu rxn obsahuj´ıc´ı prvn´ıch n vlastn´ıch vektor˚u

kovarianˇcn´ı matice C ve sloupc´ıch.

6. Redukuje p˚uvodn´ı data (ortogon´alnˇe je prom´ıtne do podprostoru generovan´eho hlavn´ımi komponentami) Zn= XTn. Z´ısk´ame redukovan´a p˚uvodn´ı data z hlediska vypoˇc´ıtan´ych

vlastn´ıch vektor˚u.

7. Rekonstruuje redukovan´a vycentrovan´a data Y = ZTnt 8. Rekonstruuje p˚uvodn´ı data Y = Y ∗ +1.xT

(29)

Matice Y tedy obsahuje p˚uvodn´ı data kolmo prom´ıtnut´a do afinn´ıho podprostoru di-menze n, kter´y m´a nejmenˇs´ı chybu zp˚usobenou prom´ıtnut´ım. Pro potˇreby detekce by mˇela postaˇcovat velikost dimenze mezi 10 aˇz 40. Pˇresn´y poˇcet bude urˇcen aˇz pˇri testov´an´ı. 3.2.2 Shlukov´an´ı

Kapitola bude vˇenov´ana obecn´emu popisu shlukov´an´ı, pot´e konkr´etnˇe metody k − means, pomoc´ı kter´e budeme moci vytvoˇrit jednotliv´e slovn´ıky.

Shlukov´an´ı obecnˇe hled´a urˇcitou strukturu v neohodnocen´ych datech. Obecnˇe se jedn´a o proces rozdˇelen´ı objekt˚u do tˇr´ıd (shluk˚u) na z´akladˇe podobnosti. Tˇr´ıdou tedy oznaˇcujeme skupinu prostorovˇe bl´ızk´ych objekt˚u. Uvnitˇr skupin by tak mˇely b´yt objekty co nejpo-dobnˇejˇs´ı a naopak mezi skupinami objekty co nejm´enˇe podobn´e. Podobnost se v tomto pˇr´ıpadˇe pˇrev´ad´ı na vzd´alenost. Typicky by se hustota objekt˚u s rostouc´ı vzd´alenost´ı od stˇredu n´ami definovan´e tˇr´ıdy mˇela zmenˇsovat. Vizu´aln´ı slovn´ık je tvoˇren pr´avˇe takov´ymi tˇr´ıdami, kaˇzd´e slovo pˇredstavuje jednu tˇr´ıdu.

K-means

Metoda k-means (ˇcesky k-pr˚umˇer˚u) je jedna ze shlukovac´ıch algoritm˚u a je zaloˇzena na vzd´alenosti bod˚u (ˇcasto v mnoharozmˇern´em) prostoru. Kaˇzd´y objekt je reprezentov´an jedn´ım bodem a kaˇzd´a popsan´a veliˇcina jednou souˇradnic´ı.

K-means je vhodn´y zejm´ena pro velk´e mnoˇzstv´ı dat, kter´e maj´ı b´yt roztˇr´ıdˇeny do pomˇernˇe mal´eho poˇctu tˇr´ıd. Algoritmus iterativnˇe hled´a hodnoty vektor˚u (tˇr´ıdy) tak, ˇze mi-nimalizuje stˇredn´ı odchylku mezi zadanou mnoˇzinou dat a vektory (vzd´alenost objekt˚u od stˇredu tˇr´ıdy), kter´e maj´ı k tˇemto dat˚um nejmenˇs´ı euklidovskou vzd´alenost. Pˇredem ovˇsem mus´ı b´yt zn´am poˇcet hledan´ych tˇr´ıd.

Jednotliv´e tˇr´ıdy mus´ı splˇnovat n´asleduj´ıc´ı podm´ınky: • kaˇzd´a tˇr´ıda mus´ı obsahovat alespoˇn jeden objekt • kaˇzd´y objekt mus´ı patˇrit pouze do jedn´e tˇr´ıdy

Z´akladn´ı algoritmus pouˇz´ıv´a euklidovskou vzd´alenost a µj pˇredstavuje vektor ud´avaj´ıc´ı

stˇred tˇr´ıdy. Vstupem algoritmu pot´e je mnoˇzina dat x1, x2, . . . xn a k ud´avaj´ıc´ı poˇcet

vek-tor˚u µi, kde i = 1, . . . , k. Nejprve se inicializuj´ı vektory uj, kde j = 1, . . . , k, na n´ahodnˇe

zvolenou hodnotu ˇci pouˇzit´ım nˇejak´e vhodn´e heuristiky (pokud m´ame napˇr. urˇcitou zna-lost o datech). N´aslednˇe se opakuj´ı iterativnˇe kroky, kdy je kaˇzd´y bod pˇriˇrazen nejbliˇzˇs´ımu vektoru uj (stˇredu tˇr´ıdy) a ten je n´aslednˇe aktualizov´an jako pr˚umˇern´y vektor vˇsech jemu pˇriˇrazen´ych bod˚u. Iterace pokraˇcuje, dokud se mˇen´ı pˇr´ısluˇsnost nˇekter´ych bod˚u ke tˇr´ıd´am. Je dok´az´ano, ˇze algoritmus je koneˇcn´y [13]

Matematicky lze postup vyj´adˇrit kroky:

1. Vˇsechna data xi, kde i = 1, . . . , l, se klasifikuj´ı do tˇr´ıd urˇcen´ych vektory µj, kde j =

1, . . . , k, podle minima euklidovsk´e vzd´alenosti. Tedy bod xi je pˇriˇrazen do nejbliˇzˇs´ı

tˇr´ıdy podle nejmenˇs´ı vzd´alenosti ke stˇredu tˇr´ıdy.

2. Vypoˇc´ıtaj´ı se nov´e hodnoty vektor˚u µj jako stˇredn´ı hodnoty dat xi, kter´e byly

kla-sifikov´any do tˇr´ıdy urˇcen´e pˇr´ısluˇsn´ym vektorem µj. Tedy nov´a hodnota µj se spoˇcte

podle vztahu µj = l1

j

l

(30)

K-means nezaruˇcuje nejlepˇs´ı rozdˇelen´ı dat, nalezne pouze lok´aln´ı optimum. Nevede ani pokaˇzd´e ke stejn´ym v´ysledk˚um, z´aleˇz´ı na poˇc´ateˇcn´ı inicializaci. Je ovˇsem velmi jednoduch´y pro metrick´a data a vhodn´y pro rozdˇelov´an´ı velk´eho poˇctu dat zejm´ena pro sv´e pomˇernˇe rozumn´e v´ypoˇcetn´ı n´aroky.

Ohodnocen´ı slov

Jednotliv´a slova ve slovn´ıku vznikl´em shlukov´an´ım pˇr´ıznakov´ych vektor˚u bod˚u z tr´enovac´ı sady je d´ale nutn´e

”ohodnotit“. Jelikoˇz v´ıme, kter´emu slovu ve slovn´ıku n´aleˇz´ı kter´e pˇr´ıznakov´e vektory, a tr´enovac´ı sada je anotovan´a (jsou v n´ı oznaˇceny hledan´e znaˇcky), m˚uˇzeme jed-noduˇse u vˇsech slov urˇcit pravdˇepodobnost, se kterou slovo popisuje znaˇcku v obraze.

Tato pravdˇepodobnost vyjadˇruje pomˇer vˇsech bod˚u, jejichˇz pˇr´ıznakov´e vektory patˇr´ı k dan´emu slovu a byly anotov´any uvnitˇr znaˇcky v obraze, v˚uˇci vˇsem bod˚um ve slovˇe.

Pokud by byla tr´enovac´ı sada velmi rozs´ahl´a a anotov´ana by byla pouze jej´ı ˇc´ast, je mimo

”pozitivn´ı“ pravdˇepodobnosti (ˇze dan´e slovo popisuje znaˇcku), vypoˇc´ıt´ana i ” nega-tivn´ı“ pravdˇepodobnost, tedy ˇze dan´e slovo nepopisuje znaˇcku. Pˇri detekov´an´ı znaˇcky jsou pot´e tyto pravdˇepodobnosti od sebe odeˇcteny.

T´ımto z´ısk´ame ze vˇsech tr´enovac´ıch dat vizu´aln´ı slovn´ıky (jedno slovo bude pˇredstavovat jeden nalezen´y shluk dat). Jelikoˇz vˇsechny detektory se liˇs´ı hledan´ymi body ˇci regiony, bude nutn´e pro kaˇzdou dvojici detektor – deskriptor vytvoˇrit samostatn´y slovn´ık.

3.3

Vyhled´

av´

an´ı

N´asleduj´ıc´ı kapitola jiˇz popisuje druhou ˇc´ast metody, kdy bude pouˇzit vytvoˇren´y vizu´aln´ı slovn´ık k samotn´e detekce znaˇcky. Ve vstupn´ım obr´azku nalezne znaˇcku a oznaˇc´ı ji v obr´azku na v´ystupu.

Obr´azek je pops´an vybran´ym lok´aln´ım detektorem a k jednotliv´ym detekovan´ym bod˚um bude pˇriˇrazena tˇr´ıda (slovo) ve slovn´ıku podle vzd´alenosti v euklidovsk´em prostoru. Jed-noduˇse jde o to, nal´est nejbliˇzˇs´ı stˇred tˇr´ıdy k pˇr´ıznakov´emu vektoru bodu. Prohled´av´an´ı prostoru m´ıv´a obecnˇe vysokou v´ypoˇcetn´ı sloˇzitost - neline´arnˇe nar˚ustaj´ı ˇcasov´e a pamˇet’ov´e poˇzadavky v z´avislosti na poˇctu bod˚u v prostoru. Efektivnˇejˇs´ı vyhled´av´an´ı lze dos´ahnout vy-mezen´ım podprostoru. Pro urychlen´ı zde budou tˇr´ıdy uspoˇr´ad´any do tzv. k-dimenzion´aln´ıho stromu popsan´eho v podkapitole3.3.1.

Slovn´ıky obsahuj´ı mimo slov d´ale pravdˇepodobnosti, ˇze dan´e slovo popisuje bod uvnitˇr znaˇcky a mimo ni. Ke kaˇzd´emu nalezen´emu bodu je tedy pˇriˇrazen rozd´ıl onˇech pravdˇepodobnost´ı dan´eho

”nejbliˇzˇs´ıho“ slova. Vznikne tak mapa pravdˇepodobnost´ı (vah).

Z takto vznikl´e mapy, kter´a je stejnˇe velk´a jako p˚uvodn´ı obr´azek, je nutn´e nal´est lok´aln´ı maxima, kter´a budou detekovat s urˇcitou pravdˇepodobnost´ı znaˇcku. Nejdˇr´ıve je vˇsak nutn´e mapu lehce rozmazat, aby maxima vynikla a podtlaˇcil se ˇsum. Lze to prov´est obyˇcejn´ym pr˚umˇerov´an´ım bodu a jeho okol´ı, jak je pops´ano v ˇc´asti3.3.2.

N´aslednˇe se jiˇz naleznou jednotliv´a lok´aln´ı maxima. Ty jsou vypoˇc´ıt´ana pro matici o urˇcit´e lich´e velikosti. Pokud vˇsechny body v n´ı jsou menˇs´ı neˇz hodnota uprostˇred matice, je prostˇredn´ı bod oznaˇcen za lok´aln´ı maximum. Takto se zkontroluj´ı vˇsechny body v obraze.

ˇ

C´ım vˇetˇs´ı jsou maxima, t´ım je vˇetˇs´ı je pravdˇepodobnost, ˇze skuteˇcn´e popisuj´ı hledanou znaˇcku.

(31)

Obr´azek 3.6: Ilustrace kd-stromu pro 2D

3.3.1 kd-strom

K-dimenzion´aln´ı strom (oznaˇcovan´y jako kd-tree) je datov´a struktura, kter´a pomoc´ı nadro-vin (rovnobˇeˇzn´ych s pˇr´ısluˇsn´ymi osami) vymezuje ˇc´ast k-dimenzion´aln´ıho prostoru (3.6). Ta pot´e bud’ pˇr´ımo obsahuje hledan´e ˇreˇsen´ı, nebo umoˇzˇnuje jiˇz pˇrijateln´e libovoln´e dohled´an´ı. Konkr´etnˇe v pˇr´ıpadˇe kd-stromu je prostor rozdˇelov´an zpracov´an´ım jednotliv´ych os tak, ˇ

ze se za bod dˇelen´ı vol´ı medi´an souˇradnic bod˚u v pˇr´ısluˇsn´em intervalu vznikl´em rozdˇelen´ım pˇredchoz´ıho intervalu. Vznikne tak vyv´aˇzen´y strom, kde jednotliv´e podprostory mohou obsahovat pouze jeden bod. Horn´ı v´ypoˇcetn´ı sloˇzitost vytvoˇren´ı kd-stromu je O(n ∗ log2n)

pro n zadan´ych bod˚u. 3.3.2 Pr˚umˇerov´an´ı

Pr˚umˇerov´an´ı je nejjednoduˇsˇs´ı metoda rozostˇren´ı obrazu. Pro jednotliv´e body v obraze se vypoˇc´ıt´a pr˚umˇern´a hodnota okol´ı a ta je uloˇzena do dan´eho bodu. Velikost okol´ı, pouˇzit´e matici, m˚uˇze b´yt libovoln´y. Vˇetˇsinou se pouˇz´ıv´a soumˇern´a matice o lich´e velikosti stran. Napˇr´ıklad pro matici 3x3 se hodnota bodu uprostˇre poˇc´ıt´a jako:

(32)

Kapitola 4

Tvorba a vyuˇ

zit´ı slovn´ıku

Kapitola se vˇenuje popisu implementace metody, jej´ıˇz jednotliv´e ˇc´asti byly v pˇredeˇsl´ych kapitol´ach teoreticky nast´ınˇeny. Bude pops´ana cel´a aplikace, vˇcetnˇe pouˇzit´ych n´astroj˚u a probl´em˚u n´avrhu, kter´e bylo nutn´e bˇehem implementace vyˇreˇsit.

Hlavn´ı ot´azkou bylo, jak´ym zp˚usobem ukl´adat detekovan´a data a jiˇz vypoˇc´ıtan´e slovn´ıky. Pouˇzit´e detektory vytvoˇr´ı na v´ystupu textov´e soubory, pˇri kaˇzd´em v´ypoˇctu nov´eho slovn´ıku tud´ıˇz nen´ı ide´aln´ı z nich vˇse znovu naˇc´ıtat, nemluvˇe o tom, ˇze bˇeˇzn´ı uˇzivatel´e by museli m´ıt celou tr´enovac´ı sadu k dispozici. Stejn´y probl´em nast´av´a i pokud chceme na jednom obr´azku vyzkouˇset v´ıce slovn´ık˚u.

Rozhodl jsem se proto vyuˇz´ıt a vyzkouˇset Video Processing Library (VPL). [4] Jedn´a se o soubor funkc´ı pro zpracov´an´ı obrazu, ukl´ad´an´ı jej´ıch v´ysledk˚u ˇci extrakci pˇr´ıznak˚u. Tato knihovna vyuˇz´ıv´a datab´azi PostgreSQL a OpenCV verze 1.1. [3] D´ıky tomu bude moˇzn´e uloˇzit i v´ysledn´e slovn´ıky a jejich pouˇzit´ı se tak stane nez´avisl´e na p˚uvodn´ıch textov´ych souborech.

Aplikace je naps´ana ve Visual Studiu 9.0 v programovac´ım jazyku C++. Jak´ym zp˚usobem jsou obˇe pˇredchoz´ı knihovny do projektu zaˇclenˇeny vˇcetnˇe nezbytn´eho popisu jednotliv´ych ˇ

c´ast´ı programu je pops´ano v README, kter´y je uloˇzen spoleˇcnˇe se zdrojov´ymi k´ody aplikace. Aplikace se skl´ad´a ze dvou na sobˇe nez´avisl´ych ˇc´ast´ı. Prvn´ı ˇc´ast, nazvan´a vocabulary, vkl´ad´a anotovanou sadu obr´azk˚u (4.1.1) do datab´aze a vytv´aˇr´ı z nich slovn´ıky 4.1. Ty jsou cha-rakteristick´e detektorem, kter´ym byly body nalezeny, poˇctem slov a velikost´ı pˇr´ıznakov´yh vektor˚u, kter´ymi jsou slova pops´ana. Je tedy moˇzn´e vytvoˇrit velkou ˇsk´alu slovn´ık˚u.

Druh´a ˇc´ast, nazvan´a iblpr (Image-Based License Plate Recognition), pot´e bude pouˇz´ıvat zvolen´eho slovn´ıku k nalezen´ı pozn´avac´ı znaˇcky, jak bylo pops´ano v kapitole3.3.

4.1

Tvorba slovn´ıku

Kapitola je vˇenov´ana cel´e prvn´ı ˇc´asti, tzn. vytvoˇren´ı a anotov´an´ı tr´enovac´ı sady, pouˇzit´ı detektor˚u, import pˇr´ıznak˚u do datab´aze a n´asledn´e vytvoˇren´ı slovn´ıku za pˇr´ıpadn´eho vyuˇzit´ı PCA.

4.1.1 Tr´enovac´ı sada, anotace

Tr´enovac´ı sadu tvoˇr´ı 140 obr´azk˚u, kterou jsem z´ıskal stahov´an´ım z internetu z r˚uzn´ych server˚u se snahou o co nejvˇetˇs´ı pestrost a vyv´aˇzenost. Jedn´a se o obr´azky r˚uzn´e velikosti s auty s ˇceskou registraˇcn´ı znaˇckou. Na kaˇzd´em obr´azku je alespoˇn jedna.

(33)

Abychom mohli rozhodnout u tˇr´ıd objekt˚u o jejich relevanci pˇri detekci, mus´ıme zjis-tit, kter´e body z testovac´ıch dat jsou uvnitˇr znaˇcky a kter´e vnˇe. K tomu slouˇz´ı anotace tr´enovac´ıch dat. Ta je provedena pomoc´ı programu Image Annotator st´ahnuteln´eho z http : //www.mvacek.cz/annotator. Jednoduch´y n´astroj pro anotaci obr´azk˚u na v´ystupu vytvoˇr´ı XML soubory popisuj´ıc´ı jednotliv´e obr´azky. K anotaci znaˇcek jsem vytvoˇril ˇsablonu, se kterou je anotace zjednoduˇsena pouze na oznaˇcen´ıˇctyˇr´uheln´ıku v obr´azku, kde je um´ıstˇena znaˇcka, a je rovnˇeˇz pˇriloˇzena ke zdrojov´ym k´od˚um aplikace.

Jednotliv´e anotace pot´e budou naˇcteny z xml soubor˚u a u kaˇzd´e tˇr´ıdy se urˇc´ı pravdˇepodobnost s jakou popisuje znaˇcku (pod´ıl poˇctu bod˚u, kter´e byly anotac´ı oznaˇceny uvnitˇr znaˇcku, ku vˇsem bod˚um). Pomoc´ı t´eto pravdˇepodobnosti pot´e bude moˇzn´e nal´est znaˇcku i v neanoto-van´ych datech podle pˇr´ısluˇsnosti bod˚u k jednotliv´ym tˇr´ıd´am.

4.1.2 Detekce bod˚u

Detektory Harris-Hessian (zkr´acenˇe Harhes), IBR a EBR byly staˇzeny z [1]. Vˇsech 140 obr´azk˚u z tr´enovac´ı sady (uloˇzeny v /data/vocabulary/images) muselo nejdˇr´ıve b´yti de-tekov´ano vˇsemi detektory, v´ysledn´e body pops´any deskriptorem SIFT staˇzen´ym z [2]. De-tektory pracuj´ı s obr´azky ve form´atu P GM . Zde nast´av´a menˇs´ı probl´em, jelikoˇz datab´aze um´ı pracovat pouze s obr´azky ve form´atu J P G, kter´e rovnˇeˇz program vyˇzaduje. Je tak nutn´e prov´est konverzi. V n´asleduj´ıc´ım seznamu jsou uvedeny parametry, se kter´ymi byli jednotliv´e detektory spuˇstˇeny:

• 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´ıˇz dan´e detekce prov´ad´ı program s´am a nenaˇc´ıt´a je z textov´ych soubor˚u.

4.1.3 Nastaven´ı parametr˚u

Pˇri spuˇstˇen´ı programu jsou nejdˇr´ıve zpracov´any vˇsechny parametry. Ukl´adaj´ı se do struk-tury, aby byly pˇr´ıstupn´e po celou dobu bˇehu programu. Jedn´a se pˇredevˇs´ım o nastaven´ı cest k obr´azk˚um, jejich detekc´ım ˇci anotac´ım. Naˇc´ıt´an´ı z adres´aˇr˚u se jev´ı jako nejlepˇs´ı moˇzn´a metoda, nam´ısto naˇc´ıt´an´ı jednotliv´ych obr´azk˚u. D´ale se parametry nastavuj´ı vlast-nosti v´ysledn´eho slovn´ıku, poˇcet slov ˇci velikost dimenze pˇr´ıznakov´eho vektoru. Vˇsechny moˇznosti nastaven´ı jsou uvedeny v tabulce 4.1. Parametr −h nav´ıc vyp´ıˇse n´apovˇedu na standartn´ı v´ystup.

Pˇri pouˇzit´ı detektoru SIFT ˇci SURF nen´ı samozˇrejmˇe parametr ud´avaj´ıc´ı cestu k deteko-van´ym bod˚um pouˇzit. Po naˇcten´ı vˇsech parametr˚u je jejich validita zkontrolov´ana, napˇr´ıklad nelze pouˇz´ıt metodu redukce dimenze PCA pro vˇetˇs´ı ˇc´ıslo neˇz 127, jelikoˇz p˚uvodn´ı velikost vektor˚u je 128.

Pˇr´ıklad spuˇstˇen´ı aplikace m˚uˇze tedy vypadat n´asledovnˇe:

vocabulary.exe − harhes − seq 0 − words 10000 − pca 40 (4.1) Coˇz znamen´a, ˇze se pouˇzij´ı Harhes detekce v´yznaˇcn´ych bod˚u, pouˇzije se tr´enovac´ı sada

(34)

Parametr Popis Inicializace –harhes [–ebr, –ibr, –sift, –surf] pouˇzit´y detektor (povinn´y ´udaj) –root path rootovsk´y adres´aˇre ../data/

–imgs path adres´aˇr s obr´azky vocabulary/images/

–pts path adres´aˇr s body vocabulary/detects/harhes/

–anot path adres´aˇr s anotacemi vocabulary/annotation/ –seq cislo sequence ˇc´ıslo sekvence s obr´azky ˇc´ıslo sekvence

–pca velikost dimenze PCA neinicializov´ana

–words pocet slov poˇcet slov ve slovn´ıku 1000 Tabulka 4.1: Popis vstupn´ıch parametr˚u

o velikosti 10000 slov a metoda PCA redukuje pˇr´ıznakov´e vektory na velikost 40. Poˇrad´ı parametr˚u nem´a vliv a m˚uˇze b´yt libovoln´e.

4.1.4 Naˇcten´ı obr´azk˚u a detekovan´ych bod˚u

N´asleduj´ıc´ı kapitola je vˇenov´an importu dat do datab´aze. Pokud v parametrech chyb´ı ˇc´ıslo zvolen´e sekvence, program pˇredpokl´ad´a, ˇze se uˇzivatel snaˇz´ı vytvoˇrit novou tr´enovac´ı sadu. Je tedy nutn´e vˇsechny obr´azky (resp. cesty k tˇemto obr´azk˚um), detekovan´e body a jejich popis vloˇzit do datab´aze, aby bylo pozdˇeji moˇzn´e vytvoˇrit poˇzadovan´e slovn´ıky.

Vytvoˇr´ı se tedy nov´a sekvence v datab´azi a nahraj´ı se cesty ke vˇsem obr´azk˚um, kter´e jsou v adres´aˇri zadan´em parametrem −imgs. Tr´enovac´ı sada, kter´a byla pops´ana v´yˇse, je uloˇzena v sekvenci 0 (tedy se pˇredpokl´ad´a pouˇzit´ı parametru −seq 0).

Podle zvolen´eho detektoru dojde pot´e k nahr´an´ı bod˚u a pˇr´ıznakov´ych vektor˚u do datab´aze (v pˇr´ıpadˇe Harhes, EBR a IBR) ˇci jsou vˇsechny obr´azky zdetekov´any detektory SIFT ˇci SURF. U jednotliv´ych bod˚u je jeˇstˇe zkontrolov´ano, zda se nach´azej´ı podle anotace uvnitˇr znaˇcky ˇci vnˇe.

Je nezbytn´e, aby se soubor s anotacemi jmenoval stejnˇe jako k nˇemu pˇr´ısluˇsej´ıc´ı obr´azek (bez pˇr´ıpony) s pˇr´ıponou .xml. Je pˇredpokl´ad´ana i dan´a struktura dokumentu, kterou vytv´aˇr´ı pouˇzit´y anotaˇcn´ı n´astroj ImageAnnotator. Ten mimo jin´e, pro tento ´uˇcel nepod-statn´e informace, ukl´ad´a anotovan´e znaˇcky jako elementy < object > a v nˇem elementy < point >, kter´e definuj´ı jednotliv´e vrcholy znaˇcky. V kaˇzd´em objektu by tedy mˇely b´yt pr´avˇe ˇctyˇri elementy point, jelikoˇz je znaˇcka anotov´ana ˇctyˇr´uheln´ıkem a v nich po jednom elementu < x > a < y >, kter´e definuj´ı um´ıstˇen´ı bodu v obraze.

I soubor s detekovan´ymi body se mus´ı jmenovat stejnˇe jako obr´azek, ovˇsem s pˇr´ıponami, kter´e vytv´aˇrej´ı jednotliv´e detektory: .pgm.harhes.sif t pro Harris-Hessian, .ebr pro EBR a .ibr pro IBR. V pr˚ubˇehu naˇc´ıt´an´ı je u vˇsech detekovan´ych bod˚u kontrolov´ano, zda leˇz´ı uvnitˇr anotovan´e znaˇcky (ˇctyˇr´uheln´ıku definovan´eho ˇctyˇrmi vrcholy). A to tak, ˇze je ˇ

ctyˇr´uheln´ık rozdˇelen na dva troj´uheln´ıky. Dan´y bod pot´e leˇz´ı uvnitˇr troj´uheln´ıku (tedy i cel´eho ˇctyˇr´uheln´ıku), pokud souˇcet vnitˇrn´ı ´uhl˚u vˇzdy mezi n´ım a dvˇema vrcholy v troj´uheln´ıku je roven 2π, resp. je vˇetˇs´ı neˇz nastaven´y pr´ah 3.26.

Takto detekovan´e body jsou pot´e uloˇzeny do datab´aze vˇcetnˇe pˇr´ıznaku, zda byly ano-tov´any uvnitˇr znaˇcky ˇci nikoliv.

(35)

program, obr´azky tedy nen´ı nutno pˇredem zvl´aˇst detekovat, a nalezen´e body jsou pouze porovn´any s anotacemi podobnˇe, jako to bylo v´yˇse pops´ano. N´aslednˇe se rovnˇeˇz vˇse uloˇz´ı do datab´aze.

Pokud je ˇc´ıslo sekvence zadan´e, program pracuje s touto sekvenc´ı, pˇreskoˇc´ı naˇc´ıt´an´ı dat a pouˇz´ıv´a jiˇz uloˇzen´a data v datab´azi. Pokud je zadan´e ˇc´ıslo sekvence vˇetˇs´ı neˇz poˇcet sekvenc´ı v dan´em datasetu, program pracuje s posledn´ı z nich.

4.1.5 Vytvoˇren´ı slovn´ıku

Pokud jiˇz m´ame vˇsechny potˇrebn´e body v datab´azi, lze z nich vytvoˇrit nov´y slovn´ık. Podle parametru zjist´ıme, pro jak´y detektor a pro jakou sekvenci m´a b´yt slovn´ık vytvoˇren. V budoucnu se poˇc´ıt´a s vytvoˇren´ım shlukovac´ıch funkc´ı ve VPL knihovnˇe, kter´a bude pracovat pˇr´ımo nad datab´az´ı. To by pˇr´ıpadn´y v´ypoˇcet v´yznamnˇe zrychlilo, pˇredevˇs´ım ve f´azi naˇc´ıt´an´ı. Zat´ım bylo nutn´e vyuˇz´ıt funkce OpenCV.

Pouˇzit´ı knihovny OpenCV k vytvoˇren´ı slovn´ıku

Vˇsechny body v obr´azc´ıch dan´e sekvence a pˇredevˇs´ım jejich pˇr´ıznakov´e vektory se naˇctou do matice. D´ale vznikne jeˇstˇe

”anotaˇcn´ı matice“ se stejn´ym poˇctem ˇr´adk˚u a ˇs´ıˇrkou 1, na jejichˇz jednotliv´ych ˇr´adc´ıch je hodnota 1, pokud bod na stejn´em ˇr´adku byl urˇcen uvnitˇr znaˇcky a 0 pokud mimo.

Pokud je poˇzadov´ano sn´ıˇzen´ı velikosti dimenze pˇr´ıznakov´ych vektor˚u (PCA), provede tato metoda redukci ˇs´ıˇrky matice na zadanou velikost, jak bylo pops´ano v kapitole 3.2.1

Zvolen´a velikost mus´ı b´yt samozˇrejmˇe niˇzˇs´ı neˇz 128, coˇz je velikost p˚uvodn´ıch pˇr´ıznakov´ych vektor˚u.

Nyn´ı je jiˇz matice pˇripravena pro vytvoˇren´ı slovn´ıku. To se prov´ad´ı shlukov´an´ım matice pˇr´ıznak˚u do dan´eho poˇctu shluk˚u (slov ve slovn´ıku). Kromˇe popisu slov je vytvoˇrena tak´e matice index˚u p˚uvodn´ıch bod˚u na slova. Ta je pr´avˇe potˇreba pro natr´enov´an´ı klasifik´atoru, tedy urˇcen´ı pravdˇepodobnost´ı jednotliv´ych slov.

Jak bylo uvedeno v kapitole 3.2.2, jednotliv´a slova obsahuj´ı body s velmi podobn´ymi vlastnostmi (pˇr´ıznakov´ymi vektory). Jelikoˇz zn´ame, kter´e body patˇr´ı do kter´ych slov, a d´ale u kaˇzd´eho bodu v´ıme, zda byl anotov´an uvnitˇr znaˇcky ˇci vnˇe, lze pro kaˇzd´e slovo vypoˇc´ıtat pravdˇepodobnost, se kterou se vyskytuje ve znaˇcce. Ta je spoˇc´ıt´ana jako pomˇer bod˚u v dan´em slovu anotovan´ych ve znaˇcce ku vˇsem ve slovˇe. Jelikoˇz v naˇsem pˇr´ıpadˇe byla anotov´ana cel´a tr´enovac´ı sada, nen´ı nutn´e vypoˇc´ıtavat i pravdˇepodobnost, ˇze se slovo nevyskytuje ve znaˇcce, protoˇze ta se pot´e rovn´a rozd´ılu prvn´ı pravdˇepodobnosti od hodnoty 1.

Takto dojde v podstatˇe k natr´enov´an´ı klasifik´atoru. Pravdˇepodobnost libovoln´eho bodu, ˇ

ze se nal´ez´a ve znaˇcce, je jednoduˇse rovna pravdˇepodobnosti nejbliˇzˇs´ıho slova v takto vy-tvoˇren´em slovn´ıku.

V tuto chv´ıli jiˇz je slovn´ık hotov a je uloˇzen. Ani zde jeˇstˇe nen´ı datab´aze zcela do-konˇcena, tud´ıˇz mus´ı b´yt slovn´ıky prozat´ım ukl´ad´any lok´alnˇe.

Bˇehem vytv´aˇren´ı slovn´ıku vypisuje program d˚uleˇzit´e informace vˇcetnˇe ˇcasov´e n´aroˇcnosti jednotliv´ych ´ukon˚u. Tyto hodnoty jsou shnuty a zhodnoceny v kapitole 5.

(36)

4.2

Vyuˇ

zit´ı slovn´ıku

V t´eto kapitole je pops´ana druh´a ˇc´ast aplikace, a to vyuˇzit´ı jiˇz vytvoˇren´eho slovn´ıku vizu´aln´ıch slov pro detekci pozn´avac´ı znaˇcky. Funkce jsou um´ıstˇeny ve zdrojov´em souboru iblpr.cpp. Na vstupu program oˇcek´av´a seznam obr´azk˚u, u kter´ych se m´a znaˇcka deteko-vat. Ty jsou postupnˇe zpracov´any, je provedena detekce a pokud se podaˇrilo nal´est znaˇcky dan´ych vlastnost´ı, vytvoˇr´ı se na v´ystupu obr´azek s detekovanou znaˇcku.

Stejnˇe jako v prvn´ı ˇc´asti je pro pouˇzit´ı slovn´ıku Harhes, EBR a IBR nejdˇr´ıve nutn´e obr´azky detekovat pomoc´ı pˇr´ısluˇsn´ych lok´aln´ıch detektor˚u a n´aslednˇe popsat. Tato ˇc´ast vˇsak nenaˇc´ıt´a body do datab´aze, tud´ıˇz nen´ı nutn´e pouˇz´ıvat pouze form´at JPG, ale lze pouˇz´ıt vˇetˇsinu zn´am´ych grafick´ych form´at˚u (PNG, BMP, PGM, . . . ). Pˇri pouˇzit´ı detektor˚u SIFT a SURF pˇr´ısluˇsnou detekci opˇet zaˇr´ıd´ı program.

4.2.1 Nastaven´ı a inicializace parametr˚u

Pˇri spuˇstˇen´ı programu jsou stejnˇe jako u prvn´ı ˇc´asti nejdˇr´ıve zpracov´any vˇsechny parametry. Jedn´a se pˇredevˇs´ım o nastaven´ı cest k obr´azk˚um, jejich detekc´ım, zvolen´em slovn´ıku ˇci nastaven´ı vlastnost´ı vyhled´av´an´ı. Vˇsechny moˇznosti nastaven´ı jsou uvedeny v tabulce 4.2.

Parametr Popis Inicializace

–harhes [. . . ] pouˇzit´y detektor (povinn´y ´udaj) –root string cesta do rootovsk´eho adres´aˇre ../data/iblpr/ –imgs string cesta do adres´aˇre s obr´azky images/ –i string jednotliv´e obr´azky

–pts string cesta do adres´aˇre s detekovan´ymi body detects/

”detector“ –res string cesta do adres´aˇre s v´ysledky detekce results/

–words integer poˇcet slov ve slovn´ıku 10000

–pca integer velikost dimenze vektoru pˇr´ıznak˚u pokud nezad´ana, PCA nepouˇzita –defocusing velikost matice pro rozostˇren´ı 5 (5x5)

–localmax velikost matice pro lok´aln´ı maxima 5 (5x5) –showpoints pokud zad´ano, vyhresl´ı i body false

Tabulka 4.2: Popis vstupn´ıch parametr˚u

Parametr −i slouˇz´ı pro samostatnou detekci. Pro jednoduchost totiˇz program naˇc´ıt´a vˇsechny obr´azky z adres´aˇre oznaˇcen´eho parametrem −imgs. Pokud uˇzivatel chce detekovat pouze nˇekter´e z tˇechto obr´azk˚u, jednoduˇse zad´a jejich jm´eno za parametr −i (pro kaˇzd´y obr´azek zvl´aˇst’).

Pˇr´ıklad spuˇstˇen´ı programu m˚uˇze vypadat n´asledovnˇe:

iblpr.exe −ebr −words 10000 −def ocusing 5 −localmax 7 −showpoints −i 001.jpg (4.2) Coˇz znamen´a, ˇze uˇzivatel chce detekovat znaˇcku pomoc´ı EBR v´yznaˇcn´ych bod˚u, za pouˇzit´ı slovn´ıku o velikosti 10000 slov. Rozostˇren´ı bude provedeno v matici o velikosti 5x5 a n´aslednˇe budou lok´aln´ı maxima hled´ana v matici o velikosti 7x7. D´al mimo znaˇcky chce i zakreslit do obr´azku vˇsechny v´yznaˇcn´e body. To vˇse chce prov´est pouze na obr´azku 001.jpg, kter´y je um´ıstˇen v ../data/iblpr/images (protoˇze cesta nebyla zmˇenˇena). Zm´ınˇen´e EBR v´yznaˇcn´e body program hled´a rovnˇeˇz v inicializovan´e cestˇe ../data/iblpr/detects/ebr.

(37)

4.2.2 Detekce

Nejdˇr´ıve program naˇcte do matice zvolen´y slovn´ık. Do druh´e matice se stejn´ym poˇctem ˇr´adk˚u a ˇs´ıˇrkou 1 se naˇctou pravdˇepodobnosti jednotliv´ych slov. Jak bylo vysvˇetleno v teoretick´e ˇc´asti, detekce je zaloˇzena na nalezen´ı nejbl´ıˇzˇs´ıho slova ke kaˇzd´emu bodu, resp. jeho pˇr´ıznakov´emu vektoru. Aby bylo toto vyhled´an´ı co nejrychlejˇs´ı, jsou vˇsechna slova uspoˇr´ad´ana do kd-stromu.

N´aslednˇe je ve smyˇcce pro kaˇzd´y obr´azek postupnˇe provedena detekce znaˇcky. Do dalˇs´ı matice jsou naˇcteny vˇsechny v´yznamn´e body v obraze. Pro detektory Harhes, EBR a IBR jsou naˇcteny z pˇr´ısluˇsn´ych textov´ych soubor˚u, pro detektory SIFT a SURF je detekce provedena pˇr´ımo na obr´azku.

Pro kaˇzd´y pˇr´ıznakov´y vektor je nalezeno nejbliˇzˇs´ıch slov. Funkce pro nalezen´ı dan´eho slova je dobˇre optimalizovan´a, tud´ıˇz vyhled´av´an´ı trv´a velmi kr´atkou dobu. Z matice s pravdˇepodobnostmi tˇechto slov lze n´aslednˇe urˇcit, s jakou pravdˇepodobnost´ı se dan´y bod nal´ez´a uvnitˇr hledan´e znaˇcky.

Do mapy vah se pro dan´y bod konkr´etnˇe poˇc´ıtaj´ı hodnoty pravdˇepodobnosti, ˇze jemu nejbliˇzˇs´ı slovo je obsaˇzeno ve znaˇcce (”in”), od kter´e je odeˇctena pravdˇepodobnost, ˇze ve znaˇcce nen´ı (”out”). Jelikoˇz byly anotov´ana vˇsechna vstupn´ı data, ze kter´ych se vytv´aˇrel slovn´ık, lze pravdˇepodobnost, ˇze slovo nepopisuje znaˇcku vypoˇc´ıtat jako ”out” = 1 − ”in”. T´ım p´adem ve vznikl´e mapˇe vah jsou hodnoty 2 ∗ ”in” − 1 pro jednotliv´e bod˚u. Pro pro-veden´ı t´eto operace pro vˇsechny body vznikne kompletn´ı mapa vah o stejn´e velikosti jako p˚uvodn´ı obr´azek.

Mapa je pot´e rozostˇrena, aby se zbavila ˇsumu, tedy pˇredevˇs´ım osamocen´ych bod˚u. Dˇeje se tak skrz matici o zvolen´e velikosti. N´aslednˇe jsou nalezena lok´aln´ı maxima, kter´a jiˇz oznaˇcuj´ı hledanou znaˇcku. Maxima se nal´ezaj´ı v m´ıstech, kde byla nejvˇetˇs´ı koncentrace bod˚u s velk´ymi pravdˇepodobnostmi.

Kolem maxim jsou vytvoˇreny dvˇe kruˇznice (ˇcern´a a b´ıl´a) kv˚uli zv´yraznˇen´ı.

Na z´avˇer je do obr´azku veps´ana informace, za pouˇzit´ı jak´eho slovn´ıku byla detekce provedena a obr´azek je uloˇzen. Pokud program mˇel na vstupu jen jeden obr´azek, je na z´avˇer i zobrazen. Je samozˇrejmˇe jeˇstˇe uvolnˇena alokovan´a pamˇet’ a program ˇr´adnˇe ukonˇcen.

References

Related documents

The long- term goal of this project is to introduce the notion of learning space and explore the role of the design of learning space context-aware ontologies with the ultimate aim

事前テストと事後テストはそれぞれリーディング Part5 から Part7 に分かれており、TOEIC テストの出題形式と同じ形式で Part 5 短文穴埋め問題 13 問、Part 6 長文穴埋め問題 3

This will entail conceiving language as an essential social and ideological instrument which enables learners to question methods and procedures and contributes to

To capture CNVs within CDH candidate regions, we developed and tested a targeted array comparative genomic hybridization platform to identify CNVs within 140 regions in 196 patients

Accordingly, the research problem tackled in this thesis is that learners from previously disadvantaged black schools in Cape Town lack knowledge of hospitality

This slope is inconsistent with theories of spiral galaxy structure, which predict metal-rich inner regions and relatively metal-poor outer regions; the observed oxygen

In summary, our basic model suggests that the health share rises over time as income grows if the joy associated with living an extra year does not diminish as quickly as the