ŽILINSKÁ UNIVERZITA V ŽILINE

Size: px
Start display at page:

Download "ŽILINSKÁ UNIVERZITA V ŽILINE"

Transcription

1 ŽILINSKÁ UNIVERZITA V ŽILINE FAKULTA RIADENIA A INFORMATIKY IDENTIFIKÁCIA A MONITOROVANIE MOBILNÝCH OBJEKTOV Dizertačná práca Kód: Študijný odbor: Študijný program: Pracovisko: Školiteľ: Informačné systémy Aplikovaná informatika Katedra softvérových technológií Fakulta riadenia a informatiky doc. Ing. Emil Kršák, PhD. Žilina 2014 Ing. Matej Meško

2 Poďakovanie Chcel by som predovšetkým poďakovať za cenné rady, myšlienku a ochotu mi s prácou pomôcť môjmu školiteľovi doc. Ing. Emilovi Kršákovi, PhD a celému kolektívu Katedry softvérových technológií za skvelú atmosféru a prostredie. Ďakujem svojej snúbenici a rodine za podporu počas záverečných mesiacov práce. 1

3 Abstrakt V IDS systémoch sa kladie veľký dôraz na monitorovanie situácie všetkých prvkov v sieti. Na základe týchto dát je možne sieť optimalizovať príp. predísť kritickým situáciám. Jedným zo spôsobov, ktorým sa dajú tieto dáta získať patrí aj 3D rekonštrukcia snímanej scény. Je však veľmi problematické získať takýto 3D model. Táto práca je venovaná inovatívnemu prístupu pre rozdelenie a spracovanie vstupného obrazu v procese pasívnej 3D rekonštrukcie. Tento nový prístup rozdeľuje vstupný obraz na segmenty a umožňuje tak efektívne rozložiť výpočty pre paralelné spracovanie. Segmenty sú časti vstupného obrazu, ktoré obsahujú približne rovnakú obrazovú informáciu textúru a spájajú tak korešpondenčné segmenty z viacerých vstupných oblastí. Algoritmus pre určenie segmentov ako prvé nájde jednoznačne určiteľné páry kľúčových bodov na vstupnom obraze. Následne sa ich pospájaním vytvoria trojuholníkové segmenty, v ktorých sa hľadajú ďalšie páry kľúčových bodov, ktoré vytvoria sub-segmenty a zvyšujú detail výsledného 3D modelu. Výstupom tohto algoritmu je štruktúra 3D bodov pospájaná do trojuholníkov. Kľúčové slová: 3D rekonštrukcia, pasívna 3D rekonštrukcia, spracovanie obrazu, 3D model 2

4 Abstract Great emphasis is placed on monitoring processes of all system objects in ITS. It is possible to optimize whole system on-run or make to avoid critical situations on basis of those data. One from approaches of data collection is 3D reconstruction. This work contains description of new innovative approach for application in passive 3D reconstruction. In this approach the input image is divided to segments which allow using efficient parallelism. Areas with approximately the same visual information texture are called segments and connects correspondence segment within the input images. At first the algorithm found clearly identifiable feature points pairs in input images. Next, these points are connected to triangles, which create segments. For output model detail are other feature key points pair found in each segment, they are connected to triangles too. Output of this algorithm is structure of 3d points connected in triangles. Key-words: 3D reconstruction, passive 3D reconstruction, image processing, 3D model 3

5 Obsah Poďakovanie... 1 Abstrakt... 2 Abstract... 3 Obsah... 4 Zoznam obrázkov... 7 Zoznam tabuliek Zoznam skratiek Úvod Cieľ Súčasný stav Digitálny obraz Operácie s obrázkom D rekonštrukcia Aktívna a pasívna 3D rekonštrukcia Základné pojmy 3D rekonštrukcie Rekonštrukcia 3D súradníc Kľúčové body Detekcia hrán Detekcia rohov Detekcia regiónov - BLOB Deskriptory SIFT deskriptor Priestor mierky LoG a DoG Existujúce detektory

6 3.6.1 SIFT SURF SUSAN FAST Zhrnutie detektorov Existujúce riešenia Foto-realistická 3D rekonštrukcia Triangulácia riedkej disparity Rekonštrukcia 3D modelu povrchu Riešenie Definícia problému Presnosť výsledného 3D modelu Blízko sa nachádzajúce objekty Homogénnosť textúry Základný princíp navrhnutého algoritmu Detailnejší popis algoritmu Dátová štruktúra Nájdenie prvotných bodov Určenie oblasti prekrytia Kritérium iterácie Vytvorenie sub-segmentov Zhrnutie a celková schéma algoritmu Experimenty Implementácia Manažovaný a nemanažovaný kód OpenCV a EmguCV OpenTK a OpenGL

7 5.1.4 Schéma experimentálnej aplikácie Implementácia navrhnutého algoritmu Rýchlosť algoritmu Porovnanie dosiahnutých výsledkov a zhrnutie experimentov Záver Dosiahnutie cieľov Vedecký prínos Vízia použitia Pokračovanie vo výskume Zoznam použitej literatúry Zoznam vlastných publikácií

8 Zoznam obrázkov Obrázok 1 Ohnisková vzdialenosť Obrázok 2 Odhad lokálneho maxima v medzi bodovom priestore Obrázok 3 Operácia s jedným bodom Obrázok 4 Konvolúcia [2] Obrázok 5 Vľavo skenovanie pomocou lasera, vpravo premietanie štruktúrovaného vzoru na objekt Obrázok 6 Príklad snímania scény viacerými kamerami Obrázok 7 Obrázok a jeho disparitná mapa [4] Obrázok 8 Epipolárna plocha Obrázok 9 Epipolárna geometria Obrázok 10 Ukážka rekonštrukcie bodov na šachovnici Obrázok 11 Spájanie obrazov do panorámy [10] Obrázok 12 Intenzita ako funkcia a jej derivácie Obrázok 13 Vertikálny prierez obrázka a frekvenčná charakteristika rezu [12] Obrázok 14 Vľavo sú základné štyri druhy hrán, vpravo ich reálne prevedenie, ktoré nie je možné pre zašumenie jednoznačne určiť [15] Obrázok 15 Rozdiel medzi ideálnym vzorkovaním a reálnym [16] Obrázok 16 Obrázok (vľavo) a jeho hranová mapa (vpravo) Obrázok 17 Detekcia hrany a rohu Obrázok 18 Adaptívne lokálne prahovanie - medián [18] Obrázok 19 Detekcia regiónov Obrázok 20 Príklad smerovania gradientu Obrázok 21 Gaussianske rozdelenie Obrázok 22 Aplikácia Gaussianskeho filtru Obrázok 23 Zadelenie gradientov do kontajnerov Obrázok 24 Sieť gradientov Obrázok 25 Normálny a rozmazaný obrázok Obrázok 26 Priestor mierky Obrázok 27 Multi-mierkový priestor Obrázok 28 Nultý prechod Obrázok 29 Derivácie Gaussiana [29]

9 Obrázok 30 LoD filter: vľavo originálny obrázok, vpravo obrázky s rôznym stupňom rozmazania Obrázok 31 DoG [33] Obrázok 32 SIFT pyramída [28] Obrázok 33 Hľadanie maxima a mimima medzi susedmi [28] Obrázok 34 SIFT - Hľadanie rovnakých bodov na otočenom obrázku Obrázok 35 Vľavo Každá dvojica predstavuje gaussov filter a jeho aproximáciu. Šedé oblasti sa rovnajú nule. [34] Obrázok 36 SURF - Výpočet Haarových vlniek pre jeden sub-segment [35] Obrázok 37 SURF Výpočet hlavných vektorov [35] Obrázok 38 SUSAN hľadanie rohových bodov Obrázok 39 FAST: zobrazenie kľúčového bodu (vľavo) a kruhu o veľkosti 16 bodov (vpravo) [37] Obrázok 40 Výsledy 3D model algoritmu od Se a Jasiobedzki [40] Obrázok 41 Postup spracovania obrazu Obrázok 42 Zjednodušená schéma 3D rekonštrukcie Obrázok 43 Schéma 3D rekonštrukcie Obrázok 44 Kartónova krabica Obrázok 45 Ukážka polygonálnej disparity. Čím je bod bližšie ku kamere, tým je jeho farba svetlejšia Obrázok 46 Príklad 3D rekonštrukcie Obrázok 47 Vzdialenosť a objekty Obrázok 48 Možnosti premietnutia blízkeho objektu Obrázok 49 Adaptívne okolie pri vytváraní deskriptora Obrázok 50 Ukážka Delaunayovej triangulácie Obrázok 51 Plocha prekrytia obrazu kamier je zobrazená v zelenom ráme Obrázok 52 Schéma navrhnutého algoritmu Obrázok 53 Prenos štruktúry segmentov. Modro vyfarbený trojuholník predstavuje segmentové páry (vľavo a v strede) a jeho 3D prezentáciu (vpravo) Obrázok 54 Prvotné nájdenie bodov. Vľavo - málo bodov, vpravo - veľa bodov Obrázok 55 Nepopárované kľúčové body (červené body) nájdené detektorom SIFT Obrázok 56 Krátka frekvencia v obraze Obrázok 57 Vyhladenie frekvencií Obrázok 58 Príklad DoG

10 Obrázok 59 Nájdenie lokálnych extrémov Obrázok 60 Nájdenie medzi-bodovej pozície. Na odhadnutie polohy (zelena značka)slúžia hodnoty existujúcich obrazových bodov (červené značky) [45] Obrázok 61 Nájdené páry prepojuje vizuálne žltá čiara. Páry vznikli odfiltrovaním nájdených kľúčových bodov z obrázka - Obrázok Obrázok 62 Vykreslenie párov prvotných bodov Obrázok 63 Obkolesenie prvotných bodov Obrázok 64 Výpočet hraníc prekrytia pre osu X Obrázok 65 Zobrazenie vynechaných segmentov, kvôli svojmu obsahu Obrázok 66 Oblasť segmentu, ktorú spracuje detektor Obrázok 67 Vytrácanie krátkych frekvencií rozmazávaním Obrázok 68 Ukážka iterácií. Červeno je vyznačený výsledok prvotne hľadaných bodov. Na zeleno je vyznačený výsledok prvej iterácie. Pre lepšiu prehľadnosť bol pridaný iba jeden bod z iterácie Obrázok 69 Schéma navrhnutého algoritmu Obrázok 70 Schéma aplikácie Obrázok 71 Schéma experimentálneho algoritmu Obrázok 72 Grafy ukazujúce chovanie detektora pri zmenšujúcom sa vstupe Obrázok 73 Jemnosť výstupu 3D rekonštrukcie na základe výstupu detektora prvého stupňa v závislosti na parametre Obrázok 74 Chybné spárovanie kľúčových bodov Obrázok 75 Schéma iterácie Obrázok 76 Výsledok 3D rekonštrukcie výstupu detektora prvého stupňa. S textúrou (vľavo) a disparitná mapa (vpravo) Obrázok 77 Body nájdené v sub-segmente. Červené šípky ukazujú body nájdené v tesnej blízkosti hranice segmentu Obrázok 78 Zobrazenie pôvodnej masky a jej následne zmenšenie Obrázok 79 Ukážka zobrazenia segmentov po zapnutí iterácií. Ako detektor druhého stupňa je použitý SURF. Vysvetlenie farieb: Prvotné body červená, iterácie: 1 stupeň zelená, 2 stupeň - modrá, 3 stupeň fialová, 4 stupeň hnedá, 5 stupeň - zlatá Obrázok 80 Výsledný 3D model, vľavo znovu triangulovaný výstup, vpravo priamy výstup z algoritmu. Obrázky nezobrazujú tú istú sieť bodov. Slúžia iba pre ilustráciu Obrázok 81 Chyba detektora. Červené šípky označujú chybne nájdené páry bodov Obrázok 82 SIFT výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch iteráciach

11 Obrázok 83 SURF výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch iteráciach Obrázok 84 FAST výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch Obrázok 85 STAR výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch Obrázok 86 ORB výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch

12 Zoznam tabuliek Tabuľka 1 Zhrnutie detektorov Tabuľka 2 Zhodnotenie výsledkov detektorov pre detektor druhého stupňa

13 Zoznam skratiek CLR Common Language Runtime, 78 CPU Central processing unit, 106 DNA Deoxyribonukleová kyselina, 13 DoG Difference Of Gaussian, 41, 42, 43, 44, 48, 66, 67, 68, 69, 74, 106 FAST Features from accelerated segment test, 48, 49 GDI Graphics Device Interface, 81 GLOH Gradient location-orientation histogram, 35 GPU Graphic Processing Unit, 81 IDS Inteligentný dopravný systém, 13 IL Intermediate Language, 78 LoG Laplacian Of Gaussian, 41 MSIL Microsoft Intermediate Language, 78 OCR Optical Character Recognition, 35 RGB Red Green Blue, 82 SIFT Scale-invariant feature transform, 35, 43, 44, 45, 46, 49, 50, 59, 66, 67, 69, 84, 93 SURF Speeded Up Robust Features, 35, 45, 46, 47, 49 SUSAN Smallest Univalue Segment Assimilating Nucleus, 48, 49 USAN Univalue Segment Assimilating Nucleus, 47 VANET Vehicular ad hoc network,

14 1 Úvod Veľkú súčasť našich životov tvoria inteligentné dopravné systémy (ďalej len ako IDS). Väčšina ľudí si ani neuvedomuje ako značne sú tieto systémy integrované a prepletené s ich životom. Obyčajná preprava napr. električkou do a z práce vyžaduje obrovskú kooperáciu a kalkuláciu s veľa faktormi. Tieto faktory spracováva dispečing - centrum, kde sa stretávajú informácie z rôznych častí celej dopravnej siete, pomocou ktorých sa vykonávajú rozhodnutia. Hlavným faktorom v každom IDS je práve bezpečnosť. Bezpečnosť vyžaduje monitorovanie všetkých dôležitých objektov (vozidiel, tovaru a hlavne ľudí) nielen počas prepravy, ale aj vo verejných priestranstvách a budovách. Tu sa môže jednať o sledovanie nadrozmerného a nebezpečného nákladu, navigáciu záchranných zložiek alebo monitorovanie osôb v hromadných dopravných systémoch. Zariadenia, ktoré zbierajú informácie a dáta pre podporu rozhodnutí sú obyčajné senzory, napr. tepelné, tlakové, gyroskopické, ale patria sem aj vizuálne kamery a v neposlednom rade aj ľudský faktor. Práve ľudský faktor je postupne vytláčaný technikou, ktorá dokáže v súčasnosti efektívnejšie rozhodovať v čoraz viac dôležitých otázkach. Monitorovanie sa však netýka iba pozorovania jednotlivých uzlov siete IDS, ale aj bezpečnosť uzlov samotných. Pri tomto pohľade uzol siete sám vyhodnocuje stav svojho okolia (lokálnej siete) a snaží sa predísť- rozpoznať kritické situácie. Jedným zo spôsobov možného snímania prostredia, sa v súčasnosti, zaraďuje aj využitie 3D modelu okolia. Autonómne vozidlo/robot si takto môže vytvoriť mapu okolia, čo mu umožní určiť optimálnu trasu pre presun z bodu A do bodu B, pričom môže výpočet brať v úvahu prekážky, stúpanie a klesanie terénu. Priestorový model taktiež pridáva na robustnosti pri klasifikácií a rozpoznávaní rôznych objektov, pričom je možné do určitej miery odhadnúť parametre ako je vzdialenosť, veľkosť, smer rozpoznaných objektov. Využitie 3D modelu je však komplexnejšie. Čoraz častejšie sa využíva v biometrii pre identifikáciu a verifikáciu osôb. Využívajú sa tu jedinečné a unikátne fyziologické črty (odtlačok prsta, DNA, sken dúhovky, tvár, podpis,...), ktoré má každý človek jedinečné a je ťažké ich sfalšovať. Medzi takéto črty, ktoré sa dajú z 3D modelu získať patrí chôdza, postava alebo tvár (a aj ich kombinácia). 13

15 Proces, ktorý vytvára z obrazového signálu 3D model sa nazýva 3D rekonštrukcia. Na to aby mohla byť aproximovaná informácia o hĺbke, je nutné získať obraz tej istej scény z trochu rozdielnych uhlov. Minimálne požadovaný počet pre vstup je v počte dvoch obrázkov. Obraz nemusí byť získavaný z dvoch a viac kamier, ale môže sa jednať aj o sekvenčne snímané zábery s použitím jednej kamery. Počet snímok má priamy vplyv na kvalitu výsledného 3D modelu, keďže máme viac informácií na presnejšie odhadnutie hĺbky. Detekcia spoločných bodov vo vstupných snímkach je výpočtovo najnáročnejšia časť celého procesu. Keďže sa v súčasnosti jedná o veľmi atraktívnu a dlhodobo rozvíjanú problematiku, existuje veľké množstvo aplikácií, ktoré ponúkajú rôzne varianty riešení. Môže sa jednať o hardvérové prevedenie výpočtu alebo použitie iných spôsobov zberu dát (špecializované hĺbkové senzory, meranie laserom, atď.). V práci sa zameriavam na skupinu algoritmov, ktoré rekonštruujú 3D model na základe rozdielov posunutia vo vstupných obrazoch. Drvivá väčšina týchto algoritmov sa snaží určiť hĺbku pre každý jeden bod vstupného obrazu, resp. pre čo najväčší počet. Čo je značne náročné na výpočet. Tento výpočet by sa dal urýchliť tým, že by sa zredukoval počet bodov, pre ktoré by sa robil výpočet a taktiež by sa vymedzili a preskočili oblasti, v ktorých je ťažké tieto body hľadať. Táto myšlienka so sebou nesie tieto základné otázky: Ako hľadať body pre rekonštrukciu tak, aby to bolo efektívne? Bude výsledný model dostatočne presný? Predpoklad tvorí myšlienka, že je možné efektívne a rýchlo nájsť pár spoločných bodov na vstupných obrázkov. To vytvorí predbežné rozdelenie vstupného obrazu na segmenty s približne rovnakým obsahom. Segmenty budú obsahovať rovnakú časť snímanej scény. Časť spomínanej idei som opísal v jednej z mojich publikácií a to v [1]. Výsledok môže do značnej miery ovplyvniť šum a skreslenie obrazu, ktoré sú zapríčinené samotným hardvérom kamery a jej šošovkou. Aj keď sa na prvý pohľad môže zdať, nejedná sa o triviálny problém. Celá práca sa venuje a popisuje spôsob vytvorenia 3D modelu z obrazu snímaného dvoma kamerami, pričom zámerom je aby rekonštrukcia bola čo najrýchlejšia a výstup bol dostatočne presný pre vyššie časti implementácie, ako je napr. klasifikácia a následné rozpoznanie jednotlivých objektov. 14

16 Štruktúra práce sa dá zhrnúť nasledovne: Základný princíp 3D rekonštrukcie a niektoré postupy sú opísané v kapitole 3. Taktiež sú v nej opísané rôzne súčasné, používané detektory, použiteľné pre detekciu korešpondenčných bodov. Kapitola 4 sa venuje popisu samotného algoritmu, ktorého experimentálnemu overeniu sa venuje kapitola 5. Následne je v záverečnej kapitole zhrnutie vedeckého prínosu a popísaná vízia a usmernenie ďalšieho výskumu. 15

17 2 Cieľ Hlavným cieľom práce je návrh algoritmu, ktorý bude schopný vytvoriť hĺbkovú mapu, 3D model, získaný z bežne dostupných kamier v čo najkratšom čase. Algoritmus má za úlohu rozdeliť vstupný obraz na jednotlivé segmenty, ktoré bude možné efektívne spracovávať prostredníctvom paralelizmu. Záťaž tak môže byť efektívne rozložená pri použití viac procesorových systémoch. Algoritmus by mal spĺňať nasledovné požiadavky: Zníženie výpočtového času potrebného pre vytvorenie 3D modelu na minimum. Algoritmus by mal rozdeliť dáta na časti, ktoré by bolo možné paralelne spracovať. Možnosť nastaviť presnosť/detail výsledného modelu. Výstup algoritmu musí tvoriť sieť bodov, ktorá bude predstavovať 3D model. Body v sieti budú pospájané do trojuholníkov, pre ľahšie spracovanie a prípadné vykresľovanie. 16

18 3 Súčasný stav Problematika zaoberajúca sa spracovaním obrazu počítačom sa volá počítačové videnie a jej cieľom je dosiahnuť automatizáciu vnímania podobne ako to robí človek. Jedná sa preto o pokročilé metódy analýzy, upravovania a získavania dát v obraze tak, aby bolo možné pochopiť obraz alebo jeho časť. Jedna malá, avšak aktuálna a veľmi populárna časť počítačového videnia je 3D rekonštrukcia. Obzvlášť v súčasnosti, keď výkon techniky napreduje exponenciálnymi krokmi. Hardvér sa zmenšuje a stáva energeticky úspornejším ako v minulosti, čo logicky otvára dvere pre uplatnenie výpočtovo náročnejších postupov. Uplatnenie 3D rekonštrukcie je obrovské, spomeňme pár smerov: navigácia autonómnych robotov, v lekárstve pri pohľade do vnútra pacienta, v zábavnom priemysle, ale aj v biometrií. Nasledujúca kapitola obsahuje popis samotnej podstaty 3D rekonštrukcie a popisuje jej hlavné rozdelenie. Zvyšné podkapitoly sa venujú dôležitým detailom, ktoré následne v implementácii používam. 3.1 Digitálny obraz Zdroj obrazových informácií predstavuje kamera. Veľmi dôležitým parametrom je veľkosť získaného obrazu, pričom veľmi veľké obrazy sú náročnejšie na výpočtový výkon a malé obsahujú príliš málo detailov. Medzi ďalšie dôležité parametre patrí ohnisková vzdialenosť, ktorá predstavuje vzdialenosť od šošovky, v ktorej sa stretnú lúče a udáva sa v mm. Obrázok 1 Ohnisková vzdialenosť 1 1 Zdroj obrázku: 17

19 Snímaný obraz sa premieta do projekčnej plochy, ktorá je v počítači prezentovaná formou bitovej mapy. Táto bitová mapa sa skladá z pixelov, pričom jeden pixel definuje farbu jedného premietnutého bodu. Najčastejšie kontrolovaná je v počítačovom videní hodnota jasu. Jas je údaj odpovedajúcej svetlosti bodu reálneho obrazu, ktorá sa premietla do príslušného bodu (pixelu) na projekčnej ploche. Biela farba obsahuje maximum jasu a čierna minimum. Farby môžu byť definované nasledovným maximálnym číslom (rozsah farieb, kvantovanie), ktoré predstavuje čisto bielu farbu: 1 bit 2 1 čierna a biela 2 bit bit bit bit bit 2 32 Pri digitalizácií obrazu z reálneho sveta sa časť informácií stratila, keďže je obraz prezentovaný v pamäti počítača ako dvojrozmerné pole o pevnom rozmere. Preto môžeme len odhadnúť hodnotu skrývajúcu sa medzi dvoma obrazovými bodmi. Ako je možné tento jav zredukovať? Môže sa použiť väčšie rozlíšenie, ktoré definuje obrazových bodov viac. To znamená nutnosť prepočítať viac dát a tým narastá výpočtová náročnosť. Druhá možnosť je použiť medzi-bodovú aproximáciu. Hľadaná hodnota sa medzi bodmi odhaduje s použitím aproximačných metód. To ktorá sa použije je zväčša určené podľa potreby presnosti a počtom rozmerov daných hodnôt. 18

20 Obrázok 2 Odhad lokálneho maxima v medzi bodovom priestore 2 Uvediem príklad: predstavme si, že analyzujeme obrázok po riadkoch. Obrázok 2 predstavuje jeden riadok obrázku (os x), ktorý je veľký 8 obrazových bodov. Hodnoty jednotlivých bodov tvorí ich intenzita - svetlosť (os y). Náš algoritmus, však pre väčšiu výstupnú presnosť potrebuje pracovať s čo najväčšou presnosťou polohy maximálnej hodnoty v jednom rade, t.j. nebude stačiť hodnota 4 (zľava). Je preto potrebné nájsť funkciu opisujúcu chovanie špičky hodnôt, pomocou ktorej sa následne odhadne poloha a hodnota maxima. V tomto prípade by sa mohol vrchol odhadnúť použitím paraboly Operácie s obrázkom Často krát je nutné vstupný obraz upraviť tak, aby úprava pomohla alebo uľahčila následnú analýzu alebo spracovanie. Či už sa jedná o zvýraznenie určitého spektra alebo odstránenie šumu, je nutné urobiť s každým bodom obrazu nejakú operáciu. Všetky operácie sa dajú zhrnúť do dvoch skupín a to: 1. Operácie s jedným bodom 2. Operácie s okolím bodu 2 Zdroj obrázka: 19

21 Pokiaľ označíme vstupný obraz ako funkciu, výstupný obraz ako funkciu a operáciu s jedným bodom ako funkciu, môžeme zapísať operáciu s jedným bodom ako [2]: Grafické vyjadrenie vyzerá nasledovne: Operácia Vstupný obraz Výstupný obraz Obrázok 3 Operácia s jedným bodom 3 Druhý spôsob, operácia s okolím bodu, využíva hodnoty okolia k tomu aby sa vytvorila hodnota výsledného bodu. Veľmi často používanou operáciou je lineárny filter, kde je výsledná hodnota určená ako suma vážených hodnôt bodov okolia zo vstupného obrazu, čo môžeme zapísať nasledovne [2]: Kde je maska alebo jadro, ktoré obsahuje váhy pre jednotlivé body, tzv. koeficienty filtrovania. Polomer veľkosti jadra predstavuje. Zjednodušený zápis tejto operácie vyzerá nasledovne: Pokiaľ otočíme jadro o 180, dostaneme operáciu, ktorá sa volá konvolúcia. Pokiaľ je jadro (pri konvolúcii sa toto jadro nazýva aj konvolučné jadro) symetrické (napr. pri Gaussovom 3 Zdroj obrázka: 20

22 alebo Laplacianovom filtri), tak obe operácie dosahujú rovnaké výsledky. Preto môžeme konvolúciu zapísať ako [2]: Skrátene: Obrázok 4 Konvolúcia [2] Jediný rozdiel spočíva v tom, že konvolúcia je asociatívna. To znamená, že pokiaľ sú filtre, môžeme tvrdiť, že platí [2] [3]: a 3.2 3D rekonštrukcia Nasledujúce podkapitoly obsahujú stručný úvod do problematiky 3D rekonštrukcie, tak aby čitateľ získal základné povedomie o celom procese. V prvých kapitolách je popísané základné rozdelenie, následne popisná problematika chýb, ktoré sa odstrániť nedajú a nasleduje samotný popis výpočtu informácie o hĺbke Aktívna a pasívna 3D rekonštrukcia Metódy 3D rekonštrukcie sa dajú rozdeliť na dve hlavné skupiny, ktoré rozdeľuje spôsob akým získavajú dáta o svojom okolí. Rozdelenie je nasledovné: 21

23 Aktívne metódy Pasívne metódy Aktívne metódy Aktívne metódy potrebujú dodatočné prostriedky k získaniu 3D modelu. To znamená, že na to, aby získali dáta o okolí, musia do neho emitovať energiu. Zdroj energie môže byť laser (skenuje laserom), alebo obyčajné svetlo so štruktúrovaným tienidlom, prípadne sa tvar dá získať mechanicky. Obrázok 5 Vľavo skenovanie pomocou lasera, vpravo premietanie štruktúrovaného vzoru na objekt. 4 Tieto metódy však nie sú vždy aplikovateľné. Dôvodom môže byť pomalosť, rozmery, váha, krehkosť alebo ich dosah. Zato majú veľkú presnosť výsledného modelu. Pasívne metódy Pasívne metódy vytvárajú 3D model na základe pozorovania scény. Energia nesúca dáta o okolí nie je vyžarovaná senzorom. Tu patrí získanie dát snímaním jednej alebo viacerými kamerami. Následne sa na základe rozdielov medzi obrazmi rekonštruuje 3D model. Pasívne metódy, na rozdiel od aktívnych, nebudú dosahovať takú presnosť ako aktívne, ale majú veľkú výhodu vo veľkosti senzorov - kamier. Pridáva sa ale náročný výpočet 3D modelu Základné pojmy 3D rekonštrukcie Pre uľahčenie prehľadu a vyjasnenie pojmov by som rád uviedol niekoľko definícií kľúčových termínov, ktoré v práci budem používať. Tieto termíny a základný úvod 4 Zdroj obrázkov: a 22

24 do problematiky 3D rekonštrukcie uviedli páni Scharstein a Szeliski v [4], kde sa dajú nájsť doplňujúce informácie. Projekčná plocha je 2D rovina, na ktorú sa premieta snímaná scéna. Rovnakú scénu môže snímať viac kamier z rôzneho miesta a iného uhla. Bod, ktorý snímajú tieto kamery sa premietne na projekčné plochy týchto kamier, pričom na každej ploche je snímaný bod premietnutý na odlišnom mieste. Tieto premietnuté body snímaného bodu sa označujú ako korešpondenčné body. Pokiaľ máme viac projekčných plôch a identifikujeme na nich korešpondenčné body, môžeme bez znalosti priestoru snímanej scény odhadnúť jeho pozíciu. Obrázok 6 Príklad snímania scény viacerými kamerami 5 Ďalším často používaným pojmom je disparita. Tá popisuje rozdiel medzi korešpondenčnými bodmi pomocou vyjadrenia odhadu hĺbky. Disparita má viacero definícií, niektoré je možné nájsť už v spomínanej publikácií [4]. Disparita jednotlivých bodov vytvára obraz disparitného priestoru, ktorý sa dá premietnuť na 2D projekčnú plochu, čím dostaneme disparitnú mapu. Obrázok 7 Obrázok a jeho disparitná mapa [4] Obrázok 7 zobrazuje pôvodný obrázok (vľavo) a jeho disparitnú mapu (vpravo). Disparitná mapa zobrazuje hĺbku jednotlivých bodov pôvodného obrázka. Čim je farba tmavšia, tým 5 Zdroj obrázka: 23

25 je daný bod obrazu viac vzdialený od kamery. Mapa môže obsahovať body s neidentifikovateľnou disparitou, ktoré sú vo väčšine prípadov označené čiernou farbou. Disparita sa dá ďalej rozdeliť na riedku (angl. sparse disparity) a hustú (angl. dense disparity). Hustá disparita sa snaží nájsť hĺbku pre čo najviac obrazových bodov. Riedka nájde hĺbku pre niekoľko bodov a priestor medzi nimi aproximuje bilineárnym prechodom Rekonštrukcia 3D súradníc Pokiaľ sú na obrázkoch identifikované korešpondujúce body, je možné využiť tento poznatok pre získanie 3D súradníc. Pomocou epipolárnej geometrie je možné popísať geometrické vzťahy bodov medzi viacerými projekciami (obraz získaný z kamery z rôznych uhlov) tej istej scény. Pre ich získanie je nutné poznať dodatočné informácie kamery, ako sú ohnisková vzdialenosť, zakrivenie, deformácia,... Následne je možne zistiť bod, v ktorom sa polpriamky vychádzajúce z ohnísk cez korešpondujúce body pretnú. Princípy využívajúce popísané metódy sa označujú ako trianguláčné - triangulácia. [5] Obrázok 8 Epipolárna plocha Detailnejší popis epipolárnej plochy predstavuje Obrázok 8, kde: body C a C predstavujú ohniská. Bod M predstavuje bod reálneho sveta a je zachytený na každej projekčnej ploche pomocou bodov x a x. Priamky vedúce z ohnísk C a C cez body x a x sa stretávajú v bode M. Ohniská spolu s bodom M vytvárajú epipolárnu plochu, ktorá predstavuje celkovú množinu potenciálnych umiestnení bodu M v priestore. 24

26 Pri výpočte 3D súradníc potrebujeme popísať vzťah medzi reálnym bodom M a bodmi x a x. Jedná sa o informáciu, ktorá je prezentovaná formou transformačnej matice. Ak je známe umiestnenie kamier a ich natočenie, tak túto informáciu obsahuje esenciálna matica 6 kalibrovaný spôsob. Pokiaľ informácie nie sú známe, používa sa fundamentálna matica 7 nekalibrovaný spôsob. Keďže obe projekčné plochy zobrazujú tu istú scénu, v našom prípade bod M, je jasné, že každá projekčná plocha zachytáva tento bod z iného uhla, pričom sú pozorovacie plochy od seba vzdialené. Pokiaľ chceme vyjadriť závislosť umiestnenia x a x a poznáme kalibráciu kamier, môžeme to podľa [5] urobiť nasledovným zápisom (nasledujúce vzorce pochádzajú z [5], [6], [7], [8] a [9]): kde R je matica otočenia o veľkosti 3x3 a ( ) je vektor posunutia. Vyššie uvedený vzťah sa dá upraviť na nasledovný, kde E je esenciálna matica a platí: pričom [ ] 6 Esenciálna matica je matica o veľkosti 3x3. Označuje sa písmenom. Fundamentálna matica korešpondujúca s normalizovanými kamerami sa nazýva esenciálna matica. [61] 7 Fundamentálna matica, je matica o veľkosti 3x3. Popisuje vzťah medzi dvoma kamerami, ktoré sú zachytené v ich projekčných maticiach. [61] 25

27 Obrázok 9 Epipolárna geometria Pri nekalibrovanom spôsobe nie je známe natočenie, ani posunutie. Nasledujúci popis obsahuje Obrázok 9. Jediné, čo je známe, je premietnutý bod M na oboch projekčných plochách (body x a x ). Ak spojíme ohniská priamkou, tak v miestach, kde priamka prechádza plochami, vzniknú epipóly - body e a e. Epipól je projekcia ohniska prvej kamery C na projekčnú plochu druhej kamery C. Ak vytvoríme priamku prechádzajúcu bodmi x a e, získame epipolárnu priamku, to isté platí aj pre body x a e, pričom platí, že každý bod x v prvej ploche korešponduje s bodom x, ktorý leží na epipolárnej priamke prechádzajúcej bodmi x a e (ďalej len ). Platí to aj naopak, každý bod x korešponduje s bodom x, ktorý leží na epipolárnej priamke prechádzajúcej bodmi x a e (ďalej len ). Túto korešpondenciu popisuje práve fundamentálna matica. Jej použitie je vhodné, pokiaľ je plánované použiť merania získané iba na základe obrázkov. [6] [7] Ďalej platí, že každá projekčná plocha má svoju projekčnú maticu. Nazvime tieto projekčné matice P a P, potom [ ] pričom nasledovne platí, že 26

28 Ak A je matica parametrov, dá sa zapísať vzťah medzi esenciálnou a fundamentálnou maticou nasledovne: Pokiaľ sme sa rozhodli použiť nekalibrovaný spôsob, musíme najskôr získať z fundamentálnej matice F projekčné matice [9] [7], taktiež je z nej možné získať esenciálnu maticu. Tie získame singulárnym rozkladom F:, kde [ ] a V ma rozmer 3x3. Z matíc U, D a V sa dajú zostrojiť nasledovné projekčné matice [ ] [ ] [ ] [ ] kde je tretí stĺpec U a [ ]. Pokiaľ poznáme projekčné matice kamier, je postup podľa [5] nasledovný: Ak chceme preniesť bod z troj-súradnicového systému na dvoj, postupujeme nasledovne: Súradnice x, y, z v našom prípade predstavujú súradnice bodu M a súradnice u, v bod x (ďalej budem bod uvádzať pod značkou m). Túto konverziu môžeme zapísať aj v lineárnom tvare: [ ] [ ] [ ] Vzťah môžeme zapísať aj v skrátenom maticovom tvare: 27

29 pričom P je projekčná matica o veľkosti 3x4. Ten istý vzťah platí aj pre korešpondenčný bod k m a teda m : Po odstránení s a s a spojení dvoch predchádzajúcich rovníc, pričom berieme do úvahy, že prvky projekčných matíc sú pre a, kde, dostaneme rovnicu, z ktorej už ľahko určíme súradnice x, y, z, a to: [ ] [ ] [ ] Ako ilustráciu uvádzam nasledovný Obrázok 10. Na obrázku sú zľava: prvé dva obrázky sú zábery z dvoch kamier, posledný obrázok predstavuje výsledné rekonštruované body v 3D priestore. Obrázok 10 Ukážka rekonštrukcie bodov na šachovnici 28

30 3.3 Kľúčové body Medzi rutinné postupy v počítačovom videní patrí hľadanie kľúčových bodov (angl. feature point). Tento bod označuje/je vybratý na základe vlastnosti obrazu jeho okolia. Väčšinou sa jedná o štatisticky významné hodnoty, resp. o cielené skupiny hodnôt, ktoré vyhľadávajú rôzne vyhľadávače detektory (angl. detector). V problematike počítačového videnia sa tento bod označuje viacerými názvami, ale všetky označujú to isté. Najčastejšie sa jedná o tieto anglické pojmy: feature point, point of interest, the path... [10] [11] Nájdenie takéhoto bodu, je však len prvá časť. Druha časť sa skladá z popisu okolia tohto bodu. Tu môže byť taktiež použitých viacero popisovačov deskriptorov (angl. detector). Pokiaľ bod nemá svoj popis, nazývame ho bod záujmu (angl. point of interest). [12] [13] Obrázok 11 Spájanie obrazov do panorámy [10] Kľúčové body majú široké pole použiteľnosti ale bez deskriptora nie je možné nájsť ten istý kľúčový bod v inom obraze. Pokiaľ už máme nájdene kľúčové body spolu s ich deskriptormi, je možne napr. vyhľadávať už známe objekty, umožniť pospájať obraz 29

31 (panoráma alebo pospájanie snímok zo satelitu pre vytvorenie mapy), atď. Obrázok 11 v hornej časti znázorňuje nájdenie kľúčových bodov, pričom červené šípky znázorňujú korešpondenčné body, resp. majú zhodné deskriptory - je medzi nimi malá vzdialenosť. Spodná časť obrázka zobrazuje prekrytie dvoch obrázkov do jedného na základe nájdených párov Detekcia hrán Svet sa skladá z rôznych objektov, ktoré majú rôzny tvar, farbu a textúru. Pokiaľ premietneme scénu na projekčnú rovinu, prenesú sa aj tieto rozdielnosti. Hranový detektor hľadá skupiny obrazových bodov, kde rozdiel jasu prekračuje určitú hranicu (náhla prudká zmena). Tieto body sa označia ako hranu. Výsledkom algoritmu hľadania hrán je hranová mapa (väčšinou binárna bitová mapa), ktorá nesie informáciu o tom, či je daný pixel obrázka hrana. Hranový detektor odstráni z pôvodného obrázku veľké množstvo informácií, pričom dôležité informácie ostanú uchované. Hrana vzniká v miestach prudkej zmeny jasu. Pokiaľ intenzitu jasu v bodoch pospájame do postupnosti, môžeme povedať, že je to prechod z nízkofrekvenčnej oblasti do vysokofrekvenčnej oblasti. Obrázok 12 Intenzita ako funkcia a jej derivácie 8 Ako ukazuje Obrázok 12, dá povedať, že sa jedná o miesta, kde vo funkcii prichádza k rýchlemu rastu alebo poklesu. Tie sa dajú ľahko odhaliť prvou deriváciou funkcie, kde lokálne extrémy označujú miesta, kde sa mení stúpanie na klesanie. Tento prechod nie je spravidla vždy ostrý, čo sťažuje detekciu. To znamená, že nami viditeľné hrany majú priebeh veľmi pomalý a preto ich detektor nenájde. [14] 8 Zdroj obrázku: 30

32 Obrázok 13 Vertikálny prierez obrázka a frekvenčná charakteristika rezu [12] Obrázok 13 predstavuje zobrazenie hľadania horizontálnych hrán. Na obrázku predstavuje čierna hrana aktuálny riadok bodov obrazu, ktorý sa analyzuje. Pod obrázkom je vidieť intenzitu jasu, pričom os x predstavuje číslo bodu a os y intenzitu jeho jasu. Je jasne vidieť, že okolo bodu č. 50 sa intenzita prudko mení a môžeme ho označiť ako hranu. Hrany je preto možné hľadať vertikálne aj horizontálne (prípadne použiť oba spôsoby). Hrany sa dajú rozdeliť na štyri typy a to na skokovú (step), šikmú (ramp), líniu (line) a strechu (roof). Ich správna klasifikácia však nie je triviálna, keďže sa ideálny stav veľmi často od reálneho líši (Obrázok 14). Obrázok 14 Vľavo sú základné štyri druhy hrán, vpravo ich reálne prevedenie, ktoré nie je možné pre zašumenie jednoznačne určiť [15] Šikmé hrany môžu vzniknúť počas digitalizácie obrazu prostredníctvom šumu. Tak isto pri vzorkovaní môže hrana spadať presne medzi dva susedné body a na snímke je zachytená ako rozmazaná (Obrázok 15). [16] 31

33 Obrázok 15 Rozdiel medzi ideálnym vzorkovaním a reálnym [16] Metódy hľadania hrán sa dajú rozdeliť do dvoch skupín a to: Metódy využívajúce prvú deriváciu po prvej derivácií obrazu sa získa rozdiel okolitých bodov. Výsledný gradient sa nakoniec porovnáva s prahom, ktorým sa určuje, či sa jedná o hranu alebo nie. K výpočtu gradientu sa môžeme chovať aj ako ku konvolučnému filtrovaniu signálu. Otvára sa tu možnosť meniť vlastnosti filtra použitím iného konvolučného jadra pre výpočet gradientu, ktoré tvorí matica a jej veľkosť ovplyvňuje citlivosť filtra na šum. Metódy využívajúce druhú deriváciu hrana je detegovaná, pokiaľ je priestorová zmena v polarite druhej derivácie dosť významná. Používa sa tu hlavne detekcia pomocou prechodu nulou. Obrázok 16 Obrázok (vľavo) a jeho hranová mapa (vpravo) 9 9 Zdroj obrázka: 32

34 Obrázok 16 zobrazuje originálny obrázok a jeho hrany. Hrany sú zobrazené bielou farbou. Medzi najviac používané hranové detektory súčasnosti patrí Cannyho hranový detektor, ktorý dosahuje veľmi dobré výsledky Detekcia rohov Ako opísal Li-hui Zou a spol. v [17], tak roh sa poväčšine nachádza v mieste, kde má hrana vysoké zakrivenie, ale leží v oblasti spojenia rôznych oblastí jasu. Poväčšine rohy nie sú ovplyvniteľné osvetlením a sú rotačne invariantné. Pokiaľ sa na to pozrieme štatisticky, tak za roh môžeme prehlásiť zhruba 0,05% bodov z celého obrázka Obrázok 17 Detekcia hrany a rohu 10 Zobrazuje trojuholníkový tvar, ďalej sú na obrázku nakreslené tri štvorce. 1. Štvorec v strede trojuholníka môže označovať stred, príp. centroid nejakej skupiny bodov (podrobnejšie bude rozobrané v nasledujúcej kapitole). 2. Štvorec v strede hrany označuje hranu. 3. Štvorec vo vrchole označuje tiež hranu, ale pri bližšom preskúmaní môžeme tento bod prehlásiť za roh. 10 Zdroj obrázka: 33

35 3.3.3 Detekcia regiónov - BLOB Môžeme povedať, že región je skupina bodov v obraze s podobnými vlastnosťami. Spoločná vlastnosť môže byť klasifikovaná ako napr. intenzita, farba, hrana, atď. Inými slovami sa dá taktiež povedať, že regióny vytvárajú segmentáciu obrazu. Najčastejšie sa regióny hľadajú pomocou prahovania. Pri jednoduchom prahovaní sa predpokladá, že objekty v obraze sa dajú odlíšiť od pozadia na základe hodnoty jasu jednotlivých bodov. Zvolí sa prah a následne sa jednotlivé body začnú rozdeľovať. Prahovanie podľa [18] môžeme rozdeliť na: Jednoduché (globálne) prahovanie pre každý bod obrázka platí rovnaké pravidlo, ktoré ho zadelí do skupiny, pričom skupín, a teda aj prahov môže byť viacero (rozdelenie podľa intervalov - spektier). Adaptívne prahovanie prahová hodnota sa pre každý bod počíta z jeho okolia. Hodnota sa môže vypočítať pomocou priemeru hodnôt jasu, mediánu hodnôt jasu alebo podľa strednej hodnoty minimálnej alebo maximálnej hodnoty jasu v okolí. Obrázok 18 Adaptívne lokálne prahovanie - medián [18] Niektoré techniky počítačového videnia pracujú čisto s regiónmi. Môže sa jednať napr. o rozpoznávanie značiek, kde sa ale už pracuje aj s tvarom nájdenej skupiny kontúry. Tu sa žiadaný rozpoznaný tvar následne posúva vyššej aplikačnej logike. 34

36 Obrázok 19 Detekcia regiónov 11 Podobný princíp sa používa pri rozpoznávaní zoskenovaného textu pomocou OCR. V obrázku s textom sa najskôr rozpoznajú všetky regióny. Tu je možné vytvoriť filtrovanie napr. na základe veľkosti. Následne ostáva už iba porovnať získané regióny so vzorovou databázou [19]. 3.4 Deskriptory Pokiaľ sa nám úspešne podarilo lokalizovať body záujmu, môžeme ich doplniť o popis okolia. Tento popis opisuje nejakú vlastnosť/vlastnosti okolia tohto bodu. Poväčšine sa od popisov žiada, aby boli invariantné a dali sa vždy znovu na tom istom mieste nájsť. Dôležitou otázkou je, aké hodnoty budú použité k popisu a ako tieto hodnoty z okolia dostaneme. V súčasnosti existuje niekoľko druhov deskriptorov ako sú napríklad: SIFT [13], SURF (Speeded Up Robust Features) [20], GLOH (Gradient location-orientation histogram) [21], LIOP (Local Intensity Order Pattern) [22] Spin-Image [23], SIFT deskriptor Dobrým príkladom môže byť veľmi rozšírený deskriptor, ktorým sa popisuje okolie bodu na základe histogramu smeru gradientov v okolí bodu záujmu. Základná myšlienka 11 Zdroj obrázka: 35

37 spočíva v tom, že pri určitých zmenách otočenia, osvetlenia a posunutia kamery sú gradienty najmenej dotknuteľné. Obrázok 20 Príklad smerovania gradientu 12 Gradient určuje, akým smerom sa uberá zmena intenzity (vo väčšine prípadov). Hlavný smer môže byť určený napr. od najmenšej hodnoty po najväčšiu ale aj naopak (Obrázok 20). Výpočet gradientu sa môže realizovať viacerými spôsobmi, uvediem dva príklady: 1. Určí sa priemerom smeru medzi aktuálnym bodom a jeho susedom pod ním a napravo. 2. Určí sa ako priemer orientácii suseda nad a pod s priemerom orientácii suseda vľavo a vpravo. V prvom kroku, pri výpočte tohto deskriptora, sa najskôr musí určiť globálna orientácia, ktorá bude slúžiť práve na odstránenie závislosti na otočení bodu na obrázkoch. Globálna orientácia sa určí na základne orientácií v danej oblasti bodu záujmu rámu (angl. frame). Veľkosť tohto okna môže byť ľubovoľná, ale veľká a veľmi malá veľkosť bude mať negatívny dopad pri hľadaní párov kľúčových bodov (bude ich málo zhodných). Ďalším prvkom pri výpočte je použitie váhy, ktorá klesá v závislosti od pozície bodu záujmu. Veľmi obľúbenou funkciou pre vytvorenie váhovej masky je Gaussovo rozdelenie, zobrazuje Obrázok 21 a aplikáciu masky Obrázok 22. [13] [24] 12 Zdroj obrázka: 36

38 Obrázok 21 Gaussianske rozdelenie 13 Obrázok 22 Aplikácia Gaussianskeho filtru 14 Druhým krokom je vytvorenie histogramu orientácií. Ten rozdeľuje 360 stupňov na určitý počet kontajnerov. Gradienty sa pridávajú do kontajnerov tak, že sa ich váha rozdelí na základe pomeru podľa toho, ku ktorému kontajneru majú bližšie. Následne sa určí smer, ktorý má najvyššiu hodnotu. Môže sa stať, že je špicov viacero a taktiež by sa mali uznať špice, ktoré dosahujú 80% z najvyššej hodnoty. [13] 13 Zdroj obrázkov: a 14 Zdroj obrázku: 37

39 Obrázok 23 znázorňuje uloženie orientácií gradientov v poli 4x4 do 8 kontajnerov, čiže po 60 stupňov. Obrázok 23 Zadelenie gradientov do kontajnerov 15 Pre každú orientáciu sa následne určí tzv. sieť, ktorá je natočená podľa globálnej orientácie bodu. Veľkosť tejto siete a jej počet buniek závisí od určenia algoritmu. V tomto prípade ale jedna bunka nezodpovedá presne jednému bodu obrazu, ale môže ich obsahovať viacero, pričom hranica môže prechádzať cez tretinu obrazového bodu, tzn. že rozmer jednej bunky môže byť aj hodnota 4,5 obrazového bodu. [13] Obrázok 24 Sieť gradientov 16 Pre každú bunku sa vytvorí histogram orientácií, ktorý má napr. 8 kontajnerov. Aby tento deskriptor ovplyvňovala zmena osvetlenia čo najmenej, je normalizovaný ako vektor. Následne je každý vektor nad hodnotu 0,2 odseknutý a znova normalizovaný. Výsledkom je vektor, ktorého hodnoty sú jednotlivé hodnoty histogramov. [13] 3.5 Priestor mierky Človek dokáže rozlíšiť objekt, ktorý pozná, zo vzdialenosti 1m alebo 1 km. Keď sa nad touto myšlienkou zamyslíme, uvedomíme si, že prevažná väčšina detailov sa 15 Zdroj obrázku: 16 Zdroj obrázku: 38

40 s narastajúcou vzdialenosťou vytráca. Dá sa povedať, že priestorom mierky sa snažíme vytvoriť abstraktné pohľady na objekt. Krásnym príkladom môže byť obyčajná mapa sveta, kde keď si ju pozeráme, vidíme iba kontinenty a oceán. Pri bližšom pohľade začnú vystupovať napr. štáty a moria, pri ešte bližšom pohľade na nejaký štát začneme pozorovať jednotlivé mestá, atď. [25] [26] V prostredí počítačového videnia tvoria stupnicu mierky obrázky. Čím je obraz vyššie v stupnici, tým menej detailov obsahuje. To sa dá dosiahnuť napr. postupným rozmazávaním obrazu. Môžem to ilustrovať na nasledujúcom príklade: Obrázok 25 Normálny a rozmazaný obrázok Obrázok 25 vľavo je pôvodný obrázok, na ktorom je zobrazená mačka s melónovou helmou. Vpravo je ten istý obrázok, ale je rozmazaný. Vieme však identifikovať mačku v helme. Všimnime si stratu detailov: neviem zistiť, že helma je z melónu. Aplikovali sme na originálny obrázok určitú dávku abstrakcie, tak aby sa výsledok stal univerzálnejší. 39

41 Obrázok 26 Priestor mierky Najčastejšie používané rozmazanie je tzv. Gaussovo rozmazanie a takýto priestor sa volá lineárna gaussová mierka priestoru (angl. Linear gaussian scale-space) a tvorí základ pre vyššie rozpoznanie dát v obraze. Dokázaniu, že Gaussov filter je najvhodnejší pre vytvorenie priestoru sa venoval Lindeberg v [25]. V praxi býva mierka priestoru prezentovaná podobne ako zobrazuje Obrázok 26. [27] Pokiaľ chceme tento priestor matematicky vyjadriť, tak to bude podľa Lowe [28] nasledovné: kde L predstavuje výsledný rozmazaný obrázok, G predstavuje konvolučné jadro a * predstavuje operáciu konvolucie v x a y a I predstavuje originálny obrázok, pričom: Pokaľ chceme do priestoru mierky doplniť možnosť rozpoznať objekty z rôznej vzdialenosti, musíme vytvoriť viacero samostatných priestorov mierky. Tieto mierky sú uložené do pyramídy s tým, že každé poschodie pracuje s inou veľkosťou originálneho obrázku. Dostávame tzv. multi-mierkový priestor (angl. multi-scale space) alebo mierkovú pyramídu (angl. scale pyramid), ktorú ilustruje Obrázok 27. [13] 40

42 Obrázok 27 Multi-mierkový priestor LoG a DoG Jedným z dôležitých využití mierkového priestoru je aproximácia Laplaciana Gaussa (anlg. Laplacian Of Gaussian, ďalej len LoG) rýchlejším rozdielom dvoch obrázkov s rozdielnym gaussovým rozmazaním (angl. Difference Of Gaussian, ďalej len DoG). Oba prístupy sa využívajú na hľadanie ohraničení (hrán) a segmentáciu obrazu na oblasti. V praxi to znamená, že oba spôsoby zdôrazňujú oblasti, kde sa mení intenzita, teda hrany. Hrany je následne možné nájsť hľadaním tzv. oblastí s nultým prechodom. Suma hodnôt konvolučného jadra LoG je vždy nula, čo garantuje, že pri veľkých zmenách intenzity je výsledná hodnota nulová. Nultý prechod teda vzniká, pokiaľ susedné hodnoty prechádzajú z kladných na záporné (Obrázok 28). [29] [30] [31] Obrázok 28 Nultý prechod Zdroj obrázka: 41

43 Rozdiel spočíva v tom, že pri LoG sa najskôr musí obraz vyhladiť od nerovností (odstrániť šum) a až potom sa pristúpi k hľadaniu hrán pomocou Laplaceho. Samotné hľadanie prebieha konvolúciou jadra, ktorá je druhá derivácia Gaussiana, viď. Obrázok 29. [29] Obrázok 29 Derivácie Gaussiana [29] Aplikácia filtra by sa dala ilustrovať na nasledujúcom obrázku: Obrázok 30 LoD filter: vľavo originálny obrázok, vpravo obrázky s rôznym stupňom rozmazania 18 DoG využíva to, že LoG sa dá aproximovať odčítaním dvoch obrázkov s rôznym stupňom rozmazania (Obrázok 31). Hlavná výhoda je práve v jeho rýchlosti, ktorá je rýchlejšia ako pri LoG. [32] [33] 18 Zdroj obrázkov: /docs/log.html 42

44 Obrázok 31 DoG [33] 3.6 Existujúce detektory V nasledujúcej kapitole chcem čitateľovi popísať niektoré z existujúcich detektorov. Aby mal lepšiu predstavu o tom ako fungujú a kde sú ich silné stránky SIFT SIFT 19 patrí v súčasnosti medzi najpresnejšie algoritmy, ktoré hľadajú kľúčové body a vytvára ich deskriptori. Tento algoritmus bol predstavený Davidom G. Lowe v [28]. Algoritmus sa snaží nájsť a vytvoriť také kľúčové body a ich popis, že spĺňajú nasledovné vlastnosti: 1. Sú do určitej miery nezávislé na miere osvetlenia. 2. Sú nezávislé na otočení, zmeny veľkosti a afinných transformáciách. 3. Zmeny v bode 2. platia rovnako pre časť obrazu a obraz samotný. Algoritmus sa dá zhrnúť nasledovne: 1. Na začiatku sa vytvorí pyramída mierok priestoru. Jednotlivé mierky sa volajú oktávy a jednotlivé poschodia oktáv sa nazývajú poschodie. Každé poschodie je rozmazané gaussom o hodnotu, ktorá sa vždy násobí o konštantu. 2. V druhom kroku sa použije DoG pre každé dve susedné mierky v stupnici. 19 Scale Invariant Feature Transform 43

45 Obrázok 32 SIFT pyramída [28] 3. Nasleduje hľadanie lokálnych extrémov v jednotlivých poschodiach DoG pyramídy. Prezerá sa každé okolie bodu, teda jeho 8 susedov. Následne sa prezrie, tento krát 9 susedov, ale v poschodí pod a to isté v poschodí nad. Porovnáva sa hodnota susedných bodov s bodom aktuálnym. Bod je zamietnutý okamžite, pokiaľ sa nájde hodnota, ktorá nerobí z aktuálneho bodu lokálny extrém, t.j. minimum alebo maximum. Obrázok 33 Hľadanie maxima a mimima medzi susedmi [28] 4. Po nájdení lokálnych extrémov sa hľadá orientácia a vytvára deskriptor podľa popisu uvedenom v kapitole Ďalším krokom je párovanie bodov, ktoré sa dá realizovať napr. hľadaním najbližšieho suseda, resp. hľadaním najmenšej euklydianskej vzdialenosti medzi deskriptormi jednotlivých kľúčových bodov. 44

46 Obrázok 34 SIFT - Hľadanie rovnakých bodov na otočenom obrázku SURF Je detektor podobný algoritmu SIFT, tzn. že vyhľadáva kľúčové body bez ohľadu na otočenie, posunutie alebo zmenšenie obrazu, príp. časti obrazu. Postup je podľa [34] nasledovný: 1. Pre hľadanie kľúčových bodov je založené na determinante Hessianovskej matici, ktorá vyzerá: [ ], kde funkcie predstavujú konvolúciu Gausovej druhej derivácie s obrazom v bode (LoG). Konvolučné jadrá majú veľkosť 9x9,15x15,21x21,27x27, atď. obrazových bodov. Obrázok 35 Vľavo Každá dvojica predstavuje gaussov filter a jeho aproximáciu. Šedé oblasti sa rovnajú nule. [34] 2. Rozdelenie bodov sa dá zhrnúť [35]: 45

47 a. Ak sú vlastné hodnoty matice všetky kladné lokálne minimum b. Ak sú vlastné hodnoty matice všetky záporne lokálne maximum c. Ak sú vlastné hodnoty matice všetky zmiešané lokálne minimum 3. Kľúčový bod sa opäť hľadá v susedstve 3x3x3. Mierka rozmeru je vytvorená nie pre obraz ale jadrá. 4. Po nájdení extrému sa musí podobne ako pri detektore SIFT nájsť jeho orientácia. Jeho primárna orientácia je nájdená pomocou Haarovej transformácie. Rotácia sa určí z kruhu o veľkosti. Vyráta sa Haar transformácia každého bodu pre x a y, ktoré sa použijú ako pozície v Cartesianskej mape. Váha hodnoty je pokrytá ako pri SIFT gaussovou maskou o veľkosti. Následne sa mapa otočí o dokola a vyberie sa smer z najväčšou váhou [35]. 5. Posledný krok spočíva vo vytvorení deskriptora, ktorý je určený oknom o veľkosti s kľúčovým bodom ako stredom. Rotáciu určuje uhol vyrátaný v kroku 4. Tento rámec je následne rozdelený na 4x4 sub-riegióny. Hodnoty sú určené Haarovimi vlnkami pre 25 bodov v jednom regióne. Jeden bod ma veľkosť (Obrázok 36). Obrázok 36 SURF - Výpočet Haarových vlniek pre jeden sub-segment [35] 6. Pre každý sub-región je vyrátaná hodnota pre sumu dx a dy a aj suma ich absolútnych hodnôt. Výsledný vektor má veľkosť dimenzií

48 Obrázok 37 SURF Výpočet hlavných vektorov [35] SUSAN Je rohový detektor, ktorý pre nájdenie rohového bodu berie v úvahu jeho okolie. Toto okolie je v tvare kruhu so stredom, ktorý sa volá nukleus. Pre každý bod sa vykoná nasledovné [36]: 1. Nájdi hodnotu pre stred - nukleus. 2. Body v okolí bodu sa porovnajú s hodnotou nukleusu a vyberú sa body, ktoré majú veľmi podobnú hodnotu. Vznikne tak maska, ktorá sa volá USAN. Pokiaľ je nukleus umiestnený v oblasti, kde majú okolité body približne rovnakú hodnotu, tak je plocha, ktorú zaberá USAN maska maximálna. Čím bližšie sa nukleus približuje k hrane, tým je táto plocha menšia. 3. Následne sa hľadajú body, ktoré majú tento počet plôch čo najmenší. Obrázok 38 zobrazuje časť vstupného obrazu. Os z zobrazuje obsah plochy masky USAN pre daný obrazový bod. Špičky, ktoré vytvára malý obsah tejto masky, sú vyznačené modrými šípkami. Lokalizované body sú vyznačené na náhľade modré body. 47

49 Obrázok 38 SUSAN hľadanie rohových bodov FAST Patrí medzi rohové detektory, ktorého silná stránka je efektívny výpočet a je rýchlejším než DoG. Postup algoritmu by sa dal popísať [37] [38] [39]: 1. Vybrať bod P, ktorý predstavuje kandidáta pre budúci kľúčový bod, ktorý ale môže byť zamietnutý. 2. Nastaviť prahovú hodnotu intenzity T. 3. Okolo tohto bodu vytvoriť kruh o veľkosti 16 bodov. Obrázok 39 FAST: zobrazenie kľúčového bodu (vľavo) a kruhu o veľkosti 16 bodov (vpravo) [37] 48

50 4. Zrátať koľko za sebou idúcich bodov z okruhu vybratých 16 bodov je nad alebo pod prahovou hodnotou T. 5. Pre zrýchlenie algoritmu sa najskôr porovnávajú hodnoty pre body 1,5,9,13. Pokiaľ sú tri body nad alebo pod hranicou T, tak bod môže existovať. 6. Následne sa prejde všetkých 16 bodov a potvrdí sa či je bod roh a je ho možné uznať. 7. Opakovať postup pre ostatné body Zhrnutie detektorov Všetky detektory sa vďaka svojmu určeniu sústreďujú na rôzne typy oblastí pre hľadania kľúčových bodov. V nasledujúcej tabuľke by som chcel uviesť zhrnutie miest, v ktorých algoritmy hľadajú tieto body: Tabuľka 1 Zhrnutie detektorov Detektor Hrana Roh Región CANNY Áno Nie Nie SOBEL Áno Nie Nie SIFT Nie Áno Áno FAST Nie Áno Nie SUSAN Nie Áno Nie SURF Nie Áno Áno 3.7 Existujúce riešenia V nasledujúcich podkapitolách by som rád venoval pozornosť už existujúcim riešeniam. Keďže sa jedná, ako som už uviedol v úvode, o veľmi populárnu a atraktívnu časť počítačového videnia, existuje príkladov veľké množstvo. Nemohol som popísať všetky, vybral som preto niektoré riešenia, ktoré sa približujú môjmu riešeniu alebo ma niečím zaujali. 49

51 3.7.1 Foto-realistická 3D rekonštrukcia Páni Se a Jasiobedzki v [40] popisujú vytvorenie foto-realistického 3D model snímanej scény. Veľkú presnosť výsledného modelu dosahujú spracovaním väčšieho množstva pohľadov na rekonštruovanú scénu. Scénu snímajú asi 30 sekúnd, pričom vstup je kamera s rozlíšením 640x480. Výsledok rekonštrukcie je hustá disparitná mapa. Pre spojenie dát využívajú už spomenutý algoritmus SIFT. Algoritmu trvá okolo 5 minút, kým spravuje získané dáta. Počítač použitý na výpočet bol PC laptop s procesorom Pentium IV 2,4GHz s 1 GB RAM. Obrázok 40 Výsledy 3D model algoritmu od Se a Jasiobedzki [40] Triangulácia riedkej disparity Nápad pre urýchlenie výpočtu hĺbky trianguláciou pár bodov získaných z viacerých bodov nie je nová myšlienka. Sung, E. a spol v [41] popisujú ako jednu možnosť urýchlenia vyhľadania prekážok na ceste, využiť disparitu, ktorá je odvodená z pár rozpoznaných bodov. Pre detekciu je použité LoG a použite sú 3 kamery. Vstup do algoritmu tvoria body, ktoré sú náhodne vybraté, pričom ich rozloženie vytvára dostatočné pokrytie disparity. Body sú následne pospájane do línií a body medzi jednotlivými líniami sú následne pospájané do trojuholníkov pomocou Delaunayovej triangulácie Rekonštrukcia 3D modelu povrchu V článku [42] sa podarilo Sugimoto, S. a spol postupnou trianguláciou hustej disparity snímaného povrchu dosiahnuť vyhľadenie získaného modelu. Odstraňujú tak šum, ktorý je vždy prítomný pri 3D rekonštrukcii. 50

52 Princíp je podobný ako v predchádzajúcom článku. Rozdiel tvorí postupne pridávanie bodov do siete a získanie jemnejšieho výsledného modelu. 51

53 4 Riešenie Princíp fungovania algoritmu je rozpísaný formou postupného pridávania hlbších detailov tak, aby čitateľ nestratil povedomie o celkovom fungovaní algoritmu. Popis je preto rozdelený na dve časti. Prvá časť sa venuje ľahšiemu pohľadu na fungovanie algoritmu a oboznamuje čitateľa so základnými princípmi (kapitola 4.4). Pred uvedením princípu, je potrebné určiť problém, ktorý sa navrhnutý algoritmus snaží vyriešiť. Zhrnutie a definícia problémov pri rekonštrukcii sa nachádza v kapitole 4.1. Následne sú uvedené kapitoly, ktoré sa venujú ďalším problémovým častiam ako je presnosť výsledného modelu (kapitola 4.2), problematike objektov nachádzajúcich sa moc blízko kamier (kapitola 4.3) a oblastí s homogénnou textúrou (kapitola 4.4). Druhá časť je zameraná na detailnejší popis fungovania jednotlivých krokov algoritmu. Jedná sa o časti ako dátová štruktúra (kapitola 4.6.1), hľadanie prvotných bodov (kapitola 4.6.2) a bodov v iteráciách (kapitola a 4.6.5), výber kritéria iterácie (kapitola 4.6.4) a určenie oblasti prekrytia (kapitola 4.6.3). 4.1 Definícia problému Pred špecifikáciu konkrétneho problémového miesta, kde bude aplikovaný môj návrh algoritmu, je potrebné najskôr popísať celý proces spracovania obrazu v abstraktnejšom pohľade. Všeobecne sa dá každý proces spracovania obrazu rozdeliť na tri základné časti (Obrázok 41): filtrácia obrazu, analýza obrazu a pokročilejšie spracovanie dát získaných v časti analýzy. Filtrácia obrazu Analýza obrazu Pokročilejšie spracovanie Obrázok 41 Postup spracovania obrazu Obraz sa musí pred výpočtom/spracovaním najskôr predspracovať. Jedná sa prevažne o upravenie parametrov ako je jas, šum, odstránenie farebnosti, atď. Cieľom týchto úprav je buď normalizácia, zvýraznenie alebo utlmenie určitých signálov v obraze. Následne je 52

54 filtrovaný obraz posunutý dátovej analýze. Dáta získané analýzou sú posunuté vyššiemu spracovaniu, kde sa už používajú sofistikovanejšie nástroje ako je clustering, práca s kontúrami, klasifikácia objektov, atď. Schéma procesu rekonštrukcie by zjednodušene mohla vyzerať nasledovne: Filtrácia obrazu Nájdenie rozdielov v obraze 3D rekoštrukcia Pokročilejšie spracovanie Obrázok 42 Zjednodušená schéma 3D rekonštrukcie Pri podrobnejšom pohľade na abstraktne poňatú schému 3D rekonštrukcie zistíme, že mnou navrhnutý algoritmus spadá do častí Nájdenia rozdielov v obraze a Filtrácia obrazu. Keďže vstup tvorí obraz a je ho nutne predpripraviť pre ďalšie kroky algoritmu. Výstupom algoritmu je množina párov kľúčových bodov, ktoré sú následne posunuté do časti 3D rekonštrukcia. To znamená, že spôsob výpočtu 3D rekonštrukcie môže byť voliteľne menený a nie je podstatný pre fungovania algoritmu. Pri 3D rekonštrukcií musí byť ako prvý vykonaný proces kalibrácie. Tu sa získajú dáta pre matice potrebné pri prepočte do 3D. Bez kalibračných dát nie je možne následne prepočítať nájdene rozdielnosti v obrazoch a odhadnúť tak hĺbku (viď. kapitola 3.1). Po úspešnej kalibrácií môže systém začať hľadať posunutia medzi jednotlivými bodmi a vypočítať tak odhad hĺbky bodu. Pokiaľ kalibráciu doplníme do schémy, tak bude vyzerať nasledovne: Vstupný obraz Filtering obrazu Kalibrácia kamier Nájdenie posunutí obrazu 3D rekonštrukcia 3D model Obrázok 43 Schéma 3D rekonštrukcie 53

55 Miesto, ktoré je najviac výpočtovo náročne je proces hľadania rozdielov medzi vstupnými obrazmi. Je preto potrebné nájsť vhodný postup a hľadanie tak čo najviac zefektívniť. Prvý problém vytvára nájdenie spôsobu redukcie počtu hľadaných bodov. To znamená nájsť spôsob, ktorý umožní vybrať pár vhodných bodov na vstupe hľadanie korešpondujúcich kľúčových bodov. Teoreticky by bolo ideálne, aby tieto body boli na obraze čo najviac rovnomerne rozmiestnené - vstup bude dostatočne pokrytý. V praxi je však tento ideálny stav ťažko dosiahnuteľný, keďže okolitý svet tvoria rôzne objekty s rôznou textúrou povrchu. Pokiaľ premietneme dva objekty, ktoré sa budú na projekčnej ploche prekrývať, tak v mieste prekrytia vznikne hrana. Hrana označuje miesto, kde sa prudšie mení intenzita (viď. kapitola 3.3.1). Tento predpoklad vytvára fakt, že každý objekt ma inú textúry a inak na neho dopadá osvetlenie. Je preto rozumné hľadať hrany, resp. kľúčové body na hranách. Hrany vytvárajú región (sú jeho okraje), ktorý si môžeme predstaviť ako rovinu. Hranové/rohové body tohto regiónu môžu byť postačujúce na nájdenie/odhadnutie jeho vnútornej plochy v priestore. Uvediem príklad: uvažujme o obdĺžnikovom regióne, napr. vrchná časť kartónovej krabice (Obrázok 44), ktorý je charakterizovaný štyrmi rohovými bodmi. Plochu tohto regiónu určujú tieto rohové body, t.j. jej natočenie v priestore, hranice a pozíciu. Tento princíp využíva použitie riedkej disparity. Obrázok 44 Kartónova krabica 54

56 Nebude ale výsledný 3D model ochudobnený o veľa detailov, medzi ktorými môžu byť aj tie podstatnejšie? Detaily, ktoré sa týmto spôsobom odstránia nie sú podstatné, resp. dajú sa aproximovať rovinou/zarovnaním do roviny. Veľké detaily vynechané nebudú, keďže tieto by vytvorili novú hranu. Veľké a malé detaily budú splývať v jedinom prípade a pri zhoršení svetelných podmienok. V tomto prípade ani človek nevidí dobre. Problém sa dá jedine vyriešiť dodatočným osvetlením. Tým, že sa budú hľadať kľúčové body sa ešte nemusí zredukovať výpočtová náročnosť. Každý detektor je navrhnutý tak, aby našiel čo najviac kľúčových bodov s cieľom identifikovať čo najviac správnych párov. Tento predpoklad je správny, ale pre zredukovanie výpočtovej zložitosti nepoužiteľný. Pri hľadaní kľúčových bodoch totiž taktiež dochádza k spracovaniu obrázku bod po bode každý bod je potencionálny kľúčový bod. Taktiež veľký počet nájdených bodov môže vniesť do modelu chybu vďaka zlému spárovaniu bodov medzi obrazovými vstupmi. Hlavným cieľom algoritmu je zníženie výpočtovej náročnosti, t.j. redukcia výpočtového času. To sa dá dosiahnuť jedine pri dodŕžaní nasledovných bodov: Minimalizovať počet nájdených kľúčových bodov. Minimalizovať počet obrazových bodov, ktoré je nutné spracovať. Nájdené body by mali čo najviac rovnomerne pokryť vstupný obraz. 4.2 Presnosť výsledného 3D modelu Kvalita výstupu patrí medzi kľúčové prvky rekonštrukcie, keďže predstavuje vstup pre vyššie algoritmy. Výstup rekonštrukcie bude tvoriť množina 3D bodov, ktoré budú pospájane do 3D štruktúry vytvorenej pomocou trojuholníkov. Následne nie je problém túto štruktúru vykresliť ako disparitnú mapu. Ukážku ako bude vyzerať výstup z algoritmu zobrazuje Obrázok

57 Obrázok 45 Ukážka polygonálnej disparity. Čím je bod bližšie ku kamere, tým je jeho farba svetlejšia. Ako je uvedené v kapitole 3.7, s podobným typom vstupu už teraz pracujú viaceré algoritmy. Otázne bude, aká miera detailu bude vytvárať správny pomer medzi rýchlosťou spracovania obrazov a kvalitou/detailom výsledného modelu. Obrázok 46 Príklad 3D rekonštrukcie 20 Vo výstupoch niektorých algoritmov sa stretávame s pojmom neurčenej disparity (hĺbka sa nedala určiť), viď. Obrázok 46. V pravej časti sú miesta s neurčenou disparitou vyfarbené načierno. Mnou navrhovaný algoritmus nebude obsahovať plochy s neurčenou disparitou. Namiesto toho sa hĺbka aproximuje na základe pospájania výsledných bodov. 4.3 Blízko sa nachádzajúce objekty Jeden z technických problémov vytvára aj poloha objektu, resp. kľúčového bodu. Výpočet odhadu hĺbky je určený na základe odlišnej polohy reálneho bodu na projekčných plochách kamier. 20 Zdroj obrázkov: 56

58 vzdialenosť Najväčší problém však vytvárajú objekty, ktoré sa dostanú príliš blízko kamier. Efekt, ktorý má takto umiestnený objekt, spočíva v zakrytí priestoru za ním. Tým pádom sa nemôžu hľadať páry za týmto objektom a výsledkom je iba model oblasti prekrytia, ktorá je zmenšená prítomnosťou objektu. Takýto objekt sa môže premietnuť nasledovnými spôsobmi: 1. Iba na projekčnú plochu jednej kamery (Obrázok 48/a). 2. Jedna kamera zobrazí väčšiu plochu objektu ako druhá (Obrázok 48/b). 3. Na každú kameru sa premietne úplne iná časť objektu (Obrázok 48/c). Na obrázku (Obrázok 47) je zobrazené snímanie scény dvoma kamerami. Oblasť prekrytia je znázornená slabo-zelenou farbou a označuje tak priestor, v ktorom reálny bod (bod P2) bude premietnutý na obe projekčné plochy kamier. Pokiaľ je bod mimo tohto priestoru (body P1, P3 a P4), bude premietnutý iba na jednu plochu (body P1 a P3) alebo nebude premietnutý vôbec (bod P4). P1 P2 Oblasť prekrytia P4 P3 ľavá kamera pravá kamera Obrázok 47 Vzdialenosť a objekty Tento problém sa dá minimalizovať premysleným umiestnením kamier a prípadne vybraním kamery s väčším optickým rádiusom. Rozmiestením kamier sa dá minimalizovať kritická vzdialenosť, za hranicou ktorej by dochádzalo k neúplnému premietnutiu na všetky plochy kamier. 57

59 Jediná z možností, pomocou ktorej sa dá odhadnúť vzdialenosť, je možnosť 2. (Obrázok 48/b). Tu sa dá nájsť kľúčový pár práve v spoločnom priestore projekcie blízkeho objektu. V ostatných prípadoch sa znehodnotená časť obrazu ignoruje. a, b, c, Obrázok 48 Možnosti premietnutia blízkeho objektu Mnou navrhovaný algoritmus je postavený práve na hľadaní párov kľúčových bodov. To znamená, že pokiaľ na projekcii blízkeho objektu budú nájdene páry kľúčových bodov, bude do výsledného modelu zahrnutý, inak bude toto miesto ignorované. 58

60 4.4 Homogénnosť textúry Trvanie výpočtu môže z časti závisieť aj od prítomnosti oblasti s homogénnou textúrou. Tu ale väčšinou predlžuje čas použitie detektorov a deskriptorov, ktoré k svojmu fungovaniu môžu prispôsobovať veľkosť svojho okolia rámca, adaptívny rámec (angl. adaptive frame). Pokiaľ je okolie homogénne, t.j. okolité body majú približne rovnakú intenzitu, bude tento rámec narastať. Obrázok 49 zobrazuje postupné zväčšovanie okolia. Toto zväčšovanie má za cieľ obsiahnuť také množstvo susedných bodov, aby bol popis z okolia dostačujúci. Pokiaľ je bod nájdený v textúrovo chudobnej časti, je veľmi pravdepodobné, že okolie bodu bude tiež väčšie. Obrázok 49 Adaptívne okolie pri vytváraní deskriptora V mojom riešení metódy založené na adaptívnom rámci používať nebudem. Použité budú detektory, ktoré majú popisnú veľkosť presne danú. Ďalej sú zamerané predovšetkým na detekciu hrán a rohov, čo znamená, že homogénne oblasti sú efektívne preskakované. Taktiež deskriptor môže daný bod pre homogénnosť okolia zamietnuť (viď. SIFT deskriptor). Tým pádom je možné testovanie prítomnosti homogénneho okolia preskočiť. Táto filtrácia riešeniu vyhovuje, keďže jej cieľom je nenájdenie všetkých možných kľúčových bodov. 59

61 4.5 Základný princíp navrhnutého algoritmu Ako vstupnú informáciu do algoritmu budem brať obrazový vstup získaný z dvoch kamier, teda dva obrazy. Jeden obraz bude predstavovať vstup z ľavej kamery a druhý z pravej. Predpoklad je, že kamery budú obraz snímať tak, aby sa časť scény, ktorú pozorujú prekrývala. Ešte chcem upozorniť, že sa jedná o fázu 3D rekonštrukcie, ktorej úlohou je zo vstupných obrazov získať dve množiny bodov. Tieto množiny následne vstupujú do rekonštrukčného prepočtu, ktorý už nie je súčasťou navrhovaného algoritmu. Základom fungovania algoritmu je predpoklad existencie prvotného rozdelenia obrazu na segmenty, ktoré budú obsahovať približne ten istý vizuálny obsah (signál, textúru). Tieto prvotné korešpondenčné body následne rozdelia obraz na jednotlivé segmenty. Segmenty sú vytvorené trianguláciou získaných párov, vhodné je tu použiť Delaunayovu trianguláciu, ktorá sa snaží predísť vytvoreniu tenkých trojuholníkov a zo siete generuje trojuholníky, ktorých vnútorné uhly sú čo najväčšie. Delaunayova triangulácia sa snaží skupinu bodov pospájať do čo najviac rovnostranných trojuholníkov (Obrázok 50). [43] Obrázok 50 Ukážka Delaunayovej triangulácie Následne sa určí veľkosť plochy obrazu, ktorým sa kamery prekrývajú. Dôvod určenia tejto oblasti spočíva v odstránení obrazovej informácie, ktorá nemá žiadny význam na výpočet. Jedná sa o časť scény, kde sa kamery neprekrývajú, a preto obraz mimo tento výsek neobsahuje body, ktoré by sa dali spárovať (Obrázok 51). Tým, že sa nebude ďalej spracovávať, sa ušetria systémové prostriedky. Je preto možné použiť kamery s rôznym rozlíšením. 60

62 Obrázok 51 Plocha prekrytia obrazu kamier je zobrazená v zelenom ráme Prevedenie ďalšej iterácie nad nejakým segmentom znamená vyhľadanie ďalších korešpondenčných bodov a tým pádom zjemňuje/dopĺňa celkový detail. Po iterácií sa vytvorí zo získaných bodov sub-sieť, ktorá tak isto ako prvotná prejde procesom Delaunayovej triangulácie. Týmto je rozdelený segment na sub-segmenty. Iterácie sa spúšťajú až kým je možné nejaký segment spracovať alebo je dosiahnutý potrebný detail. Jedným z kritérií pre spustenie iterácie segmentu je jeho plocha. Tým pádom algoritmus generuje čo najviac rovnomerné rozloženie párov v prekrývajúcich sa plochách. Získanie záchytných bodov Obrazový vstup Vytvorenie segmentov Iterácia segmentov Nájdenie bodov v segmente 3D model Obrázok 52 Schéma navrhnutého algoritmu 61

63 Návrh tohto algoritmu aplikuje v sebe možnosť meniť jeho detektory pre vyhľadávanie kľúčových bodov. Podľa popisu budú dva: 1. Detektor prvotných záchytných bodov. 2. Detektor použitý pri iteráciách jednotlivých segmentov. 4.6 Detailnejší popis algoritmu V predchádzajúcom texte bol princíp fungovania algoritmu popísaný všeobecnejšie. Tento všeobecnejšie braný popis má vytvoriť základ znalosti pre principiálne pochopenie fungovania navrhnutého algoritmu. Nasledujúce podkapitoly budú popisovať jednotlivé časti algoritmu do najväčšieho možného detailu. Detailnejší popis však neobsahuje podrobnú aplikáciu implementovaných metód a algoritmov. Tieto poznatky sú už výsledkom vykonávania experimentov a preto sú popísane až v kapitole 5, ktorá je venovaná čisto popisu výsledkov experimentov Dátová štruktúra Štruktúra, ktorú používa mnou navrhnutý algoritmus je jednoduchá a účelná. Pre každý vstupný obraz je vytvorená lokálna množina bodov, táto množina obsahuje kľúčové body. Tieto body sú pospájané do párov a tak je možné nájsť vo všetkých vstupných obrazoch korešpondenčné body. Táto množina je ďalej hierarchicky rozdelená do segmentov. Každý segment je definovaný trojicou bodov, t.j. sú pospájané do trojuholníkov. Trojuholník je najmenšie geometrické primitívum s vrcholmi, ktoré má plochu. Taktiež pri vykresľovaní je možné efektívnejšie túto štruktúru vykresliť. Keďže sú body v lokálnych množinách popárované, to isté platí aj pre segmenty. Segment tým pádom definuje časť obrazu, ktorá by mala byť obsahovo podobná jeho párovým segmentom. Segment môže obsahovať pod-segmenty, ktoré vytvárajú a dopĺňajú detail výsledného modelu. Pod-segmenty vznikajú spustením iterácie v priestore rodičovského segmentu. Iterácia hľadá v tomto priestore páry kľúčových bodov, ktoré sú nájdené pre všetky páry daného segmentu. Následne sú tieto body pospájané do trojuholníkov a pridané k hlavnému segmentu. Páry sa hľadajú iba v rámci daných párových segmentov a nie v celom obraze. To zvyšuje pravdepodobnosť spárovania tých správnych párov. 62

64 y x y x z x y Obrázok 53 Prenos štruktúry segmentov. Modro vyfarbený trojuholník predstavuje segmentové páry (vľavo a v strede) a jeho 3D prezentáciu (vpravo) Pri skončení algoritmu tvoria lokálne množiny vstup do 3D rekonštrukcie, ktorá prevedie matematický prepočet. Na výslednú množinu 3D bodov je možné aplikovať z lokálnych množín poznatok o tom, ktoré body boli pospájané do akých segmentov (Obrázok 53 modro vyfarbený segment) Nájdenie prvotných bodov Prvotné spracovanie obrazového vstupu musí generovať relatívne malý počet nájdených korešpondenčných kľúčových bodov. Tieto body určia prvé rozdelenie vstupného obrazu na jednotlivé segmenty, ktoré následne budú ďalej spracovávané. Dôležité je, aby prvotných bodov nebolo veľa a ani príliš málo. Pri veľmi malom počte vznikne príliš málo segmentov a budú pokrývať príliš veľkú plochu obrazu (Obrázok 54: vľavo). Veľká plocha znamená pokrytie väčšieho množstva budúcich kľúčových bodov a tým sa zvyšuje šanca na chybné určenia párov. Pokiaľ počet nájdených párov bude veľký, tak sa obraz roztriešti na množinu malých segmentov, ktorých plocha bude mala a iterácie algoritmu budú zbytočné. Algoritmus sa degraduje na úroveň obyčajného hľadania všetkých možných bodov (Obrázok 54: vpravo). 63

65 Obrázok 54 Prvotné nájdenie bodov. Vľavo - málo bodov, vpravo - veľa bodov Počet bodov, ktoré by sa mali nájsť, bude predovšetkým závisieť od rozlíšenia vstupu a s jeho stúpajúcim rozmerom sa bude zväčšovať a tým pádom sa bude zväčšovať aj čas potrebný pre rekonštrukciu. Druhový parameter vplývajúci na počet nájdených bodov je samotný detektor, ktorý bude tieto body hľadať. Každý detektor je však prirodzene navrhnutý tak, aby našiel čo najviac bodov. Obrázok 55 Nepopárované kľúčové body (červené body) nájdené detektorom SIFT Ďalšou požiadavkou na prvotne nájdene kľúčové body je ich jednoznačnosť. Chceme, aby tieto body boli jednoznačne rozpoznateľné na všetkých vstupných obrazoch. Otázka preto znie, ako využiť súčasné detektory tak, aby hľadali menší počet bodov. Najlepším postupom pre dosiahnutie spomínaného zámeru je zvýšiť abstrakciu vstupného obrazu tak, aby body boli lokalizované v informačne obšírnejších oblastiach. Znamená to 64

66 vynechať signál s krátkou amplitúdou a zamerať sa na tie s veľkou. Väčšia amplitúda je aj menej ovplyvniteľná okolitým šumom, do ktorého možno zaradiť kvalitu snímaného obrazu, deformácie vytvorené šošovkou, osvetlenie a rotáciu. Vyhľadenie frekvencií pri obraze znamená jeho rozmazanie. Krátke frekvencie môžeme priradiť šumu. Obrázok 56 zobrazuje vľavo šum. Pokiaľ zoberieme z obrazu jeden ľubovoľný riadok a zobrazíme ho vo forme grafu, kde intenzite zodpovedá os Y a poradie bodu os X, zobrazí sa ako signál s veľa krátkymi frekvenciami (Obrázok 56 vpravo). Obrázok 56 Krátka frekvencia v obraze Aby vystúpili dlhšie signály je potrebné obraz vyhladiť. Obrázok 57 zobrazuje postupné vyhladenie jedného riadku obrázku. Ilustračne sú do obrázka doplnené body, ktoré môže detektor nájsť. 65

67 rozmazanie P1 P2 P3 Obrázok 57 Vyhladenie frekvencií Jedná sa o princíp na ktorom pracuje LoG alebo DoG, popísané v kapitole 3.5. Začína sa nám teda zostavovať riešenie problému detekcií prvotných bodov. Tým, že sa obraz rozmaže, je možné nájsť oblasti, ktoré budú vyzerať približne rovnako na viacerých obrazoch. Dôležité bude nájsť správnu mieru rozmazania, aby obraz nebol moc konkrétny ani abstraktný. Ďalej chcem opäť pripomenúť, že je potrebné brať do úvahy, že kamery musia snímať spoločnú časť scény. Uľahčenia hľadania bodov ďalej dosiahneme tým, že využijeme poznatok z multimierkového priestoru. Mam na mysli zmenšenia obrazu a tým vytvorenie priestoru pre lepšie využitie popisu väčších signálov. V akej mierke má byť ale vstupný obraz zmenšený? Digitálny obraz je pole/tabuľka dát. Pri zmenšení obrázku môžeme využiť viaceré techniky ako je doplnenie informácie z odstráneného bodu do jeho okolia (bilineárna interpolácia, najbližší sused, atď.). Efektívnym sa ukázalo zmenšovanie o polovicu, ktoré využíva detektor SIFT pri vytváraní pyramídy rozmazaných obrázkov. Táto miera zmenšenia je podmienená tvrdeniami v [24] a je vybratá práve pre to aby boli nájdené body naozaj invariantné voči zmene veľkosti. Obraz sa bude zmenšovať pre obe kamery v rovnakom pomere. V našom zámere je preto možné vstupný obraz ľubovoľne zmenšiť a ďalšie spracovanie bude mať už na starosti zvolený detektor. Logicky tu ale bude nutné nájsť správnu mieru zmenšenia, keďže, čím 66

68 väčší bude obraz, tým viac bodov sa nájde. Čím je obraz väčší, tým je výpočtovo náročnejšie body nájsť. Pri určitom pomere zmenšenia je možné jednoducho nepotrebné body obrazu vynechať, napr. pri spomínanom polovičnom zmenšení sa môže vynechať každý druhý bod obrazu. To je síce výpočtovo veľmi efektívne, ale hodnota vynechaného bodu spôsobí skreslenie (vstupný obraz je v digitálnej podobe, takže skreslenie sa zvyšuje), čo môže spôsobiť zväčšenú chybu pri výpočte 3D polohy nájdených párov bodov [28] [44]. Od použitého spôsobu zmenšenia a jeho veľkosti následne závisí aj presnosť pozície detegovaných bodov. Pri zmenšení je možné použiť interpretáciu a hodnota vynechaných bodov tak môže svoje okolie ovplyvniť. Ďalším spôsobom je použiť odhad medzi-bodovej polohy pomocou aproximačných metód ako je napríklad veľmi často používaná metóda určenia pomocou hľadania vrcholu 3D kvadratickej krivky. Pre tento výpočet ale musí byť upravený vstupný obraz. Tu navrhujem použiť práve myšlienku DoG. DoG označuje body podľa toho, ako sa v nich mení intenzita (vid. Kapitola 3.5.1). Nás ale budú zaujímať lokálne extrémy, presne tak ako to robí SIFT. odčítanie Obrázok 58 Príklad DoG Obrázok 58 ukazuje postup získania DoG obrázka, ktorý obsahuje elipsu vyplnenú na čierno. V prvom kroku sa vytvoria dve rôzne rozmazané kópie. Úplne napravo je umiestnený výsledok odčítania rozmazaných obrázkov. Následne sa v obrázku hľadajú lokálne extrémy, to sú časti, ktoré sú vyfarbené na bielo alebo na čierno. Obrázok 59 obsahuje nájdené body vyznačené červenými krížikmi. 67

69 Obrázok 59 Nájdenie lokálnych extrémov Vráťme sa k zisteniu polohy bodu (lokálneho extrému). Pre odhadnutie pozície sa použije hľadanie vrcholu pomocou 3D kvadratickej krivky (Obrázok 60). Je to presne ten istý odhad ako hľadanie špičky v histograme orientácií (viď. Obrázok 2); rozdiel je iba v počte dimenzií. [25] [45] [46] Obrázok 60 Nájdenie medzi-bodovej pozície. Na odhadnutie polohy (zelena značka)slúžia hodnoty existujúcich obrazových bodov (červené značky) [45] Tieto miesta sú znovu nájditeľné aj pri menších deformáciách spôsobené otočením alebo natočením objektov. Jedná sa aj o deformáciu natočenia premietnutých objektov, ktorú spôsobuje iné rozpoloženie kamier snímajúcich tú istú scénu. Pokiaľ zhrniem doteraz popísaný postup tak vyzerá nasledovne: 1. Obraz na vstupne sa zmenší na danú veľkosť. 2. Na základe zmenšenín sa vytvorí ich DoG. 3. V DoG sa nájdu lokálne extrémy. Následne sa lokálne body môžu odfiltrovať (neuznať) na základe viacerých pravidiel: 68

70 Neuznajú sa body blízko okraja. Ako ďaleko od okraja závisí od veľkosti rámca deskriptora. Body, ktorých okolie neobsahuje dostatočný kontrast intenzity. Body na hranách tu hrozí, že vytvorený deskriptor bude zhodný z viacerými inými bodmi. Teoreticky je možné použiť priamo SIFT detektor a deskriptor. Je tu ale obmedzenie, že ako vstup je už zmenšený obraz a vytvorí sa iba jedna oktáva s 4 stupňami a počet vrstiev v DoG bude 3. Výstupom detektoru SIFT je popis kľúčového bodu podľa popísaných kritérií aj s popisom deskriptora. Obrázok 61 Nájdené páry prepojuje vizuálne žltá čiara. Páry vznikli odfiltrovaním nájdených kľúčových bodov z obrázka - Obrázok Určenie oblasti prekrytia Oblasti prekrytia vymedzujú časť v obraze, v ktorom následne budú prebiehať iterácie jednotlivých segmentov. Tieto oblasti je možné ale určiť až keď sú nájdené prvotné popárované body. Predpoklad tvorí fakt, že pár kľúčových bodov sa nájde iba oblasti, kde sa snímaná scéna prekrýva. Pokiaľ sa tak stane, jedná sa o chybné spárovanie a tento stav je nežiaduci. Obrázok 62 zobrazuje nájdenie kľúčových bodov (červené body) a ich párov (žlté čiary). 69

71 Obrázok 62 Vykreslenie párov prvotných bodov Akonáhle sú páry identifikované, je možne tieto oblasti určiť. V prvom kroku sa vytvorí obdĺžnik, ktorý v sebe obsahuje všetky prvotné body, resp. ich tesne obkolesí ako znázorňuje Obrázok 63 - zelený obdĺžnik. Túto oblasť môžeme nazvať ako lokálne hranice a na ďalších obrázkoch ju budem zakresľovať zelenou farbou. Obrázok 63 Obkolesenie prvotných bodov V druhom kroku je potrebné určiť pomer pre prepočet veľkosti pre osi X a Y medzi obrázkami. Pomer sa použije na prepočet najmenšej vzdialenosti ku okraju medzi jednotlivými vstupnými obrazmi. 70

72 Ako hodnotu pre prepočet som použil pomer dĺžok obkolesenej oblasti voči rozlíšeniu premeraného obrazu. Pomer je potrebné vyrátať pre všetky dimenzie obrázka, t.j. výšku a šírku a pre všetky vstupné obrázky. Ak máme dva vstupné obrazy, tak je potrebné určiť štyri pomerové hodnoty. Princíp obsahuje Obrázok 64, kde červené prerušované šípky ukazujú smer prepočtu. Tým istým spôsobom sa určia hranice pre osu Y. Prepočet Prepočet Obrázok 64 Výpočet hraníc prekrytia pre osu X Pridanie vzdialenosti po najbližší okraj zväčšuje obsah prekrytia a v praxi postačuje. Určenie prekrytia silno závisí na pároch, ktoré boli rozpoznané. Tento výpočet nepatrí medzi najpresnejšie spôsoby ale pre moje riešenie je postačujúci a veľkú výhodu má práve v jednoduchosti a rýchlosti vypočítania. Rohové body sú kvôli pokrytiu celej oblasti prekrytia pridané medzi nájdené páry. Pri vytvorení výsledného modelu je potom nutné hĺbku týchto bodov upraviť na rovnú ich susedom aby sa predišlo prineseniu skreslenia do výsledku. Algoritmus pre svoj beh nepotrebuje nijako presne nastaviť polohu kamier. Je to spôsobené tým, že je umiestnený mimo procesu 3D rekonštrukcie. To znamená, že kamery musia byť nastavené vzhľadom na spôsob výpočtu 3D rekonštrukcie Kritérium iterácie Po vytvorení prvotnej siete segmentov je potrebné určiť kritérium, ktoré rozhodne o tom, či sa bude daný segment ďalej spracovávať. Medzi zámery algoritmu patrí získanie takých 71

73 kľúčových bodov, aby boli čo najviac rovnomerne rozmiestené po celom obraze. Preto hlavné kritérium určujúce iteráciu segmentu je práve jeho obsah. Jednotlivé segmenty sú pospájane do trojuholníkov, takže výpočet plochy je jednoduchý. Obsah segmentu sa musí porovnať voči prahovej hodnote, kde ak bude mať segment hodnotu väčšiu, tak bude ďalej spracovaný rozdelený na menšie segmenty. Ako určiť túto hodnotu? Jedným zo spôsobov môže byť nasledovný (pri rovnakom rozlíšení vstupného obrazu): po nájdení oblasti prekrytia sa vyráta priemerná plocha týchto prekrytí. Táto priemerná plocha sa následne vydelí počtom segmentov a výsledok je žiadaná hodnota. Túto hodnotu vyratúvame vždy pred začiatkom celého procesu iterácií. Obrázok 65 zobrazuje obraz z kamery, na ktorom je zobrazená sieť segmentov získaná v kroku detekcie prvotných párov kľúčových bodov. Segmenty, ktoré sa nebudú iterovať sú význačné červenou farbou. Obrázok 65 Zobrazenie vynechaných segmentov, kvôli svojmu obsahu. Ďalším kritériom je hĺbka iterácií. Prvotné body majú úroveň hĺbky 0, pričom segmenty vzniknutím iterácie segmentu majú hĺbku 1. To, do akej hĺbky sa bude dať segmenty rozdeliť, bude predovšetkým závisieť od veľkosti vstupného rozlíšenia a následne aj od veľkosti oblasti prekrytia a hlavne od veľkosti plochy segmentu. Pri rozlíšení vstupu 800x600 nie je vhodné ísť viac ako do hĺbky 2. Plochy, ktoré boli iterované a nenašiel sa v nich žiadny pár, sú označené na preskočenie (nemá zmysel ich znova iterovať). 72

74 4.6.5 Vytvorenie sub-segmentov Aby model obsahoval väčší detail, je nutné v niektorých segmentoch nájsť ďalšie kľúčové body. Tieto body následne rozdelia daný segment na menšie segmenty sub-segmenty. Priestor, v ktorom sa bude vykonávať rekonštrukcia, je definovaný oblasťou prekrytia. Obraz z tohto priestoru je následne možné predpripraviť pre vstup do detektora. Môžu sa tu napríklad zvýrazniť hranové prechody, pridať rozmazanie, atď. Príklad predpripravenia obrázka ilustruje Obrázok 66 pravá časť tu bol použitý hranový detektor. Ďalšia optimalizácia vyplývajúca z rozdelenia do segmentov je možnosť využiť segment a použiť jeho pozíciu ako masku, t.j. detektor bude pracovať iba z obrazovými bodmi nachádzajúcimi sa na ploche segmentu. maska výsek aplikovaná maska Obrázok 66 Oblasť segmentu, ktorú spracuje detektor Pre ilustráciu použijem Obrázok 66. V pravej časti obrázka je zobrazený výsek zo vstupného obrazu kamery, ktorý je definovaný oblasťou prekrytia danej kamery. Povedzme, že aktuálny segment označený zeleným trojuholníkom, bol vybraný pre iteráciu. Na základe pozície trojuholníka vieme vybrať obdĺžnikovú oblasť, ktorá tesne obopína trojuholník (Obrázok 66, ľavá časť - výsek). Následne je potrebné doplniť informáciu o maske (Obrázok 66, ľavá časť - maska). Tieto informácie sa následne posunú do vybraného detektora (Obrázok 66, ľavá časť aplikovaná maska). Pri hľadaní kľúčových bodov v sub-segmente je možné použiť rozdielny detektor ako ten, ktorý bol použitý pri nájdení prvotných bodov. Pre nájdenie kľúčových bodov sú k dispozícií dve nasledovné možnosti a to použiť: 73

75 rozmazanie 1. Hranovo zameraný detektor. 2. Detektor používajúci rozmazanie (pracujúci na princípe LoG alebo DoG). Pri použití hranového detektora nemá zmysel použiť ďalšie iterácie, keďže tento detektor nájde všetky možné kľúčové body. Pri detektoroch pracujúcich s rozmazaním je potrebné správne nastaviť mieru rozmazania, ktorá nesmie byť väčšia ako pri detekcií prvotných bodov. To by spôsobilo utlmenie menších frekvencii aj vzhľadom na rozmazanie pri menšej veľkosti. P1 P2 P5 P4 P5 Obrázok 67 Vytrácanie krátkych frekvencií rozmazávaním Obrázok 67 zobrazuje postupné rozmazávanie. Potencionálne body majú označenie P1 až P4. K nájdeným párom sa pridajú body segmentu a sú pospájané do trojuholníkov na základe Delaunayovej triangulácie priemernej polohy páru. Výsledné segmenty sú pridané iterovanému segmentu ako sub-segmenty. V ďalších iteráciach sa logicky neiterujú už iterované segmenty. 74

76 Obrázok 68 Ukážka iterácií. Červeno je vyznačený výsledok prvotne hľadaných bodov. Na zeleno je vyznačený výsledok prvej iterácie. Pre lepšiu prehľadnosť bol pridaný iba jeden bod z iterácie. 4.7 Zhrnutie a celková schéma algoritmu Ak zhrniem popis algoritmu, zistíme, že je navrhnutý modulovo. Ako moduly je možné meniť detektory použité v dvoch stupňoch a to pri detekcií prvotných bodov (prvý stupeň) a následne v iteráciách (druhý stupeň). Tieto detektory rozdeľujem podľa použitia na: 1. Detektor prvého stupňa - musí nájsť body, ktoré sú jednoznačne určiteľné medzi viacerými vstupnými obrazmi. Tieto body sa následne použijú na rozdelenie obrazu do segmentov. Má byť zameraný na hľadanie veľkých signálov, ktoré zanikajú v spleti krátkych. 2. Detektor druhého stupňa hľadá páry kľúčových bodov už v rámci jednotlivých segmentov. Segmenty obsahujú spoločnú textúru, čo by malo uľahčiť hľadanie týchto bodov. Tento detektor má byť zameraný práve na kratšie signály. Na začiatku je vstupný obraz zmenšený podľa potreby tak, aby sa dosiahlo optimálnych výsledkov. Zmenšený obraz je následne spracovaný detektorom prvého stupňa. Výstup tu tvoria páry kľúčových bodov nájdene v zmenšenom vstupnom obraze. Ako druhý krok sa určí oblasť prekrytia pre každý vstupný obraz. Rohové body oblastí sa pridajú ako virtuálne páry do množiny nájdených párov. Táto množina bodov sa pospája do štruktúry trojuholníkov pomocou Delaunayovej triangulácie. 75

77 Tretí krok spočíva v prevedení iterácií, t.j. spustenie detektora druhého stupňa nad daným segmentom. Pre výber segmentov, ktoré budú iterované je možné použiť viac kritérií. V navrhovanom algoritme a aj experimentoch sú použité tieto: 1. Veľkosť obsahu - porovnáva voči priemernej veľkosti segmentu. Hlavnú plochu, ktorá je využitá tvorí obdĺžnik oblasti prekrytia. Tá je delená počtom segmentov. 2. Počet iterácií udáva, koľko krát sa spustí hľadanie segmentov pre iteráciu. Jedno spustenie iterácií skontroluje všetky aktuálne existujúce segmenty. Body získané iteráciou sa doplnia o body segmentu a je opäť prevedená triangulácia. Získané segmenty sa uvedú ako sub-segmenty práve iterovaného segmentu. Algoritmus svoju činnosť končí pokiaľ je splnená podmienka pre koniec alebo sa nenájde segment, ktorý je možné iterovať. Výstup algoritmu je množina bodov pre každý obraz. Tieto body sú medzi obrazmi spárované a zadelené do segmentov. Nájdené body slúžia ako vstup do procesu výpočtu 3D súradníc. Pokiaľ tento proces predstavíme ako schému, tak bude vyzerať ako Obrázok

78 Vstupný obraz Vytvorenie zmenšeniny Nájdenie prvotných bodov Výpočet oblastí prekrytia Vytvorenie segmentov Nájdi segment pre iteráciu Nájdenie párov kľúčových bodov Áno Je možné previesť iterácie? Nie Vytvorenie sub-segmentov a ich pridanie do segmentu Výpočet 3D modelu Obrázok 69 Schéma navrhnutého algoritmu 77

79 5 Experimenty Aplikácia s experimentálnym algoritmom bola naprogramovaná v jazyku C# s použitím knižnice EmguCV, ktorá vytvára obaľovaciu triedu pre C/C++ knižnicu pre spracovanie obrazu OpenCV. Prostredie pre vývoj bolo zvolené Microsfot Visual Studio Algoritmus bol programovaný pomocou technológie WinForm pre lepšiu podporu prvkov z knižnice EmguCV. Prostredie a jazyk aplikácie boli vybraté zámerne. Jedná sa o nástroje s ktorými mám viacročné skúsenosti. Známe prostredie my umožnilo pohodlne a rýchlo naprogramovať experimentálnu aplikáciu a sústrediť sa predovšetkým na implementáciu navrhnutého algoritmu. Táto kapitola je venovaná experimentom, ktorých hlavným cieľom bolo overiť postup riešenia v praxi. Kapitola je rozdelená na dve hlavné časti a to implementácia a overenie riešenia. Implementácia popisuje zdôvodnenie a možné príčiny spomalenia algoritmu, tie sú ešte raz zhrnuté v poslednej kapitole 6, kde je popísaná vízia optimalizácie algoritmu. 5.1 Implementácia Nasledujúce podkapitoly oboznámia čitateľa s použitými technológiami, ktoré boli použité pri programovaní experimentálnej aplikácie Manažovaný a nemanažovaný kód V súčasnosti sa dajú programovacie jazyky rozdeliť na dve skupiny: Manažované a natívne (nemanažované) jazyky. Rozdiel medzi nimi je v tom, že natívny kód sa kompiluje priamo na elementárne operácie, ktorým rozumie procesor, pričom manažovaný kód je prevedený do medzi-jazyka a ten sa prekladá do natívneho až pri spustení (pripadne za behu) aplikácie. Medzi-jazyk, ktorý používa.net je MSIL (označovaný aj skratkou IL). Pri spustení.net aplikácie IL prekladá CLR do natívneho kódu pre daný procesor (prekladá sa však iba časť a tú si odloží pre prípad ďalšieho použitia). CLR ovláda jednotlivé definície typov, správu pamäte (garbage collector), atď. Priamo používať natívne knižnice v manažovanom kóde nie je možné (rozdielnosť typov, tried a štruktúr...). 78

80 Jedným z prvých jazykov, o ktorom sa dá povedať, že patrí k manažovaným je Java. Medzi-jazyk, ktorý používa sa volá Byte Code spúšťaný na Java Virtual Machine. Vytvára tak abstraktnú vrstvu, ktorá potom dáva príkazy reálnemu systému. Manažované aplikácie majú pár výhod a nevýhod : čas spustenia aplikácie je pomalší, pretože sa ako prvé zavádza CRL, aplikáciu spomaľuje preklad kódu za jej behu, nutnosť mať v systéme podpornú platformu pre preklad medzi-jazyka na natívny kód, ktorá ale zaručuje spustiteľnosť aplikácie na každom systéme s platformou, výhoda a zároveň nevýhoda je automatická správa pamäte, prehľadnejší kód, rýchlejší vývoj aplikácií (často aj niekoľkonásobne), odstránenie niektorých notoricky známych chýb pri práci s pamäťou, veľkou výhodou je, že finálny preklad medzi-kódu sa realizuje presne pre procesor, na ktorom je program spustený na rozdiel od natívneho kódu (ten sa prekladá v rámci spoločných inštrukcií celej rodiny procesorov) OpenCV a EmguCV Pri implementácií som použil knižnicu EmguCV [47], ktorá je obaľuje knižnicu OpenCV. OpenCV [48] je jedna z najrozšírenejších a najviac používaných knižníc pre spracovanie obrazu a je napísaná v jazykoch C a C++. Algoritmy, ktoré obsahuje sú optimalizované a vybratý jazyk zaručuje čo najväčšiu možnú rýchlosť a možnosť spustiť na viacerých platformách. Obe knižnice sú open-source, pričom EmguCV pre komerčné použitie zaťažená licenciou OpenTK a OpenGL OpenTK predstavuje knižnicu, ktorá umožňuje využiť v prostredí.net veľmi jednoducho vykresľovanie grafiky pomocou knižnice OpenGL. Táto knižnica bola použité pre vykreslenie výsledného rekonštruovaného modelu z algoritmu Schéma experimentálnej aplikácie Experimentálna aplikácia bola navrhnutá špeciálne pre lepšie doladenie a nastavenie navrhnutého algoritmu. Výsledná aplikácia tak slúžila ako na diagnostiku nastavení, tak 79

81 pre zobrazovanie výsledkov. Na začiatku je potrebné vybrať kamery, ktoré budú slúžiť ako vstup. Po vybratí kamier sa automaticky spustí navrhnutý algoritmus. Tento krok je spravený úmyselne, aby bolo možné bez potreby vizualizácie 3D modelu pozorovať správanie algoritmu. V tomto kroku vizualizácia predstavuje vykreslenie prekrývajúcich sa oblasti s rozvrhnutím segmentov pre každý obraz. Je tak možné vidieť ako algoritmus vyberá prvotné páry kľúčových bodov a regulovať hodnotu pre SIFT. Reguláciou tejto hodnoty sa reguluje počet nájdených prvotných bodov a závisí od nej rýchlosť celého algoritmu. Do vizualizácie sú následne dokreslené aj body a sub-segmenty vzniknuté pri iteráciách. Pre lepší prehľad sú jednotlivé vrstvy segmentov a bodov inak farebne vykreslené. Ďalšiu funkcionalitu, ktorú aplikácia musela implementovať je spustenie a vykonanie kalibrácie kamier. Kalibrácia využíva funkcie z EmguCV a jedná sa o získanie potrebných matíc prostredníctvom rozdielnosti nájdených bodov v obraze voči virtuálne zostavenému 3D modelu. Jedná sa klasickú techniku kalibrácie prostredníctvom šachovnice (popísane v nasledujúcej kapitole). Po nájdení potrebných matíc sa automaticky spustí prepočet bodov nájdených navrhovaným algoritmom. Výsledok je následne zobrazený pomocou knižnice OpenTK. Pre lepšiu vizualizáciu výsledku je na tento model aplikovaná textúra, ktorá je definovaná prekrývajúcou oblasťou z ľavej kamery. Získanie obrazu Kalibrácia kamier Navrhovaný algoritmus 3D rekonštrukcia OpenGL vizualizácia Vizualizácia segmentov Obrázok 70 Schéma aplikácie 80

82 5.1.5 Implementácia navrhnutého algoritmu Prvotnú komplikáciu spôsobuje samotná 3D rekonštrukcia, ktorá pred samotným spustením musí byť zkalibrovaná. Bez kalibrácie nie je možné poznať matice, ktoré popisujú vzťah medzi kamerami a teda nie je možná samotná rekonštrukcia. Pre vytvorenie výsledného algoritmu čisto pre kalibráciu a rekonštrukciu boli použité vedomosti z [49], [50], [51] a [52]. Keďže tento výpočet a kalibrácia nie sú predmetom tejto práce, tak tento postup v krátkosti zhrniem: 1. Proces kalibrácie spočíva v nájdení pozícií rohov šachovnice na obrazovom vstupe. Tu platí: čím viac rôznych pozícií sa nájde, tým bude výsledný prepočet presnejší. 2. Po zachytení dostatočného počtu dát sa porovnajú rozdiely s originálom, ktorý prestavuje očakávaný počet bodov ideálne rozmiestnený v priestore, t.j. z hodnota je pri všetkých bodoch nula. Tu sa dá nastaviť mierka (napr. že jeden obrazový bod = 1mm) a to tým, že body v modeli rozmiestnime podľa toho, ako je potrebné. V experimente som použil šachovnicu o veľkosť 6x9 rohov s dĺžkou jedného štvorca 13mm. Takže v algoritme som virtuálne body rozmiestnil do súradníc siete o oku štvorca a veľkosti 13 bodov. Tieto rozdiely sú vyrátané funkciami CameraCalibration.StereoCalibrate() a CvInvoke.cvStereoRectify(), ktorá vráti matice potrebné pre prepočet. 3. Zvyšok tvorí iba prepočet nájdených párov na 3D bod (viď. kapitola 3.2). Druhý problém spočíval vo vykreslení výsledku, keďže GDI funkcie vo WinFormoch sú pomalé. Pre vykreslenie som použil knižnicu OpenTK, ktorá obaľuje podporu OpenGL pre vykresľovanie pomocou GPU. Vykresľovanie bolo preto oddelené do samostatného vlákna, ktoré dostalo ako vstupné hodnoty aktuálne získané dáta výsledné nájdené body a textúru ľavej oblasti prekrytia. Preto hlavný algoritmus nie je moc ovplyvnený rutinou vykresľovania. Aj keď sa pri zobrazovaní výsledkov môže zdať opak. Popis algoritmu je opäť rozdelený na dve časti: hlavný popis algoritmu vrátane popisu detektora prvého stupňa a popis logiky iterácie s detektorom druhého stupňa. 81

83 Hlavná časť algoritmu Nasledujúca schéma (Obrázok 71) popisuje jednotlivé kroky algoritmu, kde zeleno vyznačené časti znázorňujú použitie rozloženie záťaže pomocou paralelizácie, ktorá významne urýchlila celý výpočet. Je nutné si ešte uvedomiť, že celý algoritmus pracuje naraz s dvomi vstupnými obrázkami. Vytvorenie zmenšeniny Nájdenie prvotných bodov a vytvorenie párov Vytvorenie segmentov, triangulácia a nájdenie oblastí prekrytia Nájdenie segmentov pre iterácie, spustenie iterácií Kalkulácia výsledného 3D modelu Obrázok 71 Schéma experimentálneho algoritmu Vstupný obraz je na začiatku prevedený do čierno-bieleho formátu, keďže pri rekonštrukcii nám informácia o intenzite postačuje. Je to aj optimalizačné upravenie, keďže deskriptor popisuje iba jeden farebný kanál. Môžeme uvažovať o troch farebných kanáloch ako je napr. formát RGB. Druhá prevádzaná úprava je normalizácia jasu a zvýšenie kontrastu. Cieľom druhej úpravy je čo najväčšia eliminácia rozdielnosti svetelných podmienok vo vstupných obrazoch. 82

84 Nasleduje predprípravný krok, ktoré úlohou je správne zmenšenie obrazu. Moc zmenšený obraz vráti menší počet párov kľúčových bodov. Moc veľký obraz ich vráti veľa. Čim je obraz väčší, tým je aj čas na jeho spracovanie väčší. Je preto dôležité nájsť správny pomer zmenšenia. V experimente boli skúšané rôzne pomery, pre lepší prehľad je vytvorený graf (Obrázok 72). Pri všetkých grafoch predstavuje os x úroveň zmenšenia, kde číslo 1 predstavuje natívne rozlíšenie 640x480 bodov. Počet nájdených párov 120ks 100ks 80ks 60ks 40ks 20ks ks 0,925 0,725 0,525 0,325 0, ms Rýchlosť 100ms 50ms ms 0,925 0,725 0,525 0,325 0,125 Priemerný počet nájdených kľúcových bodov 800ks 600ks 400ks 200ks ks 0,925 0,725 0,525 0,325 0,125 Obrázok 72 Grafy ukazujúce chovanie detektora pri zmenšujúcom sa vstupe Vzorkovanie prebiehalo vždy pri polovičnom zmenšení, t.j. pri mierkach 1, 0.5, 0.25 a Počet kľúčových bodov je získaný vytvorením priemeru z počtov kľúčových bodov 83

85 detegovaných na oboch vstupných obrázkoch. Čas vykonania v sebe obsahuje dĺžku trvania detekcie kľúčových bodov (pre oba vstupné obrazy) a dĺžku operácie hľadania párov v nájdených kľúčových bodoch. Z grafov vyplýva, že optimálna veľkosť zmenšenia sa nachádza v rozmedzí pomerov 0.5 až 0,25. V algoritme je použitá miera 0,375, aby sa využil optimálny pomer medzi veľkosťou spracovávaného obrazu, počtu kľúčových bodov, rýchlosti a presnosti polohy daných nájdených párov. Zmenšený obraz tvorí vstup pre SIFT detektor, ktorého implementáciu obsahuje priamo EmguCV-OpenCV. Podľa návrhu algoritmu bol nastavený počet vytvorených oktáv na jednu, hodnota kontrastného prahu podľa odporúčaní na hodnotu 0,04 [53] a hodnota hranového prahu na 10. Výber algoritmu SIFT podmieňuje jeho schopnosť hľadať väčší počet kľúčových bodov. Je síce pomalší ako SURF ale je menej háklivý na otočenie, zmenu svetelných podmienok a zmenu pozorovacieho uhlu. [35] [54] Pri testoch sa mi podarilo určiť optimálnu hodnotu parametra sigma (určuje veľkosť rozmazania, rozdiel v rozmazaní zobrazuje Obrázok 73) na. Táto hodnota je ale platná len pre zmenšenie na mierku 0,375. Pri iných veľkostiach sa táto hodnota musí upraviť. Príliš malá hodnota rozmaže obraz málo a bude nájdených veľa bodov (neodstránia sa všetky malé frekvencie). Ak bude hodnota rozmazania veľká, tak bude nájdených bodov veľmi málo. Príliš veľká hodnota ďalej predlžuje vytvorenie DoG vrstiev, pre náročnejší výpočet rozmazania obrazu. Čím je väčšia hodnota, tým je rozmazanie silnejšie, ale je tým pádom väčšie aj konlučné jadro. Výsledok znamená zvýšenie počtu operácií a teda spomalenie algoritmu. 84

86 δ δ 7 δ Obrázok 73 Jemnosť výstupu 3D rekonštrukcie na základe výstupu detektora prvého stupňa v závislosti na parametre Chcel by som upozorniť, že nastavenie detektoru prvého stupňa môže byť plne automatické. Auto-korekcia môže byť založená na čase, ktorý potrebuje algoritmus na nájdenie, prípadne na počte výsledných segmentov. Auto-korektúra môže následne meniť viac parametrov, v mojej experimentálnej aplikácií táto možnosť však nebola implementovaná. Ďalší krok spočíva v nájdení párov medzi bodmi nájdených na zmenšeninách vstupných obrázkov. Pri párovaní bola použitá metóda k-najbližších susedov a následne filtrovanie podľa jedinečnosti, spoločnej orientácie, mierky a rotácie. Pri obrázkoch z rovnakým rozlíšením je možné ešte využiť jednu filtračnú techniku a to porovnanie konkrétnej priamky, ktorá prechádza bodmi páru. Filter zaujíma uhol, ktorý priamka zviera. Idea spočíva v tom, že pokiaľ majú obrazy rovnaké rozlíšenie a sú usporiadané vedľa seba, tak každá priamka čo spája páry, má približne rovnaký uhol. Tolerancia uhlu ale musí byť zvolená voľnejšie a silne závisí od nastavenia kamery. Najviac citeľné je obmedzenie pokiaľ sa nachádzajú objekty v blízkosti kamery, teda pokiaľ bude voľnosť malá, okolo 5, budú tieto páry ignorované. 85

87 Obrázok 74 Chybné spárovanie kľúčových bodov Obrázok 74 zobrazuje páry kľúčov. Medzi pármi sa nachádza jeden chybne určený pár a je označený červenými šípkami. Priamka chybného páru má uhol približne 7.72, pričom priemerný uhol mal interval [ ]. Ďalej je možné na tomto obrázku pozorovať malý rozdiel medzi uhlami párov bližšie ku kamere a tých ďalej. Zle určenie párov je celkom bežné. Je však treba si uvedomiť primárne použitie detektora SIFT. V drvivej väčšine implementácií je používaný na rozpoznávanie objektov, pričom obsahuje databázu kľúčov získaných z tréningových obrazov/obrazu. Detekcia prebieha tak, že sa určia minimálne 3 zhodné kľúče. Moja aplikácia potrebuje presne nájdené páry, preto som pri experimentovaní tento druh filtru použil a pracoval som so vstupom, ktorý mal rovnaké rozlíšenie. 3D model sa rekonštruuje na základe rozdielov v polohe bodov páru. Spomínaný chybný pár by umiestnil 3D bod veľmi dopredu (ku kamere) alebo veľmi dozadu. Ako ďalšia je vypočítaná oblasť prekrytia a body týchto oblasti sú pridané do množiny nájdených bodov. Následná triangulácia je prevedená pomocou Delaunayovej triangulácie, ktorá je vykonaná na priemeroch pozícií bodov obrázkov. Vzniknuté trojuholníky tvoria ďalšiu množinu. Pred spustením iterácií sa určí prah obsahu, ktorý sa rovná priemernej ploche obsahu oblastí prekrytia, delenej počtom vzniknutých trojuholníkov. Následne sa kontroluje plocha všetkých trojuholníkov. Iterácia sa spúšťa iba ak obsah segmentu je väčší ako daný prah. Po prejdení všetkých segmentov sa musí tento prah znovu prepočítať. 86

88 Obrázok 75 Schéma iterácie Ak už iterácia segmentov prebehla, v ďalšej iterácií sa iterujú nie hlavné segmenty ale práve ich vyhovujúce sub-segmenty. Ak už nie je žiadny segment, ktorý by sa dal iterovať alebo je dosiahnutý maximálny počet celkových iterácií, spúšťa sa 3D rekonštrukcia nájdených bodov. Obrázok 76 Výsledok 3D rekonštrukcie výstupu detektora prvého stupňa. S textúrou (vľavo) a disparitná mapa (vpravo) 87

89 Prevedenie iterácie Ako prvé sa zo vstupného obrazu vyreže oblasť, ktorá odpovedá oblasti prekrytia pre daný obrázok. Túto oblasť je možné následne upraviť podľa potrieb pre lepšiu detekciu vybratého detektora. Pre každý integrovaný segment je vytvorená maska, ktorá definuje oblasť, kde bude vybratý detektor hľadať a popisovať kľúčové body presne ako ilustruje Obrázok 66. Body, ktoré sú nájdené veľmi blízko hraníc (Error! Reference source not found. červené šípky), vytvárajú pre algoritmus tvarovo nevhodné segmenty. Keďže vo výsledku vytvárajú trojuholníky s veľkým nepomerom medzi obsahom a obvodom. Obrázok 77 Body nájdené v sub-segmente. Červené šípky ukazujú body nájdené v tesnej blízkosti hranice segmentu. Počas experimentov som však prišiel na to, že tieto trojuholníky síce nesprehľadňujú štruktúru, ale majú na činnosť algoritmu skôr pozitívny dopad. V konečnom dôsledku sú preskočené práve pre svoj malý obsah a výsledné segmenty sú viac delené, t.j. pre ďalšie iterácie ostávajú segmenty s menším obsahom a teda ich iterácia je rýchlejšia. V tomto prípade ma trojuholník malý obsah v pomere s jeho obvodom. Pokiaľ nechceme, aby boli body blízko hraníc vložené do výsledku, môžeme ich nájdeniu zabrániť upravením plochy ktorá určuje priestor pre ich hľadanie (Obrázok 78). 88

90 Obrázok 78 Zobrazenie pôvodnej masky a jej následne zmenšenie Hlavný rozdiel medzi detektormi pre prvotné body a iterácie je v tom, že pri prvotných bodoch sa hľadanie zameriava na väčšie frekvencie. Pri iteráciach už máme rozdelený obraz na základe veľkých frekvencií a je preto možné sa zamerať práve na tie menšie. Experimentálna aplikácia umožňuje vizuálne zobraziť body nájdené v jednotlivých iteráciách, pričom maximálny počet iterácií je nastavený na 5. Dôvodom tohto obmedzenia je čas potrebný k vyrátaniu modelu, ktorý sa dostáva na úroveň viac ako 500ms, čo je pre moje zameranie príliš veľká hodnota. Ďalej sa radikálne znižuje počet nájdených párov, čo je logické, keďže pre ďalšie iterácie ostávajú čoraz menšie segmenty. Je to jeden z dôvodov, prečo v experimentoch použijem maximálne 2 iterácie. Obrázok 79 zobrazuje výsledok iterácií; v tomto prípade je maximálny počet dosiahnutých iterácií 4. 89

91 Obrázok 79 Ukážka zobrazenia segmentov po zapnutí iterácií. Ako detektor druhého stupňa je použitý SURF. Vysvetlenie farieb: Prvotné body červená, iterácie: 1 stupeň zelená, 2 stupeň - modrá, 3 stupeň fialová, 4 stupeň hnedá, 5 stupeň - zlatá V rámci experimentov bolo vyskúšané čo najväčšie množstvo detektorov, ktoré boli implementované v knižnici EmguCV. Výsledky jednotlivých detektorov sú zhrnuté v nasledujúcej kapitole. 90

92 Obrázok 80 Výsledný 3D model, vľavo znovu triangulovaný výstup, vpravo priamy výstup z algoritmu. Obrázky nezobrazujú tú istú sieť bodov. Slúžia iba pre ilustráciu. Aplikácia následne obsahuje dodatočnú trianguláciu výsledných bodov, keďže priamy výstup z algoritmu nie je ideálne rozdelený (viď. Obrázok 80). Tým pádom dostaneme lepšie rozdelený model a táto operácia nie je až tak výpočtovo náročná. 5.2 Rýchlosť algoritmu Pre spustenie experimentov bol použitý notebook HP ELiteBook 8560w s procesorom Intel Core i7-2670qm s veľkosťou RAM 12GB a s grafickou kartou NVIDIA Quadro 1000M v základnej výbave. Použitý operačný systém bol Windows 8 64Bit. Vstup snímali dve rovnaké kamery - Logitech c910. Pred samotným popisom výsledkov by som ešte rád uviedol niekoľko poznámok: Výkon aplikácie silne závisí od zvoleného jazyka. Manažované jazyky ho budú mať logicky horší ako nemanažované. 91

93 Výkon aplikácie silne závisí aj od samotnej architektúry aplikácie. To sa netýka iba hlavnej aplikácie ale aj aplikácií tretích strán. Algoritmus som sa snažil naprogramovať čo najviac optimálne vzhľadom na jeho rýchlosť. Všetky prvky, ktoré sa dali spustiť paralelne, sú aj tak spustené. Algoritmus pracuje s číselným dátovým typom double a float aby sa dosiahla čo najväčšia presnosť a rýchlosť. Rýchlosť algoritmu sa dá ešte zrýchliť hlbšími optimalizáciami kódu či je aj predmetom ďalšieho výskumu. Výstup detektorov a proces hľadania párov nie je úplne dokonalý. Výstup navrhnutého algoritmu nie je nijako upravovaný. To znamená, že pri chybne určenom páre alebo zle umiestnenom kľúčovom bode takýto bod výrazne vyskočí smerom ku kamere alebo od nej (Obrázok 81). Je to spôsobené samotným princípom 3D rekonštrukcie, kde je výsledná pozícia reálneho bodu stanovená na základe rozdielnosti polohy bodov zo vstupného obrazu. Obrázok 81 Chyba detektora. Červené šípky označujú chybne nájdené páry bodov. Podobné chyby by bolo možné odstrániť použitím pamäťové bufferu, pre štatistické odstránenie chybne určených párov a vytvorenie lepšieho modelu. Hľadanie prvotných bodov Základné testované rozlíšenie bolo nastavené na veľkosť 640x480 bodov. Ako vstup do detektoru pre prvotné nájdenie bol obraz 2x zmenšený (miera 0.25 z originálu) o polovicu t.j. na rozlíšenie 160x120 bodov, aj keď podľa kapitoly 5.1.5, by mala byť miera nastavená na 0,375. Vytvorenie zmenšenín väčšinou netrvalo dlhšie ako 1ms, takže je tento čas zanedbateľný. 92

94 Ako je uvedené v kapitole ako detektor prvotných bodov bol vybraný algoritmus SIFT. Parametre pre prvý stupeň detektora boli nastavené nasledovne: Vstupný obraz o Prevedený na čierno-biely o Vyvážený podľa histogramu o Zmenšený na pomer 0,25 o Ako detektor bol zvolený SIFT s nasledovnými parametrami: 1,35 Prah kontrastu = 0,03 Hranový prah = 10 Nastavenie pre hľadania párov na základe deskriptorov: o Voľnosť jedinečnosti deskriptora = 0,85 o Veľkosť jedného koša = 1,5 obrazového bodu o Počet uhlových kontajnerov = 36 Dĺžka času spracovania sa pohybovala medzi 14-23ms s priemernou hodnotou 17ms. Množstvo rozpoznaných potencionálnych kľúčových bodov pre každý vstupný obraz sa pohyboval v rozmedzí Po párovaní bolo priemerne nájdených párov, kde sa priemer pohyboval okolo 20 párov. Rýchlosť nájdenia párov sa medzi 12-13ms. Triangulácia párov prebehla pod 1ms. Pokiaľ zhrnieme čas pre výpočet prvotných bodov dostávame sa na čas pod 30ms. Chcem ešte pripomenúť, že čas sa môže meniť v závislosti od rôznorodosti textúr obrázka pozorovanej scény. Beh algoritmu sa dá optimalizovať zmenením hodnoty parametru prvotne použitého detektoru. Rýchlosť iterácie Iterácia bola skúšaná s viacerými detektormi. Testované boli detektory: SIFT, SURF, FAST, STAR a ORB detektor. Aplikáciu týchto detektorov obsahuje knižnica EmguCV. Pred samotným zhrnutím by som chcel ešte uviesť pár poznatkov, ktoré boli získané pri experimentovaní s dostupnými detektormi. 93

95 SIFT Pri hľadaní optimálneho nastavenia SIFT detektoru hrá kľúčovú úlohu nastavenie parametru. Táto hodnota musí byť nižšia ako je hodnota použitá v detektore prvého stupňa. Príliš nízka hodnota nájde veľa párov a ďalšie iterácie sú zbytočné. Opäť platí, že moc malá hodnota nájde viac kľúčov a môže dôjsť k vyššej chybovosti výsledku. To aj napriek tomu, že je hľadanie výrazne obmedzené hranicami iterovaného segmentu. Optimálne hodnoty sú nasledovné: Detektor o o Prah kontrastu = 0,03 o Hranový prah = 10 Nastavenie pre hľadanie párov na základe deskriptorov: o Voľnosť jedinečnosti deskriptora = 0,65 o Veľkosť jedného koša = 2 obrazové body o Počet uhlových kontajnerov = 14 Výsledky experimentov: Prvá iterácia : o Čas: 109ms až 135ms priemerne 120ms o Počet iterovaných segmentov: priemerne 17 o Počet nájdených párov: 8-22 priemerne 14 Druhá iterácia o Čas: 164ms až 240ms priemerne 180ms o Počet iterovaných segmentov: priemerne 70 o Počet nájdených párov: 5-37 priemerne 22 Po vizuálnej stránke sa medzi použitím jednej a dvomi iteráciami nejaví zásadný rozdiel aj napriek väčšiemu počtu párov. Chybovosť algoritmu je malá. 94

96 Obrázok 82 SIFT výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch iteráciach SURF Parameter, s ktorým umožňuje pracovať implementácia detektora SURF v knižnici, je minimálna veľkosť determinantu hessianskej matice. Tu opäť platí, čim nižšia hodnota, tým je viac bodov rozpoznaných a tým pádom aj detekcia trvá dlhšie. Detektor o Minimálna hodnota determinanta bola stanovená na 500 Nastavenie pre hľadanie párov na základe deskriptorov: o Voľnosť jedinečnosti deskriptora = 0,65 o Veľkosť jedného koša = 2 obrazové body o Počet uhlových kontajnerov = 2 95

97 Výsledky experimentov: Prvá iterácia : o Čas: 68ms-78ms priemerne 72ms o Počet iterovaných segmentov: priemerne 18 o Počet nájdených párov: 4-18 priemerne 11 Druhá iterácia o Čas: 90ms až 129ms priemerne 105ms o Počet iterovaných segmentov: priemerne 55 o Počet nájdených párov: 3-23 priemerne 11 Vizuálna kvalita výsledného modelu je dobrá. Chybnosť je menšia ako pri použití detektora SIFT. Obe iterácie prebehnú rýchlo a je možné ich spustiť dve. Obrázok 83 SURF výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch iteráciach 96

98 FAST Jedná sa čisto o rohový detektor bez deskriptora. Pre určenie párov je deskriptor nevyhnutný. Počas experimentov som využil FAST pre detekciu bodov a SUFR pre deskripciu (keďže je rýchly). Parameter, ktorý sa dal pri detektore FAST nastaviť, je prahová hodnota pre rozdiel medzi hodnotou intenzity stredového bodu a jeho okolia. Opäť platí, čim nižšia, tým viac bodov je nájdených. Detektor o Prahová hodnota = 24 Nastavenie pre hľadanie párov na základe deskriptorov: o Voľnosť jedinečnosti deskriptora = 0,65 o Veľkosť jedného koša = 1,5 obrazového bodu o Počet uhlových kontajnerov = 20 Výsledky experimentov: Prvá iterácia : o Čas: 91ms-123ms priemerne 100ms o Počet iterovaných segmentov: 9-19 priemerne 17 o Počet nájdených párov: priemerne 45 Druhá iterácia o Čas: 75ms až 103ms priemerne 87ms o Počet iterovaných segmentov: priemerne 80 o Počet nájdených párov: priemerne 64 Krátka doba iterácií je spôsobená tým, že je detektor hranový. Výsledný 3D model taktiež vyzerá vizuálne dobre. Chybovosť je rovnaká ako pri predchádzajúcich detektoroch. 97

99 Obrázok 84 FAST výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch STAR Jedná sa o detektor založený na princípe detektora CenSurE [55]. Detektor vychádza z detektorov SIFT a SURF, pričom pre hľadanie využíva rozdiel vo filtroch v tvare kruhu, oktogramu a obdĺžnika. Ako deskriptor používa upravenú verziu deskriptora SURF. [56] Implementácia v EmguCV umožňuje iba vyhľadať kľúčový bod. Ako deskriptor na základe predchádzajúceho textu vybratý SURF deskriptor. je Detektor o Veľkosť oblasti pre hľadanie kľúča = 12 o Prahová hodnota pre odhad laplaciana = 21 o Prahová hodnota pre elimináciu hrán = 10 o Prahová hodnota pre elimináciu hrán pri hľadaní kľúča = 8 o NoMax hodnota = 5 Nastavenie pre hľadanie párov na základe deskriptora: 98

100 o Voľnosť jedinečnosti deskriptora = 0,65 o Veľkosť jedného koša = 2 obrazové body o Počet uhlových kontajnerov = 20 Výsledky experimentov: Prvá iterácia : o Čas: 17ms-25ms priemerne 20ms o Počet iterovaných segmentov: priemerne 17 o Počet nájdených párov: 4-11 priemerne 7 Druhá iterácia o Čas: 25ms až 37ms priemerne 29ms o Počet iterovaných segmentov: priemerne 40 o Počet nájdených párov: 4-21 priemerne 11 Tento detektor je rýchly. Výsledný počet párov je celkom malý, čo ma vplyv aj na celkový vizuálny dojem rekonštruovanej scény. 99

101 Obrázok 85 STAR výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch ORB Tento detektor bol vytvorený v tzv. OpenCV labolatóriach. Tento algoritmus predstavil Ethan Rublee a spol. v [57]. Jedná sa o rozšírenie detektora FAST, tak aby vytvoril alternatívu k detektoru SIFT a SURF. Hlavný rozdiel spočíva v tom, že SIFT a SURF sú patentované pričom ORB nie. [58] Detektor o Pomer použitý pri vytváraní pyramídy = 1,2 o Počet úrovní pyramídy = 4 o Hranová vzdialenosť = 20 o Úroveň vloženia natívneho obrázku = 0 o Počet náhodných bodov pre vytvorenie deskriptora = 2 o Bodovanie = FAST o Veľkosť bloku = 34 Nastavenie pre hľadanie párov na základe deskriptora: 100

102 o Voľnosť jedinečnosti deskriptora = 0,79 o Veľkosť jedného koša = 2 obrazové body o Počet uhlových kontajnerov = 17 Výsledky experimentov: Prvá iterácia : o Čas: 18ms-26ms priemerne 21 ms o Počet iterovaných segmentov: 7-18 priemerne 16 o Počet nájdených párov: 4-16 priemerne 8 Druhá iterácia o Čas: 26ms až 41ms priemerne 35ms o Počet iterovaných segmentov: priemerne 49 o Počet nájdených párov: 0-16 priemerne 10 Iterácie sú veľmi rýchle a výstup celkom stabilný. Nevýhoda je v nízkom počte nájdených párov. 101

103 Obrázok 86 ORB výsledný model. Vľavo pri jednej iterácii, vpravo pri dvoch 102

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť

More information

Databázové systémy. SQL Window functions

Databázové systémy. SQL Window functions Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score

More information

Aplikačný dizajn manuál

Aplikačný dizajn manuál Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,

More information

kucharka exportu pro 9FFFIMU

kucharka exportu pro 9FFFIMU požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,

More information

SMISS. Scalable Multifunctional Indoor Scanning System. Tomáš Kovačovský supervisor: Mgr. Ján Žižka

SMISS. Scalable Multifunctional Indoor Scanning System. Tomáš Kovačovský supervisor: Mgr. Ján Žižka SMISS Scalable Multifunctional Indoor Scanning System Tomáš Kovačovský supervisor: Mgr. Ján Žižka Úvod SMISS je bezkontaktný optický 3D Scanner na automatickú rekonštrukciu reálnej scény Pracuje na báze

More information

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠOVANIE KONCEPTU TRIEDY VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie

More information

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je

More information

Registrácia účtu Hik-Connect

Registrácia účtu Hik-Connect Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document

More information

Poradové a agregačné window funkcie. ROLLUP a CUBE

Poradové a agregačné window funkcie. ROLLUP a CUBE Poradové a agregačné window funkcie. ROLLUP a CUBE 1) Poradové a agregačné window funkcie 2) Extrémy pomocou DENSE_RANK(), TOP() - Príklady 3) Spriemernené poradia 4) Kumulatívne súčty 5) Group By a Datepart,

More information

Copyright 2016 by Martin Krug. All rights reserved.

Copyright 2016 by Martin Krug. All rights reserved. MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without

More information

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami)

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) I2AI: Lecture 04 Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) Lubica Benuskova Reading: AIMA 3 rd ed. chap. 6 ending with 6.3.2 1 Constraint satisfaction problems (CSP) We w

More information

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1 VLSM a CIDR CCNA2 Kapitola 6 1 Trošku histórie Pred rokom 1981 IP adresy používali na špecifikáciu siete len prvých 8 bitov Rok1981, RFC 791 Zaviedol adresný priestor s tromi triedami adries Polovica 90

More information

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový

More information

Databázy (1) Prednáška 11. Alexander Šimko

Databázy (1) Prednáška 11. Alexander Šimko Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy

More information

Spôsoby zistenia ID KEP

Spôsoby zistenia ID KEP Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup

More information

METODA SLEDOVÁNÍ PŘÍZNAKŮ PRO REGISTRACI SEKVENCE MEDICÍNSKÝCH OBRAZŮ FEATURE TRACKING METHOD FOR MEDICAL IMAGES REGISTRATION

METODA SLEDOVÁNÍ PŘÍZNAKŮ PRO REGISTRACI SEKVENCE MEDICÍNSKÝCH OBRAZŮ FEATURE TRACKING METHOD FOR MEDICAL IMAGES REGISTRATION VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV NIOMEDICÍNSKÉHO INŽENÝRSTVÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT

More information

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2014, vol. LX article No. 1991

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2014, vol. LX article No. 1991 Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2014, vol. LX article No. 1991 Rastislav PIRNÍK *, Ján HALGAŠ **, Marián HRUBOŠ * and Jakub TRABALÍK * DETECTION AND IDENTIFICATION

More information

Riešenia a technológie pre jednotnú správu používateľov

Riešenia a technológie pre jednotnú správu používateľov Riešenia a technológie pre jednotnú správu používateľov Radovan Semančík Agenda Úvod: Identity Crisis Technológie správy používateľov Postup nasadenia Záver Súčasný stav IT Security Nekonzistentné bezpečnostné

More information

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals...

Desatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals... Desatinné čísla #1a Mravec išiel 5,5 cm presne na sever, potom 3,4 cm na východ, 1,8 cm na juh, 14,3 cm na západ, 1,3 cm na sever a 10,9 cm na východ. Najmenej koľko cm musí teraz prejsť, aby sa dostal

More information

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém

Crestron Mercury. Univerzálny Videokonferenčný a Kolaboračný systém Crestron Mercury Univerzálny Videokonferenčný a Kolaboračný systém Tradičná malá zasadacia miestnosť CRESTRON Mercury Videokonferenčná miestnosť Možnosť rezervácie miestnosti: Prostredníctvom MS Outlook

More information

Obsah. SOA REST REST princípy REST výhody prest. Otázky

Obsah. SOA REST REST princípy REST výhody prest. Otázky REST Peter Rybár Obsah SOA REST REST princípy REST výhody prest Otázky SOA implementácie WEB (1990) CORBA (1991) XML-RPC (1998) WS-* (1998) SOAP RPC/literal SOAP Document/literal (2001) REST (2000) SOA

More information

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 1, 2009, vol. LV article No. 1674

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 1, 2009, vol. LV article No. 1674 Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 1, 2009, vol. LV article No. 1674 Petr ŠPA EK *, Petr NOVÁK **, Vladimír MOSTÝN *** VIZUALIZACE VZDÁLENOSTÍ UR ENÝCH POMOCÍ

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia mar.18 feb.18 jan.18 dec.17 nov.17 okt.17 sep.17 aug.17 júl.17 jún.17 máj.17 apr.17 mar.17 Internetová populácia SR 12+ 3 904 509 3 802 048 3 870 654 3 830

More information

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca

TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky

More information

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 851(01(Bra@slava Titl.: Ján(Hrčka Bohrova(11 851(01(Bra@slava V(Bra@slave(21.11.2013 Vec:(Odpoveď(na(informácie(ohľadom(mandátnej(zmluvy(na(základe(Zákona(č.(211/2000(Zb.

More information

Tvorba informačných systémov. 4. prednáška: Návrh IS

Tvorba informačných systémov. 4. prednáška: Návrh IS Tvorba informačných systémov 4. prednáška: Návrh IS Návrh informačného systému: témy Ciele návrhu ERD DFD Princípy OOP Objektová normalizácia SDD Architektonické pohľady UML diagramy Architektonické štýly

More information

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám.

LL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL LED svietidlá na osvetlenie športovísk MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL SPORT LL SPORT je sofistikované vysoko výkonné LED svietidlo špeciálne

More information

Manuál k programu FileZilla

Manuál k programu FileZilla Manuál k programu FileZilla EXO TECHNOLOGIES spol. s.r.o. Garbiarska 3 Stará Ľubovňa 064 01 IČO: 36 485 161 IČ DPH: SK2020004503 support@exohosting.sk www.exohosting.sk 1 Úvod EXO HOSTING tím pre Vás pripravil

More information

NIKY a NIKY S. JEDNOFÁZOVÉ UPS od 600 do 3000 VA SVETOVÝ ŠPECIALISTA PRE ELEKTRICKÉ INŠTALÁCIE A DIGITÁLNE SYSTÉMY BUDOV

NIKY a NIKY S. JEDNOFÁZOVÉ UPS od 600 do 3000 VA SVETOVÝ ŠPECIALISTA PRE ELEKTRICKÉ INŠTALÁCIE A DIGITÁLNE SYSTÉMY BUDOV NIKY a NIKY S JEDNOFÁZOVÉ UPS od 600 do 3000 VA SVETOVÝ ŠPECIALISTA PRE ELEKTRICKÉ ŠTALÁCIE A DIGITÁLNE SYSTÉMY BUDOV Ideálna ochrana pre malé kancelárie a domáce kancelárske aplikácie. Tento rad ponúka

More information

Coordinates ordering in parallel coordinates views

Coordinates ordering in parallel coordinates views Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Coordinates ordering in parallel coordinates views Bratislava, 2011 Lukáš Chripko Univerzita Komenského v Bratislave Fakulta

More information

Problém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec

Problém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec Problém Big Data a ako ho riešiť pomocou NoSQL Ján Zázrivec Softec Dáta dnešného sveta Oblasti kde sa spracováva veľké množstvo dát: Internet Web vyhľadávače, Sociálne siete Veda Large Hadron Collider,

More information

Mesačná kontrolná správa

Mesačná kontrolná správa Mesačná kontrolná správa Štrukturálna štúdia dec.16 nov.16 okt.16 sep.16 aug.16 júl.16 jún.16 máj.16 apr.16 mar.16 feb.16 jan.16 Internetová populácia SR 12+ 3 728 988 3 718 495 3 718 802 3 711 581 3 700

More information

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky

BGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky BGP - duálne prepojenie AS (primary + backup spoj), s IBGP, cez virtuální L2 linky Peter Jašica Abstrakt: Cieľom tohto projektu je zhotoviť a otestovať funkčnosť BGP s dvojitým prepojením Autonómnych systémov.

More information

MOŽNOSTI VYUŽITIA ĽUDSKÉHO POSTUPU PRE NÁVRH

MOŽNOSTI VYUŽITIA ĽUDSKÉHO POSTUPU PRE NÁVRH MOŽNOSTI VYUŽITIA ĽUDSKÉHO POSTUPU PRE NÁVRH ALGORITMOV NA RIEŠENIE ŤAŽKÝCH PROBLÉMOV DIPLOMOVÁ PRÁCA Matej Lučenič UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY KATEDRA INFORMATIKY

More information

Testovanie bieleho šumu

Testovanie bieleho šumu Beáta Stehlíková FMFI UK Bratislava Opakovanie z prednášky Vygenerujeme dáta Vygenerujeme dáta: N

More information

ŽILINSKÁ UNIVERZITA V ŽILINE ELEKTROTECHNICKÁ FAKULTA

ŽILINSKÁ UNIVERZITA V ŽILINE ELEKTROTECHNICKÁ FAKULTA ŽILINSKÁ UNIVERZITA V ŽILINE ELEKTROTECHNICKÁ FAKULTA 282603201810xx NÁZOV PRÁCE BAKALÁRSKA PRÁCA 2018 Pavol Mrkvička ŽILINSKÁ UNIVERZITA V ŽILINE ELEKTROTECHNICKÁ FAKULTA NÁZOV PRÁCE Bakalárska práca

More information

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2008, vol. LIV, article No. 1632

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2008, vol. LIV, article No. 1632 Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2008, vol. LIV, article No. 1632 Sylvia ROVŇÁKOVÁ *, Ondrej LÍŠKA ** LASER CUTTING MACHINE AND OPTIMISATION OF INPUT PARAMETERS

More information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange

More information

Kvalita digitálneho modelu povrchu vytvoreného algoritmami počítačového videnia komparatívna štúdia

Kvalita digitálneho modelu povrchu vytvoreného algoritmami počítačového videnia komparatívna štúdia Kvalita digitálneho modelu povrchu vytvoreného algoritmami počítačového videnia komparatívna štúdia QUALITY OF DIGITAL SURFACE MODEL GENERATED BY COMPUTER VISION ALGORITHMS COMPARATIVE STUDY Marek Fraštia,

More information

1 Komplexný príklad využitia OOP

1 Komplexný príklad využitia OOP 1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou

More information

ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX Bratislava

ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX Bratislava ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX 45 826 45 Bratislava TASR, SITA Vaša značka/zo dňa Naša značka Vybavuje Bratislava -/- OHVBPKV/5249-6/19287/2018/Ki Ing. Kišacová,

More information

DETEKCE OHNĚ V OBRAZE A VIDEU

DETEKCE OHNĚ V OBRAZE A VIDEU VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga.

Ochrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga. Ochrana koncových staníc pomocou Cisco Security Agent 6.0 Ľubomír Varga lubomir.varga@lynx.sk Agenda CSA 6.0 refresh Vybrané vlastnosti CSA 6.0 Application Trust levels Notify User Rule Actions User Justifications

More information

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov D.4 Kontajner XML údajov (XMLDataContainer) Príloha č. 11 k výnosu č. 55/2014 Z. z. [pridaná novelou č. 275/2014 Z. z.,

More information

Vzory, rámce a webové aplikácie

Vzory, rámce a webové aplikácie Vzory, rámce a webové aplikácie Jakub Šimko jakub.simko@stuba.sk Návrhové vzory (načo slúžia?) 1. Dobré zvyky v programovaní 2. Riešia často sa opakujúce problémy praxou overeným spôsobom 3. Pomôžu nám

More information

Spracovanie obrazu (Image Processing)

Spracovanie obrazu (Image Processing) Spracovanie obrazu (Image Processing) Michal Fano, Gábor Blázsovits a Marek Zimányi 1 Matematicky model obrazu a snímanie obrazu... 2 1.1 Susednosť... 2 1.2 Teselácia roviny... 3 1.3 Digitalizácia... 3

More information

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.

More information

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Jazyk SQL Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Jazyk SQL - Structured Query Language SQL je počítačový jazyk určený na komunikáciu s relačným SRBD neprocedurálny (deklaratívny) jazyk

More information

AUTOMATICKÉ OSTŘENÍ S VYUŽITÍM CAN-EF MODULU

AUTOMATICKÉ OSTŘENÍ S VYUŽITÍM CAN-EF MODULU VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION

More information

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia Microsoft Azure platforma pre Cloud Computing Juraj Šitina, Microsoft Slovakia m Agenda Cloud Computing Pohľad Microsoftu Predstavujeme platformu Microsoft Azure Benefity Cloud Computingu Microsoft je

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Analýza a vizualizácia veľkých dát

Analýza a vizualizácia veľkých dát MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Analýza a vizualizácia veľkých dát DIPLOMOVÁ PRÁCA Bc. Jakub Caban Brno, 2015 Prehlásenie Prehlasujem, že táto diplomová práca je mojím pôvodným autorským dielom,

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

3D videnie a geometria. Sonka, Hlavac, Boyle: Image Processing, Analysis and Machine vision, kapitola: 3D vision, geometry

3D videnie a geometria. Sonka, Hlavac, Boyle: Image Processing, Analysis and Machine vision, kapitola: 3D vision, geometry 3D videnie a geometria Sonka, Hlavac, Boyle: Image Processing, Analysis and Machine vision, kapitola: 3D vision, geometry Marr Zlom vo výskume 3D videnia statickej scény Navrhol teóriu 3D videnia Svoj

More information

POKROČILÉ C++ Marian Vittek

POKROČILÉ C++ Marian Vittek POKROČILÉ C++ Marian Vittek vittek@fmph.uniba.sk O predmete Pôvodne seminár Teraz normálna prednáška so skúškou/testom Predmetom kurzu je detailnejší pohľad na jazyk C++ a občasné porovnanie s inými programovacími

More information

Icy plugin na segmentáciu obrazu pomocou rýchlych aproximácií implicitných aktívnych kontúr

Icy plugin na segmentáciu obrazu pomocou rýchlych aproximácií implicitných aktívnych kontúr Masarykova univerzita Fakulta informatiky Icy plugin na segmentáciu obrazu pomocou rýchlych aproximácií implicitných aktívnych kontúr Bakalárska práca Pavol Valovič Brno, jar 2014 Prehlásenie Prehlasujem,

More information

Tvarovanie 3R modelu ľudskej hlavy pomocou steroskopického snímania

Tvarovanie 3R modelu ľudskej hlavy pomocou steroskopického snímania Rok / Year: Svazek / Volume: Číslo / Number: Jazyk / Language 2016 18 1 SK Tvarovanie 3R modelu ľudskej hlavy pomocou steroskopického snímania Shapping of 3D model of human head with stereoscopic scanning

More information

18. Matlab figure ako objekt

18. Matlab figure ako objekt 1 Portál pre odborné publikovanie ISSN 1338-0087 18. Matlab figure ako objekt Foltin Martin MATLAB/Comsol 06.11.2009 Dlhším používaním grafických funkcií v Matlabe, dôjdete k poznaniu že ich možnosti sú

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

BODY PRÍPADOV POUŽITIA ALEBO AKO MERAŤ SOFTVÉR

BODY PRÍPADOV POUŽITIA ALEBO AKO MERAŤ SOFTVÉR BODY PRÍPADOV POUŽITIA ALEBO AKO MERAŤ SOFTVÉR Pre efektívne riadenie celého projektu je potrebné merať jeho veľkosť Ondrej Jurčák Slovenská technická univerzita Fakulta informatiky a informačných technológií

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU.

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU. UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU Diplomová práca 2017 Bc. Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA

More information

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka

D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu Inštalačná príručka Obsah 1 Predpoklady pre inštaláciu D.Signer... 3 1.1 Inštalácia.NET Framework... 3 1.1.1 Windows 8, 8.1... 4 1.1.2

More information

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

PROJEKCE DAT DO SCÉNY PROJECTOR CAMERA COOPERATION

PROJEKCE DAT DO SCÉNY PROJECTOR CAMERA COOPERATION VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION

More information

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Algoritmy deterministickej a stochastickej optimalizácie a ich počítačová realizácia

Algoritmy deterministickej a stochastickej optimalizácie a ich počítačová realizácia Algoritmy deterministickej a stochastickej optimalizácie a ich počítačová realizácia ESF 2007 D. Ševčovič Katedra aplikovanej matematiky a štatistiky, Univerzita Komenského, 842 48 Bratislava http://www.iam.fmph.uniba.sk/institute/sevcovic

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE Brno, 2018 Matúš Bafrnec VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY

More information

Úvod do hospodárskej informatiky (prednáška 7) František Babič

Úvod do hospodárskej informatiky (prednáška 7) František Babič Úvod do hospodárskej informatiky (prednáška 7) František Babič 2 Osnova Proces a podnikové procesy Procesná analýza BPMN Procesné riadenie Optimalizácia procesov Reinžiniering 3 Proces (1) Súhrn činností,

More information

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE. Peter Hrinčár. AudioCam. Kabinet software a výuky informatiky

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE. Peter Hrinčár. AudioCam. Kabinet software a výuky informatiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Peter Hrinčár AudioCam Kabinet software a výuky informatiky Vedoucí bakalářské práce: Studijní program: Studijní obor: RNDr. Jan

More information

Kamera. Sieťová klenbová kamera. Rýchla používateľská príručka---po slovensky. Táto rýchla príručka sa vzťahuje na: DS-2CD2112-(I),

Kamera. Sieťová klenbová kamera. Rýchla používateľská príručka---po slovensky. Táto rýchla príručka sa vzťahuje na: DS-2CD2112-(I), Kamera Sieťová klenbová kamera Rýchla používateľská príručka---po slovensky Táto rýchla príručka sa vzťahuje na: DS-2CD2112-(I), UD.6L0201B1254A01EU 1 Regulačné informácie Vyhlásenie o súlade s normami

More information

Komunikačné protokoly 2005 KP 2005 #3 - IP v02.doc

Komunikačné protokoly 2005 KP 2005 #3 - IP v02.doc Smerovanie a prepájanie v sieťach Dátové siete zabezpečujú prenos dát od zdoja k cieľu. Aby mohol takýto prenos fungovať, musia byť zavedené mená a adresy. Každému koncovému bodu je priradená jednoznačná

More information

METODY PRO AUTOMATICKÉ ZAOSTŘOVÁNÍ KAMERY

METODY PRO AUTOMATICKÉ ZAOSTŘOVÁNÍ KAMERY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS

More information

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií FIIT-XXXX-XXXXX

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií FIIT-XXXX-XXXXX Toto je titulný list práce. Je súčasťou každej priebežnej či záverečnej správy (BP, DP) Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií FIIT-XXXX-XXXXX evidenčné

More information

VYUŽITÍ VR HEADSETU PRO VÝUKU HRY NA KLAVÍR/KLÁVESY VR HEADSET ASSISTANCE FOR KEYBOARD PLAYING

VYUŽITÍ VR HEADSETU PRO VÝUKU HRY NA KLAVÍR/KLÁVESY VR HEADSET ASSISTANCE FOR KEYBOARD PLAYING VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová Ochrana proti DDoS za použitia open-source software Katarína Ďurechová katarina.durechova@nic.cz 30.11.2013 Distributed Denial of Service odopretie služby dosiahnutím limitu pripojenia sieťovej karty CPU

More information

Detekcia postáv na obrázkoch

Detekcia postáv na obrázkoch Masarykova univerzita Fakulta informatiky Detekcia postáv na obrázkoch bakalárska práca Alexander Matečný Brno, jar 2011 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom,

More information

Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava. Toky v sieťach. (bakalárska práca) Richard Štefanec

Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava. Toky v sieťach. (bakalárska práca) Richard Štefanec Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Toky v sieťach (bakalárska práca) Richard Štefanec vedúci: Mgr.Michal Forišek Bratislava, 2007 Čestne prehlasujem,

More information

Databázy (2) Prednáška 08. Alexander Šimko

Databázy (2) Prednáška 08. Alexander Šimko Databázy (2) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Funkcie Zložené typy PL/pgSQL Agregačné funkcie Funkcie Section 1 Funkcie Funkcie PostgreSQL umožňuje vytvoriť si vlastné databázové

More information

SLOVENSKÁ TECHNICKÁ UNIVERZITA FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ ILKOVIČOVA 3, BRATISLAVA 4

SLOVENSKÁ TECHNICKÁ UNIVERZITA FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ ILKOVIČOVA 3, BRATISLAVA 4 SLOVENSKÁ TECHNICKÁ UNIVERZITA FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ ILKOVIČOVA 3, 842 16 BRATISLAVA 4 TÍM 13 SIMULÁCIA DEMONŠTRÁCIE V MESTE DEVELOPERSKÁ PRÍRUČKA Vedúci projektu: Ing. Ivan Kapustík

More information

POČÍTAČOVÁ ANALÝZA MEDICÍNSKÝCH OBRAZOVÝCH DAT

POČÍTAČOVÁ ANALÝZA MEDICÍNSKÝCH OBRAZOVÝCH DAT VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS

More information

Aplikácia k určovaniu rastlín pre platformu ios

Aplikácia k určovaniu rastlín pre platformu ios Mendelova univerzita v Brně Provozně ekonomická fakulta Aplikácia k určovaniu rastlín pre platformu ios Bakalárska práca Vedúci práce: Ing. Dita Dlabolová Jakub Kozák Brno 2014 Na tomto mieste by som

More information

DETEKCE OBJEKTŮ POMOCÍ KINECTU OBJECT DETECTION USING KINECT

DETEKCE OBJEKTŮ POMOCÍ KINECTU OBJECT DETECTION USING KINECT VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY MATEMATICKÉ MODELOVANIE ZAMESTNANOSTI V SLUŽBÁCH V STREDNEJ EURÓPE POMOCOU MODELU VZÁJOMNÝCH INTERAKCIÍ DIPLOMOVÁ PRÁCA 2012

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION

More information

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Faculty of Informatics and Information Technologies OBJECT DETECTION AND SEGMENTATION USING CONTOURS

Faculty of Informatics and Information Technologies OBJECT DETECTION AND SEGMENTATION USING CONTOURS Slovak University of Technology in Bratislava Faculty of Informatics and Information Technologies FIIT-5220-64421 Bc. Michal Ošvát OBJECT DETECTION AND SEGMENTATION USING CONTOURS Master Thesis Study programme:

More information

MERANIE SOFTVÉRU. Jakub Šimko MSI

MERANIE SOFTVÉRU. Jakub Šimko MSI Slovenská Technická Univerzita v Bratislave Fakulta Informatiky a Informačných Technológií Jakub Šimko jsimko@fiit.stuba.sk MERANIE SOFTVÉRU 9.10.2012 MSI Meranie a metriky Kto by mal dávať pozor? Predsa

More information

ÚMRTNOSŤ NA ÚRAZY MOZGU VO VYBRANÝCH EURÓPSKYCH KRAJINÁCH

ÚMRTNOSŤ NA ÚRAZY MOZGU VO VYBRANÝCH EURÓPSKYCH KRAJINÁCH ÚMRTNOSŤ NA ÚRAZY MOZGU VO VYBRANÝCH EURÓPSKYCH KRAJINÁCH. V NEMOCNICI A MIMO NEJ Alexandra Bražinová, Veronika Rehorčíková, Mark Taylor VIII. STREDOEURÓPSKY KONGRES URGENTNEJ MEDICÍNY A MEDICÍNY KATASTROF.3-1..17

More information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY. Progresívne meše v Unity Roman Vrecník

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY. Progresívne meše v Unity Roman Vrecník UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Progresívne meše v Unity 2016 Roman Vrecník UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Progresívne

More information

Databázy (1) Prednáška 08. Alexander Šimko

Databázy (1) Prednáška 08. Alexander Šimko Databázy (1) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Subqueries (poddopyty) konštrukcia WITH Section 1 Subqueries (poddopyty) Subquery (poddopyt) Použitie SELECTu na mieste, kde sme

More information

Cyber-shot. Digitálne fotoaparáty Cyber-shot

Cyber-shot. Digitálne fotoaparáty Cyber-shot DSCH10B.CEE9 8 990 4905524504309 Ultrazoomový objektív Carl Zeiss Vario-Tessar - 8.1Mega Pixel (Super HAD CCD) - 10x opt. Zoom /30x Precision Digital zoom/ - 3"/ 7,5 cm farebný LCD displej typu Clear Photo

More information

Návrh a realizácia aplikácie na analýzu výrobných procesov pomocou Petriho sietí

Návrh a realizácia aplikácie na analýzu výrobných procesov pomocou Petriho sietí Návrh a realizácia aplikácie na analýzu výrobných procesov pomocou Petriho sietí Rudolf REPČÍN, Matej ČOPÍK, Ján JADLOVSKÝ Katedra kybernetiky a umelej inteligencie, Fakulta elektrotechniky a informatiky,

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS

More information

Komunikačné protokoly 2004 KP 2004 #3 - IP v03.doc

Komunikačné protokoly 2004 KP 2004 #3 - IP v03.doc Smerovanie a prepájanie v sieťach Dátové siete zabezpečujú prenos dát od zdoja k cieľu. Aby mohol takýto prenos fungovať, musia byť zavedené mená a adresy. Každému koncovému bodu je priradená jednoznačná

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

More information

Doporučovací systém pro eshop

Doporučovací systém pro eshop ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ KATEDRA POČÍTAČŮ Diplomová práce Doporučovací systém pro eshop Bc. Martina Čiefová Vedoucí práce: Ing. Jan Drchal, Ph.D. Leden 2018 Poďakovanie

More information

Systém pre evidenciu zvislých dopravných značiek s využitím optického korelátora

Systém pre evidenciu zvislých dopravných značiek s využitím optického korelátora 1 Portál pre odborné publikovanie ISSN 1338-0087 Systém pre evidenciu zvislých dopravných značiek s využitím optického korelátora Solus David Informačné technológie 12.11.2014 Obsahom tohto dokumentu je

More information

Mgr. Martin Vesel M 114

Mgr. Martin Vesel M 114 Mgr. Martin Vesel martin.vesel@gmail.com M 114 Where 2 go W3C, CSS špecifikácia http://www.w3.org/standards/techs/css#w3c_all http://www.w3.org/tr/2011/rec-css2-20110607/ http://www.w3.org/tr/2012/rec-css3-mediaqueries-20120619/

More information

ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX Bratislava

ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX Bratislava ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX 45 826 45 Bratislava TASR, SITA Vaša značka/zo dňa Naša značka Vybavuje Bratislava -/- OHVBPKV/7785-3/25407/2018/Ki Ing. Kišacová,

More information