VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
|
|
- Jiří Čermák
- před 8 lety
- Počet zobrazení:
Transkript
1 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 APLIKACE PRO DEMONSTRACI METODY HISTOGRAM OF ORIENTED GRADIENTS PRO DETEKCI OBJEKTŮ BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR ZDENĚK MRÁZEK BRNO 2014
2 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 APLIKACE PRO DEMONSTRACI METODY HISTOGRAM OF ORIENTED GRADIENTS PRO DETEKCI OBJEKTŮ APPLICATION FOR A DEMONSTRATION OF THE HISTOGRAM OF ORIENTED GRADIENTS METHOD FOR OBJECT DETECTION BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR ZDENĚK MRÁZEK Ing. KAMIL ŘÍHA, Ph.D. BRNO 2014
3 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Bakalářská práce bakalářský studijní obor Teleinformatika Student: Zdeněk Mrázek ID: Ročník: 3 Akademický rok: 2013/2014 NÁZEV TÉMATU: Aplikace pro demonstraci metody Histogram of Oriented Gradients pro detekci objektů POKYNY PRO VYPRACOVÁNÍ: Nastudujte teoretický princip metody detekce objektů s pomocí příznakového deskriptoru založeného na metodě histogramu orientovaných gradientů. Naprogramujte aplikaci pro demonstraci vlastností tohoto deskriptoru. Aplikace by měla umožnit demonstraci detailů výpočtu orientovaných gradientů včetně vizualizace vektorů pro konkrétní snímky a detekci libovolných objektů. Doporučený nástroj pro implementaci: knihovny OpenCV a MS Visual C++. DOPORUČENÁ LITERATURA: [1] GONZALEZ R. C., WOODS R. E.: Digital Image Processing, Prentice Hall, New Jersey, [2] BRADSKI G., KAEHLER A.: Learning OpenCV: Computer Vision with the OpenCV Library, O'Reilly Media, Inc. USA 2008, ISBN: [3] LAGANI Termín zadání: Termín odevzdání: Vedoucí práce: Ing. Kamil Říha, Ph.D. Konzultanti bakalářské práce: doc. Ing. Jiří Mišurec, CSc. Předseda oborové rady UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
4 ABSTRAKT Cílem této práce je shrnutí teorie, ze které vychází metoda Histogram of oriented gradients a následné zpracování vlastního algoritmu pro demonstraci výpočtu a vizualizace vektorů příznakového deskriptoru HOG, natrénování algoritmu SVM a následná detekce objektu. Jako prostředí pro práci bylo zvoleno MS Visual Studio 2012 s použitím objektově orientovaného jazyka C++ a s použitím knihovny OpenCV. KLÍČOVÁ SLOVA HOG, Histogram orientovaných gradientů, C++, OpenCV, gradient, histogram, deskriptor, SVM, Support vector machines, trénování, detekce ABSTRACT The target of this thesis is summarize the theory of method Histogram of oriented gradients and process algorithm for demonstration and visualization HOG descriptor, train SVM algorithm and subsequent detection of the object. For the work environment was selected MS Visual Studio 2012 using the object-orientedin C++ language with using OpenCV library. KEYWORDS HOG, Histogram of oriented gradients, C++, OpenCV, gradient, histogram, descriptor, SVM, Support vector machines, training, detection MRÁZEK, Zdeněk Aplikace pro demonstraci metody Histogram of Oriented Gradients pro detekci objektů: bakalářská práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, s. Vedoucí práce byl Ing. Kamil Říha, Ph.D.
5 PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Aplikace pro demonstraci metody Histogram of Oriented Gradients pro detekci objektů jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědom následků porušení ustanovení S 11 a následujících autorského zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. Brno (podpis autora)
6 PODĚKOVÁNÍ Rád bych poděkoval vedoucímu diplomové práce panu Ing. Kamilu Říhovi, Ph.D. za vstřícnost, konzultace, trpělivost a cenné rady k práci. Brno (podpis autora)
7 OBSAH Seznam symbolů, veličin a zkratek 11 Úvod 12 1 Teoretický rozbor Histogram Hrana Výpočet gradientu pro detekci hrany Metoda Histogram of oriented gradients Předzpracování obrazu Výpočet gradientů Rozdělení obrazu na buňky a orientace gradientů Normalizace bloků Detekční okno Deskriptor Klasifikace Návrh a implementace Použitý software MS Visual Studio OpenCV Qt CMake Návrh programu Vstupní obraz a předzpracování Výpočet gradientů Určení orientace gradientů a přiřazení do košů Normalizace Vykreslení vektorů - příznakových deskriptorů Výstup programu Detekční část programu Načtení trénovací databáze Předzpracování obrazu Výpočet gradientů Určení orientace gradientů a přiřazení do košů Bloková normalizace Natrénování SVM
8 3.3.7 Testovací databáze Výsledky detekce Závěr 39 Literatura 40 A Obsah přiloženého DVD 41
9 SEZNAM OBRÁZKŮ 1.1 Skokový profil Střechový profil Linkový profil Zašuměný profil D maska Obecná maska Robertsovy křížové operátory Prewittové gradientní operátory Sobelovy gradientní operátory Výpočet gradientu pro určení směru hrany v bodě Algoritmus metody HOG Ukázka metody Histogram orientovaných gradientů: vypočítané gradienty v obraze (a), jeden blok, obsahující 4 buňky (b), orientace gradientů v buňce(c), určení histogramu orentovaných gradientů v buňce (d), výsledný příznakový vektor (e) Ukázka detekčního okna s postavou se znázorněnými okraji o velikosti 16 pixelů Ukázka požití nástroje SVM. Na obrázku a) a b) vidíme hranici mezi různými daty, na obrázcích c) a d) vidíme nalezení lepší hranice mezi daty. Obrázek byl inspirován v návodu ke knihovně SVM [7]. Použití klasifikátoru na trénovací data (a), Použití klasifikátoru na testovací data (b), Použití lepšího klasifikátoru na trénovací data (c), Použití lepšího klasifikátoru na testovací data (d) Zjednodušený vývojový diagram popisující jednotlivé kroky programu HOG-test Převod barevného obrazu (a) na černobílý (b) Jednoduchá derivační maska [-1,0,1] - součet gradientů ve směru osy x a y Sobelova derivační maska - součet gradientů ve směru osy x a y Rozdělení kanálů 0-180, v rozsahu po 20, se zobrazeným výsledným vektorem Vykreslené deskriptory pro celý obraz (a), detail deskriptoru jedné buňky - označené červeně (b) Vykreslené vektory v buňce pro reálný obraz (a), pro syntetickou hranu v ose x (b) a pro syntetickou hranu v ose y (c) Vstupní obraz (a), výsledné vektory deskriptor(b) Příklad několika pozitivních vzorků z databáze INRIA
10 3.10 Konzolový výpis úspěšnosti detekce
11 SEZNAM TABULEK 3.1 Testování detekce
12 SEZNAM SYMBOLŮ, VELIČIN A ZKRATEK HOG Histogram orientovaných gradientů Histogram of oriented gradients f(x, y) Gradient obrazové funkce v bodě x, y M(x, y) α(x, y) RGB SVM v Velikost vektoru gradientu v bodě x, y Směr gradientu v bodě x, y Barevný model červená-zelená-modrá Support Vector Machines Normalizovaný vektor v k k-norma normalizovaného vektoru pro k = 1,2 11
13 ÚVOD Detekce objektů v obraze je velmi náročný úkol vzhledem k variabilitě předmětů a jejich specifickému tvaru. Algoritmů existuje mnoho na různých principech. Deskriptor Histogram of Oriented Gradients - Histogram Orientovaných Gradientů (HOG) je považován za vynikající metodu pro detekci objektů, především postav, protože dosahuje velmi dobrých výsledků. V této práci bude popsáno, jak pracuje metoda HOG krok po kroku, od načtení vstupního obrazu po výpočet příznakového deskriptoru a jeho následnou vizualizaci. Dalším krokem bude natrénování databáze pomocí SVM a posouzení výsledné úspěšnosti detektoru. První kapitola poskytuje teoretický základ pro studium problematiky, na jejíž základě pracuje metoda Histogram Orientovaných Gradientů. Druhá kapitola poskytuje co nejdetailnější popis této metody. Poslední kapitola bude věnována popisu programu, jeho funkcím a výsledné úspěšnosti detektoru. Demonstrace bude provedena formou samostatné aplikace, v prostředí MS Visual Studio 2012 pomocí objektově orientovaného jazyka C++ a s použitím knihovny OpenCV. 12
14 1 TEORETICKÝ ROZBOR 1.1 Histogram Histogram obrazu s úrovněmi intenzit v rozsahu [0, L 1] je diskrétní funkce h(r) k = n k, (1.1) kde r k je k-tá úroveň intenzity a n k je počet pixelů v obraze s intenzitou r k. Běžně se používá normalizace histogramu pomocí vydělení jednotlivé složky celkovým počtem obrazových bodů v obraze MN, kde M je počet řádků a N počet sloupců v obraze. Normalizovaný histogram je tedy dán p(r k ) = n k MN, (1.2) pro k = [0, 1, 2,..., L 1]. Volně řečeno, p(r k ) je tedy odhad pravděpodobnosti výskytu intenzity úrovní r k v obraze. Součet všech prvků normalizovaného histogramu je 1. Histogram se běžně používá v metodách zpracování obrazu a je také použit v metodě histogramy orientovaných gradientů [2]. 1.2 Hrana Hrana je oblast, kde dochází ke skokové změně hodnoty jasu. Tyto oblasti s přítomnými hranami obsahují více informace než ostatní místa v obraze. Hrana je dána vlastnostmi obrazového bodu a jeho okolí. Popisuje rychlost změny a směr největšího růstu obrazové funkce f(x, y). Podle průběhu jasové změny je možné hrany rozdělit do jasových profilů. Skokový profil Obr. 1.1: Skokový profil 13
15 Střechový profil Obr. 1.2: Střechový profil Linkový profil Obr. 1.3: Linkový profil Zašuměný profil Obr. 1.4: Zašuměný profil Skokový, středový a linkový profil představují ideální hrany. V reálném obraze se setkáváme většinou s profilem zašuměným. [4] 14
16 1.3 Výpočet gradientu pro detekci hrany Gradient se v oblasti zpracování obrazu používá pro detekci hran objektů a směru v místě (x, y). Gradient f, v bodě (x, y) označený f, je definován jako vektor f = grad(f) = g x = g y f x f y. (1.3) Tento vektor má důležitou vlastnost. Jeho směr udává největší změnu intenzity f v bodu (x, y). Velikost vektoru f, označeného jako M(x, y), kde M(x, y) = f = g x2 + g y 2 (1.4) je velikost změny ve směru gradientu vektoru. Směr gradientu je dán úhlem podle α(x, y) = tan 1 [ g y g x ]. (1.5) Prvky gradientního operátoru jsou lineární operátory, avšak velikost tohoto vektoru není lineární operátor, z důvodu operací umocňování a odmocňování. Výslednou velikost gradientního vektoru můžeme označit jako izotropní (mající ve všech směrech stejné vlastnosti, tedy nezávislé na směru). Avšak jednotlivé parciální derivace izotropní nejsou. Pro zjednodušení terminologie bude velikost gradientního vektoru označována jedním slovem jako gradient. Při výpočtu gradientního vektoru musíme vypočítat velikost vektoru pro každý pixel, proto si tuto operaci můžeme zjednodušit na M(x, y) g x + g y. (1.6) Tento vztah je mnohem jednodušší na implementaci, ale na úkor ztráty izotropnosti. Získání gradientu obrazu tedy vyžaduje výpočet parciálních derivací f/ x a f/ y. Nyní je zapotřebí aproximovat parciální derivace přes sousední pixely bodu, ze kterého chceme získat gradient. Víme, že rovnice a g x = g y = f(x, y) x f(x, y) y = f(x + 1, y) f(x, y) (1.7) = f(x, y + 1) f(x, y) (1.8) mohou být použity pro všechny relevantní hodnoty x a y filtrace f(x, y) s jednorozměrnou (1-D) maskou. Naznačeny jsou na obr Pokud chceme brát v potaz při výpočtu gradientu i pixely které sousedí diagonálně, je potřeba použít 2-D masku. První pokus o 2-D masku byl prezentován L. G. Robertsem, jedná se o tzv. křížové diference. Robertsovy diference jsou založeny na diagonálních diferencích, podle g x = f x = (a 9 a 5 ) (1.9) 15
17 a g y = f y = (a 8 a 6 ). (1.10) Přestože vychází z 3 3 bodové masky, používá pouze 2 2 bodovou masku a výpočet gradientu proto není symetrický podle středového pixelu (viz obr. 1.6 a 1.7). Kvůli své velikosti (sudý počet řádků a sloupců, nemají tedy středový pixel) se špatně realizuje. Obr. 1.5: 1-D maska Obr. 1.6: Obecná maska Obr. 1.7: Robertsovy křížové operátory 16
18 Nejjednodušší řešení aproximace s maskou 3 3 je aproximace dle Prewittové (viz obr. 1.8), kde a g x = f x = (a 7 + a 8 + a 9 ) (a 1 + a 2 + a 3 ) (1.11) g y = f y = (a 3 + a 6 + a 9 ) (a 1 + a 4 + a 7 ). (1.12) Zde je rozdíl třetího a prvního řádku derivace ve směru x a rozdíl mezi třetím a Obr. 1.8: Prewittové gradientní operátory prvním sloupcem je derivace ve směru y. Předpokládá se, že tato aproximace bude daleko přesnější, než při použití Robertsových operátorů. Mírně změněná variace Prewittových operátorů je maska s dvojnásobnou hodnotou středního koeficientu: a g x = f x = (a 7 + 2a 8 + a 9 ) (a 1 + 2a 2 + a 3 ) (1.13) g y = f y = (a 3 + 2a 6 + a 9 ) (a 1 + 2a 4 + a 7 ), (1.14) kterou můžeme vidět na obr Nazývá se Sobelův operátor. Prewittové maska je jednodušší pro implementaci než Sobelova maska. Protože Sobelova maska používá dvojnásobnou hodntou středního koeficientu, dochází u ní k většímu vyhlazení obrazu a proto je více preferována. Obr. 1.9: Sobelovy gradientní operátory 17
19 Na obr můžeme vidět přiblížený výřez obrazu, kde se nachází přímá ideální hrana. Každý čtverec zobrazuje jeden pixel. Pixely s šedou barvou mají hodnotu 0 a bílé pixely hodnotu 1. Nyní se musí vypočítat jednotlivé parciální derivace ve směru osy x a y. Toho docílíme použitím jedné z výše uvedených derivačních masek. Výsledný úhel α získáme výpočtem dle vzorce 1.5 a velikost vektoru dle 1.4. Úhel a velikost vektoru budou různé, právě podle derivační masky určené pro výpočet [2] [5]. Obr. 1.10: Výpočet gradientu pro určení směru hrany v bodě. 18
20 2 METODA HISTOGRAM OF ORIENTED GRA- DIENTS Metoda je založena na histogramech orientovaných gradientů. Základní myšlenkou je, že objekt v obraze může být pomocí vzhledu a tvaru charakterizován pomocí intenzity gradientů, i přestože neznáme jejich přesnou polohu v obraze. Obraz se rozdělí na malé prostorové oblasti (buňky) a pro každou buňku se vypočítá 1-D histogram, který je vypočítán ze všech pixelů z buňky. Je vhodné obraz před započetím výpočtů normalizovat, například kontrastní normalizací, nebo normalizací osvětlení. Toho lze docílit shromaždováním informací do histogramu nejen z jedné konkrétní buňky, ale z větší oblasti z okolních buněk. Těchto několik buněk dá dohromady tzv. blok. Histogram orientovaných gradientů, je tedy buňka normalizovaná blokem, který tvoří i okolní buňky. Algoritmus je znázorněn na obr. 2.1, který byl inspirován v [2]. Obr. 2.1: Algoritmus metody HOG. Celý obraz je tedy rozdělen do bloků o stejné velikosti a každý z těchto bloků je reprezentován pomocí několika buněk. Tyto buňky jsou hlavním nositelem informace. Každá jednotlivá buňka zachycuje určitou oblast snímku, například 8 8 pixelů. V rámci každé buňky se určí orientace gradientu. Výsledné gradienty by měly vymezovat hledaný objekt v obraze. Pro detekci gradientů slouží některá z funkcí, která dokáže detekovat významné hrany v obraze, protože na nich dochází ke skokovým změnám jasu v obraze. Detekci hran je potřeba provést jak v horizontálním, 19
21 tak i ve vertikálním směru. Nad takto zpracovaným obrazem je rozvinuta síť buněk. V každé jednotlivé buňce se určí směr gradientu. Orientace významných hran má rozsah Kdyby velikost jednotlivých buněk byla příliš velká, detekovala by se příliš velká množina směrů jednotlivých hran. Proto bychom tento rozsah mohli rozdělit do několika kanálů (zásobníků). Například při počtu 9 kanálů má každý kanál rozsah 40. Z těchto kanálů se vytvoří lokální histogram, který obsahuje informace o zastoupení jednotlivých směrů gradientů. Jednotlivé lokální histogramy mají velikost odpovídající počtu kanálů. Výsledný vektor se tedy vytvoří složením informací ze všech histogramů jednotlivých buněk, které jsou normalizovány dle buněk v jejich bezprostřední blízkosti. Názorná ukázka kroků metody v obrázku 2.2. [1] Metoda je dále popsána detailně. Obr. 2.2: Ukázka metody Histogram orientovaných gradientů: vypočítané gradienty v obraze (a), jeden blok, obsahující 4 buňky (b), orientace gradientů v buňce(c), určení histogramu orentovaných gradientů v buňce (d), výsledný příznakový vektor (e). 2.1 Předzpracování obrazu Před výpočtem je vhodné použít proces na vyrovnání vlastností obrazu. Autoři v [1] zkoušeli různé úpravy vstupních obrazů. Například redukci barevného modelu RGB, nebo použití filtru pro úpravu nerovnoměrného osvětlení a jasu. Redukce barevného modelu RGB je provedena převedením obrazu do stupňů šedi. Jak autoři zjistili, tyto 20
22 úpravy však mají pouze velmi malý vliv na výslednou úspěšnost detekce, protože výsledky, které získali použitím takto upravených deskriptorů, se skoro nelišily. 2.2 Výpočet gradientů Výpočet gradientů je stěžejní proces v metodě histogram orientovaných gradientů, protože hledaný objekt je charakterizován právě pomocí gradientních vektorů. Pro určení hledaného vektoru je nejprve potřeba najít významné hrany v obraze. Detekce hran spočívá ve vyhledání lokálních změn v intenzitě sousedních pixelů v obraze. Toho docílíme výpočtem gradientu obrazu. Výkon detektoru je citlivý na způsob, jakým jsou gradienty vypočítány. Testované byly masky centrované, necentrovaná, kubické, Sobelova maska, Prewittové maska atd. Jako nejlepší řešení, se nakonec ukázalo být to nejjednodušší. Autoři v článku [1] zjistili, že nejlepší je použití jednoduché derivační masky [ 1, 0, 1]. Výpočet je popsán v kapitole 1.3. Pro výpočet gradientu se použije maska v horizontálním i vertikálním směru zvlášť. Protože barevná redukce z barevného obrazu na stupně šedi se ukázala pro výkon nepodstatná, pro barevné obrazy se vypočítají gradienty jednotlivě pro každou složku RGB. Z těchto dílčích gradientů se vybere ten, který dosahuje největší intenzity v bodě, pro který jsou vektory počítány, a pouze s tímto je posléze počítáno. 2.3 Rozdělení obrazu na buňky a orientace gradientů Nyní musíme obraz rozdělit na hustou mříž buněk o určité velikosti. Autoři v [1] dosáhli nejlepších výsledku s použitím buněk o velikosti 8 8 pixelů. Buňky mohou být čtvercové nebo kruhové. Nyní tedy máme rozdělený obraz na buňky 8 8 pixelů a máme spočítaný gradient pro všechny pixely, které obraz obsahuje. Dále je potřeba určit zvlášť pro každou buňku histogram jejích gradientů. Každý jednotlivý pixel nese informaci o směru a velikosti pro výsledný histogram orientovaných gradientů. Kanály histogramu uvnitř každé buňky jsou určeny směrem gradientu. Počet kanálů (zásobníků) na které je buňka rozdělena je libovolný. V [1] je buňka rozdělena na 9 kanálů v rozsahu 0-180, nebo Rozsah se jeví jako optimální možnost. Velikost kanálů histogramu je určena velikostí příslušných gradientů. Nyní se musí prozkoumat všechny gradienty v buňce a po zjištění orientace gradientu se zařadí do jednotlivých kanálů. Součet stejně orientovaných gradientů náležících do jednotlivých kanálů nám dohromady dávají výslednou velikost kanálu. Takto nám vznikne pro každou buňku histogram orientovaných gradientů. 21
23 2.4 Normalizace bloků Velikost gradientů se významně liší v rámci celého obrazu. Rozdíly jsou způsobeny nerovnoměrným osvětlením a různým kontrastem popředí a pozadí. Pro lepší výsledky je tedy potřeba tyto nežádoucí vlivy nějakým způsobem odstranit. V článku [1] autoři zkoušeli různá normalizační schémata. Většina z nich je založena na seskupení jednotlivých buněk do větších bloků a na normalizování každého bloku odděleně. Výsledný deskriptor je vektor vytvořený ze všech částí normalizovaných buněk. Jednotlivé bloky v obraze se překrývají, a proto mohou být buňky zpracovány i vícekrát. To se může zdát nadbytečné, ale kvalitní normalizace je stěžejní bodem pro dobré výsledky a překrývání jednotlivých bloků je proto žádoucí. Normalizace může být provedena čtvercová, nebo kruhová. Zabývat se budeme normalizací čtvercovou. Bloky se skládají z n n buněk a každá buňka se skládá z m m pixelů a každá buňka obsahuje p kanálů. Testy ukázaly, že nejvýhodnější je používat bloky velikosti 2 2, nebo 3 3 buněk. V těchto blocích se bude provádět normalizace histogramů jednotlivých buněk. Pro normalizaci je možné použít více metod, zde si uvedeme jednu. Řekněme, že v je nenormalizovaný vektor, obsahující všechny histogramy v určitém bloku a ε je malá konstanta. Pak v k je jeho k-norma pro k = 1, 2. Autoři testovali různá normalizační schémata. Jsou to L2 norm : v v v ε 2, (2.1) L2 Hys, které je stejné jako L2-norm, pouze limituje velikost v na 0, 2. Dále L1 norm: a L1 sqrt: v v v v 1 + ε, (2.2) v v 1 + ε. (2.3) Schémata L2 norm, L2 Hys a L1 sqrt dávají podobně dobré výsledky, schéma L1 norm dává výsledky mírně horší. 2.5 Detekční okno Detekční okno o velikosti obsahuje 16 pixelů na každé straně, které představují okraj hledaného objektu (např. postavy). Snížení pixelů na každé straně na 8 pixelů (detekční okno o velikosti ) zhoršilo výsledky. Zachování velikosti okna a zvětšování postavy při současném zmenšování okraje, také zhoršilo výsledky. 16 pixelů tedy vychází jako optimální velikost. Příklad okraje s velikostí 16 pixelů můžeme vidět na obr
24 Obr. 2.3: Ukázka detekčního okna s postavou se znázorněnými okraji o velikosti 16 pixelů. 2.6 Deskriptor Vektor normalizovaných histogramů pro jeden blok nazýváme deskriptor. Z každého bloku tak získáme jeden deskriptor. Posledním krokem podle [1] je předání deskriptorů nějakému klasifikátoru. Podrobný rozbor principu klasifikačních algoritmů je uveden v následující části. 2.7 Klasifikace Klasifikátor je algoritmus, který při vhodně zvolené množině znalostí, rozděluje vstupní data pomocí příznaků (v metodě HOG pomocí příznakových vektorů), do předem zvolených tříd. V metodě HOG je pro klasifikaci použito nástroje SVM, konkrétněji lineární SVM lineární Support Vektor Machine algoritmus. Jedná se o metodu strojového učení, což je nauka o získávání a zpracování znalostí. Lineární SVM klasifikátor je jednoduchá klasifikační metoda založena na rozdělení prostoru příznaků na lineární úseky. Vstupní data musíme rozdělit na trénovací a testovací. Trénovací data jsou použita pro naučení se klasifikátoru, testovací data jsou požita k následnému testování vytvořeného klasifikátoru. Mějme skupinu dat, která popisuje postavu v obraze. Na druhé straně máme data, kde se postava v obraze nevyskytuje. Nástroj SVM by měl tato data vyhodnotit a určit hranici mezi těmito daty. Pokud následně předložíme klsifikátoru jakýkoliv obraz, měl by být schopen určit, zda se v obraze vyskytuje postava či nikoliv. [6] [7] 23
25 Obr. 2.4: Ukázka požití nástroje SVM. Na obrázku a) a b) vidíme hranici mezi různými daty, na obrázcích c) a d) vidíme nalezení lepší hranice mezi daty. Obrázek byl inspirován v návodu ke knihovně SVM [7]. Použití klasifikátoru na trénovací data (a), Použití klasifikátoru na testovací data (b), Použití lepšího klasifikátoru na trénovací data (c), Použití lepšího klasifikátoru na testovací data (d). 24
26 3 NÁVRH A IMPLEMENTACE 3.1 Použitý software MS Visual Studio 2012 Pro aplikaci demonstrace metody histogram orientovaných gradientů jsme zvolili jazyk C/C++ v prostředí Microsoft Visual Studio 2012, protože pro jazyk C/C++ je zde již vestavěný použitím Visual C OpenCV OpenCV 1 je volně šiřitelná, multiplatformní knihovna pro zpracování obrazu a videa. Je určena pro akademické i komerční využití. Zaměřena je především na počítačové vidění a zpracování obrazu v reálném čase. Původně ji vyvíjela společnost Intel. Má C++, C, Python a Java rozhraní. Knihovna je psaná v jazyku C/C++ schopná pracovat pod operačními systémy Windows, Linux a Mac OS. Je distribuována pod BSD licencí. Byla použita verze OpenCV. Obsahuje následující knihovny: Core: modul definující základní datové struktury, pole Mat a základní funkce požadované všemi ostatními moduly. Imgproc: modul zpracování obrazu obsahující lineární a nelineární filtrace obrazu, geometrické transformace (změna velikosti atd.), barevné konverze, histogramy atd. Video: analýza videa, obsahuje odhad pohybu, odečítání pozadí a algoritmy sledování objektu. Calib3d: základní algoritmy více-pohledové geometrie, single a stereo kalibraci kamery, odhadování pozice a prvky 3D rekonstrukce. Features2D: detektory charakteristických rysů, deskriptory a vyhodnocování deskriptorů. Objdetect: detekce objektů a instance předdefinovaných tříd (např. tváře, oči, hrnky, lidé, auta atd.). Highgui: snadno použitelné rozhraní pro záznam videa, obrazu a video kodeků, stejně jako jednoduché uživatelské rozhraní. GPU: urychlovací algoritmy z různých OpenCV modulů. 1 Dostupná z 25
27 3.1.3 Qt Qt 1 je multiplatformní aplikace a prostředí pro práci v jazyce C/C++. Pro program jsme použili tuto knihovnu pro vylepšení zobrazovacích funkcí OpenCV. Použitá verze byla do použité knihovny OpenCV implementována pomocí softwaru Cmake CMake Překlad knihovny Qt pro použití s OpenCV byl proveden pomocí CMake 2 verze CMake je multiplatformní volně šířitelný software pro řízení procesu kompilace. Poskytuje automatizaci překladu programu, pro vytvoření adresářové struktury a přípravu zdrojových souborů, pro použití s konkrétními překladači. 3.2 Návrh programu Algoritmus programu je navržen dle [1]. Parametry, se kterými dosahovali autoři nejlepších výsledků, však nejsou dodrženy, ale jsou zvoleny takové, aby byla demonstrace co nejzřetelnější. Jde nám hlavně o představení algoritmu a ukázky výpočtů jednotlivých kroků metody. Program, který jsem pojmenoval HOG-test, má dvě na sobě nezávislé (vyjma některých společných funkcí) části, které si nyní popíšeme. Zjednodušený vývojový diagram programu HOG-test lze vidět na obr V první části si popíšeme tu část programu, která pracuje se vstupním obrazem pojmenovaným vstup.png. Následující kroky, od načtení vstupního obrazu vstup.png až po konečné vykreslení příznakového deskriptoru, si popíšeme každý zvlášť: Vstupní obraz Předzpracování obrazu Výpočet gradientů Určení orientace gradientů a přiřazení do kanálů Normalizace obrazu Výsledné vykreslení vektorů - deskriptoru Detailní vykreslení vektorů v jedné buňce Vstupní obraz a předzpracování Vstupní obraz může být barevný nebo černobílý. Protože barevnost/nebarevnost obrazu nemá na výsledný výpočet vliv, je vstupní obraz načtený a rovnou převeden 1 Dostupná z 2 Dostupný z 26
28 Obr. 3.1: Zjednodušený vývojový diagram popisující jednotlivé kroky programu HOG-test do stupňů šedi integrovanou funkcí OpenCV: cv::imread("vstup.png", CV_LOAD_IMAGE_GRAYSCALE); Žádné další úpravy obrazu (jako redukce modelu RGB nebo filtr pro úpravu nerovnoměrného osvětlení) neprobíhají z důvodu zjednodušení algoritmu. Nyní si obraz rozdělíme na jednotlivé buňky oblasti o určité velikosti. V teoretické části bylo uvedeno, že se požívají buňky o velikosti 8 8 pixelů. Tato velikost byla zvolena i pro můj algoritmus. Větší velikost buňky, např pixelů, byla vyzkoušena pro detailnější vykreslení deskriptorů, které si můžeme prohlédnout na obr Jedná se o vykrelsení jednoduchých geometrických tvarů Výpočet gradientů Výpočet gradientů je stěžejní proces algoritmu. Výpočet gradientu se provede pro horizontální a vertikální směr zvlášť pro každý pixel v obraze, podle jednoduché derivační masky [ 1, 0, 1]. Následně, se dle vzorce 1.4, uvedeného v kapitole 1.3, zjistí velikost vektoru gradientu a dle vzorce 1.5 zjistíme směr gradientu. Směr bude dán úhlem vzhledem k ose x. V programu jsem vyzkoušel i sobelovu derivační masku, která pro výpočet používá i diagonálně sousedící pixely. Různé derivační masky nám dávají přibližně stejné výsledky v metodě HOG, a proto je použita jednoduchá maska [ 1, 0, 1], která je výpočetně a matematicky nejjednodušší a proto i nejrychlejší. 27
29 Obr. 3.2: Převod barevného obrazu (a) na černobílý (b) Určení orientace gradientů a přiřazení do košů Po výpočtu gradientů ze vzorce 1.5 zjistíme úhel, který gradient svírá s osou x. Tento úhel zjistím pro každý pixel v buňce obrazu. Pro každou buňku nyní musíme získat histogram orientovaných gradientů, tzn. úhel pro každý pixel musíme zařadit do kanálu histogramu (koše). Orientace úhlů má rozsah na obě strany. Tento rozsah rozdělíme na 9 kanálů po 20. Tzn. první kanál má rozsah 0-20 atd. Takto zařadíme všechny gradienty pixelů do kanálů. Pro každý kanál sečteme velikost gradientů pixelů, které do něj náleží, a tím získáme výslednou velikost vektoru pro daný kanál. Velikost je vypočítána dle vzorce 1.6. Uvažujeme pouze výpočet pro jednoduchý černobílý obraz, protože načtený obraz je vždy převeden do odpovídajících stupňů šedi. Pokud bychom pracovali s barevným obrazem, musela by se velikost gradientu vypočítat pro všechny složky barevného obrazu (RGB), poté určit který z nich má největší hodnotu, a ten použít pro výsledný výpočet. Postup aplikujeme na každý kanál histogramu. Ve výsledku dostaneme 9 vektorů (pro každý kanál) a jeho velikost, jak je vidět na obr Úhel vektoru pro jednotlivé kanály bude vždy ve středu rozsahu tohoto kanálu, tedy: pro 0-20 bude vektor pod úhlem 10 pro bude vektor pod úhlem 30 pro bude vektor pod úhlem pro bude vektor pod úhlem
30 Obr. 3.3: Jednoduchá derivační maska [-1,0,1] - součet gradientů ve směru osy x a y Normalizace Nyní je zapotřebí normalizovat velikost vektorů pro jednotlivé buňky. Kdyby normalizace neproběhla, rozdíly velikostí vektorů by byly příliš velké. Tyto rozdíly jsou způsobeny nerovnoměrným osvětlením, různým kontrastem popředí a pozadí a především jinou hodnotou gradientů v částech obrazů kde se nachází/nenachází hrana. V metodě HOG nejlépe vychází rozdělení obrazu na tzv. bloky skládající se z n n buněk, kdy vektory v každé buňce jsou normalizovány dle sousedních buněk. Na návrh vedoucího práce jsem pro demonstrační metodu vykreslení příznakových deskriptorů použil normalizaci globální pro celý obraz. Globální normalizace je provedena následovně: zjistí se velikost všech vektorů v kanálech histogramů v každé buňce obrazu vybere se největší z nich největší vektor se normalizuje tak, aby jeho velikost nepřesahovala maximální velikost své buňky všechny ostatní vektory jsou vyděleny zjištěným poměrem Tímto postupem je zajištěno, že největší vektor v obraze bude mít maximální velikost v dané buňce, a ostatní vektory budou mít velikost menší, ve zjištěném poměru. Nicméně vektory s mnohonásobně menší velikosti oproti největšímu, tzn. vektoru, dle kterého se normalizuje, budou mít po normalizaci tak malou velikost, že po vykreslení nebudou pravděpodobně patrné. Normalizované vektory v jednotlivých buňkách jsou výsledné příznakové deskriptory. 29
31 Obr. 3.4: Sobelova derivační maska - součet gradientů ve směru osy x a y Vykreslení vektorů - příznakových deskriptorů Pro vykreslení výsledných vektorů jsem použil funkci pro vykreslení jednoduché čáry. Počáteční souřadnici přímky víme, v každé buňce jde o středový pixel. Protože známe velikost vektoru vect a úhel α pro daný vektor, souřadnici pro druhý bod přímky získáme pomocí x = vect cos α (3.1) a y = vect sin α. (3.2) Po vykreslení vektoru pro každý kanál se navíc vykreslí inverzní vektory na opačnou stranu. Vykreslení je provedeno pomocí dvou funkcí: cv::point(xstred,ystred) a cv::line(test2,stred,bod0,cv_rgb(255,255,255),2,8,0 ); Výstup programu Jako výstup programu jsou zobrazena dvě okna: vstup deskriptor pomocí funkce z knihovny opencv: cv::namedwindow("vstup",1); cv::imshow("vstup", obraz); 30
32 Obr. 3.5: Rozdělení kanálů 0-180, v rozsahu po 20, se zobrazeným výsledným vektorem. V hlavičce okna se nachází volitelný parametr "1", který znamená, že okno se otevře v automaticky zvolené velikosti dle velikosti vstupního obrazu, přičemž velikost nelze upravovat. V okně vstup, se zobrazí vstup.png ve stupních šedi. V okně deskriptor se zobrazí výsledný vykreslený deskriptor pro celý obraz. Protože je provedena globální normalizace, vektory nejsou v celém obraze s konstantní velikostí. Je to způsobeno velkým rozdílem hodnot gradientů. Po kliknutí levým tlačítkem myši na kterýkoli deskriptor v okně, se použitím funkce: cv::setmousecallback("deskriptor", CallBackFunc, NULL); if ( event == cv::event_lbuttondown ); otevře další okno s názvem detail, kde se zobrazí detailní zobrazení tohoto konkrétního deskriptoru. Výsledná okna s vykreslenými deskriptory samotným programem můžeme vidět na obr 3.6 Nyní se podíváme, jak by měly vypadat výsledné vykreslené vektory pro reálný obraz a pro syntetické hrany v jedné buňce. Na obr. 3.7 vidíme vykreslení vektorů v buňce pro reálný obraz a syntetické hrany. V reálném obraze se většinou vykreslí více vektorů, protože obraz obsahuje více než jeden úhel gradientů. U syntetických hran obsahuje pouze gradient ve směru kolmém na hranu, tedy 0 nebo
33 Obr. 3.6: Vykreslené deskriptory pro celý obraz (a), detail deskriptoru jedné buňky - označené červeně (b). Na obr. 3.8 vidíme vykreslený deskriptor pro jednoduché geometrické tvary. Pro toto vykreslení byly použity buňky o velikosti pixelů pro lepší viditelnost. Zde je velmi zřetelně vidět, jak se výsledné příznakové deskriptory vykreslují okolo syntetických hran, s kterými se ovšem v reálném obraze setkáme stěží. 32
34 Obr. 3.7: Vykreslené vektory v buňce pro reálný obraz (a), pro syntetickou hranu v ose x (b) a pro syntetickou hranu v ose y (c). 33
35 Obr. 3.8: Vstupní obraz (a), výsledné vektory deskriptor(b). 3.3 Detekční část programu Druhá část programu HOG-test, jak můžeme vidět na obr. 3.1, slouží pro natrénovaní SVM a následné detekci. S první částí programu, určenou k vykreslení příznakových deskriptorů, má společné některé funkce. Jednotlivé kroky si opět přehledně popíšeme: Načtení vstupních obrazů - trénovací databáze Předzpracování obrazu Výpočet gradientů Určení orientace gradientů a přiřazení do košů Bloková normalizace Natrénování SVM Testovací databáze Výsledky detekce 34
36 3.3.1 Načtení trénovací databáze Prvním krokem v programu je načtení trénovací databáze. Pro tuto práci byla použita databáze INRIA (INRIA person dataset) 1, kterou vytvořili autoři metody HOG [1]. Databáze obsahuje dohromady několik tisíc pozitivních a negativních snímků postav pro trénování i testování. Několik pozitivních vzorků z této sady můžeme vidět na obr Negativní vzorky jsou různé fotografie krajin, měst, automobilů apod. Pro demonstraci jsem zvolil velikost trénovací databáze 100 vzorků, Obr. 3.9: Příklad několika pozitivních vzorků z databáze INRIA. 50 pozitivních a 50 negativních. Tyto vzorky musí být umístěny v kořenovém adresáři programu ve složce trenovani. Vzorky musí být pojmenovány trenx.png, kde X je index vzorku. Indexování začíná od 0. Prvních 50 vzorků (s indexy 0-49) jsou pozitivní vzorky, tzn. je na nich postava. Dalších 50 (indexy 50-99) jsou vzorky bez postavy Předzpracování obrazu Všechny načtené vzorky jsou opět přímo převedeny do odstínů šedi a jejich velikost je pomocí funkce OpenCV cv::resize(vystup,vystup, cv::size(64,128), 0, 0, 1); změněna na pixelů. Pozitivní vzorky v databázi INRIA mají velikost pixelů, ale negativní vzorky mají různé velikosti a proto musí být změna velikosti provedena. Proč musí mít všechny vzorky pro náš program stejnou velikost si uvedeme v další části Výpočet gradientů Výpočet gradientů pro všechny vstupní trénovací vzorky je proveden stejně, jak je uvedeno v předchozí části, tzn. pomocí jednoduché derivační masky [ 1, 0, 1]. 1 Dostupná z 35
37 3.3.4 Určení orientace gradientů a přiřazení do košů Nyní máme vypočítané gradienty pro vzorek z trénovací databáze. Ještě před tím, než se dostaneme k orientaci gradientů a přiřazování do košů, je třeba zmínit jednu souvislost. Protože SVM klasifikátor z knihovny OpenCV, který je použit, přijímá jako jeden vzorek pole číselných hodnot, je třeba výsledný příznakový deskriptor upravit na pole o velikosti 1 x čísel. Protože vzorky se kterými pracujeme, mají velikost pixelů a buňky deskriptorů 8 8 pixelů, lze snadno vypočítat, že počet buněk v obraze je 128 (Pro osu x 64/8 = 8, pro y 128/8 = 16, celkem 8 16 = 128). Určení orientace gradientů a přiřazení do košů je provedeno stejně, jak je uvedeno v kapitole 3.2.3, tzn. vektory jsou rozděleny do 9 kanálů po 20 (obr. 3.5). Z každé buňky tedy získáme 9 číselných hodnot, z každého kanálu jednu. Jeden vzorek pro SVM klasifikaci tedy bude mít 128 buněk 9 kanálů = 1152 hodnot. Pro každý vzorek je vytvořeno dynamicky nové pole o této velikosti: float* vyslednyvektor = new float[1152]; Do tohoto pole se postupně načítají vypočítané hodnoty. Pole je poté předáno SVM klasifikátoru, což bude blíže popsáno v následující části Bloková normalizace Jako normalizační schéma bylo použito normalizační schéma dle vzorce 2.2, uvedené v teoretickém úvodu. Každá buňka je normalizovaná pomocí okolních buněk = okolního bloku. Proto normalizace bloková. Protože se bloky překrývají, v buňkách proběhne normalizace více než jednou. To je pro dobré výsledky žádoucí. Velikost bloků je zvolena 2 2 buňky = každá buňka se normalizuje pomocí 3 okolních Natrénování SVM Jak bylo uvedeno v teoretické části, lineární SVM je klasifikační algoritmus, který rozdělí data do dvou částí a určí mezi nimi lineární hranici. V programu jsem použil SVM z knihovny OpenCV. Její základní parametry, jako například lineární jádro se určí takto: CvSVMParams params; params.svm_type = CvSVM::C_SVC; params.kernel_type = CvSVM::LINEAR; params.term_crit = cvtermcriteria(cv_termcrit_iter, 100, 1e-6); Do proměnné trainingdata uložíme pole o velikosti 1152 (počet vektorů z jednoho vzorku) 100 (počet vzorků pro trénování, 50 pozitivních a 50 negativních). V proměnné labels je SVM určeno, které vzorky jsou pozitivní a které negativní. 36
38 Samotné natrénování probíhá pomocí funkcí: CvSVM SVM; SVM.train(trainingData, labels, cv::mat(), cv::mat(), params); Po natrénování databáze přichází krok testování Testovací databáze Pro testování bylo zvoleno celkově 1000 vzorků z výše zmiňované databáze INRIA. V našem programu jde pouze o demonstraci, nicméně pokud bychom chtěli dosáhnout co nejlepších výsledků, bylo by potřeba použít mnohem více vzorků jak pro testování, tak především pro trénování detektoru. Pokud bychom chtěli co nejkvalitněji natrénovaný detektor, vhodné by také bylo použití křížové validace. Princip křížové validace spočívá v rozdělení sady dat na podmnožiny dat této sady. Jedna podmnožina by byla použita jako testovací, ostatní jako trénovací. Tento postup by se několikrát opakoval, pokaždé s jinou podmnožinou testovacích dat. Na konci bychom dostali robustní detektor. Protože se však v naší práci zabýváme pouze demonstrací, jednoduché trénovaní jedné skupiny dat bude dostačující. Vzorky pro testování jsou programem zpracovány stejně jako vzorky pro trénování. Pro ověření na které straně hranice dat, rozdělené pomocí algoritmu SVM, se testovaný vzorek nachází, je použita funkce: float response = SVM.predict(sampleMat); Pokud je do proměnné response uložena hodnota 1, znamená to, že obraz je určen jako pozitivní (je na něm hledaný objekt). Pokud detektor vyhodnotí vzorek jako negativní, do response je uložena hodnota Výsledky detekce Na obr můžeme vidět konzolový výpis úspěšnosti detekce deskriptoru. Hodnoty Obr. 3.10: Konzolový výpis úspěšnosti detekce jsou přehledně uvedeny také v tab. č Pro shrnutí si uvedeme ještě jednou nejdůležitější parametry: Trénovací sada 50 pozitivních a 50 negativních snímků Buňka velikost 8 8 pixelů Normalizace bloková 2 2 buňky 37
39 Lineární SVM Testovací sada 500 pozitivních a 500 negativních snímků Tab. 3.1: Testování detekce Vzorků Pozitvní Detekováno % Negativní Detekováno % Celkem , ,6 94,7% Celková úspěšnost 94,7% je velmi dobrým výsledkem. Nicméně jedná se o detekci, která je provedena na snímcích, které mají všechny stejnou velikost a postava je na nich vždy ve stejném poměru. Posledním krokem, který už v našem programu není implementován, protože přesahuje rámec této práce, by tedy byla detekce objektu v rámci celého obrazu. Provedla by se pomocí detekčního okna o velikosti pixelů, jak je uvedeno v teoretickém rozboru v kapitole 2.5. Toto okno postupně mění svoji pozici v obraze. Protože postava v obraze může být v různém poměru, detekční okno musí také měnit svoji velikost dle předpokládané velikosti objektu. Výsledná postava (nebo postavy) by se detekovala a v obraze se zvýraznila např. pomocí rámečku. Tato část již přesahuje rámec práce a mohla by být řesena v případné diplomové práci. 38
40 4 ZÁVĚR Cílem této práce bylo seznámit se s metodou Histogram Orientovaných Gradientů pro detekci objektů v obraze a následně naprogramovat aplikaci pro demonstraci výpočtu a vizualizaci konkrétních obrazů s vykreslením příznakových vektorů - deskriptorů a detekci objektů. Aplikace pracuje dle předpokladů, v obraze se vykreslí deskriptory pro 8 16 buněk, celkově tedy 128 deskriptorů. Vykreslení vektorů pracuje správně, v každé buňce se vykreslí jeden, nebo více vektorů. Velikost daného vektoru závisí na velikosti tohoto kanálu. Naprogramovaná aplikace je pouze konzolová a nelze během spuštění jakkoli měnit parametry s kterými program pracuje. Načtený obraz pojmenovaný vstup.jpg se načítá z kořenové složky programu. Trénovací i testovací databáze se taktéž načítají z kořenového adresáře programu ze složek testovani a trenovani. Výsledné vykreslené příznakové deskriptory se vykreslí v samostatném okně a po kliknutí na daný deskriptor se vykreslí detail této buňky. Vykreslování je interaktivní, tzn. po kliknutí na jinou buňku se automaticky zobrazí detail nové buňky. Výslednou úspěšnost detekce postavy, s dosaženou úspěšností 94,7%, můžeme považovat za velmi dobrý výsledek. I když v této práci pracujeme pouze s detekcí lidské postavy v obraze, metodu HOG by bylo možné použít i pro detekci jakéhokoliv typu objektu. Pokud bychom chtěli program použít např. pro detekci automobilů, museli bychom si předem připravit databázi vzorků, na kterých se vyskytuje automobil a ty by byly použity pro natrénování SVM. Výsledek by ovšem s největší pravděpodobností nedosahoval dobrých výsledků, protože metoda Histogram Orientovaných Gradientů je primárně určena pro detekci lidských postav a v tomto ohledu dosahuje vynikajících výsledků. Právě z tohoto důvodu jsem pro demonstraci zvolil detekci postav. Pro testování byla použita databáze INRIA, kterou vytvořili autoři metody HOG. V detekční části programu se zabýváme pouze fixní velikostí obrazu, tzn. není řešeno škálování. Škálování, tedy detekce objektů různých poměrů v různých velikostech obrazů, by mohlo být námětem pro budoucí diplomovou práci. Navržený algoritmus byl implementován v prostředí MS Visual Studio 2012 pomocí objektově orientovaného jazyka C++ s použitím knihovny OpenCV a je součástí přílohy. Pro správné spuštění programu musí být v systému dostupné dynamické knihovny OpenCV příslušné verze. 39
41 LITERATURA [1] Dalal, N.,Triggs, B.: Histograms of Oriented Gradients for Human Detection. International Conference on Computer Vision and Pattern Recognition, volume 2, pages , Dostupné z WWW: [2] Gonzales, R. Woods, R., 3. vydání. Digital Image Procesing. 3. vyd. New Jersey: Pearson Education, ISBN [3] Bertozzi, M., Broggi, A., Rose, M., Felisa, M., Rakotomamonjy, A., Suard, F.: A Pedestrian Detector Using Histograms of Oriented Gradients and a Support Vector Machine Classifier. Intelligent Transportation Systems Conference, pages , Dostupné z WWW: [4] Zeman,V., Hledání hran [online]. Publikováno [cit ]. Dostupné z WWW: 22EdgeDetectionCz.pdf [5] Říha, K., Pokročilé techniky zpracování obrazu. Vysoké učení technické v Brně, 2007 [6] Hsu C.-W., Chang, C.-C., Lin, C.-J.: LIBSVM: A Library for Support Vector Machines. 2001, Department of Computer Science, National Taiwan University, Taipei, Taiwan, Dostupné z WWW: [7] Chang, C.-C., Lin, C.-J.: A Practical Guide to Support Vector Classification. 2003, Department of Computer Science, National Taiwan University, Taipei 106, Taiwan, Dostupné z WWW: 40
42 A OBSAH PŘILOŽENÉHO DVD Elektronická verze práce Zdrojové kódy k aplikaci, projekt pro MS Visual studio 2012 Sada trénovacích a testovacích obrázků Pro správné spuštění exe souboru musí být v systému dostupné dynamické knihovny OpenCV. Jinak se mohou vyskytnout problémy s kompatibilitou. Jejich seznam (verze 2.4.8) je zde: opencv_calib3d248d.lib opencv_contrib248d.lib opencv_core248d.lib opencv_features2d248d.lib opencv_flann248d.lib opencv_gpu248d.lib opencv_highgui248d.lib opencv_imgproc248d.lib opencv_legacy248d.lib opencv_ml248d.lib opencv_nonfree248d.lib opencv_objdetect248d.lib opencv_photo248d.lib opencv_stitching248d.lib opencv_ts248d.lib opencv_video248d.lib opencv_videostab248d.lib 41
13 Barvy a úpravy rastrového
13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody
DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH
DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH Viktor Haškovec, Martina Mudrová Vysoká škola chemicko-technologická v Praze, Ústav počítačové a řídicí techniky Abstrakt Příspěvek je věnován zpracování biomedicínských
Analýza a zpracování digitálního obrazu
Analýza a zpracování digitálního obrazu Úlohy strojového vidění lze přibližně rozdělit do sekvence čtyř funkčních bloků: Předzpracování veškerých obrazových dat pomocí filtrací (tj. transformací obrazové
LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015
LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015 1 LBP 1 LBP Tato metoda, publikovaná roku 1996, byla vyvinuta za účelem sestrojení jednoduchého a výpočetně rychlého nástroje pro
Jasové transformace. Karel Horák. Rozvrh přednášky:
1 / 23 Jasové transformace Karel Horák Rozvrh přednášky: 1. Úvod. 2. Histogram obrazu. 3. Globální jasová transformace. 4. Lokální jasová transformace. 5. Bodová jasová transformace. 2 / 23 Jasové transformace
Programátorská dokumentace
Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci
Měření průtoku kapaliny s využitím digitální kamery
Měření průtoku kapaliny s využitím digitální kamery Mareš, J., Vacek, M. Koudela, D. Vysoká škola chemicko-technologická Praha, Ústav počítačové a řídicí techniky, Technická 5, 166 28, Praha 6 e-mail:
SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků
SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků lukas.mach@gmail.com Přílohy (videa, zdrojáky, ) ke stažení na: http://mach.matfyz.cz/sift Korespondence
VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt
VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni Abstrakt Současný trend snižování počtu kontaktních hodin ve výuce nutí vyučující
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
ZÁKLADNÍ METODY REFLEKTOMETRIE
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF
2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2
Výpočet transformačních koeficinetů vybraných 2D transformací Jan Ježek červen 2008 Obsah Odvození transformačního klíče vybraných 2D transformací 2 Meto vyrovnání 2 2 Obecné vyjádření lineárních 2D transformací
ZÁKLADY AUTOMATICKÉHO ŘÍZENÍ
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ ZÁKLADY AUTOMATICKÉHO ŘÍZENÍ 1. týden doc. Ing. Renata WAGNEROVÁ, Ph.D. Ostrava 2013 doc. Ing. Renata WAGNEROVÁ, Ph.D. Vysoká škola báňská
Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy
Centrum Digitální Optiky Meo S-H: software pro kompletní diagnostiku intenzity a vlnoplochy Výzkumná zpráva projektu Identifikační čí slo výstupu: TE01020229DV003 Pracovní balíček: Zpracování dat S-H senzoru
2. Numerické výpočty. 1. Numerická derivace funkce
2. Numerické výpočty Excel je poměrně pohodlný nástroj na provádění různých numerických výpočtů. V příkladu si ukážeme možnosti výpočtu a zobrazení diferenciálních charakteristik analytické funkce, přičemž
7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem
7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového
GEODETICKÉ VÝPOČTY I.
SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 2.ročník GEODETICKÉ VÝPOČTY I. TABELACE FUNKCE LINEÁRNÍ INTERPOLACE TABELACE FUNKCE Tabelace funkce se v minulosti často využívala z důvodu usnadnění
1 Jasové transformace
1 Jasové transformace 1.1 Teoretický rozbor 1.1.1 Princip jasové transformace Jasové transformace představují transformační funkce, které mění vždy určitou hodnotu vstupní jasové funkce na výstupní. Transformace
Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1
Kapitola 4 Rasterizace objektů Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na rastrově definované obrazy. Při zobrazení reálného modelu ve světových souřadnicích na výstupní
Středoškolská technika SCI-Lab
Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT SCI-Lab Kamil Mudruňka Gymnázium Dašická 1083 Dašická 1083, Pardubice O projektu SCI-Lab je program napsaný v jazyce
Kybernetika a umělá inteligence, cvičení 10/11
Kybernetika a umělá inteligence, cvičení 10/11 Program 1. seminární cvičení: základní typy klasifikátorů a jejich princip 2. počítačové cvičení: procvičení na problému rozpoznávání číslic... body za aktivitu
Matematické modelování dopravního proudu
Matematické modelování dopravního proudu Ondřej Lanč, Alena Girglová, Kateřina Papežová, Lucie Obšilová Gymnázium Otokara Březiny a SOŠ Telč lancondrej@centrum.cz Abstrakt: Cílem projektu bylo seznámení
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
Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)
Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů) Autor: Vladimir Vapnik Vapnik, V. The Nature of Statistical Learning Theory.
Úloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
Operace s obrazem II
Operace s obrazem II Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 Osnova Matematická morfologie Segmentace obrazu Klasifikace objektů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA VYŠŠÍ GEODÉZIE název předmětu úloha/zadání název úlohy Základy fyzikální geodézie 3/19 Legendreovy přidružené funkce
CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17
CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku
Návod k použití softwaru Solar Viewer 3D
Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
Copyright 2013 Martin Kaňka;
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Hlavním cílem aplikace Cubix je výpočet a procvičení výpočtu objemu a povrchu těles složených z kostek. Existují tři obtížnosti úkolů
xrays optimalizační nástroj
xrays optimalizační nástroj Optimalizační nástroj xoptimizer je součástí webového spedičního systému a využívá mnoho z jeho stavebních bloků. xoptimizer lze nicméně provozovat i samostatně. Cílem tohoto
Popisná statistika kvantitativní veličiny
StatSoft Popisná statistika kvantitativní veličiny Protože nám surová data obvykle žádnou smysluplnou informaci neposkytnou, je žádoucí vyjádřit tyto ve zhuštěnější formě. V předchozím dílu jsme začali
Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,
2010 Josef Pelikán, CGG MFF UK Praha
Filtrace obrazu 21 Josef Pelikán, CGG MFF UK Praha http://cgg.mff.cuni.cz/~pepca/ 1 / 32 Histogram obrázku tabulka četností jednotlivých jasových (barevných) hodnot spojitý případ hustota pravděpodobnosti
DETEKCE SKUPIN OSOB V DATABÁZI OBRAZŮ
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
Semestrální práce Mozaika aneb Co všechno umí pan Voronoi
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Semestrální práce Mozaika aneb Co všechno umí pan Voronoi Plzeň, 2008 Aubrecht Vladimír Obsah 1 Zadání...
TECHNICKÉ PARAMETRY DIPLOMOVÉ PRÁCE
TECHNICKÉ PARAMETRY DIPLOMOVÉ PRÁCE 1. VAZBA Práce je vázána v pevných deskách, na kterých jsou následující údaje: Název vysoké školy a fakulty; jméno autora diplomové práce; název práce; Diplomová práce
1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.
Prostá regresní a korelační analýza 1 1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Problematika závislosti V podstatě lze rozlišovat mezi závislostí nepodstatnou, čili náhodnou
MATURITNÍ TÉMATA Z MATEMATIKY
MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické
D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E
D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E CÍLE LABORATORNÍ ÚLOHY 1. Seznámení se s metodami detekce pohybu z videa. 2. Vyzkoušení si detekce pohybu v obraze kamery ÚKOL
Diferenciální rovnice 3
Diferenciální rovnice 3 Lineární diferenciální rovnice n-tého řádu Lineární diferenciální rovnice (dále jen LDR) n-tého řádu je rovnice tvaru + + + + = kde = je hledaná funkce, pravá strana a koeficienty
Studentská tvůrčí a odborná činnost STOČ 2017
Studentská tvůrčí a odborná činnost STOČ 2017 Detekce a analýza pohybu osob založená na analýze obrazu Bc. Robin Antonič Mendelova univerzita v Brně, Zemědělská 1 20. dubna 2017 FAI UTB ve Zlíně Klíčová
Úpravy rastrového obrazu
Přednáška 11 Úpravy rastrového obrazu Geometrické trasformace Pro geometrické transformace rastrového obrazu se používá mapování dopředné prochází se pixely původního rastru a určuje se barva a poloha
Pokročilé vyhodnocování mikrotvrdosti programem MICRONESS
Pokročilé vyhodnocování mikrotvrdosti programem MICRONESS Jan Široký Energocentrum Plus s.r.o. Vyhodnocovací systém Microness Pro automatické vyhodnocení vtisků (Vickers, Knoop) Možnost instalace na téměř
Příprava dat v softwaru Statistica
Příprava dat v softwaru Statistica Software Statistica obsahuje pokročilé nástroje pro přípravu dat a tvorbu nových proměnných. Tyto funkcionality přinášejí značnou úsporu času při přípravě datového souboru,
TSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY
TSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY V PROSTŘEDÍ MATLAB K. Nováková, J. Kukal FJFI, ČVUT v Praze ÚPŘT, VŠCHT Praha Abstrakt Při rozpoznávání D binárních objektů z jejich diskrétní realizace se využívají
Lingebraické kapitolky - Analytická geometrie
Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V
Automatické rozpoznávání dopravních značek
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA DOPRAVNÍ Jiří Hofman Automatické rozpoznávání dopravních značek Semestrální práce z předmětu ITS 2012 Obsah 1. Automatické rozpoznávání dopravních značek (ATSR)...
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
Algoritmy a struktury neuropočítačů ASN - P11
Aplikace UNS při rozpoznání obrazů Základní úloha segmentace obrazu rozdělení obrazu do několika významných oblastí klasifikační úloha, clusterová analýza target Metody Kohonenova metoda KSOM Kohonenova
scale n_width width center scale left center range right center range value weight_sum left right weight value weight value weight_sum weight pixel
Změna velikosti obrázku Převzorkování pomocí filtrů Ačkoliv jsou výše uvedené metody mnohdy dostačující pro běžné aplikace, občas je zapotřebí dosáhnout lepších výsledků. Pokud chceme obrázky zvětšovat
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ, OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ, OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE název předmětu TOPOGRAFICKÁ A TEMATICKÁ KARTOGRAFIE číslo úlohy název úlohy 2 Tvorba tematických
Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu
Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project
Rozpoznávání v obraze
Rozpoznávání v obraze AdaBoost a detekce objektů IKR, 2013 Roman Juránek www.fit.vutbr.cz/~ijuranek/personal Detekce objektů Úloha - v daném obraze nalézt objekty určitých tříd
11 Zobrazování objektů 3D grafiky
11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a
StatSoft Jak vyzrát na datum
StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek
Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17
Mgr. Tomáš Kotler I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán rovinný obrazec, v obrázku vyznačený barevnou výplní, který představuje
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
Univerzální prohlížeč naměřených hodnot
Návod na používání autorizovaného software Univerzální prohlížeč naměřených hodnot V Ústí nad Labem 14. 8. 2009 Vytvořil: doc. Ing., Ph.D. 1 z 10 Obsah 1Úvod...3 2Instalace...3 3Spuštění programu...3 3.1Popis
5. Umělé neuronové sítě. Neuronové sítě
Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně
6 Samodružné body a směry afinity
6 Samodružné body a směry afinity Samodružnými body a směry zobrazení rozumíme body a směry, které se v zobrazují samy na sebe. Například otočení R(S má jediný samodružný bod, střed S, anemá žádný samodružný
Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.
Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Semestrální projekt Vyhodnocení přesnosti sebelokalizace Vedoucí práce: Ing. Tomáš Jílek Vypracovali: Michaela Homzová,
http://excel.fit.vutbr.cz Určení azimutu natočení hlavy v záznamu bezpečnostní kamerou Ondřej Blucha* Abstrakt Cílem této práce je vytvořit program, který bude schopen ze vstupního videa určit úhly natočení
4.3. GONIOMETRICKÉ ROVNICE A NEROVNICE
4.3. GONIOMETRICKÉ ROVNICE A NEROVNICE V této kapitole se dozvíte: jak jsou definovány goniometrické rovnice a nerovnice; jak se řeší základní typy goniometrických rovnic a nerovnic. Klíčová slova této
Autorizovaný software DRUM LK 3D SOFTWARE PRO VYHODNOCENÍ MĚŘENÍ ODCHYLEK HÁZIVOSTI BUBNOVÝCH ROTAČNÍCH SOUČÁSTÍ
Autorizovaný software DRUM LK 3D SOFTWARE PRO VYHODNOCENÍ MĚŘENÍ ODCHYLEK HÁZIVOSTI BUBNOVÝCH ROTAČNÍCH SOUČÁSTÍ Ing. Michal Švantner, Ph.D. Doc. Ing. Milan Honner, Ph.D. 1/10 Anotace Popisuje se software,
Fyzikální korespondenční seminář MFF UK
Úloha I.S... náhodná 10 bodů; průměr 7,04; řešilo 45 studentů a) Zkuste vlastními slovy popsat, co je to náhodná veličina a jaké má vlastnosti (postačí vlastními slovy objasnit následující pojmy: náhodná
UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek
UNIVERZITA PARDUBICE Licenční Studium Archimedes Statistické zpracování dat a informatika 4.4 Aproximace křivek a vyhlazování křivek Mgr. Jana Kubátová Endokrinologický ústav V Praze, leden 2012 Obsah
Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.
1 Variace konstanty Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. Příklad 1 Najděte obecné řešení rovnice: y + y = 4 sin t. Co
MS EXCEL 2010 ÚLOHY. Vytvořte tabulku podle obrázku, která bude provádět základní matematické operace se dvěma zadanými čísly a a b.
MS EXCEL 2010 ÚLOHY ÚLOHA Č.1 Vytvořte tabulku podle obrázku, která bude provádět základní matematické operace se dvěma zadanými čísly a a b. Do buněk B2 a B3 očekávám zadání hodnot. Buňky B6:B13 a D6:D13
Projekt Obrázek strana 135
Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy
Tabulkový procesor. Základní rysy
Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních
Laserový skenovací systém LORS vývoj a testování přesnosti
Laserový skenovací systém LORS vývoj a testování přesnosti Ing. Bronislav Koska Ing. Martin Štroner, Ph.D. Doc. Ing. Jiří Pospíšil, CSc. ČVUT Fakulta stavební Praha Článek popisuje laserový skenovací systém
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV MECHANIKY TĚLES, MECHATRONIKY A BIOMECHANIKY Komentovaný metodický list č. 1/4 Vytvořil: Ing. Oldřich Ševeček & Ing. Tomáš Profant, Ph.D.
ÚROVNĚ, KŘIVKY, ČERNOBÍLÁ FOTOGRAFIE
ÚROVNĚ, KŘIVKY, ČERNOBÍLÁ FOTOGRAFIE U057 Zoner Photo Studio editace fotografie 2 LS 2014 Ing. Martin Seko JAK NA ČERNOBÍLOU FOTOGRAFII DESATURACE Úrovně, křivky, černobílá fotografie 3 DESATURACE Úrovně,
OBRAZOVÁ ANALÝZA. Speciální technika a měření v oděvní výrobě
OBRAZOVÁ ANALÝZA Speciální technika a měření v oděvní výrobě Prostředky pro snímání obrazu Speciální technika a měření v oděvní výrobě 2 Princip zpracování obrazu matice polovodičových součástek, buňky
Počítačové zpracování obrazu Projekt Učíme se navzájem
Počítačové zpracování obrazu Projekt Učíme se navzájem Tomáš Pokorný, Vojtěch Přikryl Jaroška 15. ledna 2010 Tomáš Pokorný email: xtompok@gmail.com Jaroška 1 Obsah Abstrakt! 4 Začátky! 5 M&M 5 Původní
12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
Zpracování chybějících dat a dat mimo rozsah
StatSoft Zpracování chybějících dat a dat mimo rozsah V tomto článku si představíme jeden z možných postupů, jak se rychle a snadno vypořádat s detekcí chybějících dat a dat mimo stanovený rozsah. Načtení
Projekt Pospolu. ROČNÍKOVÁ PRÁCE Z ODBORNÉ PRAXE Jak má práce vypadat a co vše má obsahovat
Projekt Pospolu ROČNÍKOVÁ PRÁCE Z ODBORNÉ PRAXE Jak má práce vypadat a co vše má obsahovat Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Václav Bechiňský. ROČNÍKOVÁ PRÁCE Z ODBORNÉ
SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7
SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7 Daniel Tureček St-lichý týden, 9:15 Zadání Určete periodu signálu s(k), určete stejnosměrnou složku, výkon, autokorelační funkci. Záznam signálu je v souboru persig2.
Rozšíření bakalářské práce
Rozšíření bakalářské práce Vojtěch Vlkovský 2011 1 Obsah Seznam obrázků... 3 1 Barevné modely... 4 1.1 RGB barevný model... 4 1.2 Barevný model CMY(K)... 4 1.3 Další barevné modely... 4 1.3.1 Model CIE
Rozdělování dat do trénovacích a testovacích množin
Rozdělování dat do trénovacích a testovacích množin Marcel Jiřina Rozpoznávání je důležitou metodou při zpracování reálných úloh. Rozpoznávání je definováno dvěma kroky a to pořízením dat o reálném rozpoznávaném
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
ZŠ ÚnO, Bratří Čapků 1332
Úvodní obrazovka Menu (vlevo nahoře) Návrat na hlavní stránku Obsah Výsledky Poznámky Záložky edunet Konec Matematika 1 (pro 12-16 let) LangMaster Obsah (střední část) výběr tématu - dvojklikem v seznamu
ANALÝZA A KLASIFIKACE DAT
ANALÝZA A KLASIFIKACE DAT prof. Ing. Jiří Holčík, CSc. INVESTICE Institut DO biostatistiky ROZVOJE VZDĚLÁVÁNÍ a analýz III. PŘÍZNAKOVÁ KLASIFIKACE - ÚVOD PŘÍZNAKOVÝ POPIS Příznakový obraz x zpracovávaných
Modelování blízkého pole soustavy dipólů
1 Úvod Modelování blízkého pole soustavy dipólů J. Puskely, Z. Nováček Ústav radioelektroniky, Fakulta elektrotechniky a komunikačních technologií, VUT v Brně Purkyňova 118, 612 00 Brno Abstrakt Tento
FOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth
FOURIEROVA ANALÝZA 2D TERÉNNÍCH DAT Karel Segeth Motto: The faster the computer, the more important the speed of algorithms. přírodní jev fyzikální model matematický model numerický model řešení numerického
Inteligentní řešení kamerového systému
Inteligentní řešení kamerového systému Uživatelský manuál Přehrávání a zálohování záznamů Přehrávání Přehrávání pořízených videozáznamů, zobrazení a vyhledávání neobvyklých událostí a informací o systému
Operační systémy 2: Zápočtové úkoly
Operační systémy 2: Zápočtové úkoly 18. listopad 2010 1 Paralelní Mergesort Implementujte paralelní verzi algoritmu Merge sort, který bude řadit celá čísla uložená v textovém souboru. Program bude mít
Diplomová práce Prostředí pro programování pohybu manipulátorů
Diplomová práce Prostředí pro programování pohybu manipulátorů Štěpán Ulman 1 Úvod Motivace: Potřeba plánovače prostorové trajektorie pro výukové účely - TeachRobot Vstup: Zadávání geometrických a kinematických
Vytěžování znalostí z dat
Pavel Kordík, Jan Motl (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 1 1/32 Vytěžování znalostí z dat Pavel Kordík, Jan Motl Department of Computer Systems Faculty of Information Technology
Aplikovaná numerická matematika - ANM
Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových
PROJEKT 3 2D TRAJEKTORIE KAMERY SEMESTRÁLNÍ PRÁCE DO PŘEDMĚTU MAPV
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
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
Obecný Hookeův zákon a rovinná napjatost
Obecný Hookeův zákon a rovinná napjatost Základní rovnice popisující napěťově-deformační chování materiálu při jednoosém namáhání jsou Hookeův zákon a Poissonův zákon. σ = E ε odtud lze vyjádřit také poměrnou
Popis funkcí tlačítek jednotlivých modulů programu OGAMA
Nevázaná příloha bakalářské práce VYUŽITÍ OPEN-SOURCE NÁSTROJŮ PRO PŘÍPRAVU, PRŮBĚH A VYHODNOCENÍ EYE-TRACKING EXPERIMENTŮ Popis funkcí tlačítek jednotlivých modulů programu OGAMA Michal KUČERA, 2014 Replay