ŽILINSKÁ UNIVERZITA V ŽILINE

137
ŽILINSKÁ UNIVERZITA V ŽILINE FAKULTA RIADENIA A INFORMATIKY SPRACOVANIE OBRAZU S VYUŽITÍM DOPYTOV V PROSTREDÍ VANET Dizertačná práca Kód: 28360020133005 Študijný program: Aplikovaná informatika Pracovisko: Katedra softvérových technológií Fakulta riadenia a informatiky Školiteľ: doc. Ing. Emil Kršák, PhD. Žilina 2013 Ing. Štefan Toth

Transcript of ŽILINSKÁ UNIVERZITA V ŽILINE

ŽILINSKÁ UNIVERZITA V ŽILINE

FAKULTA RIADENIA A INFORMATIKY

SPRACOVANIE OBRAZU S VYUŽITÍM DOPYTOV

V PROSTREDÍ VANET

Dizertačná práca

Kód: 28360020133005

Študijný program: Aplikovaná informatika

Pracovisko: Katedra softvérových technológií

Fakulta riadenia a informatiky

Školiteľ: doc. Ing. Emil Kršák, PhD.

Žilina 2013 Ing. Štefan Toth

1

Poďakovanie

Moja veľká vďaka patrí môjmu školiteľovi doc. Ing. Emilovi Kršákovi, PhD. za jeho cenné

rady, myšlienky, vytrvalosť, ochotu vždy pomôcť a za poskytnutie vynikajúceho zázemia

a skvelého pracovného prostredia na Katedre softvérových technológií.

Veľká vďaka patrí tiež Ing. Jánovi Janechovi, PhD. za jeho cenné myšlienky, usmernenia,

plodné diskusie a predovšetkým povzbudenia v akomkoľvek čase.

Ďakujem aj ostatným členom katedry, ktorí mi akokoľvek pomohli a za vytvorenie

priateľskej a tvorivej atmosféry, ktorá vďaka nim panuje na katedre a vytvára tak

vynikajúce pracovisko.

V neposlednom rade ďakujem svojim rodičom a nebohej starej mame za všetko, čo mi

v živote poskytli a za povzbudenia počas môjho štúdia.

Ďakujem.

2

Abstrakt

VANET siete sú v súčasnosti perspektívnou oblasťou výskumu, v ktorej vozidlá môžu

bezdrôtovo komunikovať medzi sebou alebo s infraštruktúrou. Nasadenie tejto technológie

čoskoro ponúkne vo vozidlách mnohé aplikácie, či už z oblasti bezpečnosti alebo

komfortu. V tejto práci navrhujeme jednu novú aplikáciu, ktorá doposiaľ nemá obdobu a

spája niekoľko oblastí za účelom vytvorenia systému a jazyka na dopytovanie informácií

z obrazu. Práca v stručnosti popisuje v súčasnom stave aktuálne aplikácie zaoberajúce sa

spracovaním a analýzou obrazu vo VANET sieťach, so základnými i pokročilými

algoritmami a popisom obrazových dát MPEG-7 štandardu s využitím v QBIC / CBIR

systémoch, v ktorých sa dopyty vykonávajú na základe popisov alebo príznakov. Táto

práca je unikátna tým, že navrhuje systém a jazyk na dopytovanie požadovaných objektov

v obraze. Obraz je pritom získavaný z jednej alebo viacerých kamier snímajúcich dopravnú

scénu z vozidla v reálnom čase. Nejedná sa teda o dopyt do databázy, ale o dopyt, ktorý

definuje, čo, kde a ako sa má v obraze vyhľadať spolu s možnosťou vyjadrenia

komplexných priestorových relácií. Na základe toho sa budú rozpoznávať požadované

objekty v obraze a využívať algoritmy spracovania, analýzy obrazu a počítačového

videnia.

Kľúčové slová: VANET, spracovanie obrazu, analýza obrazu, dopyt, dopytovací jazyk

nad obrazom, obrazový objekt, strom obrazových objektov, LINQ to Images.

3

Abstract

Nowadays the VANET networks are the promising research area in which a vehicle can

communicate with other vehicles or infrastructure on a wireless basis. The deployment of

this technology will soon provide many safety or comfort applications in vehicles. One of

them is an interesting application which is proposed by this thesis. It combines a few fields

in order to create a new system and query language for obtaining data from an image in the

VANET environment. The thesis briefly describes the state-of-the-art of VANET

applications related to the image processing and analysis. It also describes the basic and

advanced image processing algorithms, MPEG-7 standard and QBIC / CBIR systems, in

which data are obtained by descriptions or image features. This work is unique in that it

proposes a novel system and language for querying objects in the image. The image is

captured by one or more cameras placed in a vehicle in real time. Thus it is not a standard

query to a database. The proposed query language defines what objects have to be

recognized in the image of traffic scene. The system can detect and recognize required

objects and their complex spatial relations in real-time using image processing, image

analysis and computer vision algorithms.

Keywords: VANET, image processing, image analysis, query, query language on image,

image object, tree of image object, LINQ to Images.

4

Obsah

Zoznam obrázkov ............................................................................................................................... 6

Zoznam tabuliek ................................................................................................................................. 9

Zoznam skratiek a značiek................................................................................................................ 10

1 Úvod ......................................................................................................................................... 13

2 Cieľ............................................................................................................................................ 15

3 Súčasný stav ............................................................................................................................. 16

3.1 VANET ............................................................................................................................... 16

3.1.1 Klasifikácia aplikácií .................................................................................................. 17

3.1.2 Aplikácie používajúce kamery .................................................................................. 18

3.1.3 Komunikačný štandard ............................................................................................. 19

3.2 Spracovanie a analýza obrazu .......................................................................................... 19

3.2.1 Všeobecný model rozpoznávania obrazu ................................................................ 20

3.2.2 Digitálna reprezentácia obrazu ................................................................................ 21

3.2.3 Farebné modely ....................................................................................................... 23

3.2.4 Základné algoritmy ................................................................................................... 26

3.2.5 Rozpoznávanie objektov .......................................................................................... 32

3.3 MPEG-7 ............................................................................................................................ 44

3.3.1 Vizuálne deskriptory................................................................................................. 47

3.3.2 MPQF ........................................................................................................................ 48

3.4 Zhodnotenie ..................................................................................................................... 49

4 Riešenie .................................................................................................................................... 51

4.1 Vymedzenie problému ..................................................................................................... 51

4.2 Obrazové objekty ............................................................................................................. 55

4.2.1 Objekty na dopravnej scéne ..................................................................................... 56

4.2.2 Nízkoúrovňové objekty ............................................................................................ 79

4.3 Systém na dopytovanie .................................................................................................... 81

4.3.1 Vstup ........................................................................................................................ 84

4.3.2 Výstup....................................................................................................................... 86

4.3.3 Dopyt ........................................................................................................................ 87

4.3.4 Príklady dopytov..................................................................................................... 103

5 Implementácia a overenie riešenia ........................................................................................ 111

5.1 Implementácia ............................................................................................................... 111

5

5.1.1 EmguCV a OpenCV ................................................................................................. 111

5.1.2 Systém LINQ to Images .......................................................................................... 112

5.1.3 Vlastné algoritmy ................................................................................................... 113

5.2 Overenie riešenia ........................................................................................................... 115

5.2.1 Porovnanie s klasickou tvorbou algoritmov ........................................................... 119

6 Záver ....................................................................................................................................... 123

6.1 Vedecký prínos ............................................................................................................... 124

6.2 Použitie navrhovaného riešenia ..................................................................................... 125

6.3 Ďalšie pokračovanie výskumu ........................................................................................ 126

Zoznam použitej literatúry ............................................................................................................. 127

Zoznam vlastných publikovaných prác .......................................................................................... 135

6

Zoznam obrázkov

Obr. 1 C2X komunikácia medzi vozidlami a infraštruktúrou, zdroj: [3] ........................................... 16

Obr. 2 Scenár križovatky, zdroj: [7] .................................................................................................. 18

Obr. 3 Scenár predbiehania veľkého vozidla, ktoré prenáša obraz z kamery pred ním, zdroj: [8] .. 18

Obr. 4 Všeobecný postup rozpoznávania objektov na príklade rozpoznávania počtu prstov [18] . 21

Obr. 5 Matica reprezentujúca časť obrázka z výrezu bočného zrkadla automobilu, zdroj: [22] ..... 23

Obr. 6 Miešanie farieb v RGB a jeho znázornenie pomocou RGB kocky ......................................... 24

Obr. 7 Grafické zobrazenie modelu HSV vľavo [27] a modelov HSL vpravo [28] ............................. 25

Obr. 8 Reprezentácia CIELAB modelu, zdroj: [29] ............................................................................ 26

Obr. 9 Princíp spracovania bodov bez ohľadu na okolie. Pixel na vstupom obrázku f(x,y) vľavo je spracovaný určitou operáciou, ktorej výsledok sa uloží na rovnakú pozíciu do výstupného obrázku g(x,y) vpravo [18] ............................................................................................................................. 27

Obr. 10 Princíp konvolúcie, zdroj: [18] a [30] .................................................................................. 28

Obr. 11 Histogramy farebného obrázka (tri kanály) a obrázka v odtieňoch sivej (jeden kanál) ...... 29

Obr. 12 Príklad Gaussovej masky o veľkosti 5x5 .............................................................................. 29

Obr. 13 Vľavo originálny obrázok, vpravo po aplikácii Gaussového filtra s maskou 9x9 ................. 29

Obr. 14 Vľavo originálny obrázok, vpravo po aplikácii Mediánového filtra s maskou 9x9 .............. 30

Obr. 15 Vľavo obrázok po aplikácii otvorenia s iteračným krokom 1, vpravo po aplikácii s iteračným krokom 2 .......................................................................................................................................... 31

Obr. 16 Vľavo originálny obrázok, vpravo po globálnom prahovaní červenej farby ....................... 31

Obr. 17 Vľavo originálny obrázok v odtieňoch sivej, vpravo po použití Cannyho hranového detektora .......................................................................................................................................... 32

Obr. 18 Vľavo originálny obrázok, vpravo po Houghovej transformácii úsečiek ............................. 32

Obr. 19 Horizontálna a vertikálna projekcia z uvedených obrázkov ................................................ 35

Obr. 20 Zľava vzor strán a princíp, podľa ktorého sú vypočítavané DtB, v strede binárny obrázok trojuholníka a vpravo jeho 4 DtB histogramy, zdroj: [33] ................................................................ 35

Obr. 21 Príklad jednoduchej neurónovej siete [37] ......................................................................... 36

Obr. 22 Princíp mechanizmu podporných vektorov na príklade dvoch tried .................................. 37

Obr. 23 Príklad silného klasifikátora vytvoreného z 3 slabých klasifikátorov .................................. 38

Obr. 24 Rozpoznanie objektu škatule pomocou SURF algoritmu s vyznačenými kľúčovými bodmi 39

Obr. 25 Reprezentácia obrázkov batohom vizuálnych slov, zdroj: [51] ........................................... 41

Obr. 26 Detegované kľúčové body Harrisovým detektorom ........................................................... 41

Obr. 27 Detegované oblasti vľavo Harris-Laplace a vpravo Harris-Affine detektorom ................... 42

Obr. 28 Detegované oblasti vľavo Hessian-Laplace a vpravo Hessian-Affine detektorom .............. 42

Obr. 29 Detegované regióny MSER detektorom .............................................................................. 43

Obr. 30 Testovací obrázok a jeho zodpovedajúci HOG, zdroj: [59] ................................................. 44

7

Obr. 31 Hlavné elementy MPEG-7, zdroj: [60] ................................................................................. 45

Obr. 32 Ukážka MPEG-7 dokumentu a jeho korešpondujúceho DOM stromu, zdroj: [61] ............. 46

Obr. 33 Elementy XML MPEG formátu na dopytovanie .................................................................. 48

Obr. 34 Globálny pohľad na postup spracovania obrazu definovaného dopytom .......................... 52

Obr. 35 Náčrt dopytovania od jeho definovania po vrátenie výstupu ............................................ 53

Obr. 36 Náčrt komunikácie žltého vozidla so zeleným vozidlom pre čiastkové spracovanie obrazového dopytu (červená čiara predstavuje V2V komunikáciu a svetlomodré lichobežníky pohľad kamier) ................................................................................................................................. 55

Obr. 37 Príklady objektov nachádzajúcich sa na dopravnej scéne pred vozidlom (obrázok získaný z kamery umiestnenej vo vozidle) ...................................................................................................... 56

Obr. 38 Detegovaná obloha vyznačená modrým šrafovaním .......................................................... 59

Obr. 39 Vyznačená oblasť hôr červenožltým šrafovaním ................................................................ 60

Obr. 40 Vyznačená oblasť vozovky červenožltým a chodníka žltým šrafovaním ............................. 61

Obr. 41 Príklady vodorovných dopravných značiek používaných na Slovensku [72] ...................... 62

Obr. 42 Príklady vodorovných dopravných značiek ......................................................................... 63

Obr. 43 Príklady zvislých dopravných značiek používaných na Slovensku [72] ............................... 63

Obr. 44 Príklady svetelných signalizačných zariadení ...................................................................... 65

Obr. 45 Príklady výskytov textov na dopravnej scéne ..................................................................... 66

Obr. 46 Pomenovanie častí vozidla z ľavoprednej strany (hore) a pravej strany (dole) .................. 68

Obr. 47 Časti vozidla pomenované pre identifikáciu z rôznych strán .............................................. 69

Obr. 48 Príklady ľudí vyskytujúcich sa na ceste ............................................................................... 69

Obr. 49 Symbol lebky s prekríženými kosťami ................................................................................. 77

Obr. 50 Žirafa ako deformovateľný objekt v rôznych pozíciách a pohľadoch predstavujúcich množinu šablón pre rozpoznávanie ................................................................................................. 77

Obr. 51 Obraz segmentovaný na základe červenej, modrej a žltej farby ........................................ 80

Obr. 52 Dopyt ako komplexná úloha zložená z postupnosti jednoduchých úloh ............................ 81

Obr. 53 Postup spracovania dopytu od jeho začiatku až po koniec ................................................ 82

Obr. 54 Príklad postupnosti spracovania úlohy hľadania vozidla s charakteristickými znakmi ....... 83

Obr. 55 Obrazový objekt z globálneho pohľadu .............................................................................. 88

Obr. 56 Obrazový objekt ako základná trieda pre iné obrazové objekty na príklade vozidla a farebného segmentu ..................................................................................................................... 89

Obr. 57 Strom obrazových objektov (oranžové obdĺžniky predstavujú obrazové objekty, biele obdĺžniky typy) ................................................................................................................................. 89

Obr. 58 Princíp spracovania elementárnej úlohy operáciou so vstupmi a výstupmi ...................... 90

Obr. 59 Možné rozmiestnenie kamier vo vozidle ............................................................................ 94

Obr. 60 Postupnosť hľadania červených vozidiel na príklade zistených troch vozidiel ................. 104

Obr. 61 Postupnosť hľadania červených vozidiel pomocou hľadania červených segmentov ....... 105

8

Obr. 62 Postupnosť hľadania červeného vozidla s vyobrazením lebky na príklade troch vozidiel, z ktorých jedno zodpovedá zadanému popisu ............................................................................... 107

Obr. 63 Postupnosť rozpoznania totemu čerpacej stanice na základe textu obsahujúceho čísla, príklad zobrazuje dve logá, z ktorých jedno bude zodpovedať zadanému dopytu ....................... 108

Obr. 64 Postupnosť hľadania značky zákazu zastavenia, vozidiel a oblohy pre odfiltrované vozidiel na bilbordoch a so zistením vozidla najbližšieho ku značke zákazu zastavenia ............................. 110

Obr. 65 Diagram niektorých významných tried navrhnutého systému ......................................... 112

Obr. 66 Navrhnutý postup rozpoznávania dopravných značiek .................................................... 114

Obr. 67 Kaskáda navrhnutých neurónových sietí určených na klasifikáciu ................................... 115

Obr. 68 Postupnosť krokov spracovania testovacieho obrázku dopravnej scény pomocou segmentácie červených oblastí s následným rozpoznaním vozidiel .............................................. 116

Obr. 69 Postupnosť krokov spracovania testovacieho obrázku dopravnej scény s cieľom vyhľadania totemu čerpacej stanice podľa šablóny loga mušle .................................................... 118

Obr. 70 Postupnosť krokov spracovania testovacieho obrázka dopravnej scény s cieľom vyhľadania dopravnej značky priechodu pre chodcov umiestnenej vpravo od chodca................................... 119

9

Zoznam tabuliek

Tab. 1 Porovnanie dopravných značiek používaných v rôznych krajinách ...................................... 64

Tab. 2 Porovnanie počtu riadkov a príkazov navrhovaného systému s klasicky písaným kódom . 121

Tab. 3 Porovnanie navrhovaného riešenia s klasickým riešením................................................... 122

10

Zoznam skratiek a značiek

ANN Artificial Neural Network (umelá neurónová sieť)

ASIFT Affine-SIFT (afinný SIFT)

BiM MPEG-7 Binary Format (binárny formát štandardu MPEG-7)

BoVW Bag-of-Visual-Words (batoh vizuálnych slov)

BoW Bag of Words (batoh slov)

BSD Berkeley Software Distribution

C2C Car to Car (komunikácia auto s autom)

C2C-CC CAR 2 CAR Communication Consortium (Konzorcium pre komunikáciu

auto – auto)

C2I Car to Infrastructure (komunikácia auto s infraštruktúrou)

C2X Car to X (komunikácia auto s autom alebo s infraštruktúrou)

CBIR Content Based Image Retrieval (vyhľadávanie obrazu podľa jeho obsahu)

CEN European Committee for Standardization (Európsky výbor pre

normalizáciu)

CIE Commission International de l’Éclairage (Medzinárodná komisia pre

osvetlenie)

CMY Cyan Magenta Yellow (modrozelená červenofialová žltá)

CMYK Cyan Magenta Yellow Black (modrozelená červenofialová žltá čierna)

CNN Convolutional Neural Network (konvolučná neurónová sieť)

CR/LF Carriage Return / Line Feed (znak nového riadku)

ČVUT České vysoké učení technické

DDL Description Definition Language (jazyk pre definíciu popisu)

DOM Document Object Model (objektový model dokumentu)

DS Description Schemes (popisné schémy)

EČV Evidenčné číslo vozidla

ETSI European Telecommunications Standards Institute (Európsky inštitút pre

telekomunikačné normy)

GLOH Gradient Location-Orientation Histogram (histogram pozične orientovaných

gradientov)

GPL GNU General Public License (všeobecná verejná licencia GNU)

GPS Global Positioning System (globálny pozičný systém)

11

HDR High Dynamic Range (vysoký dynamický rozsah)

HLS Hue Lightness Saturation (odtieň svetlosť sýtosť)

HMMD Hue-Max-Min-Diff

HOG Histogram of Oriented Gradients (histogram orientovaných gradientov)

HSB Hue Saturation Brightness (odtieň sýtosť jas)

HSI Hue Saturation Intensity (odtieň sýtosť intenzita)

HSL Hue Saturation Lightness (odtieň sýtosť svetlosť)

HSV Hue Saturation Value (odtieň sýtosť jasová hodnota)

IEC International Electrotechnical Commission (Medzinárodná elektrotechnická

komisia)

IEEE Institute of Electrical and Electronics Engineers (Inštitút pre

elektrotechnické a elektronické inžinierstvo)

ISO International Organization for Standardization (Medzinárodná organizácia

pre normalizáciu)

JSON JavaScript Object Notation (JavaScriptový objektový zápis)

LINQ Language Integrated Query (jazyk zjednocujúci dopytovanie)

LIOP Local Intensity Order Pattern

MAC Medium Access Control (riadenie prístupu k médiu)

MDS Multimedia Description Schemes (multimediálne popisné schémy)

MIME Multipurpose Internet Mail Extensions (viacúčelové rozšírenie internetovej

pošty)

MLP Multi-Layer Perceptron (viacvrstvový perceptrón)

MPEG Moving Picture Experts Group (expertná skupina pre pohyblivý obraz)

MPQF MPEG Query Format (MPEG dopytovací formát)

MSER Maximally Stable Extremal Regions (maximálne stabilné extremálne

oblasti)

MUTCD Manual on Uniform Traffic Control Devices for Street and Highways

(manuál o jednotných dopravných riadiacich zariadeniach pre ulice a

diaľnice)

PCA Principal Component Analysis (analýza hlavných komponent)

PHY Physical Layer (fyzická vrstva)

PNG Portable Network Graphics (formát prenosnej sieťovej grafiky)

QBIC Query by Image Content (dopyt podľa obsahu obrázka)

RANSAC Random Sample Consensus

12

RBF Radial Basis Function (radiálna základná funkcia)

RGB Red Green Blue (červená zelená modrá)

RGBA Red Green Blue Alpha (červená zelená modrá alfa kanál)

SIFT Scale Invariant Feature Transform

SQL Structured Query Language (štruktúrovaný dopytovací jazyk)

SURF Speeded Up Robust Features

SUSAN Smallest Univalue Segment Assimilating Nucleus

SVG Scalable Vector Graphics (značkovací jazyk škálovateľnej vektorovej

grafiky)

SVM Support Vector Machine (mechanizmus podporných vektorov)

UML Unified Modeling Language (unifikovaný modelovací jazyk)

USA United States of America (Spojené štáty americké)

V2I Vehicle to Infrastructure (komunikácia vozidlo s infraštruktúrou)

V2V Vehicle to Vehicle (komunikácia vozidlo s vozidlom)

V2X Vehicle to X (komunikácia vozidlo s vozidlom alebo s infraštruktúrou)

VANET Vehicular Ad hoc Network (automobilová ad hoc sieť)

VML Vector Markup Language (vektorový značkovací jazyk)

WAVE Wireless Access in Vehicular Environments (bezdrôtový prístup v prostredí

vozidiel)

WMF Windows Metafile (formát Windowsových metasúborov)

XML Extensible Markup Language (rozšíriteľný značkovací jazyk)

YCbCr Luminance Chroma blue Chroma red (jas modrá farba červená farba)

13

1 Úvod

Predstavme si, že sa stane banková lúpež a policajti dostanú informáciu o tom, že lupiči

unikli na červenom vozidle s evidenčným číslom začínajúcim na ZA a končiacim AB,

pričom vpravo od neho bola nálepka vyobrazujúca lebku s prekríženými kosťami.

V prípade VANET siete alebo distribuovanej siete zloženej z mobilných telefónov

s kamerami sledujúcimi okolie pred vozidlom by bolo možné využiť jazdiace automobily

na lokalizovanie vozidla. Požiadavka zadefinovaná na hľadanie červených vozidiel

s určitým charakteristickým popisom by sa mohla predať vozidlám jazdiacim v danom

okruhu od miesta lúpeže. Automobily by následne spracovávali obraz z kamery a hľadali

by zadefinovaný objekt určitý čas. Ak by nejaké vozidlo lokalizovalo hľadaný objekt,

vyslalo by o ňom správu so zistenou aktuálnou GPS polohou, smerom pohybu

a zachyteným obrázkom.

Iným zaujímavým príkladom môže byť aj zistenie aktuálnych cien pohonných hmôt určitej

čerpacej stanice. Vodič by chcel natankovať na nejakej stanici preferovanej značky a chcel

by preto zistiť, kde je napr. benzín v okolí najlacnejší. Informácie o cenách sa väčšinou

nachádzajú na totemoch čerpacích staníc, preto by bolo zaujímavé rozpoznať totem

čerpacej stanice a z jeho obsahu zistiť cenu benzínu. Vozidlo, ktoré by takúto informáciu

chcelo získať, by preto vytvorilo požiadavku, v ktorej by bolo definované, čo a ako sa má

hľadať (logo požadovanej čerpacej stanice s charakteristickými rysmi a pod ním textové

číselné informácie). Následne by sa vyslala požiadavka do siete a ak by nejaké vozidlo

zdetegovalo totem a rozpoznalo jeho obsah, mohlo by vrátiť naspäť odpoveď

s požadovanými informáciami ako je rozpoznaná cena pohonných hmôt, obrázok totemu

a jeho GPS poloha.

Aby sme mohli lokalizovať takéto hľadané objekty, musíme spracovať obraz získaný

jednou alebo viacerými kamerami pomocou algoritmov z oblasti analýzy, spracovania

obrazu a počítačového videnia. Úlohy je možné riešiť klasicky vytvorením komplexného

algoritmu skladajúceho sa z metód, v telách ktorých budú pomocné algoritmy

zabezpečujúce zadanú funkcionalitu rozpoznávania. Vytvorenie algoritmu hľadajúceho

určitý objekt pre daný účel ale nemusí vyhovovať v takom prostredí akým sú siete

VANET, pretože by sa vyžadovalo, aby bol v každom vozidle konkrétny algoritmus

nasadený a teda implementovaný. Ak by nebol, bolo by možné zaistiť prenos konkrétneho

14

kódu na koncové zariadenie a zabezpečiť tak jeho vykonanie. Vzniká ale otázka

bezpečnosti takéhoto riešenia (potrebný napr. sandbox). Problematická je okrem toho aj

heterogénnosť prostredí (rôzne operačné systémy), ďalej veľkosť kódu a s tým súvisiaci

čas potrebný na prenos, ktorý je potrebný vo VANET sieti zredukovať, nakoľko

komunikácia medzi vozidlami alebo vozidlami a infraštruktúrou je kvôli mobilite vozidiel

krátka. Jednoduchším riešením by preto bolo rozdeliť komplexnú úlohu hľadania určitého

objektu na menšie časti, t.j. implementovať potrebné základné algoritmy a využiť ich ako

stavebné kamene na vyriešenie komplexnej úlohy.

Využitím tejto myšlienky a pre realizovanie uvedených motivačných úloh je potrebné

presne špecifikovať, aké objekty, kde, v akej relácií a ako sa majú v obraze vyhľadávať.

Navyše, v obraze dopravnej scény sa môžu nachádzať aj netradičné objekty, na ktoré treba

brať zreteľ. Realizácia preto nie je taká jednoduchá. Potrebné je tiež vyriešiť, v akom

formáte a teda aj štruktúre bude úloha predaná, ako sa má rozdeliť na menšie časti, ako ich

vykonať, zlúčiť a transformovať na požadovaný výstup. To bude predmetom skúmania,

výsledkom ktorého je návrh systému a jazyka na dopytovanie ľubovoľných objektov

z obrázkov pre prostredie VANET. Navrhnutý systém nakoniec nemusí byť využitý len

v ňom, ale aj v iných oblastiach, ako bude v závere práce poukázané.

Štruktúra tejto práce je nasledovná. Kapitola 2 definuje cieľ práce, za ktorým nasleduje

v tretej kapitole analýza súčasného stavu. V nej sa zameriavame na stručný popis VANET

sietí, základných a aktuálnych algoritmov spracovania a analýzy obrazu zameraných na

dopravnú infraštruktúru a v závere tejto kapitoly na štandard MPEG-7. V kapitole 4

popisujeme navrhnuté riešenie, ktorého implementáciu a overenie uvádzame v

nasledujúcej piatej kapitole. Následne v záverečnej kapitole zhrnieme vedecký prínos

a načrtneme možné smery ďalšieho výskumu.

15

2 Cieľ

Hlavným cieľom tejto práce je navrhnúť systém a jazyk na dopytovanie ľubovoľných

objektov z obrazu získaného senzormi snímajúcimi dopravnú scénu pred vozidlom

v prostredí VANET. Požadované objekty sa budú v obraze automaticky detegovať

a rozpoznávať na základe vstupného dopytu.

Systém tak umožní spracovanie komplexných úloh z oblasti spracovania a analýzy obrazu

na cestnej sieti pomocou jednoduchých čiastkových úloh a bude definovať:

množinu základných a priestorových operácií nad obrazom,

nízkoúrovňové algoritmy spracovania a analýzy obrazu,

vysokoúrovňové algoritmy spracovania a analýzy obrazu,

jednotné rozhranie pre spracovávané vstupy a výstupy,

formát jazyka na dopytovanie.

16

3 Súčasný stav

3.1 VANET

Pojem VANET (Vehicular Ad hoc Network) predstavuje ad-hoc sieť určenú pre bezdrôtovú

komunikáciu vozidiel. Venuje sa jej mnoho výskumníkov a výrobcov automobilov

s cieľom vyvinúť štandard na prenos dát a aplikácie, od ktorých sa očakáva zvýšenie

bezpečnosti v doprave a to predovšetkým znížením dopravných nehôd a zápch, ušetrením

času cestovania a teda aj dosiahnutie zníženie znečistenia ovzdušia a spotreby energie [1].

V súčasnosti sa považuje za jednu z najdôležitejších technológií v oblasti inteligentných

dopravných systémov [2].

Obr. 1 C2X komunikácia medzi vozidlami a infraštruktúrou, zdroj: [3]

Komunikácia môže prebiehať medzi vozidlami (označovaná ako V2V – Vehicle to Vehicle

alebo tiež C2C – Car to Car) a vozidlami s infraštruktúrou (V2I – Vehicle to Infrastructure

alebo C2I – Car to Infrastructure). Spoločne sa potom označuje ako V2X, C2X alebo

Car2X komunikácia.

Typickým príkladom použitia je informovanie o dopravnej zápche, nehode a varovanie

pred možným nebezpečenstvom. Napríklad ak sa stala nejaká nehoda za zákrutou, za ktorú

vodič nemá výhľad a teda vďaka C2C komunikácií sa o nej dozvie včas. Ak by cesta bola

17

navyše neprejazdná, mohol by sa vodič možnej zápche vyhnúť preplánovaním trasy. Iným

príkladom pre C2I komunikáciu, teda komunikáciu vozidlo a infraštruktúra, je napríklad

svetelné signalizačné zariadenie – semafor, ktorý informuje o svojom aktuálnom stave.

Takto sa napríklad môže vodičovi dostať informácia o stave a dĺžke trvania svietenia

zelenej, prípadne červenej farby. Navyše, ak by si vodič červenú nevšimol a

nespomaľoval, je na nebezpečenstvo upozornený a rovnako sú varované aj ostatné vozidlá

prechádzajúce cez križovatku [4].

3.1.1 Klasifikácia aplikácií

Celkovo je možné aplikácie vo VANET sieti rozdeliť do troch hlavných oblastí [5] [6]:

bezpečnosť,

efektívna doprava,

infotainment, biznis a ostatné.

Do oblasti bezpečnosti môžeme zaradiť aplikácie, ktorých dôsledkom dôjde k zníženiu

počtu dopravných nehôd a to najmä vyvarovaním sa pred nimi ako napr. varovanie pri

zmene jazdného pruhu (informovanie okolitých vozidiel pre zamedzenie stretu s vozidlom

pri slepom uhle, či nevšímavosti vodiča) alebo upozornenie na nebezpečné miesta (miesta

dopravných nehôd alebo kde je povrch vozovky šmykľavý, s výtlkmi na ceste apod.).

Druhou kategóriou je efektívna doprava, kde je snaha o maximalizáciu kapacity ciest

a vyhnutiu sa tvorby dopravných zápch. Príkladom môžu byť navigačné systémy, ktoré

môžu preplánovať alternatívne trasy na základe zistenej aktuálnej situácie v doprave.

Ďalším príkladom je využitie zelenej vlny s vyhnutím sa zastavaniu vozidla vďaka

informáciám o časovaní semaforov. S touto informáciou môžu vozidlá vypočítať

optimálnu rýchlosť, po ktorej dodržaní nebudú musieť zastaviť a teda dôjde k zvýšeniu

plynulosti dopravy a tak aj k zníženiu spotreby paliva.

Poslednú oblasť predstavuje infotainment, ktorý ponúka aplikácie pre informovanie,

zábavu a komfort, do ktorých môžeme zaradiť napr. navigačný systém pre parkovanie

v reálnom čase k informovaniu o voľných parkovacích miestach, prenos súborov medzi

vozidlami, internetový prístup a mnohé iné pre zabezpečenie pohodlia pasažierov pri

cestovaní.

18

3.1.2 Aplikácie používajúce kamery

VANET sieť môže byť nápomocná aj pri križovatkách alebo pri predbiehaní vozidiel

s využitím kamier umiestnených v automobiloch ako uvádzajú autori v [7]. Na príklade

križovatky (obr. 2), v ktorej budovy zatieňujú výhľad vodiča v smere jeho odbočovania,

môže napomôcť druhé vozidlo, ktoré má výhľad na smer, do ktorého prvé vozidlo

odbočuje. Vďaka tomu je možné buď prenášať obraz z tohto druhého vozidla do prvého

alebo automaticky identifikovať určité potenciálne objekty ako sú chodci prechádzajúci

cez prechod pre chodcov a vďaka tomu upozorniť vodiča na zvýšenú opatrnosť.

Obr. 2 Scenár križovatky, zdroj: [7]

V prípade predbiehania vozidiel, ktoré sú veľké (obr. 3) alebo majú zatemnené zadné sklo,

cez ktoré nie je možné dobre vidieť situáciu pred vozidlom, autori v [8] navrhli protokol

pre prenos videa z kamery umiestnenej v predbiehanom vozidle. Vďaka tomu môže mať

vodič dokonalý prehľad o dianí pred vozidlom a podľa toho môže bezpečnejšie realizovať

úkon predbiehania.

Obr. 3 Scenár predbiehania veľkého vozidla, ktoré prenáša obraz z kamery pred ním, zdroj: [8]

Iným príkladom využitia kamier a spracovania obrazu vo VANET prostredí je

lokalizovanie automobilov. Autori Ferreira a kol. [9] navrhli protokol na vyhľadávanie

19

vozidiel s využitím rozpoznávania evidenčných čísiel, po ktorých pátra polícia. Po ich

vypátraní sa polícií odošle GPS poloha prostredníctvom zabezpečeného prenosu, aby ho

nebolo možné podvrhnúť.

3.1.3 Komunikačný štandard

Problematikou komunikácie vo VANET sa zaoberalo mnoho výskumných projektov

z rôznych krajín ako sa uvádza v [10]. Najväčšie aktivity pritom prináša USA, Japonsko

a Európa ako celok. V Európe zohráva hlavnú úlohu predovšetkým komunikačné

konzorcium C2C-CC, ktoré v súčinnosti s IEEE, ISO a CEN prispieva k štandardizovaniu

prostredníctvom Európskeho inštitútu pre telekomunikačné normy (ETSI). Konzorcium

bolo založené významnými európskymi výrobcami automobilov a ďalšími partnermi z

oblasti priemyslu a výskumu. Jeho hlavným cieľom je vytvoriť európsky štandard pre C2X

komunikáciu a harmonizovať výstupy z rôznych projektov v tejto oblasti.

Napriek tomu, že finálny štandard je stále v progrese, aktuálny vývoj sa zameriava na

štandard založený na technológií Wi-Fi. Najsľubnejším je v súčasnosti IEEE 802.11p [7],

ktorý definuje PHY a MAC vrstvy. Popri tom je definovaná rodina protokolov IEEE 1609,

ktoré tvoria vyššiu vrstvu nad 802.11p. Spolu sa označujú ako WAVE štandard [11]. Podľa

Gukhoola [12] by mal štandard umožňovať komunikáciu na dlhý dosah (do 1000 m)

s podporou vysokej mobility.

O budúcom nasadení tejto technológie svedčí aj fakt, že sa po návrhoch a simulačných

testoch vykonávajú reálne testy, ako uvádza napr. automobilka Daimler. Podľa správy [3]

sa testovala sieť tvorená so 120 vozidlami. Inými automobilkami, ktoré testujú

medzivozidlovú komunikáciu sú napr. Toyota [13], General Motors [14] alebo Ford [15].

3.2 Spracovanie a analýza obrazu

Pojmy spracovanie obrazu, analýza obrazu a počítačové videnie sú niekedy rôzne

interpretované. Rôzni autori používajú rôzne definície, pričom veľakrát sa ich význam

zamieňa. Podľa Hlaváča [16] a Pitasa [17] ich môžeme klasifikovať z hľadiska apriórnej

znalosti o tom, čo sa nachádza na obrázku, od nízkej k vyššej úrovni spracovania,

nasledovne:

Spracovanie obrazu (image processing) – nízka, až žiadna znalosť o obsahu v

obraze, obrazy sa teda neinterpretujú a preto sú postupy nezávislé na konkrétnej

aplikačnej oblasti. Samotné spracovanie obrazu pritom vychádza zo spracovania

20

signálov, príkladom môže byť napr. 2D Fourierová transformácia alebo aplikácia

Gaussového filtra pre tzv. vyhladzovanie obrazu, kde na vstup prichádza originálny

obrázok a výstupom je spracovaný obrázok pomocou tohto filtra. Vstupom

i výstupom v spracovaní obrazu je teda obrázok.

Analýza obrazu (image analysis) – stredná znalosť obrazu, interpretácia prináša

dôležitú dodatočnú znalosť umožňujúcu riešiť aj také úlohy, ktoré by sa inak riešiť

nedali. Hlavným cieľom je nájsť objekty záujmu a potom extrahovať niektoré

parametre z týchto objektov. Príkladom môže byť hľadanie pozície a veľkosti

objektov [18]. Zaoberá sa teda popisom a rozpoznávaním obsahu obrazu. Vstupom

je obrázok a výstupom jeho symbolický popis.

Počítačové videnie (computer vision) – vyššia znalosť obrazu, podľa Pitasa [17]

často ekvivalentné alebo ako nadmnožina analýzy obrazu. Podľa Hlaváča [16] sa

jedná o porozumenie obsahu 3D scény z obrazov a videí, ktoré sú zložité na

spracovanie. Využíva sa preto interpretácia, spätná väzba a techniky umelej

inteligencie pre pokročilé algoritmy, ktoré napodobujú ľudské vnímanie, ako je

napr. detekcia a rozpoznávanie tváre.

Napriek tomuto rozdeleniu je potrebné upozorniť, že analýza obrazu a počítačové videnie

sa používajú v mnohých literatúrach ako synonymá. Popri nich ešte existujú ďalšie

skupiny, ktoré sú buď podmnožinou uvedených kategórií alebo sa prelínajú, ako napr.

manipulácia obrazu (image manipulation), spracovanie videa (video processing), strojové

videnie (machine vision), video a obrazová kompresia (video and image compression)

apod. I keď neexistuje jednotná definícia týchto kategórií, Moeslund [18] sa ich pokusil

stručne popísať.

V nasledujúcich častiach budú predstavené niektoré konkrétne nízkoúrovňové

i vysokoúrovňové algoritmy.

3.2.1 Všeobecný model rozpoznávania obrazu

Rozpoznávanie akýchkoľvek objektov vo všeobecnosti môžeme vyjadriť nasledujúcou

postupnosťou krokov:

1. Získanie obrázka

2. Predspracovanie

3. Segmentácia

21

4. Reprezentácia

5. Klasifikácia

Uvedenú postupnosť krokov znázorňuje obr. 4.

Obr. 4 Všeobecný postup rozpoznávania objektov na príklade rozpoznávania počtu prstov [18]

Po získaní obrázka z nejakého zdroja (snímaním z kamery alebo z videa) nasleduje jeho

predspracovanie, čo znamená pripravenie obrázka do takej podoby, aby na ňom bolo

možné realizovať algoritmy pre ďalšie spracovanie. V tomto kroku sa môže jednať napr. o

konvertovanie farebného obrázka do obrázka v odtieňoch sivej (obr. 4), prípadne použitie

filtrov na odstránenie, resp. potlačenie šumu. Tu sa využívajú algoritmy spracovania

obrazu. Ďalším krokom je segmentácia, pomocou ktorej sa extrahujú objekty záujmu, čím

sa oddeľuje popredie (to, čo nás zaujíma) od pozadia (všetkého ostatného). Na uvedenom

obrázku sú objektmi záujmu prsty, avšak dostali sa tam aj neželané objekty (šum).

Následne sa všetky tieto objekty popíšu niekoľkými charakteristickými príznakmi, ktoré

ich budú reprezentovať. Táto časť býva riešená algoritmami z analýzy obrazu. Posledným

blokom je klasifikácia, ktorá popísané objekty identifikuje a tak aj určí, ktoré by mohli byť

objektmi záujmu alebo nie. Na ilustračnom príklade s rukou sa identifikovali tri prsty.

Tento model je všeobecný, čo znamená, že sa všetky bloky nemusia vždy dodržať,

prípadne sa môže zameniť ich poradie alebo je možné kroky úplne nahradiť inými

postupmi, či spájať do samostatných blokov.

3.2.2 Digitálna reprezentácia obrazu

Na prácu s obrázkami v počítači je nutné nejakým spôsobom obraz reprezentovať.

Definícia obrazu sa v rôznych aplikačných oblastiach a disciplínach líši. Intuitívne ho

možno definovať ako priemet reálneho sveta na sietnicu oka alebo obraz zachytený

kamerou, na obrazovke počítača, na papieri, či odraz v nehybnej vodnej hladine [19] [20].

Formálne môžeme obraz modelovať ako spojitú (obrazovú) funkciu dvoch premenných

, kde predstavuje hodnotu jasu a predstavujú súradnice na ploche.

Získanie obrázka Predspracovanie Segmentácia Reprezentácia Klasifikácia

„Nájdené

tri prsty“

Objekt č. 1

Objekt č. 2

...

Objekt č. 6

22

V prípade dynamického obrazu (videa) môžeme obraz vyjadriť aj ako funkciu troch

premenných , kde znamená čas.

Pretože u obrazu predpokladáme obmedzené rozmery, môžeme definičný obor obrazovej

funkcie zapísať ako karteziánsky súčin z oboru reálnych čísiel, ktoré vymedzujú rozsah

obrazu:

⟨ ⟩ ⟨ ⟩

Obor hodnôt H obrazovej funkcie tvorí množinu hodnôt jasu alebo farieb obrázka, čo je

možné vyjadriť množinou reálnych čísiel alebo v závislosti od reprezentácie farebnej

informácie, kde n vyjadruje počet kanálov, t.j. použitých farebných zložiek.

V počítači sa väčšinou pracuje s digitálnym obrazom, ktorý je reprezentovaný maticou

(mriežkou, rastrom). Predpokladajme, že obraz je vzorkovaný do výsledného

digitálneho obrazu o m riadkov a n stĺpcov. Funkčné hodnoty obrazovej funkcie, t.j.

hodnoty súradníc potom budú predstavovať diskrétne veličiny, ktoré sa najčastejšie

reprezentujú prirodzenými číslami. To nám umožní zapísať kompletný digitálny

obraz nasledujúcou kompaktnou maticou [21]:

(

)

Pravá strana tejto rovnice teda definuje digitálny obraz. Každý prvok matice predstavuje

obrazový bod, čo sa nazýva obrazový element alebo skrátene pixel (odvodený od

anglického picture element). Hodnotou pixelu môže byť jedno reálne číslo (napríklad jas,

intenzita jednej farby, atď.) alebo usporiadaná n-tica reálnych čísiel predstavujúca farbu

zloženú z n farebných komponentov (napr. pri RGB modeli trojica zložená z červenej,

zelenej a modrej zložky). To, aké hodnoty budú pixely nadobúdať, závisí od zvoleného

farebného modelu, o ktorom bude pojednávať nasledujúca časť.

Obr. 5 znázorňuje obrázok automobilu a maticu reprezentujúcu časť obrázka, ktorej

hodnoty predstavujú intenzity jasu odtieňa sivej farby. V tomto prípade je každý pixel

tvorený iba jednou hodnotou o veľkosti jedného bajtu, t.j. z rozsahu 0-255.

Popri rastrovej forme je možné reprezentovať obrázok aj vektorovým formátom, kde je

obraz zložený z vektorových elementov rôznych tvarov (bodov, úsečiek, kriviek, apod.), čo

23

má za výhodu to, že je možné obraz ľubovoľne zväčšovať bez straty kvality. Príkladmi

takýchto vektorových formátov sú napr. SVG (Scalable Vector Graphics), VML (Vector

Markup Language) alebo WMF (Windows Metafile).

Nakoľko z klasických kamier získavame rastrové obrázky, budeme sa v tejto práci venovať

spracovaniu a analýze obrazu iba z obrázkov rastrového formátu reprezentovaného

maticou s pevne stanovenou veľkosťou.

Obr. 5 Matica reprezentujúca časť obrázka z výrezu bočného zrkadla automobilu, zdroj: [22]

3.2.3 Farebné modely

Farba je jednou z vlastností, ktorej vnímanie dáva človeku rozlišovaciu schopnosť.

Rovnako sa preto využíva aj v spracovaní a analýze obrazu, kde je dôležité jej vyjadrenie a

reprezentácia.

Farebný model predstavuje matematickú abstrakciu umožňujúcu definovať farby ako

usporiadanú množinu čísiel, typicky ako trojicu alebo štvoricu hodnôt farebných zložiek

[23]. V súčasnosti existuje niekoľko modelov, ako napr. RGB, HSV, HSL, YCbCr, CMY,

CMYK, YUV, HMMD, CIELUV, CIECAM97, CIECAM02 a iné. [24] [25]. Niektoré

významné z nich, ktoré sa najčastejšie používajú v spracovaní a analýze obrazu si bližšie

predstavíme.

Ale kamera vidí toto:

24

RGB a RGBA

RGB (Red, Green, Blue – červená, zelená, modrá) je jedným z najznámejších a

najpoužívanejších farebných modelov, ktorý bol štandardizovaný medzinárodnou komisiou

CIE [26].

Obr. 6 Miešanie farieb v RGB a jeho znázornenie pomocou RGB kocky

Skladá sa z troch základných farebných zložiek – červenej (R), zelenej (G) a modrej (B).

Iné farby získame zmiešaním týchto troch farieb vo vhodnom pomere. Model je tzv.

aditívny, čo znamená, že sa základné farby miešajú sčítavaním. Čím vyššie hodnoty zložky

nadobudnú, tým získame svetlejšiu farbu.

Napriek tomu, že je model často používaný, má nevýhodu, že je závislý na zariadení

(rôzne zariadenia ako napr. monitory môžu zobrazovať farby odlišne) a okrem toho je v

ňom ťažké pre človeka definovať hranice požadovaného odtieňa farby (napr. množinu

odtieňov červenej farby).

Ak k modelu pridáme tzv. alfa kanál, ktorým vyjadríme priesvitnosť, vznikne nám model

RGBA (Red, Green, Blue, Alpha – červená, zelená, modrá a alfa kanál). V ňom môžeme

definovať pixely nielen s farebnou hodnotou, ale aj s veľkosťou transparentnosti, ktorá

udáva na koľko percent je pixel priesvitný. Alfa kanál sa využíva v niektorých obrázkoch

napr. pre odstránenie pozadia (príkladom môže byť formát PNG).

HSV a HSL

HSV (Hue, Saturation, Value – odtieň, sýtosť, jasová hodnota) označovaný tiež ako HSB

(B - Brightness – jas) spolu s HSL (Hue, Saturation, Lightness – odtieň, sýtosť, svetlosť),

ktorý sa označuje aj ako HLS alebo HSI (I - Intensity – intenzita) patria takisto medzi často

používané farebné modely v grafike i v spracovaní obrazu.

Obidva sú odvodené od RGB modelu a teda sú podmienené farebným priestorom

vytvoreným z tohto modelu. HSV sa často graficky znázorňuje farebným šesťbokým

ihlanom a HSL dvojicou kužeľov [20].

25

Obr. 7 Grafické zobrazenie modelu HSV vľavo [27] a modelov HSL vpravo [28]

Popis jednotlivých zložiek:

H (Hue) – odtieň (alebo farebný tón) – popisuje farbu v rozsahu 0 – 360, pričom

napríklad 0 (360) predstavuje červenú, 120 zelenú a 240 modrú farbu.

S (Saturation) – sýtosť – vyjadruje čistotu farby v rozsahu 0 – 100% (0,0 – 1,0),

pričom 0% znamená absenciu farby a 100% plne sýtu farbu.

V (Value) / B (Brightness) – jasová hodnota alebo L (Lightness) / I (Intensity) –

svetlosť určuje relatívnu svetlosť alebo tmavosť farby, udáva sa v rozsahu 0 – 100%

(0,0 – 1,0), pričom 0% predstavuje čiernu farbu a 100% v závislosti od modelu ako

je možné vidieť na obr. 7, kde sa biela farba nachádza v HSL pri L=100%, pričom

v HSV sa nachádza iba na jednom mieste a to pri minimálnej saturácií S (100%)

a maximálnom jase V (100%).

HSL je novší model, ktorý odstraňuje niektoré nedostatky HSV, ktoré síce nie sú

zásadného charakteru, ale môžu sťažovať prácu s presným určením farby [20]. Vo

všeobecnosti, i podľa uvedených vlastností sa javí HSL model lepší, záleží však od jeho

aplikácie.

CIELAB

Model CIELAB alebo CIE 1976 (L*, a*, b*) patrí v súčasnosti k významným modelov,

pretože je nezávislý na zariadení a bol vytvorený na základe farieb vnímaných ľudským

okom. Zistilo sa, že informácia o farbe prechádzajúca z oka cez optický nerv do mozgu je

vnímaná ako rozdiel medzi svetlou a tmavou, červenou a zelenou, a medzi modrou a žltou

farbou [26]. Vďaka tomuto zisteniu sa vytvoril model, ktorý môžeme reprezentovať

tvarom gule, na ktorej vertikálna os L predstavuje jas (čierna až biela farba), horizontálna

os a interval farieb od zelenej po červenú a os b interval od modrej po žltú.

26

Obr. 8 Reprezentácia CIELAB modelu, zdroj: [29]

Monochromatický a binárny obraz

Monochromatický (monochromatic) obraz je obraz zložený len z odtieňa jednej farby.

Označuje sa aj pojmom šedotónový (grayscale), v ktorom je odtieňom šedá (sivá) farba.

Do tohto tvaru môžeme previesť ľubovoľný farebný obrázok. Ak by sme chceli previesť

napr. farebný obrázok v RGB do odtieňov sivej, musíme transformovať a zlúčiť tri farebné

zložky do jednej. Na tento účel boli stanovené váhy jednotlivých zložiek podľa citlivosti

ich vnímania nasledovne [26]:

kde R reprezentuje červenú, G zelenú a B modrú zložku.

Špecifickým prípadom je tzv. binárny obraz, čo je obraz zložený len z dvoch jasových

úrovní – bielej a čiernej farby. Príkladom takéhoto obrazu je obr. 16 vpravo. V analýze

obrazu je takáto reprezentácia často používaná.

3.2.4 Základné algoritmy

Nasledujúce algoritmy pre úpravu obrazu používajú nízkoúrovňové metódy spracovania,

akými sú spracovanie bodov (pixelov) nezávisle na okolí alebo so závislosťou na okolí.

Bodové spracovania

Označme vstupný obraz, ktorý chceme upraviť a výstupný obraz

o rovnakom rozmere, ktorý bude výsledkom bodového spracovania. Bodové spracovanie

(point processing) nezávislé na okolí potom môžeme definovať ako operáciu nad

pixelom vstupného obrázka , ktorej výsledkom je nová hodnota pixelu na rovnakej

pozícií vo výstupnom obrázku . Táto transformácia sa zvykne označovať aj ako

bodový operátor (point operator).

27

Môžeme ho vyjadriť nasledujúcim zápisom:

Uvedenú operáciu znázorňuje tiež obr. 9.

Obr. 9 Princíp spracovania bodov bez ohľadu na okolie. Pixel na vstupom obrázku f(x,y) vľavo je

spracovaný určitou operáciou, ktorej výsledok sa uloží na rovnakú pozíciu do výstupného obrázku

g(x,y) vpravo [18]

Príkladom môžu byť rôzne transformácie pixelov pre úpravu jasu (brightness) a kontrastu

(contrast), gama korekcie (gamma correction), alfa miešanie (alpha blending), prahovanie

(thresholding) a iné.

Druhý spôsob spracovania predstavuje bodové spracovanie so závislosťou na okolí, inak

nazývaný operátor okolia (neighborhood operator) alebo lokálny operátor (local operator).

Pre získanie výstupnej hodnoty pixela vo výstupnom obrázku sa používa nielen hodnota

pixela, ale aj hodnoty jeho susedných pixelov. Najbežnejším typom takejto operácie je

lineárny filter (linear filter), v ktorom je výstupná hodnota pixela určená ako suma

vážených hodnôt vstupných pixelov [30]:

∑ ∑

kde sa nazýva jadro (kernel) alebo maska (mask) o veľkosti danej polomerom .

Maska obsahuje hodnoty váh, ktoré sa označujú ako koeficienty filtrovania (filter

coefficients). Tento typ operácie sa nazýva korelácia (correlation) alebo ho možno

jednoduchšie zapísať pomocou operátora korelácie ako:

Vstupný obrázok

f(x,y)

Výstupný obrázok

g(x,y)

28

Druhý variant tohto vzorca predstavuje konvolúcia (convolution), ktorý môžeme definovať

ako:

∑ ∑

a zjednodušene vyjadriť operátorom konvolúcie:

Obr. 10 znázorňuje použitie konvolúcie na jednoduchom príklade s maskou h o veľkosti

3x3.

Príkladom konvolúcie môže byť filtrovanie obrazu za účelom redukcie šumu ako je napr.

Gaussove vyhladzovanie (rozmazanie), zvýšenie ostrosti, detekcia hrán apod.

Obr. 10 Princíp konvolúcie, zdroj: [18] a [30]

Histogram

Histogram vyjadruje početnosť jednotlivých jasových úrovní v obrázku pre každý kanál

(napr. v RGB pre tri zložky, v odtieňoch sivej pre jednu zložku). Môžeme z neho zistiť, či

je obrázok príliš svetlý alebo tmavý a na základe neho vykonať príslušné úpravy, akými je

napr. ekvalizácia histogramu (histogram equalization), čo je metóda, ktorá sa používa pre

zlepšenie kontrastu v prípade nerovnomerného zastúpenia jasových zložiek [26]. Iným

príkladom môže byť voľba prahu pri segmentácií prahovaním.

Výstupný obraz g(x,y)

Vstupný obraz f(x,y)

Maska h(x,y)

29

Na nasledujúcom obrázku (obr. 11) sú zobrazené histogramy z farebného a toho istého, ale

transformovaného obrázka do odtieňov sivej.

Obr. 11 Histogramy farebného obrázka (tri kanály) a obrázka v odtieňoch sivej (jeden kanál)

Gaussov filter

Gaussov filter je jeden z najčastejšie používaných filtrov, ktorým sa vyhladzuje (smooth),

resp. rozmazáva (blur) obrázok. Vyhladenie sa realizuje pomocou konvolúcie na základe

masky, ktorej koeficienty sú dané Gaussovým rozložením, t.j. koeficienty blížiace sa

k stredu masky majú vyššiu váhu (obr. 12).

Obr. 12 Príklad Gaussovej masky o veľkosti 5x5

Obr. 13 Vľavo originálny obrázok, vpravo po aplikácii Gaussového filtra s maskou 9x9

30

Tento filter sa napríklad používa na odstránenie šumu spôsobeného nekvalitnou kamerou

alebo na potlačenie artefaktov vo videu spôsobených kompresiou. Príklad takéhoto

rozmazania zobrazuje obr. 13.

Vyhladzovanie priemerovaním

Vyhladzovanie priemerovaním je podobné Gaussovmu filtru, až na to, že všetky

koeficienty masky majú hodnotu 1 / (veľkosť masky). Je to jedna z najjednoduchších

metód vyhladenia.

Mediánový filter

Mediánový filter predstavuje nelineárnu metódu založenú na hľadaní mediánu, čo je

prostredný prvok v usporiadanej postupnosti hodnôt. Podobne, ako u Gaussa, i tu sa

používa maska určitej veľkosti, avšak neobsahuje koeficienty. Táto maska sa rovnako

posúva po obrázku, pričom sa zo všetkých hodnôt ležiacich pod ňou vyberá medián, ktorý

sa zapíše ako výsledná hodnota do výstupného obrázku. V istých prípadoch, ak je obraz

zašumený, dosahuje tento filter veľmi dobré výsledky.

Obr. 14 Vľavo originálny obrázok, vpravo po aplikácii Mediánového filtra s maskou 9x9

Morfologické transformácie

Základnými operáciami morfologickej transformácie sú erózia (erosion) a dilatácia

(dilation), z ktorých sa dajú odvodiť ďalšie transformácie ako je otvorenie (opening)

a uzavretie (closing). Ich využitie je široké. Používajú sa na odstránenie šumu, izolovanie

jednotlivých častí alebo na spájanie rôznorodých častí v obraze [22].

Erózia vo všeobecnosti stenčuje objekt a dilatácia ho zväčšuje o najbližšie body z jeho

okolia. Často sa používa zložená operácia z erózie a po nej dilatácie, čím dostaneme

operáciu zvanú otvorenie. Rovnako opačne v opačnom poradí, teda najskôr aplikácia

dilatácie a po nej erózie predstavuje zloženú operáciu nazývanú uzavretie.

31

Obr. 15 Vľavo obrázok po aplikácii otvorenia s iteračným krokom 1,

vpravo po aplikácii s iteračným krokom 2

Prahovanie

Prahovanie (thresholding) je jednou zo základných a najstarších techník segmentácie,

ktorou sa oddeľuje popredie od pozadia podľa stanovenej hodnoty prahu. Vo všeobecnosti

môžeme prahovanie definovať ako transformáciu vstupného obrázku na výstupný

(segmentovaný) binárny obraz nasledovne:

, ak ,

inak,

kde predstavuje pozíciu pixela v obrázku a hodnotu prahu, pričom

bude popredie a pozadie, prípadne naopak.

Prahovanie môže byť globálne alebo lokálne. Pri globálnom prahovaní aplikujeme rovnaký

prah na celý obrázok (bodové spracovanie nezávisle od okolia), zatiaľ čo pri lokálnom je

použitá rôzna hodnota prahu vypočítaná v lokálnych častiach obrázka. Hodnotu prahu si

môžeme stanoviť konštantou alebo ju zistiť automaticky, napr. pomocou Otsuovej metódy

hľadania optimálneho prahu [26].

Obr. 16 Vľavo originálny obrázok, vpravo po globálnom prahovaní červenej farby

Hranové detektory

Hranové detektory lokalizujú hrany, čo sú miesta na obraze, v ktorých dochádza k náhlym

a významným zmenám v intenzite jasu. V priebehu výskumu v tejto oblasti bolo

32

navrhnutých niekoľko detektorov, ktorých názvy predstavujú mená autorov, ako napr.

Roberts, Laplace, Prewwitt, Sobel a iné [19]. Podstata väčšiny z nich spočíva v hľadaní

prvej alebo druhej derivácie. V súčasnosti je jedným z najpoužívanejším detektorov

Cannyho hranový detektor, ktorý navrhol John F. Canny v roku 1986 [22].

Výsledkom Cannyho detektora je binárny obraz zvýrazňujúci hrany. Takto spracovaný,

výsledný obrázok sa väčšinou používa na zlepšenie ostrosti alebo v algoritmoch na

detekciu útvarov, akým je napr. Houghová transformácia, popísaná nižšie.

Obr. 17 Vľavo originálny obrázok v odtieňoch sivej, vpravo po použití Cannyho hranového detektora

Houghova transformácia

Houghová transformácia bola pôvodne vyvinutá pre detekciu čiar v obrázkoch a neskôr

rozšírená na všeobecnú detekciu iných jednoduchých útvarov (napr. kružníc), ktoré sa dajú

jednoducho vyjadriť pomocou parametrickej rovnice. Podstata potom spočíva v hľadaní

parametrov týchto útvarov v tzv. Houghovom alebo parametrickom priestore o rozmere

počtu parametrov, do ktorého sa transformuje pôvodný obraz.

Obr. 18 Vľavo originálny obrázok, vpravo po Houghovej transformácii úsečiek

3.2.5 Rozpoznávanie objektov

Rozpoznávanie je finálnym krokom v prístupe analýzy obrazu. Cieľom je nájsť, rozlíšiť a

identifikovať objekty v obraze na základe ich reprezentácie – popisu, ktorý je výsledkom

segmentácie. Pojem rozpoznávania môže byť tiež chápaný aj ako celková postupnosť

krokov, ktoré vedú k výsledku rozpoznania, t.j. detekcií a klasifikácií objektov.

33

Treba poznamenať, že sa v literatúre často používa výraz detekcia a chápe sa ako

synonymum pre rozpoznávanie. Pre rozlíšenie budeme v nasledujúcom texte pod detekciou

rozumieť nájdenie objektov záujmu a rozpoznanie ako komplexný problém identifikovania

(klasifikácie) objektov.

Rozpoznávanie objektov je väčšinou založené na priraďovaní tried objektom z vopred

známej množiny tried. Kategorizovanie sa realizuje pomocou klasifikátora, ktorý je

schopný rozlíšiť objekty na základe vstupných parametrov vlastností daného objektu –

napr. podľa jeho textúry, veľkosti, tvaru, váh atď. Na klasifikáciu sa používajú rôzne

prístupy a algoritmy. Najčastejšie sú používané algoritmy strojového učenia (machine

learning algorithms), ako sú neurónové siete (neural networks), podporné vektory (support

vector machines), boosting (AdaBoost, WaldBoost, RealBoost, ...), rozhodovacie stromy

(decision trees), náhodné stromy (random trees), naivný Bayesov klasifikátor (Naive Bayes

classifier) a iné. Ďalší spôsob je s využitím korelácie, kedy porovnávame vzory s objektom

a zisťujeme hodnotu korelačného koeficientu. Na tomto princípe je postavený jeden

z najpoužívanejších, i keď nie robustných algoritmov hľadania vzorov porovnávania

šablónou (template matching). Inou oblasťou je rozpoznávanie založené na lokálnych

príznakoch získaných z detektorov a popísaných deskriptormi, čo sa v súčasnosti považuje

za state-of-the-art riešenie medzi rozpoznávacími algoritmami [31].

Deskripcia nájdených objektov

Pre správne klasifikovanie ľubovoľných dát je potrebné venovať pozornosť vstupom

klasifikátora. Na vstup sa väčšinou privádza príznakový vektor (feature vector), ktorý

reprezentuje popis objektu, na základe ktorého sa klasifikátor rozhoduje. Môžu sa tiež

použiť aj hodnoty pixelov obrázka, avšak väčšinou len o malých rozmeroch kvôli

zložitosti.

Objekty majú rôzne vlastnosti, ktoré sa môžu využiť na ich základnú charakteristiku

(najčastejšie tvar, textúra, farby atď.). Objekty môžu byť ďalej deformovateľné, zakryté

inými objektmi (oklúzia), zachytené v rôznej mierke a pohľade, čo sťažuje ich rozpoznanie.

Preto, aby boli objekty identifikovateľné, je dôležité, aby aj ich popis bol invariantný

a robustný voči takýmto zmenám. Väčšinu týchto podmienok spĺňajú algoritmy založené

na príznakoch, ktoré budú popísané v časti Detektory a deskriptory kľúčových bodov.

V nasledujúcej časti si najskôr uvedieme niektoré z nízkoúrovňových charakteristík

popisov.

34

Obsah (area) je počet pixelov, ktoré obsahuje daný región objektu. Pokiaľ nemáme znalosť

o mierke, je ťažké využiť túto charakteristiku, preto sa skôr používa v kombinácií s inými

charakteristikami.

Pozdĺžnosť (elongatedness) je pomer strán najmenšieho opísaného obdĺžnika

ohraničujúceho objekt. Označme dlhšiu stranu tohto obdĺžnika , kratšiu . Potom

pozdĺžnosť môžeme vypočítať ako:

Pravouhlosť (rectangularity) je pomer obsahu plochy objektu ( ) k ploche najmenšieho

opísaného obdĺžnika ( ):

Kompaktnosť (compactness) alebo kruhovosť (circularity) [32] sa definuje ako podiel

umocneného obvodu objektu ( ) k jeho ploche ( ):

Hodnota kompaktnosti by mala byť pre ideálny kruhový objekt . Pre iné útvary je

vždy väčšia [26].

Konvexnosť (convexity) je vyjadrená pomerom obsahu plochy objektu ( ) k ploche

najmenšieho konvexného útvaru ( ) pokrývajúceho objekt:

Projekcia (projection) – popisuje početnosti nenulových pixelov v rôznych smeroch. Pri

vertikálnej projekcií sa jedná o početnosti nenulových hodnôt pixelov zo stĺpcov obrázka

( ) a pri horizontálnej ( ) z riadkov obrázka:

kde hodnota predstavuje hodnotu pixela na i-tom riadku a j-tom stĺpci. Príklad

horizontálnej a vertikálnej projekcie spolu s histogramami zobrazuje obr. 19.

35

Obr. 19 Horizontálna a vertikálna projekcia z uvedených obrázkov

Popri týchto histogramoch je možné použiť i modifikáciu akou sú histogramy vzdialeností

k okrajom (distance to borders, DtB), ktoré vo svojej práci uvádza Lafuente-Arroyo a kol.

[33]. Vyjadrujú vzdialenosti (početnosti nulových hodnôt pixelov) od jednotlivých okrajov

k vonkajším okrajom kontúry objektu na obrázku (obr. 20).

Obr. 20 Zľava vzor strán a princíp, podľa ktorého sú vypočítavané DtB, v strede binárny obrázok

trojuholníka a vpravo jeho 4 DtB histogramy, zdroj: [33]

Ďalšími spôsobmi, ako popísať objekt, sú napr. techniky podpisy objektov (signatures),

charakteristiky vyjadrené z histogramu, momentové invariantné charakteristiky, príznaky

získané z hrán, podobnosť vyjadrená korelačným koeficientom alebo pomocou vzájomnej

informácie a entropie [26] [19].

Neurónová sieť

Umelá neurónová sieť (artificial neural network, ANN) bola inšpirovaná biologickou

neurónovou sieťou zloženou z neurónov a synaptických spojov medzi neurónmi, ktoré

majú schopnosť uchovania informácie. V podstate sa jedná o špecifický typ grafu zložený

z vrcholov (neurónov) a hrán (synapsií). Existuje niekoľko typov neurónových sietí, ktoré

sa rozlišujú architektúrou (dopredné, rekurentné) a spôsobom učenia (s učiteľom alebo bez

0

50

1 6 11 16 21 26

Vertikálny histogram

0

20

40

1 6 11 16 21 26 31 36 41 46

Vertikálny histogram

0

50

1 6 11 16 21 26

Horizontálny histogram

0

20

40

1 6 11 16 21 26 31 36 41 46

Horizontálny histogram

36

učiteľa). Príkladmi neurónových sietí sú napr. perceptrón, viacvrstvový perceptrón,

Hopfieldová neurónová sieť, Kohonenove samoorganizujúce sa mapy, RBF siete [34],

konvolučné neurónové siete (CNN) [35] a iné. Z nich najbežnejšie používaným je

viacvrstvový perceptrón (MLP), skladajúci sa z neurónov usporiadaných do vrstiev, ktoré

obsahujú jednu vstupnú vrstvu (input layer), jednu výstupnú vrstvu (output layer) a jednu

alebo viacero skrytých vrstiev (hidden layers). Každý neurón pritom patrí práve do jednej

vrstvy. Sieť je dopredná, čo znamená, že výstup všetkých neurónov vstupnej a skrytých

vrstiev je privedený na vstup všetkých neurónov nasledujúcej vrstvy [36].

Na začiatku sa privedie na vstupnú vrstvu, t.j. vstupné neuróny nejaká informácia, ktorá sa

potom šíri po neurónoch ďalej až sa dostane na koniec, do výstupných neurónov.

V každom neuróne sa pritom realizujú operácie, ktoré buď aktivujú (budia) neurón alebo

ho utlmujú v závislosti od prahu a zvolenej aktivačnej funkcie. Od toho ďalej závisí, aké

hodnoty sa z neurónu získajú a privedú na vstup ďalšieho neurónu.

Obr. 21 Príklad jednoduchej neurónovej siete [37]

Na to, aby mohla byť neurónová sieť použitá, musí byť najskôr naučená. Učenie

predstavuje proces privádzania hodnôt na vstupné neuróny a nastavovanie všetkých váh

tak, aby neurónová sieť dávala správny výsledok. Existuje niekoľko algoritmov, ktorými je

možné neurónovú sieť učiť. V sieti typu MLP je najpoužívanejším algoritmus spätného

učenia (back propagation). To, ako dobre bude naučená neurónová sieť fungovať záleží od

veľkosti a kvality vstupných trénovacích dát, charakteru týchto dát a hlavne od návrhu

neurónovej siete (typu siete a zvoleného počtu neurónov na jednotlivých vrstvách).

Mechanizmus podporných vektorov

Support vector machine (SVM) je metóda strojového učenia, ktorá na rozdiel od

neurónovej siete poskytuje globálne a jedinečné riešenie s využitím algoritmov

Vstupná

vrstva Skrytá

vrstva Výstupná

vrstva

37

z optimalizačných teórií konvexného kvadratického programovania [34]. Je to metóda

založená na učení s učiteľom. Pôvodne bola vyvinutá ako binárny lineárny klasifikátor

rusko-americkým matematikom Vladimirom Vapnikom a neskôr bola vylepšená pomocou

tzv. jadrových funkcií (kernel function). Tie mapujú vektor príznakov (vstupné dáta) do

viacrozmerného priestoru za účelom vytvorenia optimálnej lineárnej diskriminačnej

nadroviny v tomto priestore. Inými slovami, umožňujú lineárne neseparovateľné dáta

v pôvodnom priestore transformovať do priestoru s vyššou dimenziou, v ktorom je už

možné ich lineárne oddeliť.

Obr. 22 Princíp mechanizmu podporných vektorov na príklade dvoch tried

Podstatou SVM je teda analýza a nájdenie takej optimálnej nadroviny (hyperplane, v 2-

rozmernom priestore je to priamka, v 3-rozmernom rovina, atď.), ktorá maximalizuje šírku

oddeľujúcej hranice medzi triedami. Polohu a smer tejto hranice určujú len okrajové body

v oboch triedach zvané podporné vektory (support vectors). Ostatné vektory na jej polohu,

ani smer nevplývajú [38].

V porovnaní s neurónovými sieťami je nielen klasifikácia, ale aj trénovanie extrémne

efektívne a to aj vďaka tomu, že na naučenie stačí použiť v SVM malé množstvo

trénovacích dát.

Boosting

Prvé algoritmy tohto typu sa objavili v roku 1988 [22]. Dnes je jeden z najznámejších

algoritmov AdaBoost (Adaptive Boosting) uvedený Freundom a Shapireom [39]. Podstatou

je využitie viacerých slabých klasifikátorov (weak classifiers) s relatívne malou

úspešnosťou za účelom vytvorenia jedného veľkého silného klasifikátora (strong

classifier).

38

Obr. 23 Príklad silného klasifikátora vytvoreného z 3 slabých klasifikátorov

Vytvorený výsledný klasifikátor sa tak stáva silným vďaka lineárnej kombinácii slabých.

Slabým klasifikátorom pritom môže byť ľubovoľný klasifikátor, ktorý dáva výsledky

lepšie než náhodné. Môže to byť napr. neurónová sieť, Bayesov klasifikátor, rozhodnutie

na základe nejakej vlastnosti apod. Vďaka takto vytvorenému silnému klasifikátoru

dosahuje algoritmus veľmi dobré výsledky. Navyše, oproti neurónovej sieti sa pri učení,

i veľkom počte vstupných dát tak ľahko nepretrénuje. Nevýhodou ale je, že je učenie

veľmi zdĺhavé, náročné na čas.

Detektory a deskriptory kľúčových bodov

V počítačovom videní je koncept kľúčových bodov (keypoints) alebo tiež nazývaných

bodov záujmu (interest points), príznakových bodov (feature points), či význačných

regiónov (distinguished regions) vo veľkom využívaný nielen v oblasti rozpoznávania

objektov, ale aj v registrácií obrazu, vizuálnom sledovaní a v 3D rekonštrukcií [40].

Základná myšlienka spočíva v tom, že sa pomocou detektora lokalizujú kľúčové body

alebo oblasti reprezentujúce významné miesta v obraze, ktoré sa deskriptorom následne

zakódujú spolu s ich okolím do tzv. príznakových vektorov. Takto získame množinu

lokálnych príznakov, ktoré dávajú lokálny pohľad na obrázok a teda ho celý reprezentujú.

Každý detektor by mal spĺňať minimálne vlastnosť opakovateľnosti (repeatibility), čo

znamená nájdenie kľúčových bodov alebo regiónov (závisí od detektora) na rovnakých

miestach v obraze bez ohľadu na zmenu osvetlenia a parametre kamery. Detektor by teda

mal byť invariantný voči zmene osvetlenia, posunu a ďalej mierke, rotácií, či zmenám

pohľadu (afinné alebo 3D projekcie). Nie všetky detektory spĺňajú všetky tieto vlastnosti,

no snaha je vytvoriť taký detektor, ktorý by spĺňal všetky. K základným vlastnostiam by

mala byť invariantnosť voči posunu a rotácií, takže detektory by mali byť schopné

vyhľadávať rovnaké kľúčové body objektov i keď bude obraz posunutý alebo natočený.

Lokalizujú sa pritom iba také body, ktoré sú významné a ľahko odlíšiteľné. Homogénne

časti v obraze bez textúry nemajú vysokú odlíšiteľnosť, preto by nemali byť kľúčovými

bodmi. Pre lepšie zachytenie a odolnosť voči afinným alebo projekčným transformáciám

39

pridávajú niektoré detektory k lokalizovaným bodom ešte aj okolie reprezentované

pomocou kruhov alebo elíps. Tie vyjadrujú mierku alebo transformáciu kľúčového bodu

a jeho okolia, čo sa používa pri ich deskripcií. Na detekciu a teda extrakciu kľúčových

bodov je možné použiť viacero prístupov, napr. Harrisov detektor rohov [41], Hessianov

detektor blobov [42], SUSAN (Smallest Univalue Segment Assimilating Nucleus) [43],

MSER [44] (Maximally Stable Extremal Regions) a iné.

Podobne ako detektor i deskriptor musí spĺňať určité vlastnosti, nakoľko vektory príznakov

sa budú za účelom rozpoznávania porovnávať s vektormi získanými z iných obrázkov.

Preto musí byť deskriptor invariantný voči transformáciám a mať vysokú diskriminativitu

popisu, čo znamená, že popis kľúčového bodu a jeho okolia, prípadne regiónu musí byť

jednoznačný a vždy odlišný pre rôzne kľúčové body. Naopak popis by mal byť takmer

rovnaký pre podobné miesta. Veľkosť vektora príznakov pre jeden kľúčový bod alebo

región závisí pritom od použitého deskriptora, napr. pri SIFT (Scale Invariant Feature

Transform) [45] deskriptore sa používa štandardne 128-rozmený vektor. Inými príkladmi

deskriptorov sú SURF (Speeded Up Robust Features) [46], Spin-Image [47], GLOH

(Gradient location-orientation histogram) [42], LIOP (Local Intensity Order Pattern) [48]

a iné [42].

Obr. 24 Rozpoznanie objektu škatule pomocou SURF algoritmu s vyznačenými kľúčovými bodmi

Po detekcií a deskripcií môžeme lokálne príznaky použiť na vyhľadávanie a rozpoznávanie

objektov (obr. 24). Stačí, aby sme uvedený postup detekcie a popísania bodov vykonali na

zdrojovom obrázku reprezentujúcom objekt záujmu a následne na ostatných obrázkoch, v

ktorých chceme objekt detegovať. Ak to máme, pristúpime k hľadaniu korešpondencií, t.j.

párovaniu získaných lokálnych príznakov v jednom obrázku s príznakmi v druhom

obrázku. Na tento účel existuje niekoľko spôsobov, ako párovať, najčastejšie sa používa

metrika pre Euklidovskú vzdialenosť pri porovnávaní dvoch príznakových vektorov

a párovanie pomocou vzájomne najbližších susedov, pomocou stabilného párovania alebo

40

metódou prvý/druhý najbližší, ktorú predstavil Lowe v [45]. Takto získame tzv. tentatívne

(predbežné) korešpondencie, z ktorých nie všetky sú správne spárované. Zbaviť sa

nekorešpondujúcich bodov je možné pomocou dopredu nájdenej transformačnej matice

scény medzi pohľadmi zdrojového a cieľového obrázku, ak takáto transformácia existuje.

Na to sa používa algoritmus RANSAC [49].

Výhodou celého prístupu detekcie a deskripcie je, že sa na obrázok pozerá vďaka

kľúčovým bodom alebo regiónom lokálne, t.j. iba na lokálne časti obrázka, ktoré sú

významné, takže v prípade oklúzie – prekrytí časti obrázka inými objektmi to nevadí,

keďže je stále šanca identifikovať objekt pomocou zvyšných bodov. Rovnako aj pri malej

zmene pohľadu (iná pozícia kamery zachytávajúca scénu alebo natočenie objektu) by mala

byť väčšina bodov identifikovateľných a podobne popísaných. Vyhodnotenie detektorov

a deskriptorov sa podrobne zaoberajú autori vo svojich prácach v [42] a [50].

Iným a rýchlejším spôsobom, najmä pre hľadanie vo viacerých kategóriách je použitie

prístupu pomocou batohu vizuálnych slov (Bag-of-Visual-Words, BoVW alebo len BoW).

Základná myšlienka spočíva v reprezentovaní každého obrázka v databáze počtom

výskytov tzv. vizuálnych slov (obr. 25). Vizuálne slová predstavujú stredy zhlukov

vektorov príznakov kľúčových bodov. Tie sa vytvárajú pri učení klastrovaním veľkého

počtu popísaných kľúčových bodov z obrázkov. Každý obrázok v databáze je tak

reprezentovaný vektorom (histogramom) početností výskytov vizuálnych slov [51].

Vyhľadávanie podobných obrázkov alebo len ich častí v obrázkoch, ktoré sa nachádzajú

v databáze, potom spočíva v porovnávaní vektorov vizuálnych slov. Inšpirácia tohto

algoritmu bola z vyhľadávania textov (text retrieval) metódou batohu slov (Bag-of-Words,

BoW) [52]. Metóda je dostatočne rýchla pre vyhľadávanie vo veľkých databázach

obrázkov (image retrieval), kde sa ešte vykonávajú dodatočné kroky ako je verifikácia

a pre lepšie výsledky aj expanzia dopytu (query expansion) [53] [54].

41

Obr. 25 Reprezentácia obrázkov batohom vizuálnych slov, zdroj: [51]

Obr. 26 Detegované kľúčové body Harrisovým detektorom

Detekcia kľúčových bodov

Klastrovanie kľúčových bodov

Priestor príznakov kľúčových bodov

Slovník vizuálnych slov (4 zobrazené slová)

Vektory vizuálnych slov

Batoh vizuálnych slov (Bag-of-Visual-Words)

42

Harrisov detektor

Harrisov (Harris) detektor [41] je rohový detektor, ktorý vyhľadáva na obraze miesta,

v ktorých sa mení gradient v dvoch ortogonálnych smeroch. Má vysokú presnosť detekcie,

je invariantný voči posunu a rotácií. Jeho vylepšená verzia Harris-Laplacian pridáva

invariantnosť voči mierke a Harris-Affine navyše aj voči afinným transformáciám.

Obr. 27 Detegované oblasti vľavo Harris-Laplace a vpravo Harris-Affine detektorom

Hessianov detektor

Hessianový (Hessian) detektor hľadá centrá tzv. blobov, čo sú oblasti v obraze, ktoré sa

líšia v jase alebo farbe v porovnaní s okolím. Detektor je založený na hľadaní lokálnych

extrémov determinantov Hessiánovej matice. Podobne ako pri Harrisovom detektore i tu

existuje vylepšenie v podobe Hessian-Laplace detektoru, ktorý je invariantný voči

rotáciám a mierke. Hessian-Affine k tomu pridáva ešte aj invariantnosť voči afinným

transformáciám [42].

Obr. 28 Detegované oblasti vľavo Hessian-Laplace a vpravo Hessian-Affine detektorom

MSER

MSER (Maximally Stable Extremal Regions) [44] je detektor, ktorý vyhľadáva v obraze

maximálne stabilné extremálne oblasti spojených komponent pomocou prahovania

intenzity jasu. Pri zvyšovaní prahu sa sleduje narastanie oblastí a ich štatistika (obsah

a dĺžka hranice). Hľadajú sa potom také rozsahy, pri ktorých sa pomer obsahu k dĺžke

hranice mení najmenej. Je to algoritmus podobný algoritmu rozvodia (watershed). Bol

43

navrhnutý Matasom a jeho výskumnou skupinou na ČVUT v Prahe. Je invariantný voči

afinným transformáciám.

Obr. 29 Detegované regióny MSER detektorom

SIFT

SIFT (Scale Invariant Feature Transform) je detektor a rovnako aj deskriptor, ktorý navrhol

Lowe [55] vo svojej práci. Je to jeden z najpoužívanejších state-of-the-art deskriptorov v

súčasnosti. Je invariantný k zmene mierky, osvetlenia a lokálnych afinných deformácií. Od

vzniku SIFT-u bolo mnoho pokusov o vylepšenie tohto algoritmu. Príkladom je SURF,

ktorý zrýchľuje výpočet s použitím integrálneho obrazu a Hessianovskej matice, PCA-

SIFT [56], ktorý používa analýzu hlavných komponent na normalizovanej gradientovej

oblasti namiesto váhových histogramov alebo Hue-SIFT [57] pridávajúci farebnú

informáciu. Možnosti SIFTu rozširuje tiež algoritmus ASIFT [58], ktorý simuluje viacero

pohľadov na obrázok, nad ktorými spúšťa klasický SIFT.

Histogram orientovaných gradientov

Histogram orientovaných gradientov (HOG, Histogram of Oriented Gradients) je

deskriptor, ktorý navrhli Dalal a Tiggs pôvodne pre detekciu ľudí [59]. Metóda je

založená, podobne ako SIFT deskriptor, na popise orientácií a veľkosti gradientov. Na

rozdiel od SIFT-u nepopisuje okolie kľúčových bodov, ale celý obsah určitého výseku

obrázka (okno určitej veľkosti). Vyhodnocuje tak normalizované lokálne histogramy

orientovaných gradientov v hustej pravidelnej mriežke rovnomerne rozdelených buniek

(obr. 30). Základná myšlienka je vo výskyte lokálnych objektov a tvaru, ktorý môže byť

vyjadrený skôr distribúciou gradientov lokálnych intenzít alebo smerov hrán, dokonca bez

presnej znalosti ich odpovedajúcich pozícií.

Bolo vytvorených niekoľko alternatívnych vylepšení tohto deskriptora a to nielen pre

detekciu chodcov, ale aj všeobecnú detekciu objektov, ako popisuje Szeliski [30].

44

Obr. 30 Testovací obrázok a jeho zodpovedajúci HOG, zdroj: [59]

3.3 MPEG-7

Ako začalo narastať množstvo audiovizuálneho materiálu (fotografie, zvukové nahrávky,

videá), vznikla potreba efektívneho vyhľadávania v týchto dátach. Expertná skupina

MPEG (Moving Picture Experts Group) preto vytvorila štandard MPEG-7, ktorý bol

štandardizovaný ako ISO/IEC 15938 s formálnym názvom Rozhranie pre popis

multimediálneho obsahu (Multimedia content description interface) [60]. Nejde o štandard

pre kódovanie videa ako v prípade úspešných štandardov MPEG-2 alebo MPEG-4, ale

skôr o ich doplnok (a nielen ich), ktorý popisuje formou metadát, čo sa na nich nachádza

(t.j. obsah ich obrazových a zvukových dát) pomocou štandardizovaných nástrojov. Okrem

popisu najnovšie definuje aj jazyk na dopytovanie, pomocou ktorého je možné tieto dáta

vyhľadávať.

Štandard sa vyvíja už od roku 1997, postupne podľa potreby k nemu pribúdali dodatky ako

i nové časti. V súčasnosti sa skladá z 13 častí (štandardov ISO/IEC 15938-1 až 15938-13),

z ktorých niektoré sú uzavreté a iné stále vo vývoji [24]:

1. Systémy (Systems) – špecifikuje systémovú vrstvu – základ, ktorý umožňuje

použitie štandardu v praktických prostrediach. Definuje mechanizmus podpory

synchronizácie medzi obsahom a jeho popismi. Okrem hlavného XML formátu

definuje aj alternatívnu verziu použitia binárneho formátu BiM.

2. Jazyk pre definíciu popisu (Description Definition Language, DDL) – špecifikuje

jazyk založený na jazyku schémy XML pre definovanie popisných schém

(description schemes, DS) a deskriptorov (descriptors, D). Umožňuje ich tvorbu,

rozširovanie a modifikáciu.

Definície:

Deskriptor je reprezentáciou nejakého príznaku, ktorý definuje jeho syntax

a sémantiku, môže to byť napr. rozlišovacia charakteristika audiovizuálnej

informácie ako sú nízkoúrovňové príznaky (farba, textúra, pohyb, sila

45

zvuku, atď.) alebo vysokoúrovňové sémantické príznaky objektov, udalostí

a abstraktných konceptov.

Popisná schéma špecifikuje štruktúru a sémantiku vzťahov medzi

komponentmi, ktorými môžu byť práve deskriptory a popisné schémy

(obr. 31).

Obr. 31 Hlavné elementy MPEG-7, zdroj: [60]

3. Obraz (Visual) – špecifikuje vizuálne deskriptory popisujúce obraz.

4. Zvuk (Audio) – špecifikuje zvukové deskriptory popisujúce zvuk.

5. Multimediálne popisné schémy (Multimedia Description Schemes, MDS) –

poskytujú základné štandardizované popisné schémy pre zvukové a vizuálne

deskriptory (spolu označované ako multimediálne deskriptory).

6. Referenčný softvér (Reference Software) – zahŕňa softvér implementujúci

relevantné časti štandardu.

7. Konformnosť (Conformance) – určuje postupy pre testovanie zhody implementácie

MPEG-7 štandardu.

8. Extrakcia a použitie MPEG-7 popisov (Extraction and Use of MPEG-7

Descriptions) – kolekcia informačných materiálov (technických správ), ako použiť

MPEG-7. Poskytuje informácie o extrakcií a použití niektorých popisných

nástrojov.

9. Profily (Profiles) – špecifikuje MPEG-7 profily.

10. Definícia schémy (Schema definition) – špecifikuje schémy s použitím jazyka DDL

naprieč všetkými časťami MPEG-7 štandardu.

11. Profilové schémy (Profile schemas) – definuje nové profilové schémy (základné a

zložené typy).

TagsTags

<scene id=1>

<time> ....

<camera>..

<annotation

</scene>

InstantiationInstantiation

TagsTags

<scene id=1>

<time> ....

<camera>..

<annotation

</scene>

InstantiationInstantiation

Descriptors:Descriptors:

(Syntax & semantic(Syntax & semantic

of feature representation)of feature representation)

D7

D2

D5

D6D4

D1

D9

D8

D10

101011 0

Encoding&

Delivery

101011 0

Encoding&

Delivery

D3

LanguageDescription Definition extensionextension

DefinitionDefinition

LanguageDescription Definition extensionextension

DefinitionDefinition

Description SchemesDescription Schemes

D1

D3D2

D5D4D6

DS2

DS3

DS1

DS4

StructuringStructuring

Description SchemesDescription Schemes

D1

D3D2

D5D4D6

DS2

DS3

DS1

DS4

Description SchemesDescription Schemes

D1

D3D2

D5D4D6

DS2

DS3

DS1

DS4

StructuringStructuring

46

12. Formát na dopytovanie (Query Format) – definuje dopytovací formát MPQF

založený na XML určený pre vyhľadávanie.

13. Kompaktné deskriptory pre vizuálne vyhľadávanie (Compact Descriptors for Visual

Search) – určený pre vyhľadávanie v multimediálnych databázach, snaha je

o kompaktnosť, nakoľko je inšpirovaný pre použitie mobilnými zariadeniami.

Multimediálny obsah je možné nielen anotovať ručne a pridávať napr. textové metadáta

(napr. XML značkou TextAnnotation), ale hlavne je ho možné popisovať automaticky

pomocou audiovizuálnych deskriptorov (určité charakteristiky vyjadrené koeficientmi

umiestnenými napr. v značke VisualDescriptor). Pri ich použití sa extrahujú určité

príznaky, ktoré sa zakódujú do vektora hodnôt a tie je potom možné použiť na

porovnávanie a vyhľadávanie. Z vizuálnych deskriptorov sú to napr. nízkoúrovňové

deskriptory popisujúcu farbu (napr. farebný histogram, dominantné farby), tvar, textúru a

pohyb alebo z vysokoúrovňových detekcia ľudských tvárí. Príklad XML dokumentu

štandardu MPEG-7 znázorňuje obr. 32. Ten popisuje obrázok s názvom goal.jpg, na

ktorom sa nachádza hráč menom Klose dávajúci gól (textová anotácia). Okrem toho sa

v ňom popisuje aj farba deskriptorom typu ScalableColor (vizuálny deskriptor).

Obr. 32 Ukážka MPEG-7 dokumentu a jeho korešpondujúceho DOM stromu, zdroj: [61]

47

3.3.1 Vizuálne deskriptory

Cieľom MPEG-7 štandardu časti 3 o vizuálnych deskriptoroch je poskytnúť popisy, ktoré

pomôžu používateľom alebo naprogramovaným aplikáciám identifikovať, kategorizovať

alebo filtrovať obrázky a video. Patria sem nasledujúce deskriptory [60]:

Deskriptory farby (Color descriptors) – popisujú farby, nakoľko farebné príznaky

sú robustné voči zmenám pohľadu, posunu a rotácií skúmanej časti obrázka.

Špecifikuje niekoľko farebných deskriptorov, ktoré reprezentujú priestorové

rozloženie, štruktúru, dominantné farby, škály atď.

Deskriptory tvaru (Shape descriptors) – popisujú tvar a kontúry vo forme oblastí,

ich zakrivení a rôznych charakteristík ako je kruhovosť, excentricita apod.

Deskriptory textúry (Texture descriptors) – popisuje štruktúru povrchu a jeho vzťah

k okolitému prostrediu zachytávajúc vzory homogénnych alebo nehomogénnych

vlastností. Napr. oblaky, skupina naukladaných tehál, vlasy a rôzne tkaniny so

vzormi majú špecifickú štruktúru. Z deskriptorov sem možno zaradiť deskriptor

homogénnosti, popisujúci pravidelnosť, hrubosť, smer alebo frekvenciu.

Deskriptory pohybu (Motion descriptors) – popisujú charakteristiky vo videu, ktoré

poskytujú informáciu o tom, čo sa deje v jeho obsahu. Patria sem deskriptory

zachytávajúce pohyb objektov, ich trajektórií a pohyb kamery.

Deskriptor rozpoznávania ľudských tvárí (Face descriptor) – vysokoúrovňové

detektory ľudských tvárí v obraze, schopné rozpoznávať a identifikovať tváre,

dokonca aj z rôznych póz.

Prvé štyri sa označujú aj ako nízkoúrovňové deskriptory, kým posledný ako

vysokoúrovňový. Výstupy z nízkoúrovňových deskriptorov je pritom možné použiť pre

porovnávanie, filtrovanie alebo prehliadanie obrázkov a videí v databázach. Vyhľadávanie

je možné nasledujúcimi vstupmi [24]:

Graficky nakreslením obrysu (query by sketch), na základe ktorého sa vráti

množina obrázkov s podobnou grafikou alebo logom.

Obrázkom (query by example alebo výstižnejšie query by image example), na

základe ktorého sa vrátia podobné obrázky (podobné vo farbe, tvare alebo textúre).

Videom, ktorý vráti výsledky na základe pohybu objektov, kamery vo videu alebo

vzťahov medzi objektmi.

48

Vyhľadávanie v rozsiahlych databázach pomocou takýchto nízkoúrovňových príznakov sa

používa v systémoch vyhľadávania obrazu založeného na obsahu (Content Based Image

Retrieval, CBIR), ktorého myšlienka pochádza už zo začiatku 90. rokov [62]. Príklady

implementácií MPEG-7 deskriptorov v CBIR možno nájsť v [62] [63] [64] [65] [66] [67] .

Navyše, objavili sa aj hardvérové implementácie MPEG-7 štandardu. Napr. firma

Eptascape vytvorila hardvérový enkodér ADS-200 [68], ktorý je schopný z obrazu kamery

(vstup) automaticky vytvárať XML anotácie (výstup) pre ich následné spracovanie.

3.3.2 MPQF

Uvedené CBIR systémy umožnili vyhľadávanie vo veľkých databázach, avšak navzájom si

neboli kompatibilné vo formáte, v akom si tieto dáta dopytovali. Aby sa umožnilo

dopytovanie multimediálneho obsahu bez ohľadu na konkrétnu implementáciu systému,

vznikla potreba unifikácie rozhrania vstupov a výstupov týchto systémov. Do MPEG-7

štandardu sa preto pridala 12. časť, ktorá priniesla v roku 2008 nový štandardizovaný

formát MPQF (MPEG Query Format) [69]. Je založený na XML a umožňuje

interoperabilitu a platformovú nezávislosť [70].

Obr. 33 Elementy XML MPEG formátu na dopytovanie

Každý MPQF XML dokument obsahuje MpegQuery koreňový element a pod ním

elementy Query alebo Management (obr. 33). Prvý z nich slúži na dopytovanie (vstupná

požiadavka, výstupná odpoveď s možnosťou asynchrónneho dopytovania). Druhý,

Management, predstavuje správy, ktorými je možné zisťovať poskytované služby,

konfiguračné a iné parametre súvisiace so službou.

Príklad vstupného dopytu s definovanou podmienkou vrátenia obrázkov všetkých

formátov, pri ktorých sa nachádza popis „Hong Kong“ a ktorých šírka je väčšia alebo

rovná než 1000 pixelov zobrazuje nasledujúci XML dokument:

49

<?xml version="1.0" encoding="utf-8"?> <MpegQuery> <Input> <OutputDescription thumbnailUse="true"> <ReqField typeName="MediaInformationType"> MediaProfile/MediaFormat/FileSize </ReqField> <ReqField typeName="CreationInformationType"> Creation </ReqField> </OutputDescription> <QueryCondition> <TargetMediaType>image/*</TargetMediaType> <Condition xsi:type="AND" preferenceValue="0.1"> <Condition xsi:type="QueryByFreeText"> <FreeText>Hong Kong</FreeText> </Condition> <Condition xsi:type="GreaterThanEqual"> <ArithmeticField typeName="MediaInformationType"> MediaProfile/MediaFormat/Frame@width </ArithmeticField> <LongValue>1000</LongValue> </Condition> </Condition> </QueryCondition> </Input> </MpegQuery>

3.4 Zhodnotenie

VANET siete sú perspektívnou budúcnosťou automobilového priemyslu, nakoľko

poskytujú obrovské možnosti, či už z hľadiska zvýšenia bezpečnosti alebo komfortnosti

používateľov. V oblasti spracovania a analýzy obrazu bolo navrhnutých niekoľko aplikácií,

ako bolo uvedené na začiatku tejto práce. Všetky aplikácie sú špecifické tým, že riešia

určitý problém presne vymedzenej oblasti, pre ktorú boli navrhnuté. Z nášho prieskumu

doposiaľ nebolo zistené žiadne existujúce riešenie, ktoré by bolo schopné vyhľadávať

všeobecné informácie – objekty nachádzajúce sa v obraze na požiadanie.

Vyhľadávanie obrazu pomocou CBIR / QBIC systémov je založené na vyhľadávaní

v databázach naplnených už existujúcimi dátami, čo sú príznaky získané z obrazu, ako sú

farebné, tvarové alebo textúrové informácie, či iné príznaky popisujúce lokálne alebo

globálne časti obrazu. Istá podobnosť je tu s našou úlohou, avšak jej cieľom nie je

vyhľadávať v databáze, ale na aktuálne získanom obrázku z kamery v reálnom čase.

Čiastočné riešenie by ponúkal štandard MPEG-7, ktorý najskôr popisuje to, čo sa nachádza

na obraze pomocou deskriptorov do dokumentu XML, v ktorom je následne možné

vyhľadávať. Napriek tomu, že je možné pomocou DDL a DS použiť vlastné deskriptory

s vlastnou definíciou a tak upraviť XML dokument na svoj vlastný obraz, nerieši sa

50

všeobecné vyhľadávanie presne toho, čo by sme v konkrétnom čase požadovali. MPEG-7

umožňuje totiž vyhľadávať len to, čo bolo už dopredu popísané.

Z tohto dôvodu sme sa rozhodli navrhnúť nový systém s jazykom na dopytovanie

akýchkoľvek informácií z obrazových dát získaných z jednej alebo viacerých kamier

umiestnených vo vozidle v reálnom čase s využitím algoritmov spracovania a analýzy

obrazu. Náš návrh, výsledky a závery predkladajú nasledujúce kapitoly.

51

4 Riešenie

Cieľom dizertačnej práce je návrh systému a jazyka na dopytovanie objektov a ich relácií

s inými objektmi nachádzajúcimi sa v obraze z kamery snímajúcej dopravnú scénu

z vozidla. Pre splnenie tohto cieľa si najskôr vymedzíme rozsah problému, analyzujeme

možné objekty a navrhneme riešenie v podobe dopytovacieho jazyka a systému pre jeho

spracovanie v prostredí VANET.

4.1 Vymedzenie problému

Keďže oblasť platnosti riešenia je prostredie VANET a obraz snímaný z pohybujúcich sa

vozidiel, zameriame sa hlavne na objekty v ňom nachádzajúce, t.j. objekty dopravnej

scény, ako sú účastníci cestnej premávky, infraštruktúra, prostredie atď. Dôležité je

identifikovať všetky elementárne a najčastejšie sa vyskytujúce objekty. Okrem nich sa na

dopravnej scéne môže objaviť čokoľvek vrátane objektov, ktoré nie je možné predpokladať

dopredu pri návrhu systému (napr. žirafa, lietadlo na ceste, atď.). Preto aj takéto objekty

budeme pri návrhu brať do úvahy.

Každý reálny objekt má svoje charakteristické vlastnosti. Vďaka nim je možné objekty

medzi sebou rozlišovať a porovnávať. Či už sú to konkrétne vlastnosti špecifické pre

reálny objekt alebo všeobecné (ako je rozmer, farba, tvar alebo textúra), ktoré sa radia

z pohľadu analýzy obrazu do kategórie nízkoúrovňových príznakov. Z určitého aspektu sa

aj na tieto vlastnosti môžeme pozerať ako na objekty, ktoré sa nachádzajú v obraze, napr.

objekt kruhového, trojuholníkového alebo všeobecného tvaru, či objekt určitej farby.

Niektoré objekty môžu mať medzi sebou určitý vzťah, či už priestorový (pozícia v obraze

globálne a relatívne k iným objektom) alebo aj časový (videosekvencia – postupnosť

obrazov, v ktorej je jednak vozidlo pohybujúci sa objekt medzi inými objektmi, ktoré sa

môžu tiež pohybovať).

Ak identifikujeme objekty, ich vlastnosti a vzťahy medzi nimi, môžeme ich využiť pri

tvorbe a návrhu jazyka na dopytovanie z obrazu snímajúceho dianie pred vozidlom.

Spracovávaný obraz pritom môže byť vo forme jedného snímku alebo videosekvencie.

V tejto práci sa obmedzíme len na spracovanie jedného snímku, avšak budeme môcť

použiť aj videosekvenciu bez časových závislostí.

52

Navrhnutý dopytovací jazyk by preto mal umožňovať nasledujúce operácie:

rozpoznávanie vysokoúrovňových objektov,

rozpoznávanie nízkoúrovňových objektov,

základné operácie nad objektmi a ich vlastnosťami,

priestorové operácie,

dĺžku a podmienku ukončenia vykonávania dopytu.

Nielen operácie, ale aj formát je pritom dôležitý, keďže je navrhovaný pre prostredie

VANET sietí, v ktorých komunikácia môže prebiehať v krátkom čase, nakoľko vozidlá sú

dynamické objekty rýchlo sa pohybujúce a míňajúce na dopravnej sieti. Dôležitá je preto

tiež minimalizácia veľkosti prenášaných dát. Definovanie formátu pre dopytovanie bude

hlavným predmetom výskumu, ktorého správny návrh umožní spracovanie vyššie

uvedených operácií. Formát by mal mať nasledujúce vlastnosti:

kompaktnosť formátu a minimalizácia jeho veľkosti na dopytovanie,

jednoduché vyjadrenie základných a komplexných operácií nad obrazom,

univerzálnosť a jednoduchá rozšíriteľnosť syntaxe (možnosť pridania nových

funkcií a rozšírení).

Formát by mal byť definovaný nielen pre dopyt (vstupný formát požiadavky), ale aj pre

možné odpovede (výstup). Preto je nutné definovať aj výstupný formát odpovede dopytu.

Obr. 34 Globálny pohľad na postup spracovania obrazu definovaného dopytom

Komunikácia, nadviazanie spojenia a prenos je mimo oblasť nášho skúmania. Avšak, pre

lepšiu predstavu, v akom prostredí a pre aký účel bude navrhované riešenie cielené,

uvedieme nasledujúci scenár použitia. Zadávateľ odošle svoj dopyt (vstupná požiadavka)

na jedno alebo viacero vozidiel (spracovateľov dopytov) napr. z infraštruktúry pomocou

V2I komunikácie. Vo vozidlách sa dopyt spracuje, vykoná a v závislosti od jeho

charakteru sa odošle zadávateľovi odpoveď (výstup). Ak sa pozrieme na motivačný príklad

uvedený v úvode tejto práce, policajti pátrajúci po vozidle s určitým neúplným popisom

vystupujú ako zadávatelia. Odošlú dopyt na vozidlá, napr. v určitej vymedzenej oblasti a

ak nejaké vozidlo, t.j. spracovateľ dopytu, identifikuje hľadaný objekt záujmu, odošle

Vstup (dopyt)

Spracovanie a vykonanie dopytu

nad obrazom

Výstup (odpoveď)

53

policajtom požadovanú odpoveď. Rozsah spracovania a jeho dĺžka vykonávania budú

definované v dopyte. Náčrt funkčnosti znázorňuje obr. 35.

Kladenou požiadavkou na vozidlá je, aby boli vybavené aspoň jednou kamerou snímajúcou

priestor pred vozidlom. Okrem kamery by bolo vhodné využiť aj ďalšie senzory, ktoré by

pomohli jednak rozpoznávacím algoritmom a hlavne k rozšíreniu možností dopytov, ako

napr. GPS senzor, akcelerometer, gyroskop atď. GPS senzor by mal byť vo vozidlách

v prostredí VANET vždy k dispozícií, takže predpokladáme jeho možné použitie, najmä

pre získanie takých informácií ako je pozícia, rýchlosť a smer pohybu.

Zadávateľpožiadavky

Dopyt

.

.

.

Definovaniedopytu

Odoslanie dopytu

Odoslanie výsledku

Spracovanie dopytu

Vozidlo 1

Spracovanie dopytu

Vozidlo 2

Spracovanie dopytu

Vozidlo N

Obr. 35 Náčrt dopytovania od jeho definovania po vrátenie výstupu

Pre zhrnutie celého princípu dopytov nad obrázkami uvádzame nasledovný postup v

krokoch znázornený aj na obr. 35 nasledovne:

Definovanie dopytu – vytvorenie dopytu zadávateľom (buď manuálne človekom

alebo automaticky aplikáciou). V dopyte je definovaný hľadaný objekt

záujmu, požadovaný výstup a možná dĺžka spracovania dopytu.

Odoslanie dopytu vozidlám – dopyt sa odošle na jedno alebo viacero vozidiel

(spracovateľov dopytov) v závislosti od definovanej cieľovej oblasti, v ktorej sa má

spracovávať obraz (oblasť je definovaná napr. geocastom).

Spracovanie dopytu a vrátenie výstupu – spracovanie je realizované vo vozidle buď

okamžite po prijatí požiadavky na aktuálnej snímke získanej z kamery alebo na

videosekvencií určitú dobu definovanú taktiež v dopyte. Dĺžka spracovania tak

54

môže byť ohraničená buď konkrétnym časom (napr. 15 minút), udalosťou (napr.

nájdenie požadovaného objektu, zastavenie chodu vozidla) alebo geolokačným

rozsahom v priestore (vymedzenie priestoru platnosti udanej GPS pozíciou).

Keďže je úloha riešená v prostredí VANET, bolo by zaujímavé využiť v spracovaní dopytu

i okolité vozidlá. Ak by sa napríklad časť dopytu nedokázala splniť jedným vozidlom –

spracovateľom, mohli by sa na dokončenie úlohy zapojiť ostatné vozidlá z okolia. Vozidlo

by tak predalo časť dopytu alebo vytvorilo úplne nový dopyt jednému alebo viacerým

vozidlám, čím by sa zo spracovateľa stal aj zadávateľ. Čiastkové dopyty by tak pomohli k

vykonaniu hlavného dopytu.

Predstavme si nasledujúci problém. Požadujme nájsť také červené vozidlo, ktoré nielenže

obsahuje určité neúplné znaky v evidenčnom čísle, ale navyše mu chýba aj puklica na

prednom kolese z ľavej strany, prípadne má nejakú inú charakteristickú vlastnosť (napr.

nálepku lebky s prekríženými kosťami z úvodného motivačného príkladu) na mieste, ktoré

nie je možné vidieť z jednej pozície pohľadu. Pre lepšiu predstavu sa pozrime na obr. 36,

na ktorom sa nachádzajú tri vozidlá červenej, žltej a zelenej farby. Žlté vozidlo spozoruje

pred sebou červené vozidlo, ktoré spĺňa časť dopytu – farbu vozidla i evidenčné číslo

obsahujúce požadované znaky, avšak treba ešte overiť poslednú časť z dopytu –

neprítomnosť puklice. Túto úlohu ale nie je možné spracovať, lebo kamera na predné

kolesá nevidí. Žlté vozidlo by preto muselo prejsť zo svojho jazdného pruhu do pravého

jazdného pruhu a pri predchádzaní červeného vozidla analyzovať jeho kolesá. Keďže žlté

vozidlo tento manéver nemusí uskutočniť, bolo by dobré pozrieť sa na okolité vozidlá,

ktoré na červené vozidlo majú výhľad. Takýmto vozidlom je na uvedenom obrázku zelené

vozidlo, ktoré prichádza v ľavom jazdnom pruhu a ktoré má dobrý výhľad na

predchádzané červené vozidlo. Žlté vozidlo by preto mohlo vytvoriť dopyt, v ktorom by sa

požadovalo zistenie chýbajúcej puklice. Ak by to následne zelené vozidlo spracovalo

a našlo by zhodu, vrátila by sa odpoveď aj s obrázkom červeného vozidla, ktorý by sa

mohol pribaliť do výsledného výstupu pre odoslanie naspäť zadávateľovi.

Dekomponuje sa tak problém hľadania objektu na menšie problémy za predpokladu, že je

úlohu možné rozdeliť. Časti úlohy sa potom podľa potreby môžu spracovávať vo viacerých

úrovniach. Prvú úroveň predstavuje prvé vozidlo, ktoré spracováva dopyt. Ak bude

potrebovať odoslať čiastkový dopyt, odošle ho druhému vozidlu, čím sa dostávame

na druhú úroveň. Počet týchto vnorení by mal byť obmedzený, pretože musíme počítať, že

55

prenos a hlavne samotné spracovanie zaberie určitý čas v závislosti od zložitosti dopytu.

Navyše si treba uvedomiť, že pracujeme v prostredí ad hoc siete, v ktorej sa infraštruktúra

mení veľmi rýchlo, keďže samotné vozidlá sú mobilné objekty, ktoré prichádzajú

a odchádzajú.

Obr. 36 Náčrt komunikácie žltého vozidla so zeleným vozidlom pre čiastkové spracovanie obrazového

dopytu (červená čiara predstavuje V2V komunikáciu a svetlomodré lichobežníky pohľad kamier)

Táto myšlienka načrtá možnosť vykonávať veľmi zložité dopyty, avšak problematická

bude jej realizovateľnosť, nakoľko je nutné presne lokalizovať vozidlo, od ktorého budeme

požadovať výsledok. Táto úloha môže byť predmetom ďalšieho výskumu a preto sa jej

v tejto práci nebudeme venovať.

4.2 Obrazové objekty

Základom práce s dopytmi budú objekty, nakoľko predstavujú predmet nášho záujmu.

Môžu to byť reálne objekty, ako sú budovy, cesty, ľudia, dopravné značky alebo objekty

v tvare segmentov predstavujúce časti obrazu podľa určitej charakteristiky, napr. oblasti

obsahujúce červenú farbu alebo oblasti majúce trojuholníkový, či iný tvar.

Na rozpoznávanie reálnych objektov musíme využiť pokročilé algoritmy z oblasti analýzy

obrazu a počítačového videnia. Jedná sa o vysokoúrovňové objekty a teda

o vysokoúrovňové vyhľadanie objektov. Naopak rozpoznávanie určitých segmentov patrí

do nízkej úrovne spracovania a analýzy obrazu, preto ich budeme nazývať

56

nízkoúrovňovými objektmi. V obidvoch prípadoch potom oba typy objektov budeme

označovať pojmom obrazové objekty.

V nasledujúcich častiach popíšeme niektoré z obrazových objektov, ktoré budú predmetom

záujmu.

4.2.1 Objekty na dopravnej scéne

Na dopravnej cestnej sieti je možné identifikovať množstvo reálnych objektov, z ktorých

najčastejšie sa vyskytujúce a zaujímavé pre spracovanie obrazu vyberáme a určujeme pri

nich atribúty, ktoré by algoritmy mali implementovať za účelom ich použitia v dopytoch.

Snaha je zachytiť čo najviac významných objektov a ich vlastností v obraze. Identifikácia

nám následne poskytne možnosť sémantického vyjadrenia objektov a okrem toho aj

optimálnej implementácie algoritmov na strane vozidiel vykonávajúcich dopyty.

Rozpoznávanie objektov je totiž možné realizovať buď špecifickými algoritmami, ktoré sa

hodia pre danú množinu problémov alebo univerzálnymi, ktoré nemusia byť optimálne pre

všetky úlohy (obmedzené úspešnosťou rozpoznávania alebo časovo). Napriek snahe

o určenie všetkých významných objektov predpokladáme, že budú v dopytoch požadované

aj iné objekty a ich vlastnosti. V závere preto pristupujeme k explicitnej definícií

všeobecného objektu, pomocou ktorého budeme môcť rozpoznávať ľubovoľné objekty

definované popísaným modelom.

Obr. 37 Príklady objektov nachádzajúcich sa na dopravnej scéne pred vozidlom

(obrázok získaný z kamery umiestnenej vo vozidle)

Cesta ( jazdný pruh priamy v smere jazdy)

Cesta (jazdný pruh

vpravo, odbočovací)

Cesta ( jazdný pruh

vľavo, protismer)

Obloha

Stromy

Vodorovná značka (šípka)

Zvislé dopravné značky

(daj prednosť, kruhový objazd)

Stĺp osvetlania

Tabuľa (bilbord)

Auto (zozadu, biele)

Zvislé dopravné

značky

Vodorovná značka

(šípka)

Auto

(spredu, šedé)

Auto (spredu, žlté)

57

Pozorované objekty na dopravnej scéne môžu byť podľa charakteru ich mobility statické

alebo dynamické. Statickým objektom budeme rozumieť taký objekt, ktorý sa nepohybuje,

napr. budova, strom, cesta atď. Ostatné objekty, ktoré budú mobilné, t.j. pohybujúce sa,

budeme označovať ako dynamické, napr. automobil, chodec, cyklista apod.

Dynamický objekt môže byť ale určitú dobu aj statický. Záleží od jeho aktuálneho stavu.

Napríklad automobil, ak bude parkovať alebo stáť na križovatke, bude z neho na chvíľu

statický objekt. Ak sa začne pohybovať, t.j. meniť svoju polohu, stane sa z neho objekt

dynamický. Pre túto nejednoznačnosť budeme preto pod pojmom statický objekt

rozlišovať len taký objekt, ktorý bude vždy nehybný. Dynamický potom bude objekt, ktorý

sa môže pohybovať, zastaviť i stáť.

Na samotnom obraze zachytávajúcom jeden snímok aktuálneho diania pred vozidlom sa

budú všetky objekty (či už statické alebo dynamické) javiť ako statické. Bez apriórnej

znalosti a predchádzajúcich obrázkoch scény to totiž nie je jednoduché rozlíšiť. Ak by sme

však pridali do obrazu ďalší rozmer v podobe času, dostali by sme video, v ktorom už stav

konkrétnych objektov možno rozpoznať. Napriek tomu, že sa v riešení práce obmedzujeme

len na samostatné snímky, popíšeme aj možnosť práce s touto informáciou. Spolu

s apriórnou znalosťou o objektoch by tak bolo možné využívať aj takéto informácie

v prospech dopytov.

Za účelom identifikácie čo najväčšieho možného počtu objektov sme vykonali niekoľko

desiatok jázd v okolí Žiliny, v ktorom sme mali namontovanú kameru a mobilný telefón

v plnom 1080p rozlíšení pred čelným sklom automobilu. Takto sme získali dáta v podobe

videí a GPS súradníc. Okrem získaných vlastných dát sa nám počas výskumu podarilo

nadviazať spoluprácu aj s externou holandskou firmou, ktorá nám poskytla veľké

množstvo obrazových dát získaných vo vysokom rozlíšení zo všesmerovej Ladybug

kamery. Na základe spracovaní a vyhodnotení týchto videonahrávok sme identifikovali

niektoré významné objekty, ktoré budeme môcť použiť v dopytoch:

1. Obloha a s tým súvisiace osvetlenie a stavy počasia

2. Hory

3. Cesta (vozovka, krajnica, jazdné pruhy, chodníky) a križovatky

4. Vodorovné dopravné značky na cestách

5. Zvislé dopravné značky

6. Svetelné signalizačné zariadenia – semafory

58

7. Texty

8. Vozidlá

9. Ľudia

10. Zvieratá

11. Budovy a stĺpy

12. Stromy, kríky

13. Voľné plochy

14. Vodné plochy

15. Pohybujúce sa objekty vo vzduchu

Každý z uvedených objektov môže mať niekoľko špecifických vlastností, ktoré môžu

nadobúdať rôzne hodnoty (číselné, textové, vymenované) a k ním aj tzv. nedefinovanú

hodnotu, pokiaľ nebude možné určiť ich stav. Okrem toho, každý obrazový objekt bude

obsahovať základné vlastnosti ako je pozícia (zadaná súradnicami x, y), ohraničujúci

obdĺžnik objektu a približnú GPS polohu, ktorá bude vypočítaná na základe aktuálnej GPS

pozície s posunutím o určité hodnoty podľa odhadu umiestnenia na obrázku. Všetky

hodnoty vlastností pritom nemusia byť vypočítané ihneď, ale až po ich požadovaní.

Radi by sme poznamenali, že sa na rozpoznávanie navrhovaných objektov nemusia použiť

len kamery (jedna alebo viacej), ale aj ďalšie pomocné senzory obsiahnuté vo vozidlách

(napr. dažďový senzor, akcelerometer, gyroskop, GPS, kompas, apod.) a takisto aj mapové

podklady poskytujúce informácie o objektoch v blízkosti pozície vozidla (cesty, zastavané

plochy, rieky, jazerá atď.).

Konkrétne algoritmy a použité metódy počítačového videnia budú závisieť od úlohy, ktorá

sa má riešiť (v závislosti od rozpoznávania špecifického objektu). Nakoľko pokroky a nové

metódy v tejto oblasti vznikajú neustále, nebudeme definovať presné algoritmy, aké sa

majú použiť, ale stanovíme požiadavku, aby sa spĺňal kontrakt a implementovalo sa

rozpoznávanie všetkých alebo aspoň určitej podmnožiny z vymenovaných objektov a ich

vlastností. Niektoré z nich preto budú popísané v nasledujúcich podkapitolách.

Obloha

Obloha sa vyskytuje v hornej časti získaného obrázka, pokiaľ nie je prekrytá inými

objektmi (napr. keď sa vozidlo nachádza v tuneli, pod mostom alebo pod stromami). Na

oblohe sa môžu vyskytovať oblaky, slnko, mesiac, lietajúce objekty atď. Svetelné

podmienky a slnko pritom bývajú najviac problematické v mnohých rozpoznávacích

59

úlohách, nakoľko kamere spôsobujú problémy. V prípade dňa a slnka bývajú problémom

v obraze viditeľné odrazy, odlesky alebo tiene, s ktorými si musí poradiť rozpoznávací

algoritmus [ST8]. Určité problémy môžu vyriešiť kvalitné kamery, napr. s technológiou

vysokého dynamického rozsahu (high-dynamic-range, HDR), pomocou ktorej je obraz

snímaný v rôznych expozíciách, čím je možné zachytávať kvalitný obraz ako v protisvetle,

tak i v šere.

Obr. 38 Detegovaná obloha vyznačená modrým šrafovaním

S oblohou súvisia aj stavy počasia. Môže byť jasno, polojasno, úplne zamračené, pršať,

snežiť alebo blýskať sa v prípade búrky. Meteorológovia poznajú oveľa viac kategórií,

avšak pre účel rozpoznávania nám budú stačiť tieto základné stavy. Informácie o počasí

potom môžu byť nápomocné pre spracovanie obrazu, v rozpoznávaní iných objektov alebo

využité pre zisťovanie mapy aktuálneho počasia.

Hlavným cieľom je detegovať oblohu ako jedného objektu, ktorý sa môže skladať buď

z jedného alebo viacerých segmentov podľa toho, aké časti oblohy budú na obraze

viditeľné (a teda neprekryté inými objektmi).

Rozpoznanie oblohy nám umožní získať nasledujúce vlastnosti:

Oblasť oblohy – zoznam zložený zo segmentov tvoriacich jeden objekt oblohy.

Prítomnosť oblohy – áno (obloha je viditeľná), nie (obloha nie je viditeľná, napr. ak

je vozidlo v tuneli).

60

Prítomnosť oblakov – percentuálne vyjadrenie oblačnosti (rozsah 0-100%, pričom

0% bude predstavovať jasnú bezoblačnú oblohu a100% úplne zamračenú oblohu).

Prítomnosť slnka – áno (vidno), čiastočne (prekrytý napr. mrakmi), nie (nevidno).

Stav dňa – deň (svetlo), noc (tma).

Stav počasia – jasno (vidno slnko, bez mrakov), polojasno (vidno slnko i mraky),

zamračené (nevidno slnko, iba mraky), dážď (prší), sneh (sneží), hmla.

Hory

Hory sú často viditeľné v hornatých krajinách v horizonte pod oblohou. Skladajú sa

z vrchov, pričom pod nimi sa väčšinou nachádzajú stromy vytvárajúce les.

Obr. 39 Vyznačená oblasť hôr červenožltým šrafovaním

Požadované vlastnosti:

Oblasť hôr – zložený zo segmentov.

Prítomnosť hôr – áno (hory sú viditeľné), nie (hory nie sú viditeľné).

Cesta

Cesta je pre vozidlá dôležitá, rovnako ako pre iných účastníkov cestnej premávky.

Hlavným cieľom bude identifikovať a lokalizovať cestu a kategorizovať jej časti –

vozovku, krajnicu, jazdné pruhy a chodníky. Jazdné pruhy a smer sa môžu rozpoznávať na

základe vodorovných dopravných čiar na ceste (plná čiara, prerušovaná čiara a smerové

šípky), čo bude riešené v rámci samostatnej úlohy rozpoznávania horizontálnych

dopravných značiek.

Cesty sa mnohokrát medzi sebou pretínajú alebo spájajú, čím vytvárajú križovatky. Tieto

miesta by bolo tiež vhodné rozpoznávať. Pre uľahčenie ich rozpoznávania je možné

využívať mapové podklady, čo poskytne apriórnu vedomosť o výskyte križovatiek, čím sa

z úlohy stane lokalizačná.

61

Hlavným cieľom je nájsť cestu v obraze a potom jej časti. Preto obrazový objekt cesta

bude zložená z menších objektov, ktoré budú k dispozícií formou požadovaných vlastností:

Oblasť cesty – zoznam objektov typu vozovka, krajnica alebo chodník.

Prítomnosť cesty – áno, nie.

Oblasť vozovky – zoznam objektov typu jazdný pruh.

Prítomnosť vozovky – áno, nie.

Oblasť krajnice – zložený zo segmentov.

Prítomnosť krajnice – áno, nie.

Oblasť jazdného pruhu – zložený zo segmentov.

Jazdný pruh

o Čiara vpravo – plná, prerušovaná a ich kombinácie.

o Susedný jazdný pruh vpravo – odkaz na iný objekt typu jazdný pruh.

o Čiara vľavo – plná, prerušovaná a ich kombinácie.

o Susedný jazdný pruh vľavo - – odkaz na iný objekt typu jazdný pruh.

Oblasť chodníka – zložený zo segmentov.

Prítomnosť chodníka – áno, nie.

Je chodník vyvýšený – áno, nie.

Prítomnosť križovatky – áno, nie.

Križovatka – digraf, v ktorom budú vrcholy predstavovať jazdné pruhy

vychádzajúce z hranice alebo vchádzajúce do hranice križovatky, pričom

orientované hrany budú predstavovať možné spojenia – dovolené prechody medzi

križovatkami z jazdných pruhov. Ohodnotenia orientovaných hrán bude v sebe

uchovávať informácie o dĺžke a zakrivení prechodu.

Obr. 40 Vyznačená oblasť vozovky červenožltým a chodníka žltým šrafovaním

62

Vodorovné dopravné značky

Vodorovné dopravné značky sú značky zobrazené ako čiary, šípky, nápisy, symboly alebo

významové symboly na ceste a jej súčastiach [71]. Tieto značky môžu byť trvalé alebo

dočasné, čomu zodpovedá použitá farba.

Cieľom je zdetegovať a rozpoznať čo najväčší počet takýchto značiek, pričom je dôležité

presne definovať výsledné kategórie takýchto značiek. Situácia sa sťažuje aj tým, že sa

v rôznych krajinách môžu používať odlišné farby a tvary značiek, rôzny text (v danom

jazyku krajiny) alebo použité písmo. To sa však dá riešiť územnou platnosťou pre danú

krajinu, v ktorej bude odlišná sada rozpoznávaných značiek. Pre významovo rovnaké

značky budú preto použité rovnaké identifikátory.

Obr. 41 Príklady vodorovných dopravných značiek používaných na Slovensku [72]

Rozpoznávanie takýchto značiek môže byť zaujímavé nielen na ceste pre rozpoznávanie

pruhov, smerových značiek, ale napr. aj na parkoviskách. Na obraze môže byť

detegovaných niekoľko vodorovných značiek, preto každá samostatná značka bude

vyjadrená jedným objektom.

Vlastnosti:

Vodorovné dopravné značky – zoznam detegovaných objektov vodorovných

dopravných značiek, každá bude reprezentovaná segmentom v obraze.

Kategória vodorovnej dopravnej značky – vráti identifikátor rozpoznanej dopravnej

značky (napr. 001 - pozdĺžna súvislá čiara, 002 - dvojitá pozdĺžna súvislá čiara, 006

- priechod pre chodcov, atď.).

63

Obr. 42 Príklady vodorovných dopravných značiek

Zvislé dopravné značky

Zvislé dopravné značky sú značky zobrazené na podkladovej tabuli, ktorá je umiestnená

zvislo na stĺpiku alebo na inej nosnej konštrukcii pevne spojenej so zemou [71]. Okrem

trvalých značiek sú k dispozícií aj prenosné značky a značky s premenlivým symbolom na

elektronickom, či elektromechanickom paneli. Podľa ich typu a významu sa odlišujú najmä

v tvare a farbe. Príklady značiek používaných na Slovensku znázorňuje obr. 43.

Obr. 43 Príklady zvislých dopravných značiek používaných na Slovensku [72]

Tvar a farba dopravných značiek sú odlišné nielen v závislosti od svojho typu a významu,

ale aj tým, v akej krajine sa nachádzajú. Podľa Maxwella [73] existujú dva hlavné systémy,

európsky na základe Viedenskej konvencie a americký definovaný na základe MUTCD.

Niektoré krajiny prijali vo svojich krajinách európsky, iné americký systém. Avšak nielen

medzi týmito dvoma systémami sa značky líšia. Podľa Viedenskej konvencie je možné

používať určité tvary a farby pre rovnaké triedy značiek. Z toho dôvodu sú mnohých

krajinách adaptované značky, ktoré sa líšia predovšetkým vo farbe, tvare, veľkosti,

64

použitom piktograme, fonte písma, merných jednotkách a lokalizovaných textoch [ST1].

Porovnanie značiek rovnakého druhu v niektorých vybraných krajinách zobrazuje tab. 1.

Kvôli týmto rozdielom značiek v rôznych krajinách je nutné vymedziť triedy zvislých

dopravných značiek a pre každú krajinu optimalizovať rozpoznávanie značiek vzhľadom

na ich vyobrazenie. Z tohto dôvodu musí mať každá trieda konkrétny jednoznačný

identifikátor, ktorý bude odkazovať na dopravnú značku bez ohľadu na to, aké má

vyobrazenie v krajine, v ktorej sa rozpoznala.

Hlavným cieľom rozpoznávania dopravných značiek je najskôr detegovať značku

a následne identifikovať jej triedu, ktorá vďaka tomu určuje konkrétny význam dopravnej

značky.

Tab. 1 Porovnanie dopravných značiek používaných v rôznych krajinách

Stoj, daj

prednosť

v jazde!

Daj

prednosť

v jazde!

Najvyššia

dovolená

rýchlosť

Zákaz

odbočo-

vania

vpravo

Zákaz

pred-

chádzania

Prikáza-

ný smer

obchá-

dzania

vpravo

Padajúce

kamene

Nerovnosť

vozovky

USA

Írsko

Švédsko

Poľsko

Slovensko

Vlastnosti:

Zvislé dopravné značky – zoznam detegovaných objektov zvislých dopravných

značiek, každá bude reprezentovaná segmentom v obraze.

65

Tvar zvislej dopravnej značky – kruh, trojuholník, obrátený trojuholník, štvorec,

obdĺžnik, osemuholník, kosoštvorec.

Farba okraja dopravnej značky – biela, modrá, zelená, červená, hnedá, žltá.

Dominantná farba dopravnej značky – biela, čierna, modrá, zelená, červená, hnedá,

žltá, oranžová.

Kategória zvislej dopravnej značky – vráti identifikátor rozpoznanej dopravnej

značky (napr. PS1 - hlavná cesta, YS - daj prednosť v jazde, MSL80 - najvyššia

dovolená rýchlosť 80 km/h, MSL100 – najvyššia dovolená rýchlosť 100 km/h,

PSNO - zákaz predchádzania, ISP - parkovisko atď.).

Svetelné signalizačné zariadenia – semafory

Svetelné signalizačné zariadenia sa prevažne používajú pre riadenie cestnej premávky,

najčastejšie na križovatkách (svetelné semafory), železničných priecestiach alebo tam, kde

môžu upozorniť vodiča na zvýšenú opatrnosť (priechod pre chodcov). Rovnako sú

k dispozícií i semafory pre chodcov alebo cyklistov.

Obr. 44 Príklady svetelných signalizačných zariadení

Hlavným cieľom je zdetegovať prítomnosť takýchto zariadení a ich stav. Poznamenajme,

že z jedného snímku môže byť niekedy ťažké rozpoznať stav, napr. ak je semafor v stave,

kedy oranžové svetlo svieti prerušovane. Ak ho kamera zachytí v čase zasvietenia, môže

dôjsť k nejednoznačnosti, pretože to môže znamenať buď prechod zo zeleného signálu na

červený a teda upozornenie vodiča, aby zastavil vozidlo alebo práve prípad prerušovaného

blikania. Preto je nutné analyzovať stav na základe viacerých po sebe nasledujúcich

obrázkov.

Vlastnosti:

Semafory – zoznam detegovaných objektov semaforov, udané regiónom.

66

Farba a stav semaforu – červená, oranžová, zelená spolu s blikaním a rozpoznaním

smerových šípok, ak budú k dispozícii.

Texty na paneloch a tabuliach

Texty sa nachádzajú takmer všade, na rôznych paneloch ako sú informačné dopravné

značky, smerové alebo dodatkové tabule, na budovách, bilbordoch, vozidlách atď.

Hlavným cieľom je detegovať umiestnenie textu a jeho rozpoznanie. Úloha detekcie a

rozpoznania je náročná aj tým, že text môže byť umiestnený kdekoľvek, môže byť rôzne

pootočený, v rôznej farbe a okrem toho môže mať aj rozličný font písma.

Obr. 45 Príklady výskytov textov na dopravnej scéne

Vlastnosti:

Oblasti detegovaných textov – zoznam segmentov obsahujúcich texty v obraze.

Text – rozpoznaný obsah textu vo forme reťazcov znakov.

Vozidlá a ich časti

Vozidlo možno definovať ako akýkoľvek dopravný prostriedok, ktorý sa pohybuje buď

vlastnou alebo cudzou silou a umožňuje transportovať osoby a náklad. Môže sa pritom

jednať o motorové alebo nemotorové vozidlo ako napr. osobný automobil, autobus,

nákladné vozidlo, motocykel, bicykel alebo akýkoľvek stroj, ktorý je schopný meniť svoju

pozíciu.

Je dôležité identifikovať nielen druh vozidla na ceste, ale aj jeho časti a pohľad.

Najčastejšie videné z pohľadu jednej alebo viacerých kamier v spracovávajúcom vozidle

sú automobily, preto si podrobne popíšeme časti automobilu, na ktoré sa budeme môcť

67

v dopytoch odkazovať. Celkovo tvar, farba, typ vozidla, jeho značka a evidenčné číslo

vozidla sú charakteristické znaky, ktorými sa vozidlá od seba odlišujú.

Evidenčné číslo vozidla (EČV) je pritom jednoznačný identifikátor vozidla, ktorý je

umiestnený vzadu alebo vpredu vozidla v tvare obdĺžnika. V rôznych krajinách má inú

podobu, krajiny si tak pridávajú vlastné logá, farby a používajú odlišný formát, čo môže

sťažovať rozpoznanie. Pri dopravných značkách môžeme použiť iný algoritmus

rozpoznávania platný v rámci územia, v ktorom sa vozidlo nachádza, avšak pri EČV môžu

vozidlá jazdiť takmer kdekoľvek, preto musí byť algoritmus dostatočne robustný a

univerzálny.

Požadované vlastnosti:

Vozidlá – zoznam detegovaných vozidiel, každé bude reprezentovaný segmentom v

obraze.

Typ vozidla – automobil, autobus, trolejbus, električka, nákladný automobil,

bicykel, motocykel, iné.

Farby vozidla – jedna alebo viacero dominantných farieb zo základných typov

definovaných nižšie.

Značka vozidla – identifikácia na základe tvaru vozidla a loga (z prednej alebo

zadnej časti vozidla) – Peugeot, BMW, Volkswagen, KIA, ...

Evidenčné číslo vozidla (EČV) – rozpoznanie do textovej podoby a určenie krajiny,

z ktorej evidenčné číslo pochádza, ak je to možné rozpoznať (napr. z loga).

Časti vozidla a ich natočenie – predná, zadná, pravá, ľavá strana a ich kombinácie

(obr. 46 a obr. 47). Na základe nich budú k dispozícií ďalšie objekty:

o predná strana – strecha, čelné sklo, kapota, pravý a ľavý predný svetlomet,

logo značky automobilky, nárazník, EČV, časť z ľavého a pravého

predného kolesa, pravé a ľavé spätné zrkadlo, podvozok.

o pravá strana (z profilu) – nárazník, kapota, pravý predný svetlomet, pravé

spätné zrkadlo, čelné sklo, strecha, kufor, pravý zadný svetlomet, pravé

predné a zadné koleso, pravé predné a zadné dvere (ak sú k dispozícii),

podvozok.

o ľavá strana (z profilu) – nárazník, kapota, ľavý predný svetlomet, ľavé

spätné zrkadlo, čelné sklo, strecha, kufor, ľavý zadný svetlomet, ľavé

68

predné a zadné a koleso, ľavé predné a zadné dvere (ak sú k dispozícii),

podvozok.

o zadná strana – strecha, kufor, pravý a ľavý zadný svetlomet, logo značky

automobilky, EČV, nárazník, časť z pravého a ľavého zadného kolesa,

pravé a ľavé spätné zrkadlo, podvozok.

Smer pohybu a približná rýchlosť vozidla – určená pomocou radaru alebo odhadom

na základe aktuálnej rýchlosti nášho pohybujúceho sa vozidla a sledovania

približovania alebo vzdialenia iného vozidla z obrazu.

Obr. 46 Pomenovanie častí vozidla z ľavoprednej strany (hore) a pravej strany (dole)

EČV

Logo

Kapota

Ľavé zadné

koleso

Čelné sklo

Strecha

Ľavé predné dvere

Ľavé zadné

dvere

Nárazník

Ľavé predné koleso

Ľavé spätné

zrkadlo

Kufor

Pravé zadné koleso

Pravé predné koleso

Kapota

Pravé spätné zrkadlo

Pravý zadný

svetlomet

Pravý predný svetlomet

Nárazník

Pravé predné dvere

Kufor

Čelné sklo

Strecha

69

Obr. 47 Časti vozidla pomenované pre identifikáciu z rôznych strán

Ľudia

Na cestách sa okrem vozidiel často pohybujú aj chodci, či už cez priechody pre chodcov

alebo po chodníkoch, či krajnici. Hlavným cieľom detekcie ľudí je nájsť ich v obraze

a zistiť pozíciu, v akej sa nachádzajú.

Obr. 48 Príklady ľudí vyskytujúcich sa na ceste

Vlastnosti:

Ľudia – zoznam detegovaných postáv človeka, každý človek bude reprezentovaný

segmentom v obraze.

Časti človeka – hlava, telo, ruky (pravá, ľavá), nohy (pravá, ľavá).

Predná strana

Zadná strana

Predná

strana

Zadná

strana

Pravá

strana

Ľavá

strana

Pravá strana

70

Približná výška človeka – malý (dieťa), vysoký (dospelý).

Pozícia človeka – vpred, chrbtom, z profilu vpravo, vľavo.

Pohyb – 8 smerov (ide sprava doľava, zľava doprava, približuje sa smerom k nám,

od nás, a ich kombinácie) alebo stojí (bez pohybu).

Približná rýchlosť človeka – odhadovaná rýchlosť.

Smer a trajektória pohybu – informácie o pohybe a približovaní, či vzďaľovaní sa.

Prítomnosť skupiny chodcov – áno, nie.

Zvieratá

Na ceste možno stretnúť buď domáce alebo divoké zvieratá. Najčastejšie to môžu byť psy,

mačky, diviaky, jelene a srnky, kone, kravy, ovce, vtáky apod. Systém by mal vedieť

detegovať aspoň niektoré druhy (pri väčšine zvierat sú charakteristické 4 nohy a tvar tela,

ktoré by bolo možné využiť ako apriórnu vlastnosť). Vlastnosti:

Zvieratá – zoznam detegovaných zvierat, každé z nich bude reprezentované

segmentom v obraze.

Časti zvieraťa – hlava, trup, nohy.

Budovy, stĺpy, stromy a kríky

Popri cestách sa nachádza množstvo budov, domov, či iných stavieb, ktoré sú

charakteristické svojou farbou a tvarom. Často sú popri ceste aj stĺpy, či už pre verejné

osvetlenie alebo pre trolejbusové pásy, na osadenie značiek, tabúl apod. Okrem nich sa

často vyskytujú aj stromy, kríky, krovie a iný porast.

Vlastnosti:

Budovy – zoznam zdetegovaných budov, každá bude reprezentovaná segmentom

v obraze.

Časti budovy – strecha, okná, dvere, atď.

Stĺpy – zoznam detegovaných stĺpov, každý reprezentovaný segmentom v obraze.

Oblasti stromov - zoznam detegovaných stromov, segment môže obsahovať viacero

stromov ako jedného objektu.

Voľné a vodné plochy, tunely a mosty

Vedľa ciest sa môžu nachádzať voľné plochy (lúky, polia), či vodné plochy ako sú jazerá

alebo rieky. Pre lepšie zistenie a následnú lokalizáciu sa môžu využiť mapové podklady.

71

Tieto tiež môžu poskytnúť informácie o tuneloch, mostoch a iných objektoch, ktoré sa

následne môžu lokalizovať a poskytnúť na ďalšie spracovanie.

Vlastnosti:

Oblasť voľných plôch – zoznam zložený zo segmentov tvoriaci jeden objekt

voľných plôch.

Oblasť vodných plôch – zoznam zložený zo segmentov tvoriaci jeden objekt

vodných plôch.

Prítomnosť v tuneli – áno, nie.

Prítomnosť na moste – áno, nie.

Pohybujúce sa objekty vo vzduchu

Na oblohe sa môžu nachádzať lietajúce objekty ako sú ľudsky vytvorené stroje (lietadlá,

helikoptéry) alebo zvieratá (vtáky rôznych druhov). Nakoľko môže byť predmet na oblohe

príliš vzdialený a kamera mať nedostatočné rozlíšenie, nebude jednoduché presne určiť typ

objektu.

Vlastnosti:

Lietajúce objekty – zoznam detegovaných pohybujúcich sa objektov, každý z nich

bude reprezentovaný segmentom v obraze.

Typ lietajúceho objektu – lietadlo, vrtuľník, balón, vták, skupina vtákov.

Všeobecný objekt

Ak by sme požadovali rozpoznávať neznámy objekt, ktorý sme vyššie nedefinovali, máme

niekoľko možností. Prvou možnosťou je pridať ho do kontraktu systému a nadefinovať

rozpoznávací algoritmus pre novú verziu. Toto riešenie by ale vyžadovalo aktualizáciu

softvéru systému na všetkých vozidlách, v ktorých by sme chceli vyhľadávať. Ak sa

navyše daný objekt v obraze vyskytuje len zriedka, nebolo by to ani efektívne. Preto

definujeme všeobecný objekt, ktorý bude pozostávať z modelu skladajúceho sa z množiny

šablón s popisom. Tento model potom bude priamo začlenený do dopytu, aby sa naňho

mohlo odkazovať a v dopyte používať.

Na to, aby sme mohli rozpoznávať zadefinované všeobecné objekty, máme dve možnosti:

Implementačne nezávislý – k spracovateľovi (vozidlu vykonávajúceho dopyt) sa

odošle jeden alebo viacero zdrojových obrázkov reprezentujúcich pohľady na

72

objekt. Na strane spracovateľa potom prebehne algoritmus, pomocou ktorého sa

bude detegovať (výber vhodného algoritmu je na spracovateľovi).

Implementačne závislý – k spracovateľovi sa neodošlú kompletné obrázky, ale iba

ich popisy (vytvorené napr. algoritmami ako je SIFT, MPEG-7 deskriptory, či

inými), prípadne vopred natrénovaný model nejakej učiacej sa siete (napr.

neurónová sieť, v tomto prípade by sa odoslal model siete s váhami jednotlivých

neurónov). Toto riešenie vyžaduje zhodne použité algoritmy na obidvoch stranách

(zadávateľovi i spracovateľovi).

Najjednoduchším riešením by bola prvá možnosť, pretože výber algoritmu nebude závisieť

na obidvoch stranách, ale iba na strane spracovateľa, ktorý môže implementovať

ľubovoľný algoritmus, ktorý bude univerzálny a bude dosahovať dobré výsledky. Časom aj

tak vznikajú nové algoritmy, ktoré môžu prekonávať súčasné riešenia. Na druhej strane,

toto riešenie vyžaduje prenos jedného alebo viacerých obrázkov, od ktorých veľkosti záleží

čas prenosu. Ak budú mať vhodné rozlíšenie a budú dostatočne komprimované, nemal by

to byť veľký problém.

Druhé riešenie umožňuje predpripraviť dáta na strane zadávateľa, ktoré navyše môžu mať

menšiu veľkosť, takže je možné ušetriť nielen na čase prenosu, ale hlavne na čase

spracovania (pri učiacej sa sieti by sa odoslal iba model siete; ak by sa použil SIFT

detektor a deskriptor, odpadáva nutnosť na všetkých vozidlách spustiť uvedené algoritmy

nad zdrojovými obrázkami).

Obidve riešenia majú svoje výhody i nevýhody, preto by sme odporúčali použiť spôsob

v závislosti od potreby. Ak bude potrebná rýchlosť, je možné využiť implementačne

závislé algoritmy, pričom je nutné definovať aspoň jeden. Odporúčali by sme v súčasnosti

niektoré zo state-of-the-art algoritmov, ako je napr. SIFT alebo jeden z jeho alternatívnych

vylepšení (SURF, H-SIFT, apod.), prípadne z učiacich sa sietí konvolučné neurónové siete.

Po uskutočnenej analýze navrhujeme, aby model všeobecného objektu obsahoval

nasledujúce časti:

Unikátny identifikátor modelu za účelom odkazovania sa naň v dopyte.

Vlastnosti objektu – deformovateľnosť, statickosť, atď.

Pohľady na model, ktoré budú vyjadrené buď formou množiny zdrojových

obrázkov, príznakov alebo modelom učiacej sa siete. Aby bolo možné objekt

73

rozpoznať, zdrojové obrázky by mali reprezentovať pohľady na neho z rôznych

strán (najmä ak nie je objekt symetrický) a rovnako zachytávať aj jeho rôzny

vzhľad v prípade deformovateľnosti a to najmä v takých pózach, v ktorých môže

byť najčastejšie videný.

Popísané časti modelu, z ktorých sa objekt skladá (napr. ak máme pohľad na zadnú

časť vozidla, vidíme kufor, pravé a ľavé svetlo, časť pravého a ľavého kolesa, atď.).

Časti budú definované pre každý pohľad a budú mať danú pozíciu, aby sa na ne

mohlo v dopytoch opäť odkazovať a napr. zisťovať, či sú viditeľné alebo v relácií

s inými objektmi.

Okrem toho by model mohol obsahovať nielen popis pomocou jedného spôsobu, ale aj

viacerých. Potom by bolo na spracovateľovi, ktorý zo spôsobov si vyberie. Ak napr. vie

pracovať so SIFT-om a bude definovaný v modeli, môže ho využiť. Ak bude obsahovať

lepší algoritmus detekcie, môže využiť zdrojové súbory obrázkov, pokiaľ budú v dopyte

priložené.

Formát všeobecného modelu objektu

Pre lepšiu predstavu ako popísať ľubovoľný model objektu definujeme nasledujúci model

vo vlastnom formáte, ktorý zahŕňa vyššie uvedené požiadavky:

MODEL UnikátnyNázovModeluObjektu

{

DEFORMABLE = true/false;

STATIC = true/false;

DESCBY SIFT/ANN/IMAGES/...

{

VIEW UnikátnyNázovPohľadu1

{

DATA

{

// obsah záleží od voľby DESCBY

}

PART UnikátnyNázovČasti1Pohľadu1

{

RECT/ELL/POL = súradnice;

}

PART UnikátnyNázovČasti2Pohľadu1

{

RECT/ELL/POL = súradnice;

}

... // ďalšie PART definície

}

VIEW UnikátnyNázovPohľadu2

{

74

DATA

{

// obsah záleží od voľby DESCBY

}

PART UnikátnyNázovČasti1Pohľadu2

{

RECT/ELL/POL = súradnice;

}

PART UnikátnyNázovČasti2Pohľadu2

{

RECT/ELL/POL = súradnice;

}

... // ďalšie PART definície

}

... // ďalšie VIEW definície

}

DESCBY SIFT/ANN/IMAGES/...

{

VIEW UnikátnyNázovPohľadu1

{

DATA

{

// obsah záleží od voľby DESCBY

}

PART UnikátnyNázovČasti1Pohľadu1

{

RECT/ELL/POL = súradnice;

}

... // ďalšie PART definície

}

... // ďalšie VIEW definície

}

... // ďalšie DESCBY definície

}

Tento popis obsahuje niekoľko kľúčových slov zvýraznených modrým písmom. Ako

oddeľovač položiek je použitá bodkočiarka. Ak je potrebné definovať viac položiek,

možno použiť zložené zátvorky {}. Jednotlivé položky a kľúčové slová pritom znamenajú

nasledovné:

MODEL – označujeme za ním unikátny názov modelu, na ktorý sa môžeme

v dopyte neskôr odkazovať.

DEFORMABLE – popisuje deformovateľnosť objektu (zmeny svojho vonkajšieho

vzhľadu). Môže nadobúdať dve hodnoty – true (pravda), ak má objekt, ktorý

popisujeme vlastnosť deformovateľnosti. Inak, ak nemá – false (nepravda).

STATIC – určuje, či je objekt statický, t.j. či je nehybný. Môže nadobúdať dve

hodnoty – true (pravda), ak je objekt statický a false (nepravda), ak je

dynamický, t.j. pohybujúci sa.

75

DESCBY – definuje, ako sa má popísať model, t.j. aký spôsob popisu sa má

konkrétne použiť. Definuje niekoľko základných metód, avšak bude možné použiť

aj iné, pokiaľ bude podpora na strane spracovateľa (implementácia vybraných

algoritmov ako sú rôzne učiace sa systémy, klasifikátory apod.). Samotné dáta a ich

vlastnosti sú definované vo vnútri tejto položky, konkrétne vo VIEW - DATA. Nami

navrhnuté možné hodnoty znamenajú:

o SIFT – určuje, že sa na popis a rozpoznávanie má použiť SIFT algoritmus.

o ANN – umožňuje použiť natrénovanú neurónovú sieť pre rozpoznávanie

pomocou posuvného okna.

o IMAGES – vložené celé súbory obrázkov do popisu. Je na spracovateľovi,

akú metódu spracovania obrázkov a rozpoznávania zvolí.

o Iné – je nutné sa dohodnúť na obidvoch stranách, t.j. zadávateľovi

i spracovateľovi, aké algoritmy majú použiť. Z tohto dôvodu by bolo

vhodné, aby spracovateľ exponoval zoznam svojich algoritmov spolu

s nastaveniami a zadávateľ si potom zvolil vhodný z nich, ktorý dokáže

spracovať.

VIEW – definuje pohľad na objekt, ktorý deklaruje unikátnym názvom. Ak máme

viac obrázkov reprezentujúcich rôzne pohľady alebo pozície objektu, môžeme

definovať viac položiek tohto typu. V rámci rôznych DESCBY môže byť zvolený

rovnaký názov.

DATA – samotné údaje popisov, ich hodnoty a ďalšie vlastnosti záležia od

zvoleného spôsobu popisu v nadradenej položke DESCBY:

o SIFT – bude obsahovať množinu popísaných kľúčových bodov v tvare

, kde predstavuje pozíciu kľúčového bodu v rámci

obrázka v desatinnom čísle a n-rozmerný vektor popisujúci

kľúčový bod v celočíselných hodnotách. Pre SIFT sa najčastejšie používa

n = 128. Počet m získaných a popísaných kľúčových bodov bude udávať

vnútorná vlastnosť COUNT. Ďalšie vlastnosti sú zadané v tvare poradové

číslo bodu = :

1 = x1 y1 d1,1 d1,2 ... d1,n;

2 = x2 y2 d2,1 d2,2 ... d2,n;

m = xm ym dm,1 dm,2 ... dm,n;

76

o ANN – bude obsahovať model neurónovej siete (počet neurónov na

vstupnej, výstupnej a skrytých vrstvách) s hodnotami natrénovaných váh.

Vnútorná vlastnosť TYPE bude udávať typ siete, napr. MLP pre

viacvrstvový perceptrón a CNN pre konvolučné neurónové siete. Ďalšia

vlastnosť ako je SIZE udáva veľkosť vstupných, skrytých a výstupných

neurónov. Naučené váhy siete sú potom udané vo vlastnosti NETWORK.

o IMAGES – vložené celé súbory obrázkov do popisu. Keďže obrázky môžu

byť v rôznych formátoch, definujeme vlastnosť TYPE, ktorý udáva typ

súboru (jpg, png, ppm, iné), jeho obsah bude uchovaný vo vlastnosti

CONTENT. Obsah celého obrázka bude zakódovaný napr. pomocou MIME

netextového kódovania Base64.

PART – popisuje časť obrázka pomocou útvaru, ktorému udáva jedinečný názov.

Môžeme definovať viac položiek tohto typu, pričom v každej je definovaná časť

v obraze na základe súradníc podľa jednej z troch možných vlastností:

o RECT – časť je definovaná obdĺžnikom, súradnice ktorého sú dané v tvare

štyroch hodnôt pixelov , kde prvá dvojica udáva prvý

najmenší bod a druhý najväčší bod, pričom samotné súradnice

vrcholov obdĺžnika budú mať v smere hodinových ručičiek nasledovné

hodnoty: , , a .

o ELL – časť je definovaná elipsou, súradnice sú rovnako ako pri obdĺžniku

definované štvoricou hodnôt pixelov, pričom elipsa je vpísaná do tohto

obdĺžnika.

o POL – časť je definovaná ľubovoľným tvarom pomocou polygónu

zloženého usporiadanou dvojicou v tvare , kde

n určuje počet týchto bodov.

Tento zjednodušený model nám kvázi simuluje 3D model objektu pomocou pohľadov,

nakoľko navrhované základné state-of-the-art algoritmy, ako aj ďalšie budúce by mali byť

robustné a invariantné voči posunom, rotáciám, afinným a iným transformáciám, aby sa

zabezpečilo rozpoznanie objektu v čo najväčšej miere.

Príklady modelov

Na rozpoznanie napríklad symbolu lebky s prekríženými kosťami z úvodného motivačného

príkladu musíme najskôr definovať model vyobrazenia tejto lebky. Na tento účel nám bude

77

postačovať iba jeden obrázok (obr. 49), nakoľko sa nejedná o dynamický a ani

deformovateľný objekt (nachádza sa ako nálepka na zadnej časti vozidla). Takže buď ho

celý odošleme a ponecháme jeho použitie na spracovateľovi alebo spustíme najskôr nad

ním jeden z definovaných základných algoritmov (napr. SIFT) a odošleme s dopytom

výslednú množinu popisných príznakov, prípadne deklarujeme obidva spôsoby a výber

metódy spracovania ponecháme na spracovateľovi.

Obr. 49 Symbol lebky s prekríženými kosťami

Iným netradičným príkladom by mohlo byť napr. hľadanie stratenej žirafy. Predstavme si,

že ušla zo zoo a je potrebné ju nájsť. Toto zviera je dynamickým objektom, ktorý je navyše

aj deformovateľný (môže si sadnúť, zohnúť krk k zemi a teda zmeniť svoj vzhľad). Z tohto

dôvodu definujeme niekoľko obrázkov (obr. 50), ktoré budú reprezentovať rôzne pohľady

a pózy žirafy. Každému z pohľadov priradíme anotáciu – pomenovanie, aby sme sa naň

následne v dopyte mohli odkazovať.

Obr. 50 Žirafa ako deformovateľný objekt v rôznych pozíciách a pohľadoch predstavujúcich množinu

šablón pre rozpoznávanie

78

Výsledný textový popis žirafy môžeme potom vyjadriť nasledovne (kvôli veľkosti je popis

skrátený):

MODEL Zirafa

{

DEFORMABLE = true;

STATIC = false;

DESCBY SIFT

{

VIEW SpreduLavyBok

{

DATA

{

COUNT = 2457;

1 = 650.98 484 0 1 29 17 9 2 0 0 4 15 35 34

12 5 4 4 14 8 25 34 2 2 4 23 8 8 7 8 1 0 0 4

1 17 19 18 7 4 7 0 128 140 80 77 11 0 0 1 44

57 113 140 10 0 0 7 10 127 87 45 0 0 0 7 41

32 5 1 2 0 0 4 140 90 12 9 1 0 0 39 85 24 72

140 15 0 2 20 1 125 140 46 2 4 3 2 40 13 0 0

0 0 0 2 140 10 1 0 0 1 0 66 91 4 5 13 8 0 3

49 1 4 4 3 4 6 13 5;

2 = 602.58 589.27 12 6 0 1 10 2 28 15 38 70

57 5 0 5 18 44 11 48 121 18 8 23 11 10 44 92

27 0 0 0 1 9 88 24 0 9 41 3 3 5 129 129 74 24

0 6 19 41 12 59 129 81 7 49 72 10 4 82 46 0 0

18 121 5 82 10 14 8 13 7 1 10 129 8 2 5 22 27

49 101 8 1 2 16 39 117 129 18 2 6 5 6 3 32

129 6 15 9 22 6 0 0 0 3 92 8 5 4 18 4 4 73 6

2 10 21 40 10 12 17 1 3 16 9 1 0 4 5;

... // ďalších 2455 popísaných bodov

}

PART Hlava

{

RECT = 490 396 721 657;

}

PART PravaNoha

{

RECT = 717 1495 857 2056;

}

... // ďalšie časti objekt na obrázku

}

VIEW SpreduSpravaSediPriamyPohlad

{

... // popis pohľadu

}

VIEW LavyBokKrmenie

{

... // popis pohľadu

}

... // popis iného pohľadu

}

DESCBY IMAGES

{

79

VIEW SpreduLavyBok

{

DATA

{

TYPE = jpg;

CONTENT =

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGB

QYHBwYIChAKCgkJChQODwwQFxQYGBcU

FhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2

wBDAQcHBwoIChMKChMoGhYaKCgoKCgo

KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK

CgoKCgoKCgoKCj/wAARCAjwBrADARIA

...;

}

PART Hlava

{

RECT = 490 396 721 657;

}

...

}

VIEW SpreduSpravaSediPriamyPohlad

{

... // popis pohľadu

}

VIEW ProfilPravyBok

{

... // popis pohľadu

}

VIEW LavyBokKrmenie

{

... // popis pohľadu

}

... // popis iného pohľadu

}

}

4.2.2 Nízkoúrovňové objekty

Nízkoúrovňové objekty môžu predstavovať časti na obraze, ktoré sú niečím

charakteristické. Buď sú nezávislé od konkrétnych reálnych objektov alebo predstavujú ich

vlastnosti, či časti, ktoré nemusia mať samo o sebe význam. Najčastejšie predstavujú

takéto nízkoúrovňové objekty vlastnosti ako je farba, textúra a tvar. Dobre ich popisujú

MPEG-7 deskriptory. V tejto časti práce sa stručne zameriame iba na farbu a tvar.

Farba

Človek dokáže rozpoznávať a rozlišovať veľké množstvo farieb. Ich rozpoznanie strojom

ale nie je jednoduché, pretože túto úlohu sťažuje rôzne osvetlenie, citlivosť čipu senzora

snímajúceho obraz, artefakty v obraze spôsobené kompresiou atď.

80

Pre jednoduchosť definujeme niektoré zo základných farieb, ktoré by sme požadovali

vyhľadávať, s možnosťou definície vlastnej farby:

Základné – biela, čierna, červená, zelená, modrá, žltá.

Iná – zadaná rozsahom hodnôt v určitom farebnom modeli (napr. v RGB, HSV,

CIELAB, ...).

Vlastnosti:

Oblasti – zoznam segmentov obsahujúcich požadovanú farbu.

Farba segmentu – informácia o farbe, ktorú reprezentuje segment.

Obr. 51 Obraz segmentovaný na základe červenej, modrej a žltej farby

Jedným z cieľov je teda nájsť na obraze segmenty vyššie uvedených farieb. Takúto úlohu

predstavuje obr. 51, na ktorom sa z farebného obrázka extrahovali 3 základné farby

(červená, modrá a žltá). Tieto sú reprezentované vo výsledných binárnych obrázkoch ako

biele. Súvislé skupiny bielych pixelov potom tvoria požadované segmenty, ktoré následne

môžeme ďalej spracovávať.

Tvar

Mnohé objekty majú svoj charakteristický tvar, ktorý by sme takisto požadovali na obraze

vyhľadávať. Preto definujeme útvary:

Základné – kruh, elipsa, trojuholník, štvorec, obdĺžnik.

Všeobecný mnohouholník – zadaný počtom vrcholov s možnými požadovanými a

voliteľnými parametrami:

o pravidelnosť (všetky strany a uhly vrcholov musia byť zhodné),

81

o dĺžky jednotlivých strán,

o veľkosť uhlov vo vrcholoch zvierajúcich strany.

Najmä posledným z nich, všeobecným mnohouholníkom, môžeme reprezentovať a

vyhľadať ako základné tvary (trojuholník, štvorec, obdĺžnik a iné), tak aj komplexné

útvary.

Vlastnosti:

Oblasti – zoznam detegovaných segmentov požadovaného tvaru.

Tvar segmentu – informácia o tvare, ktorú reprezentuje segment.

4.3 Systém na dopytovanie

Po identifikácií obrazových objektov si v tejto časti predstavíme princíp a návrh systému

na dopytovanie, v ktorom tieto objekty, ich vlastnosti a vzťahy s inými objektmi vyjadríme

pomocou dopytov, ktoré sa následne budú môcť spracovávať vo vozidlách.

Dopyt ako komplexná úloha

Elementárna

úloha 1

Elementárna

úloha 2. . .

Elementárna

úloha N

Obr. 52 Dopyt ako komplexná úloha zložená z postupnosti jednoduchých úloh

Na dopytovanie obrazových objektov sa môžeme pozerať ako na komplexne zloženú úlohu,

ktorú môžeme dekomponovať na jednoduchšie úlohy a tie medzi sebou prepojiť (obr. 52).

Vďaka týmto prepojeniam sa budú predávať množiny obrazových objektov v smere zľava

doprava, pričom sa tieto množiny budú spracovávať práve v elementárnych úlohách. Ak sa

dostaneme na poslednú elementárnu úlohu, záleží od jej výstupu, čo sa ďalej stane (obr.

53). Ak je jej výsledok neprázdna množina, odošle sa odpoveď v požadovanom tvare

definovanom na konci dopytu. Ak bude ale výsledok prázdna množina, záleží od definície

dopytu, či sa bude dopyt znova spracovávať alebo sa ukončí a ak sa ukončí, či sa má

odoslať odpoveď. Môže sa teda buď pokračovať v spracovávaní, t.j. začne sa znova

vykonávať elementárna úloha 1 a pokračovať v smere spracovania doprava alebo sa

spracovanie úplne ukončí. Takéto správanie sme zvolili z toho dôvodu, že je často

potrebné v obraze vyhľadávať nejaký objekt, ktorý ale nemusí byť hneď prítomný. Preto

sme zvolili takýto cyklus spracovania, až dokiaľ sa nedostane odpoveď, čo reprezentuje

82

neprázdna množina. Prázdna množina potom reprezentuje neúspešný výsledok (t.j.

nenájdenie požadovaného objektu).

ZačiatokElementárna

úloha 1Elementárna

úloha 2 ...Elementárna

úloha N

KoniecPrázdna

množina?

Pokračovať v spracovaní?

áno

Odoslať odpoveď?

áno

nieOdoslať odpoveď

nie

áno

nie

Obr. 53 Postup spracovania dopytu od jeho začiatku až po koniec

Spracovanie obrazového dopytu teda znamená vykonanie elementárnych úloh zapojených

v sekvenčne zreťazenej postupnosti. Elementárna úloha pritom predstavuje akúkoľvek

základnú operáciu nad obrazom, čo môže byť forma detekcie, lokalizácie alebo klasifikácie

objektov, relácií medzi nimi, výberom a inými základnými algoritmami spracovania

obrazu. Pre objasnenie rozdielov týchto pojmov definujeme:

Detekcia – nájdenie požadovaného základného obrazového objektu na obraze

(vysokoúrovňového alebo nízkoúrovňového), pričom na obraze sa objekt záujmu

môže, ale aj nemusí nachádzať.

Lokalizácia – nájdenie obrazového objektu v obraze, v ktorom máme znalosť o

tom, že sa v ňom objekt nachádza. Napr. ak zdetegujeme na ceste vozidlo, môžeme

v ňom vyhľadať – t.j. lokalizovať napr. koleso, o ktorom vieme, že ho vozidlo

obsahuje.

Rozpoznanie (klasifikácia) – identifikácia objektu na obraze. Ak napr. zdetegujeme

dopravnú značku trojuholníkového tvaru s červeným lemom, požadujeme zistiť,

o akú konkrétnu dopravnú značku sa jedná, t.j. rozpoznať, resp. klasifikovať triedu

z vopred známej množiny tried (napr. zo všetkých trojuholníkových značiek

majúcich červený okraj).

Relácia medzi objektmi – predstavuje vzťah, ktorý môže mať priestorový charakter,

vyjadrený blízkosťou a postavením objektov navzájom (napr. prvý objekt nad

druhým objektom, tretí objekt vpravo od štvrtého objektu, piaty objekt pod prvým

a vľavo od tretieho atď.).

83

V motivačnom príklade uvedenom v úvode tejto práce sa dá úloha nájdenia vozidla

s popísanými charakteristickými znakmi rozdeliť na samostatné úlohy, ktoré môžeme

navzájom prepojiť do postupnosti elementárnych úloh. Táto sekvencia sa potom môže

skladať z nasledujúcej postupnosti (obr. 54):

1. Detekcia vozidiel – vráti nula alebo viac objektov typu vozidlo.

2. Rozpoznanie farby vozidiel a výber všetkých červených.

3. Rozpoznanie EČV a výber všetkých takých vozidiel, ktorých EČV začína na „ZA“

a končí „AB“.

4. Rozpoznanie priloženého vzoru obrázku lebky s prekríženými kosťami.

5. Zistenie, či sa nájdený obrázok lebky nachádza vpravo od EČV.

6. Odoslanie výsledku v tvare zachyteného obrázka z kamery, aktuálnej GPS pozície

a smeru jazdy nájdeného vozidla.

ZačiatokDetekcia vozidiel

Červené vozidlá

Detekcia EČVEČV obsahuje

ZA*AB

Koniec

Prázdna množina?

Pokračovať v spracovaní?

áno

Odoslať odpoveď?

áno

nieOdoslať odpoveď

nie

áno

nie

Detekcia vyobrazenia

lebky

Obrázok lebky vpravo od EČV

Obr. 54 Príklad postupnosti spracovania úlohy hľadania vozidla s charakteristickými znakmi

V prvom kroku sa vykoná detekcia všetkých vozidiel, ktoré sa nachádzajú na obraze. Tých

môže byť nula alebo viac. Ak sa nájde aspoň jedno vozidlo, nasleduje druhý krok, ktorým

sa rozpozná farba vozidiel. Farba nášho záujmu predstavuje červenú farbu, preto sa vyberú

iba tie vozidlá, v ktorých je práve táto farba dominantná. Ak po vyfiltrovaní vozidiel

zostane aspoň jedno vozidlo vyhovujúce podmienke, nasleduje ďalší krok, ktorým je

lokalizácia evidenčného čísla vozidla. Po jeho lokalizovaní a rozpoznaní sa v jeho

textovom obsahu zistí prítomnosť znakov „ZA“ na začiatku a „AB“ na konci EČV. Ak sa

tieto znaky na uvedených miestach nachádzajú, prechádzame k ďalšiemu kroku, t.j.

zisteniu, či sa nachádza nálepka lebky s prekríženými kosťami na nejakom

z vyfiltrovaných vozidiel a ak áno, či sa nachádza vpravo od evidenčného čísla. Keďže

vzor obrázku lebky nevie systém spracovať, pozrie sa do obsahu dopytu, či tam nie je

84

priložený (všeobecný objekt). Ak tam je, systém sa ho pokúsi podľa toho rozpoznať. Ak sa

takýto objekt nájde, porovná sa jeho pozícia s pozíciou EČV a ak je s ňou v relácií vpravo,

potom sa dopyt dostal úspešne ku svojmu koncu, kde sa výsledný obrázok spolu s GPS

polohou a smerom pohybu odošle spracovateľom naspäť k zadávateľovi. Ak by sme

v poslednom kroku dostali prázdnu množinu objektov, záleží od dopytu, čo sa stane. Ak by

bol definovaný na cyklické spracovanie určitú dobu (napr. 2 minúty), bude sa v cykle celá

táto postupnosť opakovať až dokiaľ nebude posledná elementárna úloha vracať neprázdnu

množinu alebo dokiaľ sa neprekročí stanovený limitný čas.

Je nutné poznamenať, že vykonanie uvedenej postupnosti krokov záleží od zadávateľa

dopytu ako ho definuje. Preto na nájdenie požadovaného vozidla môžeme zvoliť aj inú

postupnosť, môžeme napríklad najskôr hľadať červenú farbu, následne na segmentoch

červenej farby vozidlá, v nich evidenčné číslo atď. Túto postupnosť nechávame zatiaľ na

zadávateľovi dopytu, avšak vidíme tu možnosť optimalizácie dopytov. V tejto práci sa jej

nebudeme venovať, nakoľko sa jedná o samostatne rozsiahly problém.

V nasledujúcich častiach sa podrobnejšie pozrieme na možné vstupy a výstupy systému

spolu so zložením dopytu.

4.3.1 Vstup

Vstup je definovaný zadávateľom dopytu. Je v ňom nutné určiť, čo sa má vykonať, kedy sa

má spracovanie ukončiť a čo sa má poslať ako odpoveď. Takéto informácie je možné

zapísať v nejakom definovanom formáte, napr. v XML, JSON alebo iných. Keďže budeme

pracovať vo VANET prostredí, formát by mal byť kvôli prenosu čo najkompaktnejší

a najmenší. Naším cieľom ale nebude presne stanoviť formát, v akom sa budú dáta

prenášať po sieti, ale iba formát dopytu, v akom ho budeme spracovávať (t.j. čo a aké časti

sú potrebné v dopyte). Z toho dôvodu definujeme pre jednoduchšie popísanie vstupov i

výstupov povinné a voliteľné dáta pomocou nasledujúceho nami navrhnutého zápisu:

INPUT IdentifikátorDopytu

{

// Definícia modelov – nepovinná položka

MODEL UnikátnyNázovModeluObjektu1 // voliteľné

{

... // definícia modelu

}

MODEL UnikátnyNázovModeluObjektu2 // voliteľné

{

... // definícia modelu

}

85

MODEL UnikátnyNázovModeluObjektuN // voliteľné

{

... // definícia modelu

}

// Podmienka ukončenia vykonávania – nepovinná položka

TERMCONDITION

{

... // ukončovacia podmienka

}

// Vyžadovanie odpovede – nepovinná položka

REQANSWER = true/false; // implicitne true

// Dopyt – povinná položka

QUERY

{

// definícia dopytu

}

}

Jednotlivé položky pritom znamenajú:

INPUT – definuje názov a parametre dopytu. Zvolený identifikátor sa použije aj vo

výstupe. Identifikátor je zvolený preto, aby sa odpovede viacerých dopytov mohli

rozlíšiť, v prípade že ich zadávateľ vytvoril niekoľko.

MODEL – definícia všeobecného modelu objektu na rozpoznávanie, štruktúra bola

popísaná v časti Všeobecný objekt. Definícia modelu je nepovinná, pokiaľ

nebudeme vyžadovať rozpoznávanie objektu, ktorý je neznámy a v systéme

nedefinovaný. Ak takýto jeden alebo viacero modelov budeme vyžadovať, je nutné

ich pribaliť a v definícii dopytu sa na ne odkazovať.

TERMCONDITION – ukončovacia podmienka dopytu. Je nepovinná, pokiaľ sa bude

jednať o dopyt s rýchlou odpoveďou (spracovanie iba jedného obrázka aktuálne

získaného z kamery) a nutná v prípade, že chceme cyklicky spracovávať obraz

(videosekvenciu). Zadaná podmienka potom určuje, kedy sa cyklus spracovávania

ukončí. Aby sa zabránilo nekonečnému cyklu, môže mať systém vlastnú globálnu

podmienku, ohraničenú napríklad časom (napr. povolenie vykonávania najviac

jednu hodinu). V jej tele môžeme definovať akýkoľvek logický výraz, ktorého

pravdivosť bude znamenať ukončenie cyklického spracovania. Môžeme v ňom

použiť objekty, príkazy a funkcie, ktoré sa budú používať aj v dopyte, ako si neskôr

v tejto práci popíšeme. Pre ukážku použitia podmienky uvedieme najčastejšie

možnosti:

86

o false – pomocou hodnoty false zavedieme nekonečný cyklus.

o NOT(GPS.latitude >= 49.19811 AND GPS.latitude <=

49.21477 AND GPS.longitude >= 18.74182 AND

GPS.longitude <= 18.77671) – ak sa dostane vozidlo mimo oblasť

zadanú súradnicami (latitude – zemepisná šírka, longitude – zemepisná

dĺžka), tak sa cyklické spracovanie dopytu ukončí.

o Time.QueryDuration < 1.5 – ak dĺžka vykonávania dopytu presiahne

1,5 sekúnd.

Ak nebude táto položka definovaná, implicitná hodnota bude teda true, t.j. nebude

umožnené cyklické spracovávanie.

REQANSWER – určuje, či požadujeme vždy odpoveď, aj keď bude dopyt neúspešný

(to je vtedy, ak bola vrátená prázdna množina). Možné hodnoty sú true v prípade,

že vždy požadujeme odpoveď a false, ak odpoveď potrebovať nebudeme.

Implicitne, ak sa táto položka nedefinuje, bude platiť false.

QUERY – definícia dopytu. Povinná položka, ktorá tvorí jadro a umožňuje

definovať, čo sa má na obraze spracovať a aké objekty s vlastnosťami sa majú

získať. Posledná elementárna úloha bude definovať výstup dopytu. Zloženiu dopytu

a možným operáciám sa budeme podrobnejšie venovať v nasledujúcich častiach.

4.3.2 Výstup

Výsledkom dopytu môže byť čokoľvek, čo požaduje zadávateľ, napr. vrátenie pôvodného

obrázka zachyteného kamerou alebo z neho iba výsek, na ktorom sa nachádza jeden alebo

viacero objektov záujmu, GPS súradnica, obyčajná hodnota (číslo, text, pravdivostná

hodnota) obsahujúca požadovanú informáciu (počet objektov, rozpoznaný text, EČV, atď.)

alebo aj ich kombinácie. Toto všetko, čo má spracovateľ odoslať naspäť zadávateľovi,

bude definované v poslednej elementárnej úlohe dopytu. Výsledok spracovania môže byť

vyjadrený v nasledujúcom tvare:

OUTPUT UnikátnyIdentifikátorDopytu

{

// Odpoveď dopytu – povinná položka

ANSWER

{

// ľubovoľné dáta

}

}

87

Príklad konkrétneho výstupu môže byť:

OUTPUT ČervenéVozidloSLebkou

{

ANSWER

{

OBJECT

{

TYPE = Vehicle;

...

}

IMAGE

{

TYPE = png;

CONTENT =

/9j/4RAWRXhpZgAATU0AKgAAAAgACQEPAAIAAAAGAAAAegEQAAIAAA

AGAAAAgAESAAMAAAABAAEA

AAEaAAUAAAABAAAAhgEbAAUAAAABAAAAjgEoAAMAAAABAAIAAAExAA

IAAAAIAAAAlgITAAMAAAAB

AAEAAIdpAAQAAAABAAAAngAAAXBOb2tpYQBDMi0wMQAAAAEsAAAAAQ

AAASwAAAABViAxMC41MAAA

...;

}

GPS

{

LONGITUDE = 18.761623;

LATITUDE = 49.202468;

...

}

}

}

V tejto odpovedi je vrátený objekt vozidla (OBJECT), ktorý sa požadoval vyhľadať na

základe charakteristických vlastností stanovených v dopyte, ďalej pôvodný obrázok (obsah

položky IMAGE), na ktorom sa vozidlo našlo a aktuálna GPS poloha (GPS).

4.3.3 Dopyt

V tejto časti si bližšie predstavíme dopyt, jeho zloženie, spracovanie a zoznam operácií,

ktoré v ňom môžeme realizovať.

Obrazový objekt

Základom práce s dopytmi je obrazový objekt, ktorý bude vstupom i výstupom

elementárnych úloh. Predstavuje pritom nízkoúrovňový alebo vysokoúrovňový objekt v

obraze. Aby sme ho mohli použiť v elementárnych úlohách, v tejto časti si podrobne

definujeme jeho štruktúru a konkrétne vlastnosti, ktoré by mal obsahovať.

88

Obrázok

Dáta

Obrazový objekt

Obr. 55 Obrazový objekt z globálneho pohľadu

Obrazový objekt sa z hľadiska svojho obsahu skladá z obrázka a dát. Obrázok reprezentuje

pohľad na dopravnú scénu alebo výsek reálneho, či nízkoúrovňového objektu dopravnej

scény. Dáta popisujú hlavne objekt a môžeme ich rozdeliť na nasledujúce dva typy:

špecifické dáta objektu – vlastnosti, ktoré popisujú konkrétny obsah obrázka. Pre

každý obrazový objekt budú odlišné (napr. pre nízkoúrovňový objekt segmentov to

bude farba oblastí po segmentácií, pre vozidlo zase vlastnosti ako značka výrobcu,

pohľad, typ, EČV, farba atď.).

pomocné dáta – umožňujú orientáciu v obraze a v jeho častiach. Identifikujeme

tieto základné vlastnosti, ktoré bude obsahovať každý odvodený obrazový objekt:

o Objekty – kolekcia párov typu kľúč - hodnota, ktorá umožňuje uchovávať

obrazové objekty, ktoré boli v obraze získané. Kľúčom je typ objektu (napr.

vozidlo, dopravná značka, lebka, atď.) a hodnotou množina obrazových

objektov.

o Rodičovský objekt – odkaz na rodiča, ktorým je iný obrazový objekt. Ak

nemá rodiča ako je prípad koreňového obrázka dopravnej scény, bude mať

prázdnu hodnotu.

o Pozícia oblasti – obdĺžnik výseku o absolútnych súradniciach v hlavnom

koreňovom obrazovom objekte.

Príklad uvedenej štruktúry obrazového objektu zapísaného v UML diagrame tried spolu

s ďalšími dvoma odvodenými triedami zobrazuje obr. 56. Prvé dve základné vlastnosti sú

tu zvolené z dôvodu, že je potrebné niekde uchovávať dáta a okrem toho sa po obraze

pohybovať a s dátami manipulovať. Ak sa pozrieme na ľubovoľný obrázok, nachádzajú sa

na ňom rôzne objekty, ktoré obsahujú ďalšie objekty a tie môžu obsahovať ďalšie a ďalšie.

Takže je možné vidieť, ako sú objekty vnorené v rámci hierarchie iných objektov. Z toho

dôvodu sme zvolili stromovú štruktúru, ktorá nám nielenže umožní uchovávať jednotlivé

obrazové objekty ako vrcholy stromu na jednotlivých úrovniach, ale umožní aj pohyb

a spracovanie objektov, ich vlastností, relácie a ďalšie operácie.

89

ObrazovýObjekt

+ Obrázok: Image+ Objekty: Dictionary<key, Set>+ RodičovskýObjekt: ObrazovýObjekt+ PozíciaOblasti: Rectangle

+ Obrazové operácie

ObrazovýObjektVozidlo

+ Výrobca: String+ Farba: Color+ Pohľad: enum + Typ: string

ObrazovýObjekFarebnýSegment

+ Farba: Color

Obr. 56 Obrazový objekt ako základná trieda pre iné obrazové objekty na príklade vozidla

a farebného segmentu

Na obr. 57 je znázornená stromová štruktúra obrazových objektov. Obrázok dopravnej

scény je takisto obrazový objekt, ktorý je koreňom a obsahuje ďalšie obrazové objekty

(vozidlá a dopravné značky). Dopravná scéna sa tak skladá z kolekcie obrazových

objektov, ktoré sú usporiadané v dvoch typoch kľúčov – vozidlá a dopravné značky. V nich

sa nachádzajú zoznamy konkrétnych obrazových objektov, čo sú v príklade obrázka pre

vozidlá tri inštancie vozidiel (červené, biele, modré) a v prípade dopravných značiek dve

značky zákazu predchádzania na vyskytujúcich sa rôznych pozíciách v obraze. V prvom

vozidle sa navyše zdetegovalo a rozpoznalo evidenčné číslo vozidla, na ostatných

vozidlách sa EČV nenašli z dôvodu nízkeho rozlíšenia.

Dopravná scéna

EČV

Vozidlá

Vozidlo 2(biele)

Vozidlo 1(červené)

Vozidlo 3(modré)

Zákaz predchá-

dzania

Zákaz predchá-

dzania

EČV(ZA-555?)

Dopravné značky

Obr. 57 Strom obrazových objektov (oranžové obdĺžniky predstavujú obrazové objekty,

biele obdĺžniky typy)

90

Okrem definovaných vlastností bude mať obrazový objekt veľké množstvo základných

metód, t.j. funkcií, ktoré môžu manipulovať a upravovať obrázok. Jedná sa napr. o úpravu

jasu, vyhladzovanie Gaussom, mediánom a inými, ktoré boli popísané v teoretickej časti

tejto práce. Popri nich spomenieme ešte jednu z používaných funkcií, ktorou bude Výsek.

Touto operáciou bude možné orezať z obrázka jeho časť podľa zadaných súradníc. Vďaka

tomu môžeme pracovať s malými časťami obrazu a tak napr. ušetriť výpočtový čas

namiesto spracovania na celom obrázku.

Iné objekty

Okrem obrazových objektov, ktoré sú základom práce s obrazom, môžeme v dopytoch

využiť aj iné objekty a ich vlastnosti. Môže to byť kamera a jej parametre, ktorá generuje

obrázky. Ďalej to môže byť GPS senzor poskytujúci informácie o polohe, výške, smeru

alebo iné senzory, či metainformácie o systéme, na ktorom sa dopyt vykonáva (dostupné

objekty na rozpoznanie, čas vykonávania dopytu) atď.

Operácie

V dopyte ako komplexnej úlohe zloženej z elementárnych úloh predstavujú tieto úlohy

prevažne operácie nad obrazovými objektmi a ich vlastnosťami. Ich vstupom a rovnako

aj výstupom bude preto usporiadaná množina obrazových objektov (obr. 58), v ktorej

môžeme obrazové objekty vyhľadávať, upravovať, spájať atď.

Podstatou je teda množina obrazových objektov zložená z nula alebo viac objektov, ktoré

vstupujú a rovnako aj vystupujú z operácií, ktoré si v nasledujúcej časti definujeme. Okrem

takýchto funkcií si definujeme aj iné funkcie, ktoré nebudú pracovať s obrazovými

objektmi, ale budú poskytovať iné potrebné informácie, ako napr. funkcia GPS alebo

QUERYINFO.

Obrázok

Dáta

Obrazový objekt

Obrázok

Dáta

Obrazový objekt

Obrázok

Dáta

Obrazový objekt

0..N

Operácia

Obrázok

Dáta

Obrazový objekt

Obrázok

Dáta

Obrazový objekt

Obrázok

Dáta

Obrazový objekt

1..N

Obr. 58 Princíp spracovania elementárnej úlohy operáciou so vstupmi a výstupmi

91

Popísané operácie budú v tvare:

vstupné hodnoty → funkcia (vstupné parametre) → výstupné hodnoty,

kde funkcia transformuje vstupy, ktoré predstavujú vstupné hodnoty a vstupné parametre,

na výstupné hodnoty. V nasledujúcich častiach zavádzame a definujeme nasledujúce

funkcie:

Vstupné a výstupné funkcie

o GETIMAGE – získanie obrazu z kamery

o RESULT – vrátenie výsledku dopytu

Funkcia hľadania objektov

o FINDOBJECTS – detekcia a rozpoznanie objektov

Manipulačné operácie

o WHERE – selekcia

o SELECT – výber

Množinové operácie

o UNION – zjednotenie

o INTERSECTION – prienik

o MINUS – rozdiel

Operácie s dočasnými dátami

o SAVE – uloženie množiny obrazových objektov do dočasného úložiska

o LOAD – načítanie množiny obrazových objektov z dočasného úložiska

Priestorové operácie

o RIGHTOF – vpravo od

o LEFTOF – vľavo od

o ABOVE – nad

o BELOW – pod

o IN – vo vnútri

o OUT – mimo

o NN – najbližší sused

o DISTANCE – vzdialenosť

Iné funkcie, ktoré nepracujú s obrazovými objektmi

o GPS – práca s GPS

o QUERYINFO – metainformácie o dopyte

92

Lambda kalkul

Nakoľko nosnou časťou mnohých funkcií je manipulácia buď s obrazovým objektom, jeho

vlastnosťami alebo inými objektmi, v realizácií dopytov vychádzame z objektového

lambda kalkulu zavedenom v [74] a syntaxou upravenou z časti podľa jazyka C#. Použitie

lambda výrazov nám poskytne flexibilitu a umožní jednoducho vyjadriť ľubovoľné

operácie s objektmi. V mnohých operáciách je totiž nutné spracovať množinu objektov,

preto pomocou lambda výrazu definujeme vlastnú funkciu, ktorej volanie zabezpečí

aplikovanie výrazu na každý prvok množiny.

Lambda výraz budeme zapisovať v nasledujúcom tvare:

hlavička => telo

Skladá sa z troch častí:

„hlavička“ – predstavuje zoznam vstupujúcich premenných, ktoré sa zvyknú

označovať ako lambda-premenné. V našom prípade sa bude väčšinou jednať

o obrazové objekty, preto bude najčastejšie lambda-premenná obrazový objekt.

„=>” – lambda operátor, ktorým oddeľujeme časť hlavičky od tela. V klasických

zápisoch sa najčastejšie používa bodka „.“ alebo zvislá čiara „|“. Keďže obidva

znaky budeme používať pre iné účely, zaviedli sme zložený znak skladajúci sa zo

znaku rovná sa a väčší ako, ktorým sme sa inšpirovali práve z jazyka C#.

„telo“ – v tejto časti sa bude nachádzať zápis toho, čo sa má vykonať. Výsledná

hodnota sa získa po beta-redukcii, t.j. aplikácii lambda výrazu.

Jednoduchým príkladom lambda výrazu môže byť napr.:

obloha => obloha.StavPočasia

Obloha je obrazový objekt, ktorý v hlavičke ako jeden parameter vstupuje do tela funkcie

lambda výrazu. V ňom voláme vlastnosť stav počasia, ktorý vráti hodnotu stavu počasia,

ktorá sa stane výsledkom lambda výrazu.

Iným príkladom môže byť:

ečv => ečv.Text.ZačínaNa('ZA') AND ečv.Text.Dĺžka = 5

V tomto prípade vstupuje do lambda výrazu cez premennú ečv obrazový objekt

evidenčného čísla vozidla, ktorý sa využíva v tele lambda výrazu na zistenie, či jeho

93

vlastnosť Text začína na písmená ZA a súčasne či jeho dĺžka je rovná 5 znakom.

Výsledkom lambda výrazu je preto logického hodnota vyjadrujúca pravdivosť uvedeného

výrazu.

GETIMAGE - získanie obrazu z kamery

GETIMAGE (index kamery, trvanie) → obrazové objekty

GETIMAGEObrazovéobjekty

(1..N)

index trvanie

Zachytí obraz z kamery a transformuje ho do obrazového objektu. Môže pritom zachytiť

viac obrázkov a dokonca z viacerých zdrojov kamier, preto je výsledkom tejto operácie

množina obrazových objektov o počte podľa zvolených vstupných parametrov.

Zachytený každý obrázok predstavuje dopravnú scénu a ako dáta obrazového objektu ho

tvoria dáta popisujúce pohľad kamery, z ktorej sa obrázok získal v danom čase.

Vstupné parametre (voliteľné):

index kamery – jedna alebo viacero kamier, z ktorých sa má obraz zachytiť. Bude

možné zvoliť jednu alebo niekoľko z nasledujúcich kamier (obr. 59):

o predná – čelná kamera snímajúca scénu pred vozidlom

(implicitná hodnota).

o predná vpravo – sníma scénu vpravo pred vozidlom.

o predná vľavo – sníma scénu vľavo pred vozidlom.

o vpravo – sníma scénu vpravo od vozidla.

o vľavo – sníma scénu vľavo od vozidla.

o zadná vpravo – sníma scénu vpravo za vozidlom.

o zadná vľavo – sníma scénu vľavo za vozidlom.

o zadná – sníma scénu za vozidlom.

o vrchná – kamera namierená na zenit.

o všetky – zachytí obraz zo všetkých kamier.

trvanie – čas trvania zachytávania obrazov v milisekundách. Špeciálna hodnota:

o 0 – zachytí iba jeden obrázok (implicitná hodnota).

94

Keďže sa vo vozidle môžu nachádzať viaceré kamery, navrhli sme ich rozmiestnenie ako

je znázornené na obr. 59. Samozrejme od vozidla nebudeme očakávať, že bude obsahovať

všetky kamery, preto bude podmienkou, aby vozidlo malo aspoň jednu prednú kameru

snímajúcu situáciu pred vozidlom.

Obr. 59 Možné rozmiestnenie kamier vo vozidle

RESULT – vrátenie výsledku dopytu

obrazové objekty → RESULT (výraz) → objekty

RESULTObjekty

(1..M)

Obrazovéobjekty

(1..N)

Lambda výraz

Vráti výslednú množinu objektov definovanú lambda výrazom. Transformuje vstupujúce

obrazové objekty do nových objektov zložených z iných objektov, na ktoré aplikuje

operáciu UNION a následne vráti ako výsledok celého dopytu. Táto funkcia sa môže

použiť iba na poslednom mieste v zreťazenej sekvencii dopytu. Ak sa nepoužije,

výsledkom dopytu je množina obrazových objektov z poslednej elementárnej úlohy

vrchná

predná

zadná

predná

vpravo

predná

vľavo

vpravo vľavo

zadná

vľavo

zadná

vpravo

95

dopytu. Ak pritom bude vstupom prázdna množina, bude výsledkom takisto prázdna

množina.

Vstupný parameter:

výraz – lambda výraz transformujúci obrazové objekty na objekty.

FINDOBJECTS - detekcia a rozpoznanie objektov

obrazové objekty A → FINDOBJECTS (unikátny názov objektu) → obrazové objekty B

FINDOBJECTSObrazovéobjekty B

(0..M)

Obrazovéobjekty A

(1..N)

Unikátnynázov

objektu

Deteguje alebo rozpozná požadované obrazové objekty b (vysokoúrovňový alebo

nízkoúrovňový) vo vstupnom obrazovom objekte a. Keďže vstupom môže byť množina

obrazových objektov A o veľkosti , pre každý objekt a z množiny A nájde požadované

obrazové objekty b, ktoré následne operáciou UNION zjednotí do výslednej množiny B

ako výstup. Veľkosť množiny B potom môže byť . Ak bude ale vstupom prázdna

množina, bude výsledkom takisto prázdna množina, t.j. .

Okrem toho, že vráti výslednú množinu obrazových objektov B, pre každý prvok a sa

uloží množina b do kolekcie objektov vo vnútri každého obrazového objektu a za účelom

vytvárania hierarchie stromovej štruktúry a ich možnému neskoršiemu použitiu.

Vstupný parameter:

unikátny názov objektu – jednoznačný identifikátor typu objektu, ktorý požadujeme

vyhľadať. Môže to byť jeden z objektov definovaných v časti 4.2 Obrazové

objekty. Ak sa zvolí názov, ktorý systém nepozná, pozrie sa do zoznamu modelov

všeobecných objektov priložených vo vstupnom dopyte. Ak je názov pričlenený

k modelu, použije sa na vyhľadanie obrazového objektu podľa nastavených

parametrov.

WHERE - selekcia

obrazové objekty A → WHERE (podmienka) → obrazové objekty B

96

WHEREObrazovéobjekty B

(0..M)

Obrazovéobjekty A

(1..N)

Lambda výraz

Selekcia je operácia, ktorú môžeme definovať ako výber podmnožiny B z množiny A na

základe podmienky zadanej lambda výrazom. Pomocou nej teda filtrujeme vstupné

obrazové objekty a o počte , z ktorých na výstupe dostaneme množinu obrazových

objektov o veľkosti , pričom . Ak bude ale vstupom prázdna množina,

bude výsledkom takisto prázdna množina, t.j. .

Vstupný parameter:

podmienka – akákoľvek podmienka v tvare lambda výrazu, ktorá sa aplikuje na

každý prvok a vstupnej množiny obrazových objektov A a ktorej pravdivosť

znamená zahrnutie obrazového objektu a do výslednej množiny B. Preto, ak bude

výsledkom podmienky nepravda, obrazový objekt a sa do výslednej množiny B

nedostane.

SELECT - výber

obrazové objekty A → SELECT (výraz) → obrazové objekty B

SELECTObrazovéobjekty B

(0..M)

Obrazovéobjekty A

(1..N)

Lambda výraz

Výber je operácia, pomocou ktorej vyberáme množinu obrazových objektov B z množiny

iných obrazových objektov na základe ich vlastností, pričom k nim pristupujeme pomocou

prvkov a z množiny A. To, čo sa má vyberať, definujeme v tele lambda výrazu.

Táto operácia okrem výberu bude uskutočňovať aj zjednotenie množín, pokiaľ bude

výsledkom výberu jedného prvku opäť množina. To môže nastať v prípade, ak vyberáme

v množine objektov inú množinu objektov. Keďže vstupom môže byť množina obrazových

objektov A o veľkosti a každý prvok a môže mať K ďalších objektov, výsledná

veľkosť množiny B po operácii zjednotenia môže mať veľkosť , kde ∑ .

97

Ak bude ale vstupom prázdna množina, bude výsledkom takisto prázdna množina,

t.j. .

Vstupný parameter:

výraz – lambda výraz, pomocou ktorého sa vrátia obrazové objekty, ktoré

požadujeme vybrať.

UNION - zjednotenie

obrazové objekty A → UNION (obrazové objekty B) → obrazové objekty C

UNIONObrazovéobjekty C

(0..M)

Obrazovéobjekty A

(0..N)

Obrazovéobjekty B

(0..K)

Zjednotením množín obrazových objektov A a B dostaneme takú výslednú množinu C,

ktorá obsahuje prvky patriace aspoň do jednej z množín A alebo B.

Vstupom je množina obrazových objektov A o počte a množina obrazových objektov

B o počte . Výstupom potom bude množina obrazových objektov C, ktorej veľkosť je

, kde .

Vstupný parameter:

obrazové objekty B – množina obrazových objektov, ktoré požadujeme zjednotiť

s množinou obrazových objektov A.

INTERSECTION - prienik

obrazové objekty A → INTERSECTION (obrazové objekty B) → obrazové objekty C

INTERSECTIONObrazovéobjekty C

(0..M)

Obrazovéobjekty A

(0..N)

Obrazovéobjekty B

(0..K)

Prienikom množín obrazových objektov A a B dostaneme takú výslednú množinu C, ktorá

obsahuje všetky prvky patriace súčasne do oboch množín A a B.

98

Vstupom je množina obrazových objektov A o počte a množina obrazových objektov

B o počte . Výstupom potom bude množina obrazových objektov C, ktorej veľkosť je

, kde .

Vstupný parameter:

obrazové objekty B – množina obrazových objektov, na ktoré sa aplikuje prienik

s množinou obrazových objektov A.

MINUS - rozdiel

obrazové objekty A → MINUS (obrazové objekty B) → obrazové objekty C

MINUSObrazovéobjekty C

(0..M)

Obrazovéobjekty A

(0..N)

Obrazovéobjekty B

(0..K)

Rozdielom množín obrazových objektov A a B dostaneme takú výslednú množinu C, ktorá

obsahuje tie prvky množiny A, ktoré súčasne nepatria do množiny B.

Vstupom je množina obrazových objektov A o počte a množina obrazových objektov

B o počte . Výstupom potom bude množina obrazových objektov C, ktorej veľkosť je

, kde .

Vstupný parameter:

obrazové objekty B – množina obrazových objektov, ktoré požadujeme odčítať od

množiny obrazových objektov A.

SAVE - uloženie

obrazové objekty A → SAVE (kľúč) → obrazové objekty A

SAVEObrazovéobjekty A

(0..N)

Obrazovéobjekty A

(0..N)

Kľúč

99

Uloží množinu obrazových objektov A do dočasného úložiska pod zadaným kľúčom

(úložisko je platné po celú dobu spracovania dopytu), pričom nijako nemodifikuje vstupné

dáta. Môže sa použiť na uchovanie dočasnej množiny za účelom neskoršieho spracovania

týchto dát. Ak sa použije rovnaký názov kľúča, dáta sa prepíšu.

Vstupné parametre:

kľúč – identifikátor v úložisku, pod ktorým sa uloží množina obrazových objektov.

LOAD - načítanie

LOAD (kľúč) → obrazové objekty

LOADObrazovéobjekty

(0..N)

Kľúč

Vráti množinu obrazových objektov z dočasného úložiska podľa názvu kľúča. Ak zadaný

kľúč neexistuje, vráti sa prázdna množina.

Vstupný parameter:

kľúč – identifikátor v úložisku, pod ktorým sa načíta množina obrazových objektov,

ktorá sa následne vráti.

Priestorové operácie RIGHTOF, LEFTOF, ABOVE, BELOW, IN, OUT

obrazové objekty A → PriestorováOperácia (obrazové objekty B) → obrazové objekty C

kde PriestorováOperácia

PriestorováOperácia

Obrazovéobjekty C

(0..M)

Obrazovéobjekty A

(0..N)

Obrazovéobjekty B

(0..K)

Operácia RIGHTOF vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku

je vpravo od všetkých obrazových prvkov b množiny B.

100

Operácia LEFTOF vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku

je vľavo od všetkých obrazových prvkov b množiny B.

Operácia ABOVE vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku je

nad všetkými obrazovými prvkami b množiny B.

Operácia BELOW vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku

je pod všetkými obrazovými prvkami b množiny B.

Operácia NEXTTO vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku

je vedľa všetkých obrazovými prvkami b množiny B.

Operácia IN vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku je vo

vnútri všetkých obrazových prvkov b množiny B.

Operácia OUT vyberá také prvky množiny A, ktorých pozícia na koreňovom obrázku je vo

mimo všetkých obrazových prvkov b množiny B.

Vstupom je množina obrazových objektov A o počte a množina obrazových objektov

B o počte . Výstupom potom bude množina obrazových objektov C, ktorej veľkosť je

, kde .

Vstupný parameter:

obrazové objekty B – množina obrazových objektov, ktoré ovplyvňujú výber

množiny A podľa zvolenej priestorovej operácie.

NN – najbližší sused

obrazové objekty A → NN (obrazové objekty B) → obrazové objekty C

NNObrazovéobjekty C

(0..M)

Obrazovéobjekty A

(0..N)

Obrazovéobjekty B

(0..K)

Operácia NN vyberá jeden alebo viacero prvkov množiny A, ktorých vzdialenosť medzi

všetkými prvkami a množiny A voči všetkým obrazovým prvkom b množiny B je

najmenšia.

101

Vstupom je množina obrazových objektov A o počte a množina obrazových objektov

B o počte . Výstupom potom bude množina obrazových objektov C, ktorých veľkosť

bude , kde .

Vstupný parameter:

obrazové objekty B – množina obrazových objektov, z ktorých sa má nájsť

najmenšia vzdialenosť s obrazovými objektmi množiny A.

DISTANCE – vzdialenosť

obrazové objekty A→ DISTANCE (obrazové objekty B, vzdialenosť) →obrazové objekty C

DISTANCEObrazovéobjekty C

(0..M)

Obrazovéobjekty A

(0..N)

Obrazovéobjekty B

(0..K)

Lambda výraz

Operácia DISTANCE vyberá také prvky množiny A, ktorých vzdialenosť medzi všetkými

prvkami a množiny A voči všetkým obrazovým prvkom b množiny B je zadaný lambda

výrazom.

Vstupom je množina obrazových objektov A o počte a množina obrazových objektov

B o počte . Výstupom potom bude množina obrazových objektov C, ktorých veľkosť

bude , kde .

Vstupné parametre:

obrazové objekty B – množina obrazových objektov, z ktorých sa budú hľadať

vzdialenosti.

vzdialenosť – lambda výraz, ktorý bude mať dva vstupné parametre:

o obrazový objekt a – obrazový objekt z množiny A

o vzdialenosť – vzdialenosť vypočítaná medzi objektom a množiny A

a objektom b z množiny B.

Na základe týchto dvoch parametrov možno vykonať ľubovoľné operácie, ktorých

výstupom a teda výsledkom celého lambda výrazu je pravdivostná hodnota, ktorej

pravdivosť znamená prijatie prvku a do výslednej množiny C. Môžeme tak

102

filtrovať napr. prvky, ktorých vzdialenosť je medzi ostatnými prvkami menšia ako

nejaká zadaná hodnota.

GPS - práca s GPS

GPS → GPS inštancia

GPSGPS

inštancia

Výstup je GPS inštancia, ktorá poskytne možnosť získať nasledujúce aktuálne informácie

formou vlastností:

o zemepisná dĺžka (longitude),

o zemepisná šírka (latitude),

o zemepisná výška (altitude),

o smer pohybu (heading),

o rýchlosť pohybu (speed),

o čas (time).

QUERYINFO – metainformácie o dopyte

QUERYINFO → QUERYINFO inštancia

QUERYINFOQUERY-

INFO inštancia

Výstup je QUERYINFO inštancia, ktorá poskytne možnosť získať informácie o dopyte,

čase jeho spracovania, podporované objekty na rozpoznávanie ako aj popisné metódy,

ktoré poskytuje za účelom rozpoznávania všeobecných objektov.

Zloženie dopytu a operátor |

Dopyt môžeme vyskladať pomocou definovaných operácií, ktoré budú sekvenčne

prepojené v jednom riadku. Na prepojenie jednotlivých krokov si zavedieme operátor „|“

(zvislá čiara), ktorým budeme nielenže oddeľovať jednotlivé kroky, ale aj predávať

výstupy na vstupy nasledujúcich operácií:

obrazové objekty A → | → obrazové objekty A

|Obrazovéobjekty A

(0..N)

Obrazovéobjekty A

(0..N)

103

Vstupom a výstupom sú teda tie isté obrazové objekty bez akejkoľvek modifikácie.

Výsledné zapojenie viacerých príkazov a teda operácií nad obrazom bude vyzerať

nasledovne:

operácia1 | operácia2 | ... | operáciaN

pričom posledná operácia operáciaN bude udávať celkový výstup dopytu.

4.3.4 Príklady dopytov

Na demonštráciu použitia navrhnutého jazyka pre systém sekvenčného spracovania dopytu

uvádzame niekoľko príkladov.

Obrázok dopravnej scény

Vrátenie jedného obrázka z prednej kamery predstavuje najjednoduchší dopyt, aký

môžeme vyjadriť:

GETIMAGE

Formálne táto operácia vracia obrazový objekt, ktorý zaobaľuje získaný obrázok z kamery.

Pre jednoduchosť v tejto časti budeme používať pojem obrázok ako synonymum pre

obrazový objekt.

Ak by sme požadovali obraz zo zadnej kamery, môžeme použiť:

GETIMAGE('zadná')

V týchto jednoduchých dopytoch nemusíme použiť výstupnú operáciu RESULT, ani

operátor |, pretože nepožadujeme vrátiť iné dáta ako obrázok a nepoužívame ani iné

operácie. Ak by sme však chceli vrátiť s obrázkom aj GPS pozíciu, použijeme výstupnú

operáciu RESULT:

GETIMAGE('zadná') | RESULT(obrázok => obrázok, GPS.Pozícia)

Získaný obrázok sa predá na vstup operácie RESULT, v ktorej sa definujú položky, aké

požadujeme vrátiť. Konkrétne definujeme vrátenie obrázka a GPS pozíciu.

Hľadanie vozidla

Iným príkladom je vyhľadávanie červeného vozidla. Dopyt preto môžeme postaviť tak, že

na celom obraze vyhľadáme vozidlá a pozrieme sa na ich farbu alebo si najskôr nájdeme

104

červenú farbu a na takto získaných miestach segmentov vyhľadáme vozidlá. Ukážeme si

obidva spôsoby riešenia.

V oboch prípadoch potrebujeme získať obraz z kamery a následne v ňom vyhľadať

objekty. Použijeme pritom prednú kameru. Prvý spôsob:

GETIMAGE | FINDOBJECTS('vozidlo') |

WHERE(vozidlo => vozidlo.Farba = 'červená')

Vyjadrený dopyt znamená získaj obrázok dopravnej scény z prednej kamery (GETIMAGE),

na ktorom vyhľadaj vozidla (FINDOBJECTS) a následne z množiny vozidiel vyfiltruj tie,

ktorých farba je červená (WHERE). Výstupom je teda množina výsekov červených vozidiel.

GETIMAGE

Dopravná scéna

FINDOBJECTS

Vozidlo (modré)

Vozidlo (červené)

Vozidlo (červené)

WHERE

Vozidlo (červené)

Vozidlo (červené)

Obr. 60 Postupnosť hľadania červených vozidiel na príklade zistených troch vozidiel

Ak sa na tento zápis pozrieme podrobnejšie, GETIMAGE vráti obrazový objekt

reprezentujúci obrázok dopravnej scény z kamery. Ten sa predá funkcií FINDOBJECTS,

ktorá vyhľadá v tomto obrazovom objekte všetky vozidlá a vráti ich ako množinu

obrazových objektov reprezentujúcich všetky nájdené vozidla na obraze (môže ich byť

nula alebo viac). Keďže požadujeme získať len červené vozidlá, uskutočníme následne

operáciu selekcie (WHERE), v ktorej pomocou podmienky stanovíme, že dominantná farba

vozidla má byť červená. Nakoľko vyžadujeme od operácie selekcie univerzálnosť,

105

využívame lambda výraz, ktorým zapisujeme požadovanú podmienku v tele lambda

výrazu. Selekcia nám výsledne vyfiltruje množinu vozidiel tak, že na jej výstupe zostanú

len červené vozidlá.

Ak by sa na dopravnej scéne nachádzali tri vozidlá, z ktorých by boli dve červené, môžeme

nasledovné operácie spolu s obrazovými objektmi zobraziť do diagramu, ktorý znázorňuje

obr. 60. Modrou farbou sú označené operácie, oranžovou výsledné obrazové objekty.

Druhý spôsob nájdenia červených vozidiel:

GETIMAGE | FINDOBJECTS('červený segment') |

FINDOBJECTS('vozidlo')

Opäť získame obrazový objekt dopravnej scény, ktorý odošleme funkcii na hľadanie

červených oblastí. Tá nám vráti množinu obrazových objektov obsahujúcich červené

segmenty. Keďže len v týchto oblastiach chceme vyhľadávať objekty vozidiel, ako ďalšiu

operáciu zvolíme FINDOBJECTS. Obr. 61 znázorňuje diagram postupnosti hľadania

červených vozidiel týmto spôsobom.

GETIMAGE

Dopravná scéna

FINDOBJECTS

Červený segment

2

Červený segment

3

Červený segment

1

FINDOBJECTS

Vozidlo (červené)

Vozidlo (červené)

Červený segment

N...

Obr. 61 Postupnosť hľadania červených vozidiel pomocou hľadania červených segmentov

106

Pre vyjadrenie zložitejšieho dopytu použijeme motivačný príklad z úvodu práce, t.j.

hľadanie červeného vozidla, ktoré má určité neúplné evidenčné číslo začínajúce na „ZA“

a končiace „AB”), pričom vpravo od neho sa nachádza obrázok lebky. Tento dopyt

môžeme vyjadriť nasledovným spôsobom:

GETIMAGE | FINDOBJECTS('vozidlo') |

WHERE(vozidlo => vozidlo.Farba = 'červené' AND

vozidlo.Pohlad = 'zadná strana') |

FINDOBJECTS('EČV') |

WHERE(ečv => ečv.Text.ZačínaNa('ZA') AND

ečv.Text.KončíNa('AB'))|

SELECT(ečv => ečv.RodičovskýObjekt.Výsek(

ečv.PozíciaOblasti.Zväčši(0,100,400,100))) |

FINDOBJECTS('lebka') |

RESULT(lebka => lebka.RodičovskýObjekt, GPS.Pozícia, GPS.Smer,

lebka.VráťKoreňovýObjekt)

Predpokladom je, že s dopytom bol na vstupe definovaný model lebky s názvom lebka.

V inom prípade nám bude predposledná operácia vracať prázdnu množinu, nakoľko

nebude vedieť rozpoznávať tento typ objektu, keďže nie je vstavaný v systéme.

Prvé tri operácie sú rovnaké ako v predchádzajúcom prvom spôsobe hľadania červeného

vozidla, navyše je iba v podmienke stanovený pohľad na zadnú stranu vozidla, takže sa

z množiny odstránia tie vozidlá, ktoré sú z iného pohľadu (napr. spredu, zľava alebo

sprava). Na získanej množine červených vozidiel vyhľadáme objekt evidenčného čísla

vozidla (EČV). Ak sa nám ho podarí nájsť (vozidlo nemá príliš malé rozlíšenie), selekciou

zistíme, či obsahuje zadané znaky. V tele lambda výrazu využívame vlastnosť Text,

v ktorej sa nachádza rozpoznané EČV a za pomoci metód zistíme, či sa rozpoznané EČV

začína na „ZA“ a končí na „AB“. Ak ani jedno červené vozidlo nevyhovuje tejto

podmienke, dostaneme prázdnu množinu. V inom prípade môžeme pracovať s EČV tak, že

si operáciou výberu získame nový výsek obrázka vpravo od EČV. Využívame pritom

rodičovský objekt EČV, čo predstavuje obrazový objekt vozidla, z ktorého si vysekneme

oblasť zadanú zväčšenými rozmermi EČV o zadané pixely (0 zľava, 100 zhora, 400

vpravo, 100 vľavo). Tak dostaneme oblasť, na ktorej spustíme hľadanie obrázku lebky.

Výsledok vrátime operáciou RESULT. Ak dostaneme prázdnu množinu obrázkov lebiek,

záleží od nastavení dopytu, či sa bude pokračovať vo vyhľadávaní od začiatku alebo sa

107

dopyt ukončí. Ak prázdnu množinu nedostaneme, vráti sa obrázok vozidla (rodičovský

objekt lebky), GPS pozícia a smer spolu s celým pôvodným obrázkom (koreňový objekt).

Celú postupnosť krokov zobrazuje aj obr. 62.

GETIMAGE

Dopravná scéna

FINDOBJECTS

Vozidlo 2 (modré, zadná

strana)

Vozidlo 3 (červené,

zadná

strana)

Vozidlo 1 (červené,

predná

strana)

WHERE

Vozidlo 3 (červené,

zadná

strana)

FINDOBJECTS

EČV (ZA123AB)

WHERE

EČV (ZA123AB)

SELECT

Výsek z vozidla 3

FINDOBJECTS

Lebka

RESULT

Obr. 62 Postupnosť hľadania červeného vozidla s vyobrazením lebky na príklade troch vozidiel,

z ktorých jedno zodpovedá zadanému popisu

Zistenie stavu počasia

Na zistenie stavu počasia môžeme využiť objekt obloha, ktorý obsahuje vlastnosť stavu

počasia. Využijeme buď vrchnú kameru, ak bude k dispozícií alebo prednú:

GETIMAGE('vrchná' OR 'predná') | FINDOBJECTS('obloha') |

RESULT(obloha => obloha.StavPočasia)

108

Nájdenie cien z totemu čerpacej stanice

Chceli by sme vyhľadať totem určitej čerpacej stanice a získať z neho informácie o cene

pohonných hmôt. Ak máme obrázok totemu čerpacej stanice alebo len jej logo, môžeme

postaviť dopyt na hľadaní loga cez všeobecný model podobne ako v prípade lebky.

Následne, zo získanej množiny obrázkov hľadaného loga, vyrežeme oblasti pod logom

(zväčšené o 10 pixelov sprava, zhora, zľava a 400 pixelov zdola). V týchto oblastiach

predpokladáme výskyt totemu, preto sa v nich pokúsime vyhľadať text, ktorý potom

podrobíme selekcií. V nej zistíme, či text zodpovedá zvolenému formátu desatinných čísiel

a ak áno, môžeme vrátiť obrázok výseku, z ktorého budeme môcť získať informácie o cene

pohonných hmôt danej čerpacej stanice.

GETIMAGE | FINDOBJECTS('logo') |

SELECT(logo => logo.RodičovskýObjekt.Výsek(

logo.PozíciaOblasti.Zväčši(10,10,10,400))) |

FINDOBJECTS('text') |

WHERE(text => text.ObsahujeFormát('0.000')) |

RESULT(text => text.RodičovskýObjekt)

Celá postupnosť je zobrazená aj na obr. 63 s príkladom nájdenia 2 odpovedajúcich log,

ktoré obsahujú niekoľko textov (prvé logo jeden text, druhé štyri). Výsek pod druhým

logom reprezentuje hľadaný totem čerpacej stanice.

GETIMAGE

Dopravná scéna

FINDOBJECTS

Logo 2Logo 1

SELECT

Výsek pod

logom 2

Výsek pod

logom 1

WHERE

RESULT

FINDOBJECTS

Text 1 z výseku 2

Text 1 z výseku 1

Text 2 z výseku 2

Text 3 z výseku 2

Text 4 z výseku 2

Text 1 z výseku 2

Text 3 z výseku 2

Text 4 z výseku 2

Obr. 63 Postupnosť rozpoznania totemu čerpacej stanice na základe textu obsahujúceho čísla,

príklad zobrazuje dve logá, z ktorých jedno bude zodpovedať zadanému dopytu

109

Hľadanie vozidiel blízko značky zákazu zastavenia

Na poslednom príklade sa pokúsime vyhľadať vozidlá, ktoré sú blízko dopravnej značky

zákaz zastavenia. Problémom môže byť, že sa v danej oblasti vyskytujú bilbordy

s vyobrazením áut vysoko na oblohe, preto odfiltrujeme tie vozidlá, ktoré sa nachádzajú

v oblasti oblohy a potom vyhľadáme vozidlá vľavo a najbližšie od dopravnej značky

zákazu zastavenia.

GETIMAGE | FINDOBJECTS('zvislá značka zákazu zastavenia') |

SAVE('zákazy zastavenia') |

SELECT(značka => značka.RodičovskýObjekt) |

FINDOBJECTS('obloha') |

SELECT(obloha => obloha.RodičovskýObjekt) |

FINDOBJECTS('vozidlo') |

OUT(vozidlo => vozidlo.RodičovskýObjekt.Objekty['obloha']) |

LEFTOF(vozidlo => LOAD('zákazy zastavenia')) |

NN(vozidlo => LOAD('zákazy zastavenia')) |

RESULT(vozidlo => vozidlo, GPS.Pozícia)

Pre ukážku si na začiatku uložíme množinu nájdených značiek zákazu zastavenia pomocou

operácie SAVE. Potom sa operáciou výberu (SELECT) vrátime na dopravnú scénu, v ktorej

detegujeme oblohu. Následne sa opäť vrátime na dopravnú scénu, na ktorej tentoraz

spustíme hľadanie vozidiel. Z nájdených vozidiel vyradíme tie, ktoré sa nachádzajú

v oblasti oblohy pomocou operácie OUT. V tele lambda výrazu preto pristupujeme

k oblohe, tentoraz pre ukážku pomocou zoznamu všetkých doteraz nájdených objektov na

dopravnej scéne (Objekty['obloha']). Po vykonaní operácie OUT si ešte vyfiltrujeme

vrátené vozidlá operáciou LEFTOF tak, že si ponecháme len tie, ktoré sa nachádzajú vľavo

od značiek. Z týchto vozidiel napokon vrátime len také vozidlo, ktoré je najbližšie (NN).

Ak takéto vozidlo existuje, vrátime ho vo výsledku spolu s GPS pozíciou.

Všimnime si, že takto postavený dopyt najskôr vyhľadáva dopravné značky. Ak sa žiadna

dopravná značka zákazu zastavenia nenájde, FINDOBJECTS nám vráti prázdnu množinu

a preto všetky nasledujúce operácie nebudú zbytočne vyhľadávať oblohu a ani vozidlá na

obraze.

Postupnosť príkazov a príklad tohto dopytu zobrazuje diagram na obr. 64.

110

GETIMAGE

Dopravná scéna

FINDOBJECTS

Zákaz zastavenia

SAVE

Zákaz zastavenia

SELECT

Dopravná scéna

FINDOBJECTS

Obloha

SELECT

Dopravná scéna

FINDOBJECTS

Vozidlo 2 Vozidlo 3Vozidlo 1

OUT

Vozidlo 3Vozidlo 1

LEFTOF

Vozidlo 3Vozidlo 1

NN

Vozidlo 3

RESULT

Obr. 64 Postupnosť hľadania značky zákazu zastavenia, vozidiel a oblohy pre odfiltrované vozidiel na

bilbordoch a so zistením vozidla najbližšieho ku značke zákazu zastavenia

111

5 Implementácia a overenie riešenia

Aby sme mohli overiť navrhnuté riešenie, rozhodli sme sa implementovať časť systému s

použitím platformy .NET a programovacieho jazyka C#. Jazyk C# sme si zvolili z toho

dôvodu, že od verzie jazyka 3.0 a .NET verzie 3.5 podporuje technológiu LINQ (Language

Integrated Query) a s ňou späté rozšírenia, ktoré umožňujú v jazyku vykonávať dopyty nad

kolekciami objektov (LINQ to Objects), databáz (LINQ to SQL), XML dokumentov

(LINQ to XML) a iných. Okrem uvedených umožňuje tento .NET-ový jazyk vytvoriť aj

vlastnú implementáciu dopytovacieho jazyka, čo využijeme na vytvorenie a overenie

funkčnosti nášho navrhovaného systému.

5.1 Implementácia

Na implementáciu dopytov a previazanie s technológiou LINQ je možné použiť buď

rozhranie IEnumerable alebo IQueryable.

IEnumerable je rozhranie, ktoré exponuje enumerátor, pomocou ktorého je možné

vykonávať iterácie v určitej kolekcií implementujúcej toto rozhranie. Umožní teda

prechádzať a pristupovať k prvkom kolekcie, čo sa najčastejšie využíva v cykle foreach,

ktorý toto rozhranie vyžaduje.

Podobne aj IQueryable umožňuje enumerovať a to vďaka tomu, že implementuje a teda

dedí od rozhrania IEnumerable. K nemu pridáva podporu pre spracovanie dopytov

pomocou poskytovateľov dopytov (query providers). Tí umožňujú spracovať výrazový

strom, ktorý sa vybuduje z postaveného dopytu. To sa využíva napr. v LINQ to SQL, kde

sa pomocou výrazového stromu objektový dopyt preloží do SQL výrazu, ktorý sa následne

odošle SQL serveru na vykonanie.

Okrem týchto rozhraní je možné použiť vlastné rozhrania alebo priamo triedy, nad ktorými

je možné pomocou rozširujúcich metód (extension methods) vytvoriť vlastný systém na

spracovanie. Využili sme preto túto možnosť a s pomocou rozhrania IEnumerable spolu

s rozširujúcimi metódami vyvinuli navrhnutý systém.

5.1.1 EmguCV a OpenCV

Okrem samotného .NETu sme využili ešte externú knižnica EmguCV, ktorá je určená pre

spracovanie, analýzu obrazu a počítačové videnie. Je to multiplatformová .NET knižnica,

112

ktorá zaobaľuje knižnicu OpenCV. Tá predstavuje jednu z najstarších a najpoužívanejších

knižníc počítačového videnia. Zdrojový kód je písaný v jazykoch C a C++, čo zaručuje jej

vysokú efektívnosť a multiplaformovosť. V obidvoch prípadoch sa jedná o slobodné (open

source) knižnice, pričom OpenCV je šírená pod BSD licenciou a EmguCV používa duálny

model – pre nekomerčné použitie poskytuje GPL v3 licenciu a pre komerčné riešenia

vlastnú proprietárnu licenciu. Viac informácií je možné získať v [ST3] a priamo na

stránkach týchto knižníc, z ktorých je ich možné aj stiahnuť [75] [76].

5.1.2 Systém LINQ to Images

Obr. 65 Diagram niektorých významných tried navrhnutého systému

113

Navrhli sme niekoľko tried a rozhraní, ktoré spolu s rozširujúcimi metódami a integráciou

s EmguCV a LINQ to Objects tvoria plnohodnotný systém umožňujúci tvorbu dopytov.

Našu implementáciu systému sme preto z pohľadu technológie na dopytovanie nazvali

obdobne ako LINQ to Images. Neimplementovali sme úplne všetky objekty a vlastnosti,

ktoré sme v práci popisovali, ale iba základné, na ktorých je možné poukázať a overiť

použiteľnosť riešenia. Na rozpoznávanie objektov sme použili niekoľko dostupných

i vlastných algoritmov. Z dostupných sme použili napr. detektor chodcov pomocou

histogramu orientovaných gradientov, rozpoznávanie textu pomocou tesseract-ocr,

rozpoznávanie EČV a SURF detektor a deskriptor. Z vlastných sme implementovali

vyhľadávanie farebných segmentov a rozpoznávanie slovenských dopravných značiek.

V tejto implementácií systému je niekoľko odlišností oproti návrhu. Reťazenie operácií sa

realizuje prostredníctvom operátora bodky „.“ namiesto operátora zvislá čiara „|“. Nakoľko

tiež integrujeme knižnicu EmguCV, zavádzame konverziu z obrázka na obrazový objekt.

Vďaka tomuto prepojeniu získavame široké možnosti na prácu s obrázkami.

Systém celkovo simuluje VANET prostredie, takže je možné nielen spracovávať aktuálny

obrázok získaný z kamery, ale aj z iného zdroja, aby sme ho mohli testovať. Ako sme ďalej

zistili, systém je použiteľný nielen pre VANET prostredie, pre ktorý bol pôvodne

navrhovaný, ale aj pre klasické spracovanie obrazu na rýchlu prácu a prototypovanie.

5.1.3 Vlastné algoritmy

Vyhľadávanie farebných segmentov

Na vyhľadávanie segmentov základných farieb sme využili farebný model CIELAB, do

ktorého sme previedli obrázok získaný z kamery v RGB. To nám následne uľahčilo

extrakciu požadovanej základnej farby, avšak problémom stále bolo nájdenie prahových

hodnôt. Tie sme napokon získali experimentovaním na testovacej množine obrázkov,

v dôsledku čoho dokážeme vyhľadávať oblasti základných farieb ako je červená, žltá,

modrá alebo zelená farba. Po segmentácií sme nakoniec pristúpili k hľadaniu súvislých

oblastí, vďaka ktorým sme získali výsledné segmenty.

Rozpoznávanie dopravných značiek

Rozpoznávanie dopravných značiek je úloha, ktorá sa skladá z dvoch častí – detekcie

dopravných značiek v obraze a ich následnej klasifikácii. Tomuto problému sme sa

venovali v prácach [ST1] [ST2] [ST7] [ST8] a [ST11], ktorých cieľom bolo vytvoriť

114

systém na rozpoznávanie slovenských dopravných značiek v ich čo najväčšom počte. Na

obr. 66 uvádzame postupnosť krokov vytvoreného systému.

Obr. 66 Navrhnutý postup rozpoznávania dopravných značiek

Ako základ sme využili farebnú segmentáciu, po ktorej sme v jednotlivých segmentoch

použili adaptívne prahovanie. To riešilo problém, ak boli značky splynuté s inými objektmi

podobnej farby. Po vyhľadaní segmentov sme v nich hľadali základne tvary značiek, ako je

trojuholník, štvorec, obdĺžnik alebo kruh. Tu sme algoritmus postavili na neurónovej sieti

typu MLP. Po rozpoznaní tvaru sme pristúpili k ďalšiemu kroku, ktorým bolo rozpoznanie

značky na základe vnútorného piktogramu. Základom klasifikácie boli opäť neurónové

siete, ktorých sme podľa farby a tvaru použili niekoľko. Výsledkom je zreťazená

postupnosť kaskády neurónových sietí (obr. 67), v ktorej sa kandidáti na značku postupne

zamietajú alebo prijímajú. Ak kandidát úspešne prejde celým týmto procesom až na

koniec, prehlásime ho za dopravnú značku. Výsledkom je potom pozícia a identifikátor

nájdenej dopravnej značky.

6. Klasifikácia na základe tvaru, odstránenie

"neznačiek", klasifikácia typov značiek

5. Detekcia, nájdenie kontúr, odstránenie

objektov nespĺňajúcich kritéria

4. Aplikácia morfologickej operácie

otvorenia

3. Segmentácia na základe farieb,

prahovanie

2. Predspracovanie obrázka, použitie Gaussového filtra

1. Získanie obrázka Farebný obrázok

Farebný obrázok vyhladený

Gaussovým filtrom

Binárny obrázok vyprahovaný

podľa červenej farby

Binárny upravený

obrázok červenej farby

Kandidáti červených

značiek

Rozpoznané červené

dopravné značky

Binárny obrázok vyprahovaný podľa modrej

farby

Binárny upravený

obrázok modrej farby

Kandidáti modrých značiek

Rozpoznané modré dopravné

značky

Binárny obrázok vyprahovaný

podľa žltej farby

Binárny upravený

obrázok žltej farby

Kandidáti žltých značiek

Rozpoznané žlté dopravné značky

115

Obr. 67 Kaskáda navrhnutých neurónových sietí určených na klasifikáciu

5.2 Overenie riešenia

Demonštráciu funkčnosti systému na dopytovanie si ukážeme na nasledujúcich troch

príkladoch. V prvom príklade vyhľadáme zadnú časť červeného vozidla:

var result = Camera.GetImage()

.ConvertToImageObjects()

.FindObjects(new ColorSegmentImageObject(ColorSegmentDetector.Color.Red))

.Where(io => io.Image.Width > 20 && io.Image.Height > 20)

.FindObjects<VehicleImageObject>();

Keďže využívame kameru, ktorá môže vracať obrázok alebo aj množinu obrázkov typu

Image<Bgr, byte>, čo je typ reprezentujúci farebný obrázok z knižnice EmguCV, vytvorili

sme vlastnú rozširujúcu metódu ConvertToImageObjects(), ktorá konvertuje obrázky na

obrazové objekty typu ImageObject. Týmto krokom môžeme používať ďalšie rozširujúce

116

metódy a teda systém LINQ to Images. Na treťom riadku následne voláme metódu

FindObjects, ktorej predávame objekt typu ColorSegmentImageObject pre vyhľadávanie

farebných segmentov s parametrom červenej farby, čím získame enumerovateľnú množinu

všetkých segmentov obsahujúcich červenú farbu. Niektoré segmenty môžu byť príliš malé,

preto použijeme v nasledujúcom kroku selekciu a vyfiltrujeme si iba farebné segmenty,

ktoré sú väčšie ako 20x20 pixelov. Následne pristupujeme k hľadaniu vozidiel, čím

vylúčime tie segmenty, v ktorých sa vozidlá nenachádzajú.

GETIMAGE

Dopravná scéna

WHERE

Červený segment

10

Červený segment

12

Červený segment

3

FINDOBJECTS

Vozidlo (červené)

Vozidlo (oranžové)

Červený segment

27

Červený segment

53

Červený segment

2

Červený segment

3

Červený segment

1

Červený segment

4

Červený segment

5

Červený segment

64

FINDOBJECTS

...

Obr. 68 Postupnosť krokov spracovania testovacieho obrázku dopravnej scény pomocou segmentácie

červených oblastí s následným rozpoznaním vozidiel

117

Na otestovanie dopytu sme zvolili videonahrávku z uskutočnenej jazdy vozidlom. Obr. 68

znázorňuje diagram postupnosti spracovania jednotlivých krokov na príklade jedného

obrázka z videa. Segmentáciou červenej farby sa z testovacieho obrázka získalo 64

červených segmentov, z ktorých sa následne selekciou s podmienkou rozlíšenia obrázkov

väčších než 20x20 pixelov vyfiltrovalo 5 segmentov. V týchto 5 obrázkoch sa potom

vyhľadal vzor automobilu, čo odstránilo prvé tri segmenty a zostali len dva obrázky, na

ktorých sa nachádzali vozidlá. Je tu tiež možné si všimnúť, že nájdené pravé vozidlo je

oranžové. Prahy nastavené v algoritme farebnej segmentácie sú totiž pre červenú farbu tak

citlivé, že zahŕňajú aj túto farbu. Okrem takto dopredu definovanej farby je však možné

zvoliť i vlastný farebný rozsah. Implementácia algoritmov ale nie je predmetom tejto

práce, spracovatelia preto môžu používať vlastné implementácie, od ktorých je jediná

požiadavka, aby spĺňali uvedené funkčnosti.

Druhý dopyt predstavuje hľadanie totemu čerpacej stanice, čo bude príklad na hľadanie

neznámeho objektu, ktorý nie je integrovaný v našom navrhnutom systéme. Preto si na

základe všeobecného modelu predáme obrázok vzoru loga čerpacej stanice a za pomoci

algoritmu SURF rozpoznáme jeho výskyt v obraze. Ak sa ho podarí nájsť, rozšírime oblasť

pod logom a v ňom sa pokúsime vyhľadať texty. Ak aspoň jeden bude obsahovať číselnú

hodnotu, odpoveďou bude obrázok totemu spolu s GPS pozíciou.

Ako neznámy objekt použijeme obrázok loga čerpacej stanice Shell. Uvedená postupnosť

krokov spracovania je znázornená aj formou diagramu na obr. 69.

var result = Camera.GetImage() .ConvertToImageObjects() .FindObjects(new GenericImageObject(logoShell)) .Select(logo => logo.ParentObject.Image.Copy( logo.GetInflatedRootPosition(20, 20, 20, logo.Image.Height * 2) ) .ConvertToImageObject()) .FindObjects<TextImageObject>() .Where(text => Regex.IsMatch(text.Text, @"\d")) .Result(text => new { Totem = text.ParentObject, Gps = Gps.GetPosition() });

Vyhľadá sa teda obrázok loga čerpacej stanice Shell (logoShell) na obrázku získanom

z kamery (FindObjects). Ak sa na obrázku nájde, vysekne sa z obrázku rodičovského

objektu (t.j. dopravnej scény) oblasť daná rozmermi pixelov 20 zľava, 20 zhora, 20 sprava

a zdola 2x výška nájdeného loga. Keďže pracujeme s obrázkom typu Image<Bgr, byte>,

konvertujeme nakoniec vyseknutý obrázok na obrazový objekt (ConvertToImageObject).

118

Tým sa z obrazu získajú oblasti, v ktorých môže byť totem. Preto sa v nasledujúcom kroku

vyhľadajú možné texty, z ktorých sa potom operáciou selekcie vyfiltrujú len tie, ktoré

obsahujú číslo (testujeme regulárnym výrazom). Následne sa vo výsledku vyberie

rodičovský objekt, ktorý pravdepodobne bude obrázkom totemu spolu s GPS pozíciou.

GETIMAGE

Dopravná scéna

FINDOBJECTS

Logo Shell

SELECT

Výsek pod

logom

WHERE

RESULT

FINDOBJECTS

Text z výseku(1 418)

Text z výseku(deli80)

Text z výseku(1 418)

Obr. 69 Postupnosť krokov spracovania testovacieho obrázku dopravnej scény s cieľom vyhľadania

totemu čerpacej stanice podľa šablóny loga mušle

V treťom dopyte rozpoznáme dopravnú značku priechodu pre chodcov spolu s detekciou

chodcov, pričom budeme požadovať, aby bol aspoň jeden chodec vľavo od nájdenej

značky. Dopyt môže vyzerať nasledovne:

var result = Camera.GetImage() .ConvertToImageObjects() .FindObjects(new HorizontalTrafficSignImageObject( HorizontalTrafficSignDetector.Id.PedestrianCrossing)) .Save("znacky priechodu pre chodcov") .Select(pedestrianSign => pedestrianSign.ParentObject) .FindObjects<PersonImageObject>() .LeftOf(LinqToImages.Load("znacky priechodu pre chodcov")) .Result(person => new {Osoba = person, Gps = Gps.GetPosition()});

Po získaní obrázka na ňom najskôr vyhľadáme zvislé dopravné značky priechodu pre

chodcov, ktoré si uložíme do dočasného úložiska (Save). Potom sa vrátime na rodičovský

objekt (Select), čo predstavuje dopravnú scénu, na ktorej vyhľadáme osoby (FindObjects).

119

Po nájdení osôb ich vyfiltrujeme tak, že dostaneme množinu osôb vľavo od dopravných

značiek priechodu pre chodcov (LeftOf). Značky si pritom načítame z dočasného úložiska

(LinqToImages.Load). Nakoniec vrátime osoby a GPS pozíciu (Result).

Na testovacom obrázku (obr. 70) nám po prvom vyhľadaní našlo jednu dopravnú značku a

potom chodca. Po selekcií a ďalších operáciách sa do výsledku dostala osoba chodca.

FINDOBJECTS

Priechod pre

chodcov

SAVE

Priechod pre

chodcov

SELECT

Dopravná scéna

FINDOBJECTS

GETIMAGE

Dopravná scéna

Chodec

LEFTOF

Chodec

RESULT

LOAD

Priechod pre

chodcov

Obr. 70 Postupnosť krokov spracovania testovacieho obrázka dopravnej scény s cieľom vyhľadania

dopravnej značky priechodu pre chodcov umiestnenej vpravo od chodca

5.2.1 Porovnanie s klasickou tvorbou algoritmov

Vďaka pripraveným vlastným metódam a operáciám je možné veľmi rýchlo manipulovať

s obrazom, vyhľadávať objekty a spracovávať ich vlastnosti. Pre porovnanie zápisu dopytu

s klasicky vyjadreným kódom sme prepísali prvý uvedený príklad nasledovne:

var result = new List<Image<Bgr, byte>>(); using (var capture = new Capture()) { var image = capture.QueryFrame(); Rectangle[] redSegments = ColorSegmentDetector.Detect(image, ColorSegmentDetector.Color.Red); foreach (var segment in redSegments) { if (segment.Width > 20 && segment.Height > 20) {

120

image.ROI = segment; Rectangle[] detectedVehicles = VehicleDetector.Detect(image); foreach (var vehicle in detectedVehicles) { var vehiclePositionInImage = new Rectangle( segment.Left + vehicle.Left, segment.Top + vehicle.Top, vehicle.Width, vehicle.Height); result.Add(image.Copy(vehiclePositionInImage)); } } } } return result;

Tu treba poznamenať, že používame dve vlastné triedy a ich metódy Detect(), t.j. triedy

ColorSegmentDetector a VehicleDetector. Ak by sme mali počítať aj tieto algoritmy, bol by

výsledný kód ešte zložitejší. Pre zaujímavosť uvádzame kód jednoduchšieho z nich,

metódu triedy ColorSegmentDetector:

public static Rectangle[] Detect(Image<Bgr, byte> image, Color color) { var result = new List<Rectangle>(); var thresholdedImg = new Image<Gray, byte>(image.Size); using (Image<Lab, byte> imageLab = image.Convert<Lab, byte>()) { Image<Gray, byte>[] channels = imageLab.Split(); if (color == Color.Red) CvInvoke.cvInRangeS(channels[1], new MCvScalar(RedColorTresholdMin), new MCvScalar(255 + 1), thresholdedImg); else if (color == Color.Blue) CvInvoke.cvInRangeS(channels[2], new MCvScalar(0), new MCvScalar(BlueColorTresholdMax + 1), thresholdedImg); else if (color == Color.Green) CvInvoke.cvInRangeS(channels[2], new MCvScalar(YellowColorTresholdMin), new MCvScalar(255 + 1), thresholdedImg); else throw new NotSupportedException("Not supported yet."); } thresholdedImg._Erode(1); thresholdedImg._Dilate(1); using (var storage = new MemStorage()) { Contour<Point> contour = thresholdedImg.FindContours( Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_EXTERNAL, storage); while (contour != null) { result.Add(contour.BoundingRectangle); contour = contour.HNext; } }

121

return result.ToArray(); }

Samozrejme, kód tejto metódy by sme mohli presne upraviť podľa požiadavky dopytu, t.j.

odstrániť univerzálne časti a použiť len tie, ktoré sú nevyhnutné, ako napríklad presne

špecifikovať požadovanú farbu segmentácie a ostatné nepotrebné v podmienkach vyhodiť.

Rovnako ďalej do cyklu while (contour != null) by sme mohli umiestniť kód z tela cyklu

foreach (var segment in redSegments) a tak ušetriť jeden celý prechod cyklom. Na druhej

strane by sme sa v takomto kóde zbavili univerzálnosti.

Vidíme, že takýto kód je nielen dlhší, ale aj zložitejší na úpravu. Jeho modifikovanie preto

zaberie určitý dlhší čas oproti navrhovanému riešeniu a použitiu LINQ to Images.

Aby sme poukázali na jednoduchosť nášho riešenia, prepísali sme nielen prvú úlohu, ale aj

ďalšie dve a porovnali počty riadkov spolu s počtom príkazov nevyhnutých na vykonanie

tej istej úlohy. Kvôli dĺžke zdrojových kódov už ďalšie v práci neuvádzame. Zistené údaje

zobrazuje tab. 2. Pre objasnenie, počet riadkov kódu vyjadruje početnosť všetkých riadkov

oddelených znakmi CR/LF, pričom sa počítajú aj prázdne riadky, avšak komentáre do

úvahy neberieme. Počet príkazov je počet tých výrazov, ktoré sú oddelené znakom

bodkočiarky alebo koncom zloženej zátvorky. V prípade cyklov alebo podmienok, kde

zložené zátvorky chýbajú, pripočítavame jeden príkaz. Okrem toho v tabuľke navyše

uvádzame v prípade klasického riešenia v zátvorkách celkový počet riadkov alebo

príkazov, ktoré sú platné pre kompletný kód (započítaný kód detektora farebných

segmentov, chodcov, značiek atď.).

Tab. 2 Porovnanie počtu riadkov a príkazov navrhovaného systému s klasicky písaným kódom

1. príklad 2. príklad 3. príklad

LINQ to Images

Klasické riešenie

LINQ to Images

Klasické riešenie

LINQ to Images

Klasické riešenie

Počet riadkov kódu 5 26 (71) 7 45 (162) 8 24 (318)

Počet príkazov 1 12 (39) 1 32 (95) 1 12 (192)

V prípade LINQ to Images je zápis vždy na jeden príkaz, hoci sa ale skladá z viacerých

operácií, ktoré môžeme zapísať na viacero riadkov alebo na jeden celý riadok. Pre lepšiu

prehľadnosť sme v uvedených príkladoch zapisovali každé volanie metódy na jeden

riadok. Dôležité je vyzdvihnúť kompaktnosť tohto zápisu, ktorý nielenže skracuje dĺžku

a čas písania kódu, ale vďaka malej veľkosti umožní aj rýchly prenos dopytu, preto je

122

vhodný pre použitie vo VANET prostredí. V tab. 3 uvádzame ešte dodatočné porovnanie

navrhnutého riešenia s klasickým.

Tab. 3 Porovnanie navrhovaného riešenia s klasickým riešením

LINQ to Images Klasické riešenie

Bezpečné vykonanie

áno (predpripravené funkcie a operácie neumožnia vykonávať

iné nebezpečné operácie)

skôr nie (záleží od interpretera alebo od systému, v ktorom sa

bude kód vykonávať)

Veľkosť kódu malý (umožní rýchlejší

prenos po sieti) väčšinou veľký (rozsiahly kód znamená aj dlhší čas prenosu)

Čas napísania kódu

krátky (použitie niekoľkých zreťazených príkazov, šetrí čas)

dlhší (nutnosť písať kompletný zdrojový kód)

Použitie vo VANET

áno (bezpečné vykonanie, malá veľkosť formátu, univerzálnosť,

nezávislosť na operačnom systéme)

nie (možnosť nebezpečného kódu, implementačne závislý kód)

123

6 Záver

V tejto práci sme sa venovali myšlienke spracovaniu dopytov pre získanie obrazových

objektov z obrazu v prostredí VANET. Zadávateľ dopytu, čo môže byť človek alebo stroj

v takejto sieti, vytvorí požiadavku v definovanom formáte a odošle ju pomocou V2V alebo

V2I komunikácie na vozidlá. Vozidlá ako spracovatelia dopytu túto požiadavku príjmu

a začnú spracovávať v reálnom čase podľa zadania. Základom je pritom získanie jedného

alebo viacerých obrázkov z kamery, v ktorých sa začnú vyhľadávať a spracovávať tzv.

obrazové objekty. Tie môžu reprezentovať buď reálne objekty na dopravnej scéne alebo

nízkoúrovňové objekty v podobe segmentov.

Pri navrhovaní systému a jazyka na dopytovanie obrazových objektov sme sa inšpirovali

myšlienkou SQL jazyka, štandardom MPEG-7 a teóriou lambda kalkulu, pomocou ktorého

sme navrhli výsledný jazyk na dopytovanie. Navrhnuté riešenie tak umožňuje jednoducho

spracovávať komplexné úlohy z oblasti spracovania obrazu pomocou dopytov.

Je dôležité zdôrazniť, že praktická časť navrhovaného riešenia je silne závislá na

implementácií kvalitných metód a algoritmov spracovania, analýzy obrazu a počítačového

videnia. Od nich záleží na kvalite výstupu. Akokoľvek, naše navrhované riešenie je

implementačne nezávislé. Na jeho overenie sme však použili jazyk C#, v ktorom sme

implementovali časť systému. To nám umožnilo nielen overenie funkčnosti a správnosti

riešenia, ale poskytlo systém, ktorý môžeme používať aj mimo prostredia VANET, napr.

ako doplnok ku klasickému spracovaniu obrazu.

Celkovo možno zhrnúť výhody navrhnutého dopytovacieho jazyka nasledovne:

Vhodnosť pre použitie v prostredí VANET

o bezpečné vykonanie kódu – nie sú dovolené nebezpečné operácie, iba

operácie týkajúce sa obrazu,

o malá veľkosť formátu dopytu – umožní rýchly prenos v prostredí VANET,

v ktorom je potreba minimalizovať čas komunikácie,

o implementačne nezávislý – zápis v jazyku s možnosťou nasadenia na

rôznych operačných systém, ak v ňom bude systém implementovaný.

Kompaktný a prehľadný zápis – stručný a jednoduchý zápis dopytu umožňuje

vyjadriť komplexné problémy hľadania objektov v obraze.

124

Nie je nutné písať zložitý kód, kompaktný zápis tak skracuje čas písania kódu, čo

znamená aj menej programovania.

Možnosť použitia ľuďmi alebo strojmi, ktorí nemajú základy spracovania obrazu

(stačí len vhodne definovať dopyt na základe objektového chápania).

Univerzálnosť – nemusíme zložito meniť kód, ak chceme niečo upraviť.

Znovupoužiteľnosť – po doplnení o rozpoznávanie nových objektov je možné

systém využiť v ľubovoľnej oblasti. Použitie je tak možné nielen v prostredí

VANET, ale napr. aj pre vyhľadávanie objektov v obrázkoch, či videách vo

vlastnej databáze.

Táto práca dopĺňa a nadväzuje na dizertačné práce zaoberajúce sa VANET problematikou

na našej fakulte ako napríklad komunikačným protokolom, ktorý navrhol kolega Tomáš

Bača [77] alebo prácami Jána Janecha [78], či Antona Lieskovského [79].

6.1 Vedecký prínos

Vedecký prínos spočíva hlavne v myšlienke využitia dopytov na spracovanie obrazu

v reálnom čase pre prostredie VANET. Doposiaľ sme sa totiž v skúmaní súčasného stavu

nestretli so systémom, ktorý by umožňoval rozpoznávať objekty v obraze na základe

definovanej požiadavky a to dokonca aj mimo oblasť VANET. Existujú síce riešenia na

dopytovanie obrazových informácií, avšak väčšina je postavených na vyhľadávaní vo

veľkých databázach, ktoré sú dopredu naplnené metadátami extrahovanými z obrazových

dát.

Navrhli sme preto jazyk umožňujúci vytvoriť dopyt, ktorý definuje, čo sa má na obraze

vyhľadať a ako sa má ďalej spracovávať. Dopyt reprezentuje komplexnú úlohu hľadania

obrazových objektov, ktorú je možné dekomponovať na menšie, tzv. elementárne úlohy.

Tie predstavujú navzájom prepojené operácie v sekvenčnej postupnosti, ktorými je možné

manipulovať s obrazom a jeho časťami. Samotný princíp systému a jazyk sme postavili na

objektovom základe vnímania obrazových častí ako objektov. Obrázok zachytávajúci

dopravnú scénu z vozidla obsahuje reálne objekty, ktoré sa skladajú z iných objektov,

ktoré môžu tiež obsahovať ďalšie vnorené objekty. Samotný obrázok je pritom tiež len

obrazový objekt. Podobné vnáranie tak môžu mať aj segmenty z nízkoúrovňových

objektov. Tieto vnorenia môžeme následne reprezentovať stromom obrazových objektov,

v ktorom sa môžeme v dopyte pohybovať.

125

Základom systému je vyhľadávanie známych objektov, ktoré sa môžu nachádzať na

dopravnej scéne z pohľadu pohybujúceho sa vozidla. Tieto vysokoúrovňové objekty sme

v práci identifikovali spolu s ich vlastnosťami. Systém by ich preto mal vedieť optimálne

vyhľadávať na základe existujúcich state-of-the-art algoritmov analýzy obrazu

a počítačového videnia. Keďže ale nie je možné všetky objekty zahrnúť do systému,

navrhli sme tzv. všeobecný model objektu, ktorý je postavený buď na obrázkoch alebo

predpripravených dátach, ktoré umožnia vyhľadávať ľubovoľný objekt v obraze.

Jazyk na spracovanie dopytov sme síce navrhovali pre prostredie VANET, avšak jeho

myšlienky je možné využiť aj v iných oblastiach. V rámci overenia riešenia sme

implementovali navrhnutý systém a integrovali s technológiou LINQ spolu s knižnicou na

spracovanie obrazu EmguCV. Uvedené spojenie vytvára veľmi dobrý prostriedok na prácu

s obrazom, predovšetkým na prototypovanie a rýchle spracovanie. Uvedené riešenie po

rozšírení o rozpoznávanie nových objektov umožní pracovať s obrazom ľuďom, ktorí

nemajú žiadne alebo len malé vedomosti z oblasti spracovania, analýzy obrazu

a počítačového videnia. Prináša tak možnosť rýchleho vývoja nových aplikácií

využívajúcich spracovanie obrazu bez znalosti zložitých algoritmov. Z toho dôvodu

plánujeme zverejniť implementovaný systém formou vlastnej knižnice alebo integrovať

naše riešenie priamo do EmguCV.

6.2 Použitie navrhovaného riešenia

Navrhnutý jazyk na dopytovanie a sekvenčné spracovanie bol primárne navrhovaný pre

úlohy v prostredí VANET. Ako bolo poukázané, môžu sa dopyty spracovávať aj mimo

VANET siete.

Ďalším príkladom môžu byť dnes rozširujúce sa inteligentné mobilné telefóny, tzv.

smartfóny, ktoré už nie sú len obyčajné telefónne prístroje na hlasovú komunikáciu, ale

výkonné počítače obsahujúce mnohé senzory a technológie. Vďaka mobilným aplikáciám

je ich dnes možné používať takmer na ľubovoľné účely. Jednou z nich je aj navigačná

aplikácia do vozidla schopná navigovať pomocou máp a GPS. Ak by sme vytvorili

samostatnú aplikáciu alebo zahrnuli náš systém do navigačnej aplikácie, telefón by tak

umožnil spracovanie dopytov, čo by sa mohlo využiť napr. na zber špecifických dát

z cestnej siete (napríklad dopravných značiek) [ST11]. Samozrejmosťou by bola nutnosť

povolenia takéhoto systému používateľom.

126

Príkladom je tiež aktualizácia dát z vozovky ako napr. poloha a umiestnenie dopravných

značiek. V databáze máme uložené, že sa na určitej GPS pozícií nachádza daná značka

(GPS pozícia, umiestnenie – vpravo, vľavo od cesty, na stĺpe, susedná značka, pozadie,

a iné dodatočné informácie...). Keď sa vozidlo dostane do okolia tejto polohy, mohol by

cyklicky vykonávať dopyt a keď zistí, že takú značku nenašiel alebo našiel a je zmenená,

zapíše si to do vlastnej databázy (obrázok, hodnota), pričom pri najbližšom prístupe na

internet môže odoslať aktualizované údaje na server na ďalšie spracovanie.

Inou oblasťou využitia navrhovaného systému a jazyka na dopytovanie by mohlo byť

vyučovanie spracovania obrazu pre študentov alebo používateľov – nadšencov, ktorí sa

začínajú oboznamovať s touto oblasťou. Mohli by si tak jednoducho a rýchlo vytvoriť

prototyp, vyhľadávať v obraze definované objekty a skúmať ich vlastnosti.

Ďalším príkladom sú koncoví používatelia, ktorí by mohli vyhľadávať objekty záujmu vo

svojej kolekcií digitálneho obsahu. V dnešnej digitálnej dobe narastá počet fotografií

a videa vďaka široko dostupným mobilným telefónom, lacným fotoaparátom, tabletom, či

iným počítačovým zariadeniam. Dáta tak narastajú nielen na internete, ale aj na

disku používateľa. Pre lepšiu orientáciu v ňom by bolo vhodné vyhľadávanie nad týmito

obrázkami pomocou navrhnutého systému.

6.3 Ďalšie pokračovanie výskumu

Pokračovanie tejto práce vidíme v rozšírení systému o spracovanie časopriestorových dát,

t.j. zapojenie tretieho rozmeru – času. Bude nutné navrhnúť nové operácie týkajúce sa

časových súvislostí, ktoré poslúžia napr. na sledovanie objektov.

Druhú oblasť vidíme v optimalizácií navrhnutých dopytov, aby sa identifikovali určité časti

dopytu, ktoré sa nemusia vôbec vykonať alebo sa môžu vykonať efektívnejšie.

Zaujímavou oblasťou by bolo aj rozpoznanie vozidla, s ktorým by sme chceli komunikovať

v sieti VANET. To by nám jednak umožnilo vykonávanie zložitých dopytov pomocou

čiastkových, ktoré by mohli vozidlá požadovať od okolitých vozidiel. Umožní to napríklad

zistenie takých vozidiel v okolí nášho vozidla, ktoré majú priamy výhľad na objekty

záujmu, aby sme s nimi mohli ďalej komunikovať za účelom splnenia hlavného dopytu.

127

Zoznam použitej literatúry

[1] Y. Li a E. Peytchev, „New Traffic Message Delivery Algorithm for a Novel VANET

Architecture,“ rev. ICWMC 2012 - The Eighth International Conference on Wireless

and Mobile Communications, Venice, Italy, 2012.

[2] J. E. Naranjo, J. G. Zato, L. Redondo, M. Oliva, F. Jiménez a N. Gómez, „Evaluation

of V2V and V2I mesh prototypes based on a wireless sensor network,“ rev. 14th

International IEEE Conference on Intelligent Transportation Systems (ITSC),

Washington, DC, USA, 2011.

[3] Daimler, „The first 'social network' for automobiles,“ August 2012. [Online].

Available: http://www.daimler.com/dccom/0-5-658451-1-1519410-1-0-0-0-0-0-8-

7145-0-0-0-0-0-0-0.html.

[4] H. Hartenstein a K. P. Laberteaux, VANET Vehicular Applications and Inter-

Networking Technologies, Torquay, UK: Wiley, 2010.

[5] C. 2. C. C. Consortium, „CAR 2 CAR Communication Consortium Manifesto version

1.1,“ 2007.

[6] H. T. Cheng, H. Shan a Z. Weihua, „Infotainment and road safety service support in

vehicular networking: From a communication perspective,“ Mechanical Systems and

Signal Processing, zv. 25, %1. vyd.6, pp. 2020-2038, 2011.

[7] L. Hoehmann a A. Kummert, „Car2X-communication for vision-based object

detection,“ rev. International Conference on Software, Telecommunications and

Computer Networks (SoftCOM), Split, Dubrovnik, 2010.

[8] C. Olaverri-Monreal, P. Gomes, R. Fernandes, F. Vieira a M. Ferreira, „The See-

Through System: A VANET-enabled assistant for overtaking maneuvers,“ rev. IEEE

Intelligent Vehicles Symposium (IV), San Diego, CA, 2010.

[9] M. Ferreira, H. Conceição, R. Fernandes a R. Reis, „Locating cars through a vision

enabled VANET,“ rev. IEEE Intelligent Vehicles Symposium, Xi'an, 2009.

128

[10] L. Le, A. Festag, R. Baldessari a W. Zhang, „CAR-2-X Communication in Europe,“

rev. Vehicular Networks: From Theory to Practice, Boca Raton, Chapman and

Hall/CRC, 2009, pp. 4-19.

[11] A. Jafari, S. Al-Khayatt a A. Dogman, „Performance evaluation of IEEE 802.11p for

vehicular communication networks,“ rev. 8th International Symposium on

Communication Systems, Networks & Digital Signal Processing (CSNDSP), Poznan,

2012.

[12] B. S. Gukhool a S. Cherkaoui, „IEEE 802.11p modeling in NS-2,“ rev. 33rd IEEE

Conference on Local Computer Networks, Montreal, Que, 2008.

[13] A. Westlake, „Toyota developing cars that communicate with smart roads, other

vehicles,“ The Japan Daily Press, 12 November 2012. [Online]. Available:

http://japandailypress.com/toyota-developing-cars-that-communicate-with-smart-

roads-other-vehicles-1218242.

[14] V. Vijayenthiran , „GM Participating In U.S. Car-To-Car Communication Trial,“

Motorauthority, 21 August 2012. [Online]. Available:

http://www.motorauthority.com/news/1078644_gm-participating-in-u-s-car-to-car-

communications-trial.

[15] V. Vijayenthiran, „Ford Powers Ahead With Development Of Car-To-Car

Communication Technology,“ Motorauthority, 7 August 2012. [Online]. Available:

http://www.motorauthority.com/news/1078286_ford-powers-ahead-with-

development-of-car-to-car-communication-technology.

[16] V. Hlaváč, Prednášky z predmetu AE4M33DZO - Digital Image, Praha: ČVUT v

Prahe, 2012.

[17] I. Pitas, Digital Image Processing Algorithms and Applications, New York, NY: John

Wiley & Sons, 2000.

[18] T. B. Moeslund, Introduction to Video and Image Processing: Building Real Systems

and Applications, Springer-Verlag London Limited, 2012.

129

[19] M. Šonka, V. Hlaváč a R. Boyle, Image Processing, Analysis and Machine Vision,

International Student Edition, Third Edition, Stamford, USA: Cengage Learning,

2008.

[20] J. Žára, B. Beneš, J. Sochor a P. Felkel, Moderní počítačová grafika, Brno: Computer

Press, 2010.

[21] R. C. Gonzalez a R. E. Woods, Digital Image Processing (2nd Edition), Upper Saddle

River, New Jersey: Prentice Hall, 2002 .

[22] G. Bradski a A. Kaehler, Learning OpenCV, 1st ed., M. Loukides, Ed., Sebastopol:

O'Reilly Media, 2008.

[23] S. Zhenghe, Z. Bo, Z. Zhongxiang, W. Meng a M. Enrong, „Research on Recognition

Methods for Traffic Signs,“ rev. Second International Conference on Future

Generation Communication and Networking, 2008. FGCN '08, Hainan Island, 2008.

[24] B. S. Manjunath, P. Salembier a T. Sikora, Introduction to MPEG-7 Multimedia

Content Description Interface, Chichester, UK: John Wiley & Sons, 2003.

[25] J. Schanda, Colorimetry: Understanding the CIE System, Hoboken, New Jersey: John

Wiley & Sons, 2007.

[26] M. Dobeš, Zpracování obrazu a algoritmy v C#, 1 ed., Praha: BEN - technická

literatúra, 2008.

[27] G. Otto, „Color in Computer Graphics,“ PennState - A Public Research University

Serving Pennsylvania and the Global Community, 29 August 2000. [Online].

Available:

http://viz.aset.psu.edu/gho/sem_notes/color_2d/html/primary_systems.html. [Cit. 21

March 2013].

[28] J. C. Russ, The image processing handbook, Boca Raton: Taylor & Francis Group,

2007.

[29] M. Bicchierini, A. Davalli, R. Sacchetti a S. Paganelli, „Colorimetric analysis of

silicone cosmetic prostheses for upper-limb amputees,“ Journal of Rehabilitation

130

Research & Development, zv. 42, %1. vyd.5, p. 655–664, 2005.

[30] R. Szeliski, Computer Vision: Algorithms and Applications, New York: Springer,

2011.

[31] L. Bo, K. Lai, X. Ren a D. Fox, „Object recognition with hierarchical kernel

descriptors,“ rev. IEEE Conference on Computer Vision and Pattern Recognition

(CVPR), Providence, RI, 2011.

[32] R. S. Montero a E. Bribiesca, „State of the art of compactness and circularity

measures,“ rev. International Mathematical Forum, 2009.

[33] S. Lafuente-Arroyo, P. Gil-Jimenez, R. Maldonado-Bascon, F. Lopez-Ferreras a S.

Maldonado-Bascon, „Traffic sign shape classification evaluation I: SVM using

distance to borders,“ rev. 2005. Proceedings. IEEE Intelligent Vehicles Symposium,

2005.

[34] D. Marček a M. Marček, Neurónové siete a ich aplikácie, M. Alexík, Ed., Žilina:

Žilinská univerzita v Žiline / EDIS vydaveľstvo ŽU, 2006.

[35] Y. LeCun a Y. Bengio, „Convolutional Networks for Images, Speech, and Time-

Series,“ rev. The Handbook of Brain Theory and Neural Networks, MIT Press, 1995.

[36] J. Babjak, „Neurónové siete sú čiernou skrinkou,“ 7 5 2003. [Online]. Available:

http://www.root.cz/clanky/neuronove-siete-su-ciernou-skrinkou/.

[37] M. Balla, „Neurónová sieť - obrázok,“ 6 December 2007. [Online]. Available:

http://kplab.tuke.sk/oz/Image:Image001.jpg.

[38] M. Čerňanský, Support Vector Machines, 2009.

[39] Y. Freund a R. E. Schapire, „Experiments with a New Boosting Algorithm,“ rev.

International Conference on Machine Learning (ICML), 1996.

[40] R. Laganière, OpenCV 2 Computer Vision Application Programming Cookbook,

Birmingham: Packt Publishing, 2011.

131

[41] K. Mikolajczyk a C. Schmid, „Scale & Affine Invariant Interest Point Detectors,“

International Journal of Computer Vision, zv. 60, %1. vyd.1, pp. 63-86, 2004.

[42] K. Mikolajczyk a C. Schmid, „A performance evaluation of local descriptors,“ IEEE

Transactions on Pattern Analysis and Machine Intelligence (PAMI), zv. 27, %1.

vyd.10, pp. 1615 - 1630, 2005.

[43] S. M. Smith a J. M. Brady, „SUSAN—A New Approach to Low Level Image

Processing,“ International Journal of Computer Vision, zv. 23, %1. vyd.1, pp. 45-78,

1997.

[44] J. Matas, O. Chum, M. Urban a T. Pajdla, „Robust wide baseline stereo from

maximally stable extremal regions,“ British machine vision conference, zv. 1, pp. 384-

393, 2002.

[45] D. G. Lowe, „Distinctive Image Features from Scale-Invariant Keypoints,“

International Journal of Computer Vision, zv. 60, %1. vyd.2, pp. 91-110, 2004.

[46] H. Bay, T. Tuytelaars a L. Gool, „SURF: Speeded Up Robust Features,“ Computer

Vision – ECCV 2006, 9th European Conference on Computer Vision, Graz, Austria,

zv. 3951, %1. vyd.Part I, pp. 404-417, 2006.

[47] A. E. Johnson, Spin-Images: A Representation for 3-D Surface Matching - doctoral

dissertation, Pittsburgh, Pennsylvania: Carnegie Mellon University, 1997.

[48] Z. Wang, B. Fan a F. Wu, „Local Intensity Order Pattern for Feature Description,“

rev. IEEE International Conference on Computer Vision (ICCV), Barcelona, 2011.

[49] O. Chum, J. Matas a S. Obdrzalek, „Enhancing ransac by generalized model

optimization,“ rev. Proc. of the Asian Conference on Computer Vision (ACCV), Seoul,

Korea South, 2004.

[50] O. Miksik a K. Mikolajczyk, „Evaluation of local detectors and descriptors for fast

feature matching,“ rev. 21st International Conference on Pattern Recognition (ICPR),

Tsukuba, 2012.

132

[51] J. Yang, Y.-G. Jiang, A. G. Hauptmann a C.-W. Ngo, „Evaluating bag-of-visual-

words representations in scene classification,“ rev. MIR '07 Proceedings of the

international workshop on Workshop on multimedia information retrieval, New York,

NY, USA, 2007.

[52] J. Sivic a A. Zisserman, „Video Google: a text retrieval approach to object matching

in videos,“ rev. Ninth IEEE International Conference on Computer Vision, Nice,

France, 2003.

[53] O. Chum, J. Philbin, J. Sivic, M. Isard a A. Zisserman, „Total Recall: Automatic

Query Expansion with a Generative Feature Model for Object Retrieval,“ rev. IEEE

11th International Conference on Computer Vision (ICCV), Rio de Janeiro, 2007.

[54] O. Chum, A. Mikulik, M. Perdoch a J. Matas, „Total recall II: Query expansion

revisited,“ rev. IEEE Conference on Computer Vision and Pattern Recognition

(CVPR), Providence, RI, 2011.

[55] D. Lowe, „Object recognition from local scale-invariant features,“ rev. The

Proceedings of the Seventh IEEE International Conference on Computer Vision,

Kerkyra, 1999.

[56] Y. Ke a R. Sukthankar, „PCA-SIFT: a more distinctive representation for local image

descriptors,“ rev. Proceedings of the 2004 IEEE Computer Society Conference on

Computer Vision and Pattern Recognition (CVPR), 2004.

[57] A. P. B. Lopes, S. E. F. Avila, A. N. A. Peixoto, R. S. Oliveira a A. d. A. Araújo, „A

Bag-of-Features Approach Based On Hue-SIFT Descriptor for Nude Detection,“ rev.

17th European Signal Processing Conference (EUSIPCO 2009), Glasgow, Scotland,

2009.

[58] J. M. Morel a G. Yu, „ASIFT: A new framework for fully affine invariant image

comparison,“ SIAM Journal on Imaging Sciences, zv. 2, %1. vyd.2, pp. 438-469,

2009.

[59] N. Dalal a B. Triggs, „Histograms of oriented gradients for human detection,“ rev.

IEEE Computer Society Conference on Computer Vision and Pattern Recognition

133

(CVPR), San Diego, CA, USA, 2005.

[60] MPEG, „MPEG-7 - The Moving Picture Experts Group website,“ [Online]. Available:

http://mpeg.chiariglione.org/standards/mpeg-7.

[61] M. Döller a H. Kosch, „The MPEG-7 Multimedia Database System (MPEG-7

MMDB),“ Journal of Systems and Software, zv. 81, %1. vyd.9, p. 1559–1580, 2008.

[62] M. Lux a S. A. Chatzichristofis, „Lire: lucene image retrieval: an extensible java

CBIR library,“ rev. Proceedings of the 16th ACM international conference on

Multimedia (MM '08), New York, NY, USA, 2008.

[63] L. Mathias, „Caliph & Emir: MPEG-7 photo annotation and retrieval,“ rev.

Proceedings of the 17th ACM international conference on Multimedia (MM '09), New

York, NY, USA, 2009.

[64] J. Laaksonen, M. Koskela a E. Oja, „PicSOM-self-organizing image retrieval with

MPEG-7 content descriptors,“ IEEE Transactions on Neural Networks, zv. 13, %1.

vyd.4, pp. 841 - 853, 2002.

[65] M.-S. Liu, J.-H. Li a H. Liu, „Image Retrieval Technology of Multi-MPEG-7 Features

Based on Genetic Algorithm,“ rev. International Conference on Machine Learning

and Cybernetics, Hong Kong, 2007.

[66] L. Gagnon, S. Foucher a V. Gouaillier, „ERIC7: an experimental tool for Content-

Based Image encoding and Retrieval under the MPEG-7 standard,“ rev. Proceedings

of the winter international synposium on Information and communication

technologies (WISICT '04), Dublin, 2004.

[67] M. Ba tan, H. am, U. G d kbay a O. Ulusoy, „Bilvideo-7: an MPEG-7- compatible

video indexing and retrieval system,“ IEEE MultiMedia, zv. 17, %1. vyd.3, pp. 62 -

73, 2010.

[68] Eptascape, „ADS-200 Video Content Analysis Unit,“ 2010. [Online]. Available:

http://www.eptascape.com/products/ads200.html.

134

[69] F. Temmermans, M. Döller, I. Vanhamel, B. Jansen, A. Munteanu a P. Schelkens,

„JPSearch: An answer to the lack of standardization in mobile image retrieval,“ Signal

Processing: Image Communication, zv. 28, %1. vyd.4, p. 386 – 401, 2012.

[70] M. Doller, R. Tous, M. Gruhne, K. Yoon, M. Sano a I. Burnett, „The MPEG Query

Format: Unifying Access to Multimedia Retrieval Systems,“ IEEE MultiMedia, zv.

15, %1. vyd.4, pp. 82 - 95, 2008.

[71] MVSR, „Vyhláška Ministerstva vnútra Slovenskej republiky č. 9,“ rev. Zbierka

zákonov č. 9/2009, 2009.

[72] MVSR, „Príloha č. 1 k vyhláške č. 9/2009 Z. z.,“ rev. Zbierka zákonov č. 9/2009,

2009.

[73] L. Maxwell, „History of Traffic Signs,“ rev. The human factors of transport signs,

Boca Raton, Florida, CRC Press LLC, 2004.

[74] V. Merunka, Objektové modelování, Praha: Alfa Nakladatelství, 2008.

[75] „Emgu CV: OpenCV in .NET (C#, VB, C++ and more ),“ 16 September 2012.

[Online]. Available: http://www.emgu.com/. [Cit. 20 April 2013].

[76] „OpenCV,“ 11 April 2013. [Online]. Available: http://opencv.org/. [Cit. 20 April

2013].

[77] T. Bača, Optimalizácia prenosu správ v ad hoc sieťach [dizertačná práca], Žilina:

Žilinská univerzita, Fakulta riadenia a informatiky, 2012.

[78] J. Janech, Riadenie procesov pri distribúcii databáz [dizertačná práca], Žilina: Žilinská

univerzita, Fakulta riadenia a informatiky, 2010.

[79] A. Lieskovský, Replikácia dát v ad-hoc sieťach [dizertačná práca], Žilina: Žilinská

univerzita v Žiline, Fakulta riadenia a informatiky, Katedra informatiky, 2012.

135

Zoznam vlastných publikovaných prác

[ST1] Š. Toth, „Rozpoznávanie dopravných značiek a ich použitie v mapových

aplikáciách“, GIS Ostrava 2011 [elektronický zdroj] : sborník symposia, 23.-

26.1.2011. - Ostrava: VŠB - TU, 2011. - ISBN 978-80-248-2366-9. - [15] s.

[ST2] Š. Toth, „Recognition of the European traffic signs“, TRANSCOM 2011 : 9-th

European conference of young researchers and scientific workers : Žilina, June

27-29, 2011, Slovak Republic. - Žilina: University of Žilina, 2011. - ISBN 978-

80-554-0372-4. - s. 233-236.

[ST3] Š. Toth, „Open source .NET libraries for image processing, recognition and

computer vision“, Objekty 2011 : proceedings of the 16th international

conference on object-oriented technologies : Žilina, 24.-25. november, 2011. -

Žilina: University of Žilina, Faculty of Management Science and Informatics,

2011. - ISBN 978-80-554-0452-3. - s. 165-171.

[ST4] Š. Toth, „Adaptive system for human-machine integration : (passenger monitoring

system in the vehicle) [Adaptívny systém pre integráciu človek-stroj]“, Zimná

škola MICT [elektronický zdroj] : Mathematics for information and

communication technologies : 6th winter school of mathematics for ICT :

Šachtičky 3.-8.1.2011. - Banská Bystrica: Science and Research Institute, MBU,

2011. - ISBN 978-80-557-0252-0. - s. 106-108.

[ST5] E. Kršák, M. Kvet a Š. Toth, „OBU.FRI - plugin-based application in .NET for

the on-board-unit of a vehicle“, Journal of Information, Control and Management

Systems. - ISSN 1336-1716. - Vol. 9, No. 3 Spec. iss. (2011), s. 285-290.

[ST6] E. Kršák, Š. Toth, „Proposed passenger monitoring system in the vehicle for

emergency services“, Journal of Information, Control and Management Systems. -

ISSN 1336-1716. - Vol. 9, No. 3 Spec. iss. (2011), s. 301-304.

[ST7] E. Kršák, Š. Toth, „Traffic sign recognition and localization for databases of

traffic signs“, Acta Electrotechnica et Informatica. - ISSN 1335-8243. - Vol. 11,

No. 4 (2011), s. 31-35.

136

[ST8] Š. Toth, „Difficulties of traffic sign recognition“, MICT [elektronický zdroj] -

Mathematics for information and communication technologies : proceedings of

the 7th winter school of mathematics for ICT students : Šachtičky, Slovakia,

February 6-11, 2012. - Žilina: University of Žilina, 2012. - ISBN 978-80-554-

0594-0. - [4] s.

[ST9] Š. Toth, M. Meško, „RemoteComputing: the .NET-based application for

distributed computing“, Objekty 2012 : sborník příspěvků sedmnáctého ročníku

konference : Praha, 27. listopad 2012. - ISBN 978-80-86847-63-4. - [9] s.

[ST10] M. Meško, Š. Toth, „Laser Spot Detection“, Journal of Information, Control and

Management Systems. - ISSN 1336-1716. - Vol.11, No. 1 (2013). [v tlači]

[ST11] Š. Toth, „Usage Smartphones for Traffic Sign Recognition“, ICTIC 2013 : The

2nd International Virtual Conference 2013 : Slovakia, March 25-29, 2013, Slovak

Republic. [v tlači]

[ST12] M. Meško, Š. Toth, „Teaching of Web Application Security“, ICTIC 2013 : The

2nd International Virtual Conference 2013 : Slovakia, March 25-29, 2013, Slovak

Republic. [v tlači]

[ST13] M. Meško, Š. Toth, „Basic principles of new recursive 3D reconstruction

algorithm“, TRANSCOM 2013 : 10-th European conference of young researchers

and scientific workers : Žilina, June 24-26, 2013, Slovak Republic. - Žilina:

University of Žilina, 2013. [v tlači]