VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY POPIS A DETEKCE TEXTUR V OBRAZE IMAGE TEXTURE REPRESENTATION AND DETECTION
|
|
- Pavel Švec
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS POPIS A DETEKCE TEXTUR V OBRAZE IMAGE TEXTURE REPRESENTATION AND DETECTION BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR TOMÁŠ ZACHAR Ing. MICHAL ŠPANĚL BRNO 2010
2 Abstrakt Tato bakalářská práce se zabývá metodami klasifikace textur a implementuje jednoduchý klasifikátor textur, umožňující generování dynamické banky filtrů dle aktuální sady textur. Pro získání příznaků jsou zvoleny Gáborovy filtry společně s Hu momenty. Jako klasifikátor je použit algoritmus SVM. Abstract This bachelor's thesis presents methods used for texture classification and implements programme which is able to realize simple classification and which is capable of generating dynamic bank of filters according to actual texture library. For feature extraction is used combination of Gabor filters with Hu-moments. As classifier there is used algorithm SVM. Klíčová slova OpenCv, klasifikace textur, Gáborovy filtry, příznaky textur, Hu momenty, LBP, textura, SVM, libsvm, ANN Keywords OpenCv, texture classification, Gabor filters, Gabor wavelets, textures features, Hu-moments, LBP, texture, SVM, libsvm, ANN Citace Zachar Tomáš: Popis a detekce textur v obraze, bakalářská práce, Brno, FIT VUT v Brně, 2010
3 Popis a detekce textur v obraze Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením pana Ing. Michala Španěla Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. Tomas Zachar 10. dubna 2010 Poděkování Rád bych poděkoval Ing. Michalu Španělovi, vedoucímu mé práce, za pomoc, vedení a konzultace. Tomáš Zachar, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů..
4 Obsah Obsah Úvod Analýza textur v obraze Textura Analýza textury LBP Gáborovy filtry Momentové charakteristiky Klasifikace textur ANN SVM Návrh řešení Získání vstupu Transformace vstupu Výběr sady filtrů Implementace Uložení příznaků pro klasifikaci Nástroje pro implementaci Výsledky Výběr banky Klasifikace Závěr Literatura Obsah CD
5 1 Úvod Integrace počítačů do našich životů je v posledních letech stále výraznější a snaha naučit počítače dělat spoustu věcí za nás roste obrovskou rychlostí. Zpracování obrazu je nedílnou součástí této snahy. Ať už mluvíme o gesty ovládaném softwaru, bezpečnostních programech zpracovávající obraz kamery na letištích, nebo programech v nemocnicích zpracovávající data získaná z pacientů. Tato práce se zabývá jednou částí této široké oblasti, a to klasifikací textur, a má tři hlavní cíle. Prvním cílem je seznámit čtenáře s metodami, které se pro tyto účely používají, a jejich základními principy. Druhým cílem je navrhnout algoritmus pro výběr filtrů podle aktuální sady textur, nebo jinak řečeno, umožnit, aby byla vždy vybrána co nejefektivnější sada filtrů dle aplikace, ve které se algoritmus použije. Třetím cílem je otestovat tento přístup a zhodnotit jeho použitelnost v praxi. Nejprve tedy shrnu obecně některé metody používané v praxi pro analýzu, jako jsou LBP, Gáborovy filtry a další. Dále uvedu několik informací o metodách, určených ke klasifikaci, jako ANN a SVM. V dalších kapitolách se zaměřím na návrh mé aplikace, metody, které jsem pro ni zvolil a seznámím čtenáře také s implementační částí projektu. Nakonec jsou uvedeny výsledky testování rozpoznávání jednotlivých sestavených knihoven a čtenář se dozví, jaké problémy je stále ještě třeba vyřešit či promyslet a jaké možnosti rozšíření či případné další specializace toto téma umožňuje. 2
6 2 Analýza textur v obraze 2.1 Textura Nejprve je důležité položit si otázku, co to vlastně textura je. Ta je zodpovězena v článku [1], ze kterého je také převzaný následující text. Bohužel, neexistuje žádná jednotná definice pro tento pojem. Obecně, není to pouze pracovat s malou geometrickou plochou na v počítači vytvořeném objektu, což je nejčastější spojení s tímto slovem. Lepším způsobem vyjádření je představit si ji jako barevnou mapu. V počítačové grafice jsou dva druhy textur: deterministické a statistické. Deterministické textury jsou vytvořeny opakováním fixního geometrického tvaru jako obdélník, kruh, čtverec, čára nebo body. Tato opakovaná primitiva se nazývají texely. Texel má stejný tvar, rozložení intenzit, orientaci či velikost. Ukázkou deterministické textury jsou například cihly nebo tapeta na zeď (Obrázek 2.1). Jsou reprezentovány parametry svého specifického tvaru. Statistické textury jsou vytvořeny poněkud jiným způsobem. Mění se jednotlivé vzory, přičemž si ale zachovávají své statistické parametry. Většina přírodních textur, jako je dřevo či kameny, jsou statistické. Statistické textury jsou často popisovány z hlediska prostorových frekvencí. Obrázek 2.1 Příklad textur 2.2 Analýza textury Analýza textury je důležitou problematikou při zpracování obrazu. Správná analýza je podmínkou pro kvalitní segmentaci a klasifikaci obrazu. Tato problematika je velmi dobře zpracována v článku [2], ze kterého je následující text převzat. Hlavními cíli výzkumu v počítačovém vidění je pochopit, vytvářet a zpracovávat textury. Samotná analýza se používá při různých stádiích procesu zpracování obrazu. Vezměme v potaz obecný systém počítačového vidění a rozdělme si ho na jednotlivé části (Obrázek 2.2). Například při předzpracování se může jednat o segmentaci obrazu na různé oblasti v závislosti na vlastnostech textury každého regionu. Při získávání příznaků nebo klasifikaci nám zase například mohou získané vlastnosti textur poskytnout vodítka pro klasifikaci tvarů nebo identifikaci objektů. 3
7 Obrázek 2.2 Fáze zpracování Stěžejní myšlenkou a účelem této analýzy je získat obecný, dostatečně použitelný a nepříliš rozměrný popis textury. To umožňuje použití různých matematických operací, které mohou být použity k modifikaci, porovnávání a transformaci. Různé algoritmy používané k získávání příznaků a odvozování charakteristik používají různé přístupy, různé typy příznaků a řadu dalších. Například statistická metoda popisuje texturu pomocí signálové statistiky, která zobrazuje nedeterministické vlastnosti jejich prostorové distribuce. Spektrální metoda získávající příznaky textur ze spektra. Strukturální metoda zase bere texturu jako hierarchii prostorových uskupení, dobře definovaných texturových primitiv. Máme čtyři hlavní oblasti týkající se analýzy textur: Extrakce příznaků výpočet charakteristik digitálního obrazu, které číselně popisují vlastnosti textury. Klasifikace textur určení, které z daného množství definovaných skupin homogenních textur daná oblast náleží. Rozlišování textur oddělení obrazu s texturami do regionů tak, aby každá oblast odpovídala visuelně homogenní textuře. Modely z textur rekonstrukce 3D povrchové geometrie z informací o textuře. Metod pro potřeby analýzy textury je dostatečné množství, aby se vždy našla vhodná metoda právě pro potřeby konkrétní situace. Nejpoužívanější je LBP (Local Binary Patterns) a samozřejmě využití filtrů. Nejznámější jsou pravděpodobně Gáborovy filtry. Tyto dvě metody jsou v praxi dle mého názoru nejčastější, proto se jim bude tato práce alespoň v rámci uvedení do problematiky věnovat. 2.3 LBP Local Binary Pattern (LBP) je jednoduchý, přesto však velmi efektivní nástroj pro práci s texturou princip této metody je shrnut na adrese [3], ze které je také převzaný následující podkapitola. Označuje pixely obrázku pomocí prahování okolí každého pixelu s hodnotou pixelu uprostřed, přičemž bere výsledek jako binární číslo. Díky svým rozlišujícím schopnostem a 4
8 jednoduchosti samotných výpočtů se využití LBP stalo velmi populární u široké škály aplikací. Můžeme na tuto metodu nahlížet jako na sjednocující přístup k tradičně divergentním statistickým a strukturálním modelům analýzy textur. Možná nejdůležitější vlastností přístupu pomocí LBP v aplikacích, které se běžně v praxi používají, je jeho robustnost pro monotónní změny na texturách převedených do odstínů šedi, například ty, způsobené změnou osvětlení. Další důležitou vlastností je jednoduchost samotného výpočtu, která umožňuje analyzovat obrázky velkou rychlostí. Obrázek 2.3 Příklad výpočtu LBP (převzato z [3]) Základní myšlenkou pro vývoj LBP operátoru bylo, že dvourozměrné textury mohou být popsány dvěma doplňkovými parametry: místně spojité vzorky a kontrast odstínů šedi. Originální LBP operátor formuje označení pro pixely obrázku prahováním okolí 3x3 každého pixelu se střední hodnotou a bere výsledek jako binární číslo. Tento histogram rozdílných hodnot může být použit jako pro popis textury. Později byl operátor rozšířen, aby mohl využívat okolí pixelu o různé velikosti. Použitím kruhového okolí a bilineárně interpolačních hodnot na reálné koordináty pixelu umožňuje jakýkoliv dosah a počet pixelů ve zpracovávaném okolí. Změny odstínů šedi v místním okolí mohou být použity jako doplňující měřítko kontrastu. V následujícím příkladu bude uvažovaná notace (P,R) použita pro okolí pixelu, což znamená P vzorkovacích bodů na kruhu o poloměru R. Příklad výpočtu je uveden viz Obrázek 2.3. Dalším rozšířením originálního operátoru je definice takzvaných jednotných vzorků (uniform patterns), které mohou být použity pro zmenšení velikosti vektoru charakteristik a implementují jednoduchý rotačně invariantní deskriptor. Toto rozšíření bylo inspirováno faktem, že některé binární vzorky se objevují běžněji v obrazcích textur, než u ostatních. LBP se nazývá jednotný, pokud binární vzorek obsahuje maximálně dva bitově orientované přechody od 0 do 1, nebo naopak, když je bitový vzorek otáčen dokola. Například vzorek (0 přechodů), (2 přechody) a (2 přechody) jsou jednotné, zatímco vzorky (4 přechody) a (6 přechodů) nejsou. Ve výpočtech popisů LBP, jsou používány jednotné vzorky, takže je zde oddělený popis pro každý 5
9 jednotný vzorek a všechny nejednotné vzorky jsou popsány jediným popisem. Například použitím rozsahu okolí dle výše zmíněné notace (8,R), máme celkově 256 vzorků, ze kterých je 58 jednotných, což vede ke vzniku 59 různých popisů. Pro operátor LBP je používána tato notace: LBP P,R u2. Dolní index reprezentuje použití operátoru v rozsahu okolí (P,R). Horní index u2 znamená používání pouze jednotných vzorků a označování všech ostatních vzorků jediným popisem. Poté, co získáme obrázek f(x,y) popsaný pomocí LBP, je možné definovat LBP histogram pomoci výpočtu - viz vzorec [1], kde n je počet různých popisů získaných pomocí LBP operátoru a I{A} je 1, pokud A má hodnoty TRUE a 0 pokud A je FALSE. [1] Pokud oblasti obrazu, jejichž histogramy mají být porovnány, mají rozdílnou velkost, histogramy musí byt normalizovány, aby získaly jednotný popis. Použijeme následující výpočet [2]. [2] LBP se používá v různých oblastech. Jako příklad bych uvedl práci s identifikací obličeje nebo výrazu na tváři na následujících obrazcích viz Obrázek
10 Obrázek 2.4 Využití LBP (převzato z [3]) 2.4 Gáborovy filtry Gáborovi filtry jsou velmi často používaným přístupem a tato teorie je tedy shrnuta v mnoha materiálech. Tato podkapitola je citována ze článku [4], kde je shrnuta teorie této problematiky. Na každou texturu se dá pohlížet tak, že obsahuje úzkou oblast frekvenčních a orientačních složek. Filtrováním obrazu několika pásmovými propustmi, nastavenými na dominantní frekvenční a orientační složky textur, je možné najít jednotlivé textury. Obraz tedy prochází sadou kanálů, přičemž každý z nich aplikuje filtr odpovídajícího nastavení. Gáborovy filtry jsou pásmové propusti s nastavitelnou středovou frekvencí, orientací a šířkou pásma viz Obrázek
11 Obrázek 2.5 Příklady Gáborových filtrů V prostoru je dvourozměrný Gáborův filtr definován jako Gaussova funkce jádra, modulovaná sinusovou rovinnou vlnou [5]. Filtry jsou vzájemně si podobné a všechny mohou být generovány z jedné mateřské vlny pomocí rozšíření a rotace. Impulsní odezva je definována pomocí harmonické funkce, násobené Gaussovou funkcí. Fourierova transformace impulsní odezvy Gáborova filtru je konvoluce Fourierovy transformace harmonické funkce z Fourierovy transformace Gaussovy funkce [3]. [3] V této rovnici λ reprezentuje šířku pásma kosinova faktoru, θ reprezentuje orientaci normál vůči paralelním pruhům Gáborovy funkce, ψ je fázový posun, σ je sigma Gaussovy obálky a γ je prostorový poměr stran a specifikuje eliptičnost Gáborovy funkce. Gáborovy filtry přímo souvisí s Gáborovými vlnkami, které jsou navrhnuty pro několik velikostí a rotací. Ale obecně se rozšíření pro Gáborovy vlnky nepoužívá, protože vyžaduje výpočet biortogonálních vln, což je časově velmi náročné. Z toho důvodu se obvykle vytvoří banka filtrů, skládající se z Gáborových filtrů s různými velikostmi a rotacemi. Využívá se konvoluce filtrů se signálem, která vrací takzvaný Gáborův prostor. Gáborův prostor je velmi užitečný v aplikacích pro zpracování obrazu, jako například rozeznání otisků. Po aplikování filtrů dostaneme výsledný obraz, ze kterého můžeme získat příznaky pro identifikaci. Příklady textur a výsledků po aplikaci filtru jsou ukázány na obrázku níže(obrázek 2.6). 8
12 Filtr se aplikoval na středovou oblast obrazu o velikosti 64x64 pixelů. Velikost obrazu byla 128x128 pixelů. Obrázek 2.6 Aplikované filtry 2.5 Momentové charakteristiky V oblasti zpracování obrazu, počítačového vidění a navazujících oblastí je pojem obrazový moment určitý specifický váhový průměr (moment) intenzity pixelů, nebo funkce těchto momentů, obvykle volena za účelem získání určitých vlastností. Tato úvodní definice je z článku [6], který nejlépe shrnuje tuto problematiku, a který je také zdrojem, ze kterého jsou prevzané informace v následujícim textu. Obrazové momenty jsou využívané pro popis objektů po segmentaci. Jednoduché vlastnosti obrazu, které jsou získané pomocí obrazových momentů, zahrnují oblast (nebo celkovou intenzitu), těžiště a informace o orientaci. Momenty se dělí na : 1. Raw momenty Pro 2-D spojitou funkci f(x,y) moment řádu (p+q) je definován dle vzorce [4]. [4] Pro p,q = 1,2, adaptováním tohoto na skalární obraz (odstíny šedi) s intenzitami pixelů I(x,y), jsou obrazové Raw momenty vypočítany dle vzorce [5]. 9
13 [5] V některých případech se toto lze vypočítat, pokud budeme brát obraz jako pravděpodobnostní funkci hustoty. Například vydělením vzorce [5] vzorcem [6]. [6] 2. Centrální momenty Centrální momenty jsou definovány vzorcem [8], [7] [8] kde platí, že vzorce [9] jsou komponenty těžiště. [9] Jestliže f(x,y) je digitální obraz, tak předchozí rovnice [9] se změní na tuto úpravu [10]. [10] Centrální momenty do řádu 3 jsou v následujícím příkladu [11]. 10
14 [11] To lze zapsat následujícím zápisem [12]. [12] Je mnoho druhů centrálních momentů. Momenty mohou být invariantní vůči otočení, zvetšení a podobně. Nejčastěji se využívá sada invariantních Hu momentů. Je to sedm momentů, použitelných pro invariantnost vůči otočení, nasvícení i zvětšení [13]. [13] 11
15 2.6 Klasifikace textur Klasifikace textur by se dala rozdělit na dvě části shrnuté ve článku [7]. První je učení, nebo řekněme spíše trénování, a druhou je samotné rozpoznání. Jako první je nutné vytvořit nějaký model pro textury jednotlivých tříd, které jsou v naší trénovací sadě. Můžeme si pod tím pro ilustraci představit například dvě třídy. Dejme tomu, že řešíme program rozpoznávající z fotografie pokoje, zda na podlaze jsou parkety, nebo koberec. Jedna třída obsahuje textury dřeva, druhá textury koberců. Abychom mohli vytvořit model, je nutné nejprve získat nějaké určující příznaky ze všech textur, které budou nejen společné pro všechny zástupce jedné třídy, ale které nám zároveň umožní třídy od sebe vzájemně odlišit. Mohou to být kupříkladu skalární čísla, diskrétní histogramy nebo hodnoty, charakterizující vlastnosti textury. Můžeme si pod tím představit například prostorovou strukturu, orientaci, kontrast a další. Ve druhé fázi, již pracujeme s vytvořeným modelem. Z popsané textury, kterou chceme zařadit do některé naší třídy, získáme stejným postupem jako v první fázi příznaky. Následně je porovnáme za pomocí klasifikačního algoritmu s těmi, které jsme získali z tréninkových textur. Vzorek je přiřazen třídě, ke které se nejvíce blíží. To je samozřejmě pouze příklad, protože ne vždy se nám hodí právě největší shoda. V situaci, kdy tomu tak není, se přiřazení provede pomocí předem definovaných kriterií. 2.7 ANN Jak je uvedeno v citovaném textu [8], z abstraktního hlediska je neuronová síť propojená skupina uzlů, podobně jako obrovské sítě neuronů v lidském mozku (i když to srovnání značně zjednodušuje strukturu lidského mozku). Příklad můžeme vidět na obrázku níže (Obrázek 2.7). Obrázek 2.7 Příklad struktury ANN (převzato z [8]) Nejprimitivnější možný "uzel" je takzvaný perceptron, který v nejjednodušším případě má pouze dva vstupy a výstup viz Obrázek 2.8. Obrázek 2.8 Perceptron (převzato z [8]) 12
16 Každý ze dvou vstupů, x1 a x2, má odpovídající váhu, takže výstup perceptronu by měl být funkce jednoduchého váženého součtu těchto vstupů. Viz rovnice [14]. Poměrně jednoduché ANN může být trénován, aby rozpoznal znaky 0-9. Znaky mohou být považovány za vystavené na mřížku o rozměru 10x14 pixelů, každý pixel má hodnotu 0 (pro bílé) nebo 1 (pro černého). Příklad znaku je ukázán na Obrázek 2.9. [14] Obrázek 2.9 Trénovací znak (převzato z [8]) Jelikož obraz může být rozložen do 140 prvkového vektoru a tento vektor může být vstupem pro ANN se 140 vstupy (s rozumným počtem perceptronů v první vrstvě, například dvanáct perceptronů s pěti vstupy), a s deseti perceptrony ve výstupní vrstvě. V závislosti na tom, který z deseti znaků 0 až 9 bitmapa reprezentuje, by měl být aktivován jako logická 1 pouze jeden z 10 výstupů ANN, všechny ostatní by měly být logické 0. Ukázka takového ANN je níže, viz Obrázek Obrázek 2.10 Příklad návrhu ANN (převzato z [8]) Pokud je správně vyškolená, měla by ANN být schopna rozpoznat i obrázky zkreslené šumem, stejně jako by to zvládl skutečný lidský mozek. Jak může vypadat takový zkreslený znak je ukázáno na Obrázek Obrázek 2.11 Zkreslený znak (převzato z [8]) 13
17 2.8 SVM Bude-li se citovat z článku [9], tak Support Vector Machines, jsou založeny na konceptu rozhodujících rovin. Rozhodující rovina je ta, která odděluje sady objektů, které patří do různých tříd. Schématický příklad je zobrazen níže na obrázku (Obrázek 2.12). V tomto příkladu objekty patří buď do třídy zelené nebo červené. Jakýkoliv nový objekt (Bílý kruh), který spadá na pravou stranu, je klasifikován jako BLUE (nebo je klasifikován jako RED, pokud leží na levé straně). Obrázek 2.12 Rozhodující roviny (převzato z [9]) Výše uvedené zobrazení je klasickým příkladem lineárního klasifikátoru, tj. klasifikátoru, který rozděluje sadu objektů do svých skupin (modrá a červená v tomto případě) pomocí linie. Většina klasifikačních úloh, však není tak jednoduchá, a často je zapotřebí mnohem složitějších struktur, aby došlo k optimální separaci, tj. správné klasifikaci nových objektů (testovací případy), na základě příkladů, které jsou k dispozici (trénovací případy). Tato situace je znázorněna na obrázku níže Obrázek Ve srovnání s předchozím schématem je jasné, že úplné oddělení na modré a červené objekty by vyžadovalo křivky (což je mnohem složitější než linie). Klasifikační úlohy založené na kreslení dělicí čáry pro rozlišení mezi objekty z různých tříd jsou známé jako nadrovinové klasifikátory. Obzvláště Support Vector Machines jsou vhodné pro řešení podobných úkolů. Obrázek 2.13 Netriviální separace (převzato z [9]) Následující Obrázek 2.14 ukazuje základní myšlenku Support Vector Machines. Zde je vidět původní objekty (na levé straně schématu) přeskupené pomocí sady matematických funkcí, známých jako jádra (kernels). Proces tohoto přeskupení objektů se nazývá mapování (transformace). Všimněme si, že v tomto novém uspořádání mapované objekty (na pravé straně schématu) lze lineárně oddělit, a tak namísto konstrukce komplexní křivky (na levé straně schématu), úplně stačí pouze najít optimální linii, která může oddělit objekty GREEN a RED. 14
18 Obrázek 2.14 Transformace (převzato z [9]) Support Vector Machine (SVM) je primárně klasifikační metoda, která provádí klasifikační úkoly výstavbou nadrovin ve vícerozměrném prostoru, který odděluje případy různě popsaných tříd. SVM podporuje oba typy úkolů, regresivní i klasifikační, a dokáže zpracovat lépe kontinuální a kategoriální proměnné. Pro kategoriální proměnné je vytvořena modelová proměnná s možností nabývat hodnoty buď 0 nebo 1. Kategoricky závislá proměnná se tedy skládá ze tří úrovní. Řekněme například (A, B, C) je reprezentována souborem tří modelových proměnných: A: {1 0 0}, B: {0 1 0}, C: {0 0 1} Chcete-li vytvořit optimální nadrovinu, SVM implementuje interaktivní trénovací algoritmus, který se používá k minimalizaci chyb. Podle tvaru funkčních chyby, můžeme SVM modely zařadit do čtyř skupin: Klasifikační SVM Typ 1 (známý také jako klasifikace C-SVM) Klasifikační SVM Typ 2 (známý také jako klasifikace nu-svm) Regresivní SVM Typ 1 (známý také jako regrese epsilon-svm) Regresivní SVM Typ 2 (známý také jako regrese nu-svm) 15
19 3 Návrh řešení Algoritmus navrhnutý v této práci, by bylo možné rozdělit do několika následujících kroků (Obrázek 3.1). Obrázek 3.1 Výsledná struktura aplikace Prvním krokem je získání vstupu, tedy v našem případě textury. Druhý krok obnáší transformaci vstupu do tvaru umožňujícího získání relevantních příznaků k identifikaci hlavních rysů textury. Pro tento účel byly zvoleny Gáborovy filtry. Třetím krokem je získání příznaků pro popis textury, k čemuž jsou využity Hu momenty. Čtvrtým a posledním krokem je pak samotná klasifikace dat získaných z textur, natrénování klasifikátorů a následná klasifikace neznámých textur. Jako klasifikátor byla použita knihovna libsvm, využívající principů Support Vector Machines. 3.1 Získání vstupu Výsledná aplikace se nezabývá přímo získáním textury z obrazu, tedy první fází klasifikace, ale myslím, že pro představu je vhodné uvést příklad, jakým tato fáze může probíhat. Nejčastěji výběr probíhá postupným procházením nějakého obrázku a zabíráním přesně definované oblasti. Tato oblast se uloží do vstupního formátu aplikace a předá dál. Příklad takového výběru je možné vidět na následujícím obrázku Obrázek 3.2. Střed výběrové oblasti označený jako S se postupně posunuje tak, aby byla zabrána celá plocha. 16
20 Obrázek 3.2 Výběr v obrazu 3.2 Transformace vstupu V první řadě bude specifikováno, v jaké formě bude můj program vzorky přijímat a jakou oblast z nich použiji pro zpracování. Dimenze obrazu jsou tedy zvoleny 128x128 pixelů. Jako reprezentativní část je brána oblast středu o velikosti 64x64 pixelů viz Obrázek 3.3. Obrázek 3.3 Vstupní vzorek Aby bylo možné zpracovávat obraz a získat použitelná data pro rozpoznání, nejprve je potřeba transformovat jej do formy, která nám umožní získat vhodné popisné příznaky. K tomu povede několik kroků. V první řadě se převede na odstíny šedi. Následně se provede transformace pomocí vzorce na výpočet Gáborových filtrů. Filtry se generují kombinací vstupních parametrů a cílem je vybrat takové filtry, které budou nejlépe rozlišovat textury do skupin, které chceme určovat. Vytvoří se tak banka filtrů. Hlavním cílem nebylo vytvoření pevné banky, ale umožnit programu adaptovat se na změnu textur v porovnávaných třídách. Tedy to, aby při změně bylo možné vygenerovat novou 17
21 sadu tak, aby co nejlépe vyhovovala aktuálním kategoriím a dostatečně je rozlišovala. Vzorců pro tento výpočet je spousta a každý má trochu jinou funkci. K výpočtu bude v kódu nejprve použit následující vzorec [15]. PI K MAX 2 K MAX K F K ( x y )* K f ( x, y) *exp( 2 2 2*...šírka pásma... vlnová délka... orientace F...prostorová frekvence 2 2 )*(cos( K *cos( )* x K *sin( )* y) exp( )) 2 [15] Tento vzorec má bohužel své nevýhody. Hlavním problémem je, že při určitých poměrech šířky pásma a prostorové frekvence dochází ke generování nevhodných filtrů. Tedy takových filtrů, které bohužel vykazují nevhodné vlastnosti. Ty, hlavně v počátcích této práce, mohou značně komplikovat výběr správné sady. Příklady těchto filtrů je možné vidět na následujícím obrázku (Obrázek 3.4). Obrázek 3.4 Nevhodné filtry Nakonec s největší pravděpodobností dojde k nutnosti vzorec změnit a použít ten, jenž je uvedený ve druhé kapitole [3]. Tento vzorec by již tyto typy filtrů generovat neměl. Nevýhodou ovšem je, že na rozdíl od předchozího, který měl pouze čtyři vstupní parametry, jich má tento pět. To samozřejmě pravděpodobně značně zvětší počet filtrů, které je nutné porovnat. 3.3 Výběr sady filtrů Samotné generování filtrů však je ten menší problém, který je nutné řešit. Hlavním problémem je vybrat správnou sadu filtrů, která bude schopna rozlišovat námi zadané textury. Je několik způsobů, jak tento výběr provést. Velmi často se používá pevně daná banka filtrů, které byly vybrány na základě pokrytí určitého spektra. Taková banka obsahuje filtry, natočené po určitém kroku (nejčastěji se volí 30 ), na celých 360. Dále samozřejmě s různou vlnovou délkou a šířkou pásma. Je to nejčastější postup, protože je z hlediska časové náročnosti nejrychlejší. Banka se předem připraví a dále se již pracuje s danými hodnotami. Problémem je, že ne vždy je tento přístup nejefektivnější. Řekněme, že chceme porovnávat dva různé typy textur. Obecně například ty, jež mají strukturu složenou 18
22 z vodorovných čar, s těmi, které je mají natočené o určitý úhel na levou nebo na pravou stranu. V tomto případě je jasné, ze horizontální filtry nebudou příliš směrodatné. Nejužitečnější budou filtry vertikální a filtry pod mírným úhlem, které pomohou rozlišit náklon čar a také to, zda jsou rovné, nebo jsou více či méně odchýlené. Proto bude pevná banka pokrývající celé spektrum velmi neefektivní. To ale samozřejmě neznamená, že by nebyla schopná, pokud by byla dobře navrhnutá, textury rozlišit. Obecně také samozřejmě záleží, jak dobře je sestavena trénovací sada textur. Pokud je příliš malá a nedostatečně jednoznačná a rozlišující, nepomůže ani nejlepší banka filtrů. Platí, že pokud chceme vytvořit opravdu kvalitní rozpoznávání, není dobré šetřit místem ani časem při sestavování trénovací sady. Samotná efektivnost banky spočívá v použití těch nejefektivnějších filtrů. Cílem této práce bude v aplikaci navrhnout a realizovat dynamický přístup. To znamená nemít pevnou banku filtrů, ale banku tvořit na základě aktuální trénovací sady. V tom případě by se aplikace stala mnohem univerzálnější, neboť by se byla efektivně schopna přizpůsobit změně rozlišovaných skupin, stejně jako aktualizaci či rozšíření trénovací sady. Jsou dva hlavní problémy, se kterými se ale tento přístup potýká. Vytvoření obecného přístupu ke generování a následnému výběru nejlepších filtrů. Časová náročnost samotného procesu. První z nich je, naštěstí, na rozdíl od toho druhého, řešitelný. Aby došlo k výběru opravdu těch nejlepších filtrů a zároveň byla zachována obecnost řešení, je nutné vybírat ze všech. Tím nastává situace, že dle nastavení generování, tedy určení mezí pro jednotlivé parametry, dochází k získání až několika desítek tisíc filtrů, které je potřeba zpracovat a následně porovnat. Náročnost je tedy nejen časová, ale v případě rozsáhlých trénovacích sad i paměťová. Přesto jsem se rozhodl tento přístup vyzkoušet a zhodnotit jeho použitelnost v praktických aplikacích. Navrhnu několik přístupů, které budu testovat a zkusím najít dostatečně efektivní algoritmus, aby se dal dále využít. Metody získání sady, které budou testovány, jsou následující: Zpracování celkového jasu pomocí rozdělení do vln a některé modifikace Využití obrazových momentů pro popis a rozdělení do vln Počáteční separace momentů a rozlišení textur jako skupin Prvním možný přístupem pro testování který bude aplikován, je jednoduchý princip shlukování hodnot. Myšlenka je tedy taková aplikovat postupně na všechny textury jednotlivé filtry a spočítat si celkový jas výsledného obrázku po konvoluci. Následně si představit tento vektor čísel tak, že na danou texturu reagují nejvíce určité filtry a ty jim blízké. Tedy tvoří se zde pomyslné vrcholy. Zjednodušeně se dá popsaná situace představit tak, že se jedná, obrazně řečeno, o sled gaussových funkcí. Následně bude tedy potřebné každou oddělit a posléze z nich určit jejich vrcholy, které by označovaly nejlepší filtry. Aby se tohoto docílilo, nastaví se pro tento účel hodnota určitého prahu. Tedy hranice, která bude určovat, zda se daná hodnota počítá mezi porovnávané, nebo je příliš nízká na to, aby byla zajímavá. Zároveň je pomocí ní možné rozlišit jednotlivé oblasti. Tento práh jsem určil jako průměrnou hodnotu, určenou z hodnot ve zpracovávaném vektoru. Tedy průměr z celkového součtu jasů pro všechny filtry. Pokud jej pomyslná křivka překročila, označí se tedy tento bod jako počátek dané vlny. Okamžik, kdy aktuální hodnota prvku klesla pod práh, zase za její konec. Tím došlo k oddělení a bylo možné následně hledat ve vymezených oblastech jednotlivé vrcholy. Příklad tohoto postupu, je na následujícím obrázku (Obrázek 3.5). Je jasně vidět rozdělení do jednotlivých vln, a hodnoty, které jsou vybrány jako vrcholy. 19
23 Obrázek 3.5 Jednoduché nalezení vrcholů pomocí prahu Tato metoda by nemusela fungovat za určitých okolností a je teda nutné zahrnutí pomyslného zakmitání, tedy situace, kdy hodnota může lehce spadnout pod práh a přestože se následující hodnoty zase vrátí na požadovanou úroveň, bude okamžik protnutí hned brán jako konec vlny. Takovéto výkyvy se vyskytují poměrně často a bude tedy potřebné je při testování vzít v potaz pro výběr. Pokud hodnota neklesne pod danou hranici, je stále brána jako součást aktuální vlny. Tím dojde ke zredukování počtu vrcholů, tedy lepší schopnost rozdělit od sebe jednotlivé vlny, a k zefektivnění výběru. Viz Obrázek 3.6. Obrázek 3.6 Nalezení vrcholů pomocí prahu a zahrnutí zakmitnutí Jak je vidět, na tomto obecném příkladu se zmenšil počet vrcholů o jeden. Při návrhu postupů bude dalším krokem zamyslet se nad situací, že by samotná hodnota jasu, tak jak s ní je v předchozích metodách pracováno, nemusela být úplně dostačující. Dále se tedy budeme pokoušet zaměřit na rozlišení jednotlivých filtrů, tedy získání takového popisu, který je bude jednoznačně rozlišovat. Je nutné si uvědomit, že práce se samotným jasem neříká nic o povaze filtru a je tedy možné tato data prezentovat jiným způsobem, než jednoduchou sumou, či průměrem. Pro takový přístup byly zvoleny obrazové momenty, které umožní statisticky popsat každý výsledek 20
24 konvoluce. Po prozkoumání, jaké druhy momentů se nejčastěji používají, byly nakonec vybrány, a v této práci použity, Hu momenty viz [13]. Problém, který se objeví, bude ten, že najednou výsledkem nebude jen jedna hodnota získaná z textury pro vzájemné porovnání, ale sedm pro každou texturu, a to znemožní přímé porovnání výsledků. Místo aby se tedy jednoduše dávaly všechny momenty dohromady, ať už jako součet, průměr, nebo něco jiného, začneme je nyní brát odděleně. Hodnocení filtru by dle těchto informací probíhalo tak, že by se nejprve aplikovalo na všechny textury. Tím by se získal pro každou texturu počet hodnot odpovídající počtu počítaných momentů. Následně by se pro každý moment vytvořil vektor, čímž by se jejich zpracování od sebe oddělilo. Stále se v tomto přístupu neupouští od myšlenky vyhledávání vrcholů, tentokrát ale neaplikovanou až na výsledný vektor, ale vzalo se v úvahu, že tento jev se musí vyskytovat samozřejmě již ve chvíli získání momentů. Pro každý vektor, reprezentující hodnotu daného momentu pro každou texturu, by se spočítalo, kolik obsahuje vrcholů. Výsledné ohodnocení filtru by tedy byl součet počtů vrcholů pro každý moment. Tento výsledek by se poté získal pro každý filtr a vznikl z nich další vektor. Opět se bude aplikovat metoda nalezení vrcholů a místa vrcholů se označí jako vybrané filtry. Jako možná drobná modifikace se vyzkouší, zda je lepší místo součtu počtů vrcholů u jednotlivých momentů použít průměr. Po tomto kroku, při promýšlení dalších realizovatelných postupů pro tento výběr, se bere v potaz myšlenka, že přímé porovnávání textur mezi sebou, možná není vždy úplně vhodným postupem. Tímto přístupem by sice bylo možné rozlišit jednotlivé textury v knihovně, a tedy by byl přípustný v případě, že by se jednalo o pouhé rozpoznávání vybraných textur. V praktickém případě, kde chceme klasifikovat typy textur, nemusí být toto dostatečně použitelné. Uvažovalo se tedy tak, že je nutné zaměřit se na nacházení takových filtrů, které budou schopny rozlišit ne pouze jednotlivé textury, ale definované skupiny textur. Nejdříve se rozhodlo opět vyzkoušet metodu hledání vrcholů. Proto poslední variantou pro testování bude myšlenka, že již není potřeba rozlišovat jednotlivé textury, ale je nutné dívat se na ně jako na dané množství skupin, podle počtu rozpoznávaných tříd. Je tedy zbytečné používat složité výpočty pro rozlišení. Rozhodlo se v tomto případě zkusit vrátit se k původnímu jednoduchému principu. Výpočet by se prováděl pro každou skupinu zvlášť. Pro moment se určí průměrná hodnota v rámci všech textur dané skupiny. Stejný výpočet se provede i pro ostatní momenty. Z těchto výsledků se vypočítá opět střední hodnota. Ta reprezentuje ohodnocení filtru pro danou skupinu. Tento postup je znázorněn na následujícím obrázku (Obrázek 3.7). Obrázek 3.7 Hodnocení filtru pro jednu třídu 21
25 Pro další kroky se tedy zvolil opět co nejjednodušší postup. Nehledě na počet skupin, mělo by vždy být nalezeno nejvyšší výsledné ohodnocení filtru pro skupinu a konečné hodnocení filtru je pak dáno rozdílem největší hodnoty a těch zbývajících. Toto se postupně aplikuje na všechny filtry a vznikne opět vektor čísel, kde každá pozice koresponduje s jedním filtrem a každá hodnota je hodnocením daného filtru. Výběr knihovny se tedy provádí vybráním specifikovaného počtu nejlépe hodnocených filtrů. 22
26 4 Implementace 4.1 Uložení příznaků pro klasifikaci Pokud tedy už máme vytvořenou banku filtrů, můžeme se zabývat získáním příznaků pro samotnou klasifikaci. Příznaky jsou v tomto konkrétním případě myšleny vypočítané momenty na texturách po aplikaci filtrů z vygenerované banky. Extrakce příznaků textury je mimo jiné závislá na způsobu klasifikace, který chceme použít. Přesněji řečeno, formát, ve kterém tyto příznaky uložíme. Pro klasifikaci byl ve výsledku zvolen SVM algoritmus, implementovaný v knihovně libsvm. Podrobněji se k této knihovně ještě vrátíme v kapitole týkající se prostředků pro implementaci. Zde bude pouze popsán postup a forma jakou vše probíhá. Daty, reprezentujícími každou texturu, je myšlen uložený vektor, který obsahuje hodnoty momentů po aplikaci každého jednoho filtru. To vše se opakuje za sebou v pravidelném intervalu, jak je znázorněno níže, viz Obrázek 4.1. Obrázek 4.1 Uložení příznaků Z tohoto formátu je již jednoduché přejít do tvaru potřebného pro SVM, definovaného v dokumentaci. Jsou dva typy vstupního souboru podle toho, zda se jedná o trénovací, či testovací texturu. Pokud se jedná o trénovací texturu, je nutné, aby první parametr reprezentoval skupinu, nebo řekněme třídu. Pokud se jedná o klasifikovanou texturu, tak samozřejmě skupinu, kam náleží, prozatím neznáme, takže tento parametr se zde nevyskytuje. Příklad je znázorněn, viz Obrázek 4.2 Obrázek 4.2 SVM formát uložení Následná klasifikace probíhá tedy tak, že aplikace vygeneruje potřebné příznaky do textových souborů. Následně stačí spustit BAT soubory, dle akce, kterou chceme provést. Popis jednotlivých kroků a možností je uveden v přiloženém návodu k aplikaci. 4.2 Nástroje pro implementaci Implementace byla provedena v jazyce C++. Jako pomocný nástroj byla použita knihovna OpenCV. Hlavní výhodou této knihovny je její specializovanost na práci s obrazem. Obsahuje metody 23
27 jak na vytváření, tak na otevírání či editaci obrázků. Dalším důležitým parametrem je, že již přímo v této knihovně jsou implementovány algoritmy pro výpočet obrazových momentů. Právě díky této knihovně byla v aplikaci možnost si jednotlivé typy vyzkoušet, navíc i Hu momenty jsou součástí těchto metod, takže je používám i ve finální aplikaci. Knihovna OpenCV je navíc volně použitelná, což z ní činí opravdu silný nástroj pro práci s obrazem v obecné rovině. Pro implementaci Gáborových filtrů se tedy jako první použila volně dostupná knihovna v C++ od autora Miana Zhou. Tato knihovna obsahuje metody pro generování filtru, jeho samotnou aplikaci na obraz i další metody pro různá nastavení. Považovala se tedy zpočátku za nejlepší možnou variantu. Během vývoje aplikace však bylo postupně zjištěno, že knihovna je pro potřebné účely navrhnuta ne zcela vhodným způsobem, takže byla následně postupně celá změněna a zeštíhlena. Z původní knihovny zůstaly zachovány dvě metody. Metoda provádějící konvoluci Gáborových filtrů s texturou a metoda pro výpočet filtru. Ta byla zachována pouze částečně, protože jsem použil nakonec jiný vzorec, než který zde byl implementován. Pro realizaci klasifikace se použila knihovna libsvm, vytvořená autory Chin-Chung Changem a Chin-Jen Lin. Je to velmi účinný nástroj pro klasifikaci textur, používající principu podpůrných vektorů (SVM = Support Vector Machines), který je, zjednodušeně řečeno, jednodušší variantou neuronových sítí. Obsahuje prostředky pro tvorbu modelu ze vstupních dat, pro samotnou klasifikaci, včetně klasifikace do více tříd, roztřídění testovacích dat do tříd definovaných modelem a umožňuje také vizualizaci tříd trénovací sady. Tato funkce je sice omezena na maximální počet tří tříd, ale i tak představuje obrovskou pomoc při vývoji. Užitečná je rovněž normalizace hodnot na definovaný rozsah a spousta dalších drobných funkcí, které možná nejsou úplně nezbytné, ale rozhodně usnadňující celý proces. Knihovna je volně dostupná k použití a je ve verzích pro různé jazyky, jako C++, Java, C# i jako zkompilované binární spustitelné soubory. Pro samotné používání této knihovny není nezbytné rozumět jednotlivým mechanismům a principům, na kterých je založena. Všechny podstatné informace pro nastavení a správnou konfiguraci jsou velmi dobře popsány v přiloženém textovém souboru, takže stačí mít relativně základní znalosti o oblasti zpracování obrazu a jsme schopní s touto knihovnou bez problémů pracovat. Hlavní je dodržet formát vstupních dat, který je specifikován v dokumentaci. Dále je nutné si ujasnit rozdělení na data trénovací a testovací. 24
28 5 Výsledky 5.1 Výběr banky Testování probíhalo na třech hlavních sadách trénovacích textur a jedné sadě textur testovacích. Pro rekapitulaci ještě jednou uveďme metody pro testování: Zpracování celkového jasu pomocí rozdělení do vln a některé modifikace Využití obrazových momentů pro popis a rozdělení do vln Počáteční separace momentů a rozlišení textur jako skupin První testovanou metodou bylo realizování pomocí vln. U první metody pracující čistě s prahem, došlo již ke zlepšení výběru, ale prozkoumání dat vedlo k ujištění, že opravdu při použití této metody je nezbytné brát v úvahu i zakmitnutí. Bylo tedy rozhodnuto určit danou toleranci empirickým způsobem. Testováním a pokusy se dospělo k jedné třetině velikosti prahu. I po tomto rozšíření stále docházelo k výběru některých filtrů, které nebyly vhodné, tedy neměly potřebné vlastnosti, a zároveň některé byly téměř identické. Důležitým poznatkem tedy je, že samotná hodnota jasu bez dalších úprav není dostatečně určující. U další metody, kterou se testovalo, byly již použity obrazové momenty. Díky testování se velmi rychle ukázalo, že to je ta správná cesta. Empiricky bylo také zjištěno, že u zpracovávané sady textur dochází k situaci, kde po provedení konvoluce a následném výpočtu Hu momentů, jsou první, třetí a pátý moment vždy nulové. Z tohoto důvodu se při všech dalších výpočtech pracuje pouze s druhým, čtvrtým, šestým a sedmým momentem. Důležité dále bylo přijít na správný způsob zpracování. V prvních krocích, kdy byla použita opět metodu hledání vrcholů, již s úpravou pro zakmitání, ale tentokrát nad daty zpracovaných jednotlivých momentů, vzhledem k získaným hodnotám bylo rozhodnuto, že místo součtu počtu vrcholů u jednotlivých momentů, bude lepší použít průměr. Tato změna měla opravdu vliv na následně vybrané filtry a pomohla odstranit některé nevhodné. Stále ale banka nebyla úplně v pořádku. Pořád se občas objevil nejednoznačný filtr nebo filtr, který měl velkou odezvu na příliš široké spektrum textur a tudíž moc platný při klasifikaci být nemohl. Jako nejefektivnější se nakonec ukázala až poslední zvolená metoda. Tato metoda již společně s použitím nového vzorce zcela znemožnila objevení jakýchkoliv nevhodných filtrů ve výsledném výběru, neboť tyto filtry se právě vyznačovaly tím, že příliš nerozlišovaly mezi skupinami textur a měly velkou odezvu téměř na všechny. Další výhoda je, že se zde počítá velmi jednoduše přes střední hodnoty, tedy je výpočet rychlejší než v některých předchozích případech. Příklady filtrů, které algoritmus vybral pro klasifikaci dřeva, jsou znázorněny na obrázku (Obrázek 5.1) a příklad těch vybraných pro klasifikaci cihlové zdi jsou na dalším obrázku (Obrázek 5.2). Obrázek 5.1 Příklady filtrů ze sady pro klasifikaci dřeva 25
29 5.2 Klasifikace Obrázek 5.2 Příklady filtrů ze sady pro klasifikaci cihlové zdi Díky vybrání metody k sestavení banky, bylo možné přejít k testování schopnosti aplikace klasifikovat do vybraných skupin. Důležitou věcí, která je pro sestavení banky nejpodstatnější je, o jakou klasifikaci se jedná. V tomto případě se nejedná o rotačně invariantní, takže klasifikátor se netrénuje, aby byl schopen rozpoznat typ textury i ve chvíli, kdy došlo k jejímu natočení. Podle toho jsou tedy sestaveny sady textur. Počítá se s určitou orientací jak v trénovací sadě, tak v sadě testovací. Trénovací sada je rozdělená do tří skupin. První skupina obsahuje 131 textur. Jsou to textury dřeva s pravidelným vzorem, které se, obrazně řečeno, považuje za dobré. Příklad takovýchto textur z této skupiny je ukázán na obrázku (viz Obrázek 5.3). Obrázek 5.3 Příklad textur dřeva Principem je, aby se do této skupiny nevybírala dřeva se složitou strukturou, velkými suky a podobně. A aby bylo vyjasněno, co je myšleno dřevem, které se nepovažuje za, opět obrazně řečeno, vhodné, jsou na obrázku (Obrázek 5.4) uvedeny příklady takových vzorků. 26
30 Obrázek 5.4 Příklad textur dřeva s nevhodnou strukturou Druhá skupina textur jsou takové textury, které znázorňují cihlovou zeď v různých formách a velikostech. Tato sada obsahuje aktuálně 115 textur, jejichž příklady jsou znázorněny na obrázku (Obrázek 5.5). Obrázek 5.5 Příklady textur cihlové zdi Třetí skupina znázorňuje obecně všechny ostatní textury a obsahovala při testování 900 vzorků. Tím je umožněno provést rozpoznání předchozích definovaných skupin textur mezi všemi ostatními. Příklady textur z této skupiny jsou na dalším obrázku (Obrázek 5.6). Obrázek 5.6 Příklady vzorků ze skupiny Vše ostatní 27
31 První testování proběhlo jako rozeznání dřeva z první skupiny od všeho ostatního. V testovací sadě, čítající 70 vzorků, bylo 19 pozitivních, zbývajících 50 negativních bylo rozloženo na 24 textur dřeva s nevhodným vzorem, 15 textur ze skupiny s názvem Zeď, 12 obecných textur patřících do skupiny Vše ostatní. Pro první trénování jsem použil banku o velikosti 100 filtrů. Výsledky byly následující: Skupiny Předpoklad Výsledek klasifikace Správně Špatně Celkem 1 (Dřevo) (Vše ostatní) Abych ještě upřesnil, tak v případě špatných pěti vzorků u první skupiny, se jednalo o dřevo, ovšem s nedostatečně pravidelnou strukturou. Ke špatnému klasifikovaní ze skupin Zeď nebo Vše ostatní nedocházelo. Úspěšnost správného označení textury tedy byla 81%. Podruhé jsem použil banku se zadanou velikostí 200 filtrů. Vzhledem k povaze textur, počtu generovaných filtrů a minimální nastavené vzdálenosti mezi vybranými filtry (empiricky zvolená hodnota 20) byla výsledná banka složena ze 182 filtrů. Výsledky klasifikace jsou: Skupiny Předpoklad Výsledek klasifikace Správně Špatně Celkem 1 (Dřevo) (Vše ostatní) Při zvětšení banky filtrů je vidět, že došlo ke zlepšení výsledků. Opět v případě špatných pěti vzorků u první skupiny, se jednalo o dřevo s nedostatečně pravidelnou strukturou. Úspěšnost tedy stoupla na 88% správně označených textur z celkového počtu 70, co už lze považovat dle mého názoru za směrodatný výsledek. Druhé testování probíhalo jako rozeznávání cihlové zdi od všeho ostatního. Uskutečnilo se na stejné testovací sadě. Pro banku 100 i 200 filtrů byly výsledky následující: Skupiny Předpoklad Výsledek klasifikace Správně Špatně Celkem 1 (Zeď) (Vše ostatní) Zde je jasně vidět, že cihlová zeď má dostatečně jasnou strukturu oproti předchozímu dřevu. Pět špatně klasifikovaných vzorků byly textury zdi otočené, nebo jinak netradičně formované, například z nepravidelných kamenů naskládaných na sebe a podobně. Vzhledem k trénovací sadě, která nebyla trénována jako invariantní, by se tedy daly zaznačit jako správně klasifikované, ale zde jsem to uvedl 28
32 jako nesprávně proto, abych upozornil právě na fakt, že v určitých situacích klasifikace nebude fungovat, i když se jedná o zeď. Třetí testování proběhlo jako rozpoznávání dřeva na testovací sadě textur, sestavené z databáze OUTEX. Jedná se o fotografie zpracovávaného dřeva. Rozdělit tuto sadu, čítající 513 textur, na pozitivní a negativní nebylo zcela jedonduché, protože mnoho z nich se jeví na hranici mezi skupinami. Skupiny Předpoklad Výsledek klasifikace Správně Špatně Celkem 1 (Dřevo) (Vše ostatní) Při tomto testování došlo k výraznému zhoršení úspěšnosti algoritmu. Je vidět, že 15% ze 368 negativních vzorků bylo nesprávně označeno jako pozitivní a z 90 pozitivních, bylo špatně klasifikováno dokonce celých 86%. Celková úspěšnost je tedy 74%. Dle testování, je toto zhoršení dáno skladbou trénovací sady stejně jako samotným použitím Gáborových filtrů. Spousta vzorků obsažených v testovací sadě, vykazuje při aplikaci filtrů dostatečnou vertikální odezvu, což je klasifikuje jako pozitivní, i když dle mého souzení se jedná o negativní vzorky. 29
33 6 Závěr Cílem práce bylo shrnout metody využívané pro získávání příznaků z textur a jejich následnou klasifikaci, vyzkoušet použitelnost dynamického generování sady filtrů při klasifikaci textur a nakonec implementovat jednoduchý klasifikátor, který bude tento princip využívat. Tento cíl byl splněn a bylo provedeno testování na vytvořené knihovně textur. Výsledky při prvních dvou testování nebyly špatné, ovšem třetí testování jasně ukazuje, že je nutné ještě spoustu věcí zdokonalit. Aby se tento přístup dal opravdu v praxi využít, je nutné například zlepšit trénovací sadu textur. Tím myslím nejenom ji rozšířit, ale také ji upravit. Dále pro širší uplatnění by pak bylo vhodné, aby klasifikace byla rotačně invariantní. Dle testování jsem došel k názoru, že konkrétně při práci se dřevem, je nutné uvědomit si, co přesně chceme porovnávat. Zjistil jsem, že metoda použití Gáborových filtrů, tak jak jsem je využil já, nerozliší malé lokální nerovnosti, suky, či jiné nevhodné úkazy a je schopna pracovat pouze s těmi rozsáhlejšími. Zde by bylo pravděpodobně vhodnější použít metodu LBP. Dalším krokem je zamyšlení se nad efektivnějším výběrem vhodných filtrů. Poslední postup, mnou zvolený jako nejefektivnější z těch, nad kterými jsem uvažoval, má ještě poměrně daleko k dokonalosti. Přesto si myslím, že směr, kterým se práce vyvíjela, je správný. Bude nutné použít místo zvoleného průměru jiný, statisticky jednoznačnější výpočet. S tím souvisí také generování samotných filtrů. Vzorec, který byl nakonec použit pro výslednou aplikaci, je dle mého názoru již dostatečně efektivní, ale při generování sady všech filtrů, ze které se následně vybírají ty nejefektivnější dle implementované metody výběru, jsem jasně stanovil hranice pro jednotlivé parametry. Výsledná sada má přes 4700 filtrů, což se ale s nastavenou minimální vzdáleností mezi použitými filtry značně omezí. Dalším krokem by tedy bylo více experimentovat právě s tímto generováním. Použití dynamicky generované knihovny filtrů je určitě cesta, kterou se vyplatí u stabilních knihoven vydat. Hlavně vzhledem k faktu, že již při knihovně textur čítající mírně přes tisíc vzorků, trvá tato akce přes 9h, je toto více než zřejmé. V praxi, kde se používají knihovny mnohonásobně rozsáhlejší, by se tak jednalo pravděpodobně o více než den. Samozřejmě, pokud by se jednalo o aplikaci, kde se změna knihovny textur, a tudíž i znovu generování sady filtrů, provádí třeba jednou do roka, je tento přístup jistě vhodný a mohl by zefektivnit proces rozpoznávání. Pro aplikace, kde je neustále nutné měnit klasifikované textury, je pak ovšem naprosto nutné mít sadu filtrů pevně stanovenou. 30
34 Literatura [1] WWW stránky: Helmut Cantzler: An overview of image texture [cit. 21.dubna 2010] [2] [cit. 20.dubna 2010] [3] WWW stránky: Scholarpedia Local Binary Pattern. [cit. 26.dubna 2010]. [4] Vincent Levesque : Texture Segmentation Using Gabor Filters [cit. 24.dubna 2010] [5] WWW stránky: Wikipedia Gabor filter. [cit. 26.dubna 2010]. [6] WWW stránky: Wikipedia Image moment. [cit. 26.dubna 2010]. [7] T. Ojala and M. Pietikäinen : Texture classification. [cit. 26.dubna 2010]. [8] WWW stránky: Brumbarchis from Your Electronics Open Source. [cit. 27.dubna 2010]. [9] WWW stránky: Statsoft Support Vector Machines [cit. 27.dubna 2010]. [10] Heikkilä M., Pietikäinen M. and Schmid C. (2009): Description of Interest Regions with Local Binary Patterns. Pattern Recognition 42(3): [11] Liao S., Law M.W.K. and Chung A.C.S. (2009): Dominant Local Binary Patterns for Texture Classification. IEEE Trans. Image Processing 18(5): [12] Mäenpää T. and Pietikäinen M. (2004): Classification with Color and Texture: Jointly or Separately? Pattern Recognition 37(8): [13] Ojala T., Pietikäinen, M. and Harwood, D. (1996): A Comparative Study of Texture Measures with Classification Based on Feature Distributions. Pattern Recognition 19(3): [14] Ojala, T. and Pietikäinen, M. (1999): Unsupervised Texture Segmentation Using Feature Distributions. Pattern Recognition 32:
Roman Juránek. Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 30
Extrakce obrazových příznaků Roman Juránek Ústav počítačové grafiky a multimédíı Fakulta informačních technologíı Vysoké Učení technické v Brně Extrakce obrazových příznaků 1 / 30 Motivace Účelem extrakce
Ú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í
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.
Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 39
Extrakce obrazových příznaků Ing. Aleš Láník, Ing. Jiří Zuzaňák Ústav počítačové grafiky a multimédíı Fakulta informačních technologíı Vysoké Učení technické v Brně Extrakce obrazových příznaků 1 / 39
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
U Úvod do modelování a simulace systémů
U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení
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
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
Úvod do zpracování signálů
1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování
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í
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela
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
7. Rozdělení pravděpodobnosti ve statistice
7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,
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
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é
Neuronové sítě v DPZ
Univerzita J. E. Purkyně v Ústí nad Labem Fakulta životního prostředí Neuronové sítě v DPZ Seminární práce z předmětu Dálkový průzkum Země Vypracovali: Jan Lantora Rok: 2006 Zuzana Vašková Neuronové sítě
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
Pokročilé operace s obrazem
Získávání a analýza obrazové informace Pokročilé operace s obrazem Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 (BFÚ LF MU) Získávání
Lineární klasifikátory
Lineární klasifikátory Lineární klasifikátory obsah: perceptronový algoritmus základní verze varianta perceptronového algoritmu přihrádkový algoritmus podpůrné vektorové stroje Lineární klasifikátor navrhnout
ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM POJETÍ
ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM POJETÍ INVESTICE Institut DO biostatistiky ROZVOJE VZDĚLÁVÁNÍ a analýz 5. LETNÍ ŠKOLA MATEMATICKÉ BIOLOGIE ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM
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ů
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á,
Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence
APLIKACE UMĚLÉ INTELIGENCE Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence Aplikace umělé inteligence - seminář ING. PETR HÁJEK, PH.D. ÚSTAV SYSTÉMOVÉHO INŽENÝRSTVÍ A INFORMATIKY
Strojové učení se zaměřením na vliv vstupních dat
Strojové učení se zaměřením na vliv vstupních dat Irina Perfilieva, Petr Hurtík, Marek Vajgl Centre of excellence IT4Innovations Division of the University of Ostrava Institute for Research and Applications
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)...
Fakulta informačních technologií VUT Brno. Předmět: Srovnání klasifikátorů Autor : Jakub Mahdal Login: xmahda03 Datum:
Fakulta informačních technologií VUT Brno Předmět: Projekt: SRE Srovnání klasifikátorů Autor : Jakub Mahdal Login: xmahda03 Datum: 9.12.2006 Zadání Vyberte si jakékoliv 2 klasifikátory, např. GMM vs. neuronová
Příloha č. 1. amplitudová charakteristika filtru fázová charakteristika filtru / frekvence / Hz. 1. Určení proudové hustoty
Příloha č. 1 Při hodnocení expozice nízkofrekvenčnímu elektromagnetickému poli (0 Hz 10 MHz) je určující veličinou modifikovaná proudová hustota J mod indukovaná v tělesné tkáni. Jak je uvedeno v nařízení
Kombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
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
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í
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í
9 Kolmost vektorových podprostorů
9 Kolmost vektorových podprostorů Od kolmosti dvou vektorů nyní přejdeme ke kolmosti dvou vektorových podprostorů. Budeme se zabývat otázkou, kdy jsou dva vektorové podprostory na sebe kolmé a jak to poznáme.
Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D
Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D Jiří Stančík Fakulta chemická, Vysoké učení technické v Brně Purkyňova 118, 61200 Brno e-mail: HTUxcstancik@fch.vutbr.czUTH Úkolem této práce
Klasifikace a rozpoznávání. Lineární klasifikátory
Klasifikace a rozpoznávání Lineární klasifikátory Opakování - Skalární součin x = x1 x 2 w = w T x = w 1 w 2 x 1 x 2 w1 w 2 = w 1 x 1 + w 2 x 2 x. w w T x w Lineární klasifikátor y(x) = w T x + w 0 Vyber
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
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
Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.
Úvod do modelování a simulace systémů Ing. Michal Dorda, Ph.D. 1 Základní pojmy Systém systémem rozumíme množinu prvků (příznaků) a vazeb (relací) mezi nimi, která jako celek má určité vlastnosti. Množinu
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í
Systém elektronického rádce v životních situacích portálu www.senorady.cz
Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML
Trénování sítě pomocí učení s učitelem
Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup
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
1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15
Úvodní poznámky... 11 1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15 1.1 Základní pojmy... 15 1.2 Aplikační oblasti a etapy zpracování signálů... 17 1.3 Klasifikace diskretních
Moderní systémy pro získávání znalostí z informací a dat
Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:
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
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
Využití neuronové sítě pro identifikaci realného systému
1 Portál pre odborné publikovanie ISSN 1338-0087 Využití neuronové sítě pro identifikaci realného systému Pišan Radim Elektrotechnika 20.06.2011 Identifikace systémů je proces, kdy z naměřených dat můžeme
Zpracování obrazů. Honza Černocký, ÚPGM
Zpracování obrazů Honza Černocký, ÚPGM 1D signál 2 Obrázky 2D šedotónový obrázek (grayscale) Několikrát 2D barevné foto 3D lékařské zobrazování, vektorová grafika, point-clouds (hloubková mapa, Kinect)
Základy umělé inteligence
Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Aplikace Pattern Constructor je navržena pro tvorbu osové souměrnosti tak, aby odpovídala úrovni dovedností dětí. Tím, že mohou jednoduše
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á,
Grafika na počítači. Bc. Veronika Tomsová
Grafika na počítači Bc. Veronika Tomsová Proces zpracování obrazu Proces zpracování obrazu 1. Snímání obrazu 2. Digitalizace obrazu převod spojitého signálu na matici čísel reprezentující obraz 3. Předzpracování
Obsah přednášky Jaká asi bude chyba modelu na nových datech?
Obsah přednášky Jaká asi bude chyba modelu na nových datech? Chyba modelu Bootstrap Cross Validation Vapnik-Chervonenkisova dimenze 2 Chyba skutečná a trénovací Máme 30 záznamů, rozhodli jsme se na jejich
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
TERMINOLOGIE ... NAMĚŘENÁ DATA. Radek Mareček PŘEDZPRACOVÁNÍ DAT. funkční skeny
PŘEDZPRACOVÁNÍ DAT Radek Mareček TERMINOLOGIE Session soubor skenů nasnímaných během jednoho běhu stimulačního paradigmatu (řádově desítky až stovky skenů) Sken jeden nasnímaný objem... Voxel elementární
Optimální rozdělující nadplocha 4. Support vector machine. Adaboost.
Optimální rozdělující nadplocha. Support vector machine. Adaboost. Petr Pošík Czech Technical University in Prague Faculty of Electrical Engineering Dept. of Cybernetics Opakování Lineární diskriminační
Přednáška 3: Limita a spojitost
3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
CVIČNÝ TEST 24. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15
CVIČNÝ TEST 24 Mgr. Kateřina Nováková OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Písemnou práci z chemie psalo všech 28 žáků ze
veličin, deskriptivní statistika Ing. Michael Rost, Ph.D.
Vybraná rozdělení spojitých náhodných veličin, deskriptivní statistika Ing. Michael Rost, Ph.D. Třídění Základním zpracováním dat je jejich třídění. Jde o uspořádání získaných dat, kde volba třídícího
základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů
A0M38SPP - Signálové procesory v praxi - přednáška 4 2 Číslicové filtry typu FIR a IIR definice operace filtrace základní rozdělení FIR, IIR základní vlastnosti, používané struktury filtrů návrhové prostředky
Statistika pro geografy
Statistika pro geografy 2. Popisná statistika Mgr. David Fiedor 23. února 2015 Osnova 1 2 3 Pojmy - Bodové rozdělení četností Absolutní četnost Absolutní četností hodnoty x j znaku x rozumíme počet statistických
Jednofaktorová analýza rozptylu
I I.I Jednofaktorová analýza rozptylu Úvod Jednofaktorová analýza rozptylu (ANOVA) se využívá při porovnání několika středních hodnot. Často se využívá ve vědeckých a lékařských experimentech, při kterých
Strojové učení Marta Vomlelová
Strojové učení Marta Vomlelová marta@ktiml.mff.cuni.cz KTIML, S303 Literatura 1.T. Hastie, R. Tishirani, and J. Friedman. The Elements of Statistical Learning, Data Mining, Inference and Prediction. Springer
Vytěžování znalostí z dat
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 1/26 Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec Department of Computer Systems Faculty of Information
Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.
Úloha 1 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Červená c. Modrá d. Zelená Úloha 2 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu
2. Základní typy dat Spojitá a kategoriální data Základní popisné statistiky Frekvenční tabulky Grafický popis dat
2. Základní typy dat Spojitá a kategoriální data Základní popisné statistiky Frekvenční tabulky Grafický popis dat Anotace Realitu můžeme popisovat různými typy dat, každý z nich se specifickými vlastnostmi,
DOKUMENTACE Identifikace pomocí otisků prstů
DOKUMENTACE Identifikace pomocí otisků prstů Lukáš Rajský, RAJ029 Aleš Seifert, SEI041 1. února 2003 1 1 Úvod První známý systém klasifikace otisku prstů byl zaveden v Indii na počátku minulého století
Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
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
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT prof. Ing. Jiří Holčík,, CSc. NEURONOVÉ SÍTĚ otázky a odpovědi 1 AKD_predn4, slide 8: Hodnota výstupu závisí na znaménku funkce net i, tedy na tom, zda bude suma
GIS Geografické informační systémy
GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu
1 Projekce a projektory
Cvičení 3 - zadání a řešení úloh Základy numerické matematiky - NMNM20 Verze z 5. října 208 Projekce a projektory Opakování ortogonální projekce Definice (Ortogonální projekce). Uvažujme V vektorový prostor
1 Základní funkce pro zpracování obrazových dat
1 Základní funkce pro zpracování obrazových dat 1.1 Teoretický rozbor 1.1.1 Úvod do zpracování obrazu v MATLABu MATLAB je primárně určen pro zpracování a analýzu numerických dat. Pro analýzu obrazových
BPC2E_C08 Parametrické 3D grafy v Matlabu
BPC2E_C08 Parametrické 3D grafy v Matlabu Cílem cvičení je procvičit si práci se soubory a parametrickými 3D grafy v Matlabu. Úloha A. Protože budete řešit transformaci z kartézských do sférických souřadnic,
1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
.. Minimalizace logické funkce a implementace do cílového programovatelného obvodu Zadání. Navrhněte obvod realizující neminimalizovanou funkci (úplný term) pomocí hradel AND, OR a invertorů. Zaznamenejte
Signál v čase a jeho spektrum
Signál v čase a jeho spektrum Signály v časovém průběhu (tak jak je vidíme na osciloskopu) můžeme dělit na periodické a neperiodické. V obou případech je lze popsat spektrálně určit jaké kmitočty v sobě
1.5.1 Číselné soustavy
.. Číselné soustavy Předpoklady: základní početní operace Pedagogická poznámka: Tato hodina není součástí klasické gymnaziální sady. Upřímně řečeno nevím proč. Jednak se všichni studenti určitě setkávají
OCR systémy. Semestrální práce z předmětu Kartografická polygrafie a reprografie. Jakub Žlábek, Zdeněk Švec. Editor: Věra Peterová. Praha, květen 2010
Nejznámější Semestrální práce z předmětu Kartografická polygrafie a reprografie Autor: Editor: Věra Peterová Praha, květen 2010 Katedra mapování a kartografie Fakulta stavební ČVUT v Praze Nejznámější
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
Geometrické transformace
1/15 Předzpracování v prostoru obrazů Geometrické transformace Václav Hlaváč, Jan Kybic Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/
Dolování asociačních pravidel
Dolování asociačních pravidel Miloš Trávníček UIFS FIT VUT v Brně Obsah přednášky 1. Proces získávání znalostí 2. Asociační pravidla 3. Dolování asociačních pravidel 4. Algoritmy pro dolování asociačních
Přednáška 13 Redukce dimenzionality
Vytěžování Dat Přednáška 13 Redukce dimenzionality Miroslav Čepek Fakulta Elektrotechnická, ČVUT Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti ČVUT (FEL) Redukce dimenzionality 1 /
(Cramerovo pravidlo, determinanty, inverzní matice)
KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce
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
Náhodné (statistické) chyby přímých měření
Náhodné (statistické) chyby přímých měření Hodnoty náhodných chyb se nedají stanovit předem, ale na základě počtu pravděpodobnosti lze zjistit, která z možných naměřených hodnot je více a která je méně
Kontingenční tabulky v MS Excel 2010
Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data
Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý
Odečítání pozadí a sledování lidí z nehybné kamery Ondřej Šerý Plán Motivace a popis úlohy Rozdělení úlohy na tři části Detekce pohybu Detekce objektů Sledování objektů Rozbor každé z částí a nástin několika
Číslicové filtry. Honza Černocký, ÚPGM
Číslicové filtry Honza Černocký, ÚPGM Aliasy Digitální filtry Diskrétní systémy Systémy s diskrétním časem atd. 2 Na co? Úprava signálů Zdůraznění Potlačení Detekce 3 Zdůraznění basy 4 Zdůraznění výšky
Semestrální práce z předmětu X37CAD (CAD pro vysokofrekvenční techniku)
NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE Semestrální práce z předmětu X37CAD (CAD pro vysokofrekvenční techniku) Číslo zadání 32 Jméno: Kontakt: Jan Hlídek hlidej1@feld.cvut.cz ( hlidek@centrum.cz ) ZADÁNÍ: Návrh
Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází
Tiskové sestavy Tiskové sestavy se v aplikaci Access používají na finální tisk informací z databáze. Tisknout se dají všechny objekty, které jsme si vytvořili, ale tiskové sestavy slouží k tisku záznamů
Diagnostika regrese pomocí grafu 7krát jinak
StatSoft Diagnostika regrese pomocí grafu 7krát jinak V tomto článečku si uděláme exkurzi do teorie regresní analýzy a detailně se podíváme na jeden jediný diagnostický graf. Jedná se o graf Předpovědi
SIGNÁLY A LINEÁRNÍ SYSTÉMY
SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické či jiné
9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy. Vyučující: Ing. Jan Pacina, Ph.D.
9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Lehký úvod Digitální modely terénu jsou dnes v geoinformačních systémech
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
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
Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010
Ing. Jan Buriánek (ČVUT FIT) Reprezentace bodu a zobrazení BI-MGA, 2010, Přednáška 2 1/33 Ing. Jan Buriánek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
10. cvičení z Matematické analýzy 2
. cvičení z Matematické analýzy 3. - 7. prosince 8. (dvojný integrál - Fubiniho věta Vhodným způsobem integrace spočítejte daný integrál a načrtněte oblast integrace (a (b (c y ds, kde : y & y 4. e ma{,y
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
SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY
SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY TEMATICKÉ OKRUHY Signály se spojitým časem Základní signály se spojitým časem (základní spojité signály) Jednotkový skok σ (t), jednotkový impuls (Diracův impuls)