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 / 53
Obsah Extrakce informací z obrazu Globální informace o scéně Lokální informace o segmentech obrazu Použití obrazových příznaků statistické rozpoznávání (klasifikátory) detekce význačných bodů (rohy, hrany, SIFTy, SURFy) rozpoznávání struktury (texturní příznaky) Extrakce obrazových příznaků 2 / 53
Obrazové příznaky Příznaky Texturní příznaky Barvený histogram LBP,LRD,LRP Detektory rohů a hran Výkonové spektrum Haarovy příznaky Kookurence Harlickovy příznaky Gaborovy příznaky Extrakce obrazových příznaků 3 / 53
Obrazové příznaky - motivace Použití Průmysl Kontrola velikosti, tvaru,... výrobků Detekce chyb ve výrobcích Bezpečnost Automatická kontrola chování lidí ve veřejných prostorech Autentizace osob Identifikace osob Detekce nebezpečných situací Doprava Kontrola silničního provozu (porušení max. rychlosti, jízda na červenou) Informace o plynulosti silničního provozu Hledání vozidel (identifikace SPZ) A spousta dalších... Extrakce obrazových příznaků 4 / 53
Obrazove pr ı znaky - motivace http://pcl210-01.fit.vutbr.cz/facedetector Extrakce obrazovy ch pr ı znaku 5 / 53
Segmentace Hranová Na základě barvy (Watershead) Na základě textury Modely pozadí Extrakce obrazových příznaků 6 / 53
Detekce hran První derivace obrazů Počítá se pomocí konvoluce s různými jádry Sobel,Roberts, Prewitová, Kirch, Robinson Druhá derivace Laplacián = 2 f (x, y) = 2 f (x, y) + 2 f (x, y) x 2 y 2 Provede se druhá derivace a poté tzv. zero-crossing Hybridní metody Canny Odstranění šumu Výpočet gradientu Ztenčení hran (pomocí nonmaximum suppression) Prahování s hysterezí Extrakce obrazových příznaků 7 / 53
Canny Následně je provedeno prahování s hysterezí, u kterého jsou určeny dva prahy T 1 a T 2. Pokud má pixel hodnotu menší než spodní práh, je označen za oblast bez hrany Pokud má hodnotu větší než horní práh, je označen za hranu Pokud je jeho hodnota mezi prahy, je označen za hranu jen v případě, že některý z jeho sousedů je hranou Extrakce obrazových příznaků 8 / 53
Edge relaxation Dalším možným postupem je provedení algoritmu edge relaxation, který na základě věrohod-nosti hran a jejich okoĺı iterativně pospojuje rozdělené hrany. Do segmentace tedy vstupuje nejen informace o gradientu a jeho velikosti ale i kontext hran. Pokud si hranu ohodnotíme dvojicí čísel vyjadřující stupeň jejích vrcholů, z pohledu toho algoritmu mohou nastat následující situace a jejich ohodnocení. 1 0-0 izolovaná hrana, ohodnocení hrany se snižuje 2 0-2,0-3 konec hrany, ohodnocení hrany se snižuje 3 0-1 nejistá situace, ohodnocení hrany se mírně zvýší nebo ponechá 4 1-1 pokračování hrany, ohodnocení hrany se zvýší 5 1-2,1-3 hranice mezi více segmenty, ohodnocení hrany se středně zvýší 6 2-2,2-3,3-3 spojnice mezi segmenty, ohodnocení se ponechá Postupnými iteracemi algoritmus dokonverguje do situace, kdy jsou všechny hrany ohodnoceny nulou nebo jedničkou. Prvotní ohodnocení hran lze vypočítat jako normalizovanou magnitudu Extrakce obrazových příznaků 9 / 53
Edge Relaxation a) 0-0 izolovaná hrana b) 1-1 spojnice mezi hranami c) 2-0 konec hrany d) 3-3 most mezi segmenty Extrakce obrazových příznaků 10 / 53
Detekce hran Vztah první a druhé derivace k signálu Robertson ( 1 0 0 1 Sobel Prewitt 5x5 ) ( 0 1 1 0 1 2 1 0 0 0 1 2 1 ) Extrakce obrazových příznaků 11 / 53
Houghova transformace Ve specializovaných případech, kdy se v obraze vyhledávají objekty, které lze analyticky popsat (úsečka, kruh, n-uhelník,... ) lze použít pro detekci těchto útvarů Houghovu transformaci Houghova transformace transformuje vstupní 2D prostor do Houghova prostoru. Algoritmus: 1 Inicializace Houghova prostoru 2 Pro každý nenulový pixel vstupního obrazu se rasterizuje množina potencionálních řešení v Houghově prostoru a aditivně se do něj tato množina přidá. 3 Vyhledání lokálních maxim v Houghově prostoru V případě detekce přímky xcosθ + ysinθ = r jak vypadá Houghův prostor? Extrakce obrazových příznaků 12 / 53
Další možnosti hranové segmentace Ransac Aktivní kontury Extrakce obrazových příznaků 13 / 53
Prahování Extrakce obrazových příznaků 14 / 53
Watershead Watershed segmentace je založena na předpokladu, že jasovou složku obrazové informace chápeme jako výškovou mapu. Ve světlých místech je tak terén s větší výškou než v místech tmavých. Metoda se dá neformálně interpretovat jako postupné zaplavování takto vytvořeného terénu. Během zaplavování se jednotlivé vodní plochy postupně slévají a v místech těchto spojení vznikají rozvodí (děĺıcí linie) a) b) c) Extrakce obrazových příznaků 15 / 53
Sluc ova nı oblastı a) b) c) Extrakce obrazovy ch pr ı znaku 16 / 53
Detekce význačných bodů Surf Sift Nalezení významných bodů víceméně pomocí odezev gáborových filtrů Popsání bodů descriptorem. Haarovy příznaky Extrakce obrazových příznaků 17 / 53
Surf Lokalizace keypointu Aproximace filtrace gáborových filtrů Extrakce obrazových příznaků 18 / 53
Integrální obraz optimalizace výpočtu hodnot nad regionem hodnota pixelu integrálního obrazu je dána součtem hodnot všech pixelů v oblasti, kde je daný bod pravým dolním rohem sat(x, y) = i(x, y ) x <=x;y <=y A B C D Součet hodnot nad jakoukoliv oblastí se pak provede sat(a x, A y ) + sat(c x, C y ) sat(b x, B y ) sat(d x, D y ) haar(ker) = (A B D + E) (B C E + F ) haar(ker) = A + 2E 2B D + C F Extrakce obrazových příznaků 19 / 53
Surf - deskriptor Deskriptor je složený z informací o prvních derivací nad regionem keypointu Derivace se váhují gausovským oknem Vypočítá se dominantní orientace keypointu Oblast nad keypointem je rozdělena do 16 podoblastí (4 x 4) Každá oblast obsahuje 4 příznaky 16*4 = 64 hodnot příznaku Extrakce obrazových příznaků 20 / 53
Texturní příznaky Extrakce obrazových příznaků 21 / 53
Textury v přírodě Ochranné zbarvení (Mimikry) Odhad povrchu terénu v závislosti na deformaci textury Extrakce obrazových příznaků 22 / 53
Texturní příznaky - motivace Segmentace obrazu Jednotlivé regiony obrazu mají konstantní texturu Segmentace obrazu pomocí klasifikace textur Příklad segmentace Extrakce obrazových příznaků 23 / 53
Texturní příznaky - motivace Kontrola jakosti potravin Povrchové vady dřevěných desek Defekty textilíı Kvalita papíru Detekce granátů v továrně na marmeládu Extrakce obrazových příznaků 24 / 53
Klasifikace textur - Základní rozdělení Strukturní klasifikace Jednotlivé texely jsou od sebe navzájem rozlišitelné a nesplývají s pozadím (Většinou regulární textury) Textura je popsána množinou texelů a modelem jejich geometrického uspořádání - strukturou Struktura je popsána formálním aparátem, např. gramatikou (viz. Tvarové gramatiky, Stromové gramatiky) Statistická klasifikace Popis vektorem příznaků, získaných na základě rozložení intenzit v textuře Klasifikace viz. přednáška o základech klasifikace a rozpoznávání (SRE) Extrakce obrazových příznaků 25 / 53
Jak získat příznaky z textury? Histogram Morfologie - měření zrnitosti Výkonové spektrum Autokorelační funkce Globální statistické vlastnosti textury Haralickovy texturní příznaky (Kookurenční matice) Lokální vlastnosti Konvoluce Gáborovská analýza Extrakce obrazových příznaků 26 / 53
Histogram Histogram patří k základním příznakům Dá se dělat nad mnoha různými vstupy např. Barevný histogram. Barevné modely Grayscale, RG, HSV,.... Ne RGB - silná korelace jednotlivých složek Histogram LBP příznaků (viz. dále) Histogramy gradientů Histogram kookurence atd... Co s histogramem? na histogram se nafituje např. gaussovkou 2 histogramy se porovnají přímo pomocí vhodné metriky.χ 2 (chi-kvadrád) n χ 2 (O i E i ) 2 = i=1 O i - testovaný histogram E i - očekávaný, vzorový histogram E i Extrakce obrazových příznaků 27 / 53
Histogram Histogramy ukázkových textur Pixel count 1600 1400 1200 1000 800 600 grass 0 grass 1 stone 0 stone 1 textil 0 textil 1 wall 0 wall 1 wall 2 400 200 Histogram lidské kůže 0 0 50 100 150 200 250 Values Extrakce obrazových příznaků 28 / 53
Morfologie - měření zrnitosti Morfologické operace Dilatace, Eroze, Otevření, Uzavření Černobílý obraz Aplikace operace otevření s různými velikostmi jader d d, kde d = 3, 5, 7,... Po každé operaci spočítáme množství pixelů v obraze Výsledná funkce C(d), která se nazývá spektrum vzorů (pattern spectrum) slouží jako vektor příznaků textury Šedý obraz Aplikace otevření, stejně jako u černobílého obrazu Výpočet hodnot funkce C(d, g), kde d je velikost aplikovaného jádra, g je hodnota šedi a výsledek funkce je počet pixelu nastavených na hodnotu g po aplikaci otevření s jádrem d d Výsledná funkce popisuje matici příznaků textury Extrakce obrazových příznaků 29 / 53
Morfologie - měření zrnitosti příklad Příklady, osa X intenzita barvy, osa Y velikost morfologického jádra Výsledné spektrum vzorů je zpracováno jako vektor příznaků zvolené klasifikační metody Extrakce obrazových příznaků 30 / 53
Výkonové spektrum Výkonové spektrum: P(I ) = F (I ) 2 Extrakce obrazových příznaků 31 / 53
Příznaky z výkonového spektra Popis charakteristických frekvencí a směrovosti textury v jejím spektru Získání radiálních a úhlových příznaků ze spektra, pomocí výpočtu průměrné hodnoty v určitých oblastech v v u u Radiální příznaky V praxi se moc často nepoužívá Úhlové příznaky Extrakce obrazových příznaků 32 / 53
Autokorelační funkce Autokorelační funkce: P = F 1 ( F (I ) 2 ) Kvalitní popis velikosti primitiv a periodicity textury Extrakce obrazových příznaků 33 / 53
Kookurenční matice Histogram kookurence Jak často se v textuře vyskytuje stejná konfigurace pixelů Statistika 2. řádu Metodu lze zobecnit pro použití na silné textury Rozdělení přístupů: Směrové kookurenční matice - určené vektorem (p, q) Rotačně invariantní - určené poloměrem r Extrakce obrazových příznaků 34 / 53
Kookurenční matice Směrové kookurenční matice - určené vektorem (p, q) Jak často se v textuře vyskytuje stejná konfigurace pixelů, vzdálená o vektor (p, q) I = 1 1 0 0 1 0 2 1 0 0 2 2 2 0 2 2 C (0,1) (I ) = 2 2 0 1 1 0 2 1 3 C (1,0) (I ) = 2 2 1 0 1 1 3 0 2 Rotačně invariantní kookurenční matice - dané poloměrem r Jak často se v textuře vyskytuje stejná konfigurace pixelů vzdálená od sebe právě r pixelů v libovolném směru Jádro pro r = 2 - C r=1 (I ) = 4 4 1 1 2 1 5 1 5 C r=2 (I ) = 1 6 0 1 1 0 10 6 3 Extrakce obrazových příznaků 35 / 53
Kookurenční matice - příklad Směrové - posun o vektor (5, 0) Extrakce obrazových příznaků 36 / 53
Kookurenční matice - příklad Rotačně invariantní poloměr r = 5 Extrakce obrazových příznaků 37 / 53
Haralickovy texturní příznaky Energie H 1 = i,j C 2 (i, j) Entropie H 2 = i,j C(i, j)log 2 C(i, j) Kontrast H 3 = i,j i j C(i, j) Homogenita Korelace H 4 = i,j H 5 = C(i, j) 1 + i j cov(i, j C) std(i C)std(j C) Extrakce obrazových příznaků 38 / 53
Lokální momenty - Konvoluce M pq = r i= r j= r r i p j q I (i, j) Realizace konvolučními maskami, nebo gáborovskou analýzou 1 1 1 1 1 1 M 0,0 = 1 1 1 M 1,0 = 0 0 0 1 1 1 1 1 1 M 0,1 = M 1,1 = 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 1 M 2,0 = M 0,2 = 1 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1 Extrakce obrazových příznaků 39 / 53
Lokální momenty - Konvoluce příklad Originál M 0,1 M 1,0 Originál M 1,1 M 0,0 Extrakce obrazových příznaků 40 / 53
Lokální momenty - Gáborovská analýza Obraz je filtrován bankou filtrů, které jsou popsány Gáborovskou funkcí ( 1 f (x, y) = exp 1 ( x 2 + y 2 )) exp (2πjµ 0 x) 2πσ x σ y 2 σ x σ y,kde σ x a σ y určují Gausovskou obálku a µ 0 definuje radiální frekvenci Gáborovské funkce. Příklady jader vygenerovaných pomocí gáborovské funkce Gaussián - pouze měřítko Gáborovy vlnky - měřítko, orientace, prostorové frekvence Extrakce obrazových příznaků 41 / 53
Lokální momenty - příklad Gáborovské analýzy Originál Originál Extrakce obrazových příznaků 42 / 53
Local Binary Patterns - LBP Princip LBP (P = 4, R = 1.0) (P = 8, R = 2.0) (P = 12, R = 2.0) (P = 16, R = 3.0) (P = 24, R = 4.0) Příklad vyhodnocení Vzorky Prahování Váhy 6 5 2 1 0 0 1 2 4 7 6 1 1 0 128 8 9 8 7 1 1 1 64 32 16 Pattern = 11110001 LBP = 1 + 16 + 32 + 64 + 128 = 241 Extrakce obrazových příznaků 43 / 53
Local Binary Patterns - LBP Výpočet binárního vzoru P 1 LBP P,R = s(g p g c )2 P s(x) = p=0 { 1, x 0 0, x 0 g c - grayscale hodnota pixelu ve středu g p - grayscale hodnota pixelu na pozici p ve vzoru Detekovaná primitiva Špička Špička/Plocha Konec čáry Hrana Roh Extrakce obrazových příznaků 44 / 53
Zajištění rotační invariance binárních vzorů Příklad: (15) (15) (30) (60) (120) (240) (225) (195) (135) Bitová rotace vzoru vpravo LBP ri p,r = min{rot(lbp P,R, i) i = 0, 1,..., P 1} Příklad: 11000011 00001111 (195 15) Extrakce obrazových příznaků 45 / 53
LBP - příznaky Texturním příznakem není hodnota LBP jednotlivých pixelů a jejich okoĺı, ale histogram všech hodnot Klasifikace - porovnání histogramu textury s histogramy známých textur Extrakce obrazových příznaků 46 / 53
LBP - uniformní vzory Extrakce obrazových příznaků 47 / 53
LBP - shrnutí Rychlý výpočet, snadná realizace v HW Invariantní vůči změnám intenzity pixelů v obraze Rotačně invariantní Praktické aplikace Segmentace obrazu Detekce obličeje Detekce pohybu... Extrakce obrazových příznaků 48 / 53
LRD Local Rank Differences Obraz se projíždí oknem po daných usecích Okno je rozděleno na 3x3 oblasti, v každé oblasti se provede součet hodnot Z těchto 9 oblastí jsou vybrány 2 a je určeno jejich pořadí v rámci okna Rozdíl těchto pořadí je indexem do jednorozměrné tabulky rank(2) rank(6) rank(v, V ) = { 1, v i < V 0, v i V Extrakce obrazových příznaků 49 / 53
LRP Local Rank Patterns Analogický postup jako u LRD, s tím rozdílem, že ranky se použijí jako indexy do 2-rozměrné tabulky Prostorově náročnější než LRD, ale zase o něco rychlejší rank(2) rank(6) Extrakce obrazových příznaků 50 / 53
Haarovy příznaky Extrahují informace o lokální frekvenci Existuje velký počet těchto bází (180 000 v 24x24) haar(ker) = A B C W B D E F w ker W w b ker B b Extrakce obrazových příznaků 51 / 53
Haarovy příznaky modifikace Zobecněné harrovky Více úrovní hodnot Oblasti na sebe nemusí navazovat Volba filtrů složitá (využívá se různých genetických algoritmů). 3D haarovky Třetí dimenzí čas Lépe postihuje pohybující se objekty např. chodce Také složitá volba filtrů Extrakce obrazových příznaků 52 / 53
Závěr Zdroje Jiří Zuzaňák:POV přednáška 2008 Analýza a extrakce příznaků z textur Michal Španěl: POV přednáška 2007 Radim Šára: Analýza textury Mihran Tuceryan a Anil K. Jain: Texture analysis Donxiao Zhou: Texture Analysis and Synthesis Výsledky po aplikaci některých algoritmů http://www.fit.vutbr.cz/~imlich/online/textures/ Extrakce obrazových příznaků 53 / 53