Ing. Marek Hrúz Ph.D. Univ. of West Bohemia, Faculty of Applied Sciences, Dept. of Cybernetics 30. září 2016
Mean-shift Úvod Definice Modely Optimalizace Příklad - segmentace obrazu Kriteriální funkce Princip konstrukce a řezu grafu Implementace Aplikace metody graph-cut
a method for non-parametric probability density estimation a single parameter - size and shape of the kernel symmetrical kernels are used normal kernel K(x) = ck( x 2 ) (1) K N (x) = c exp( 1 2 x 2 ) (2) Obrázek: Normal kernel and its profile (without normalization)
we have n vectors x i in d-dimensional space R d the multidimensional estimator of kernel density is defined as f h,k (x) = 1 nh d n ( x xi K h i=1 ), (3) Obrázek: Set of points from a distribution
Obrázek: First point to compute f 1 h,k (x) = c nh d exp( 1 2 x x 1 h 2 ), (4)
Obrázek: The rest of the points to compute f h,k (x) = 1 nh d n ( x xi K h i=1 ), (5)
for all the xs we obtain Obrázek: Estimated density for h = 1
for all the xs we obtain Obrázek: Estimated density for h = 0.05
for all the xs we obtain Obrázek: Estimated density for h = 0.3
we want to estimate the modes (peaks) of the distribution those are local extrema points x where f h,k (x) = 0 f h,k (x) = 1 nh d n ( x xi K h i=1 this will enable clustering of unknown points we need to compute K K = c exp( 1 2 x 2 ) profile k = exp( 1 2 x) ), (6) K = G = x exp ( 12 ) x2 (7)
1 [ ( f h,k (x) = n x x nh d i=1 ck i 2)] h = 1 ( n nh d i=1 2c (x x h 2 i )k x x i 2) h ( n nh d+2 i=1 (x x i)k x x i 2) h ) x, = 2c = 2c nh d+2 ( n i=1 k i) ( n i=1 x i k i n i=1 k i (8) k i = k this estimator estimates the gradient of the density function where it equals zero, there is a peak we will utilize this for clustering f h,k (x) = 2c ( n nh d+2 i=1 k x x i 2) i h is estimator m h,k (x) = n i=1 x i k i n i=1 k i x is mean-shift
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
Obrázek: Mean shift iteration
MRF - motivace svět kolem nás je hladký - změny většinou nepříchází naráz ale pozvolna změny počasí změny terénu příklad z oblasti zpracování obrazu: pokud určitý pixel patří jednomu objektu, je pravděpodobné, že sousední pixely budou patřit témuž objektu pokud se objekt v jednom framu videa vyskytuje na pozici (x, y), bude se i v následujícím framu vyskytovat bĺızko této pozice kontext = souvislost sousedních bodů, tj. význam bodu je závislý na významech bodů sousedních využití kontextu je velmi cenné pro analýzu obrazu nástroj pro využití kontextu - podmíněné pravděpodobnosti
MRF - intro Problém přiřazení labelů extrakce příznaků z obrazu každý pixel p je definován příznakovým vektorem f p množina všech příznakových vektorů... f = { f p : p I} množina labelů L label určitým způsobem klasifikuje pixel, kterému je přidělen např. L = {hrana, nehrana } {obj, bgd} disparita pixelů... z hlediska Markovských modelů představuje label skrytou proměnnou každému pixelu p je přiřazen jeden label ωp konfigurace pole... ω = {ωp : p I} obrázek o rozměrech NxM L NM = Ω možných výsledků jak vybrat ten správný?
Pravděpodobnostní přístup dána pozorovaná data f (obrázek, stereo snímky,... ) definovat pravděpodobnostní míru (pravděpodobnost olabelování) pravděpodobnost konfigurace ω je určena jako P(ω f ) určit nejpravděpodobnější olabelování chceme najít ω maximalizující P(ω f ) Odhad maximální aposteriorní pravděpodobnosti (MAP): ω MAP = arg max ω Ω P(ω f ) Bayesovo pravidlo: P(ω f ) = P(f ω)p(ω) P(f ) pro neměnná data f je P(f ) konstanta P(ω f ) P(f ω)p(ω) určení P(ω) a P(f ω) MRF
MRF - definice náhodné pole může být definováno jako graf G = (V, E): E je množina hran mezi uzly: (p, q) E q Np V = {1, 2,..., N}... množina uzlů každému uzlu odpovídá jedna náhodná proměnná Ω p, která může nabývat hodnoty ω p L MRF musí splňovat dvě nutné podmínky: 1. pozitivita... P(ω) > 0, ω Ω (Ω je prostor všech možných konfigurací) 2. Markovianita... P(ω p {ω q } q V\p ) = P(ω p {ω q } q Np ) = P(ω p ω Np )
Markovianita popisuje tzv. knock-on efekt: pomocí explicitních závislostí bĺızkých uzlů jsou implicitně popsány závislosti vzdálených uzlů obrovská motivace pro používáni MRF Markovianita popisuje kontextuální informaci - výsledek jednoho uzlu je závislý na sousedních uzlech určení sdružené ppsti P(ω) je problém - naštěstí existuje Hammersley-Cliffordův teorém
Hammersley-Cliffordův teorém definuje ekvivalenci mezi MRF a Gibbsovým rozložením Gibbsovo rozložení ppsti poskytuje matematické nástroje pro určení sdružené ppsti P(ω) P(ω) = 1 Z e 1 T E(ω) Z = e 1 T E(ω)... normalizační koeficient ω Ω T... teplota = parametr určující špičatost rozložení důvodem použití Gibbsova rozložení je možnost vyjádřit energii konfigurace pole E(ω) pomocí potenciálů klik v grafu: E(ω) = V c (ω) c C C... množina všech klik 1 v grafu maximalizace P(ω) minimalizace energie E(ω) klasický optimalizační problém, jehož cílem je najít konfiguraci pole s minimální energíı 1 pojem klika vysvětlen na následujícím slidu
Graf a jeho vlastnosti mějme graf G(V, E) uzel p V může reprezentovat pixel, voxel, superpixel, objekt Mějme množinu c V. Pokud každý uzel této množiny je sousedem zbylých uzlů této množiny, pak je tato množina nazývána klika grafu. matematicky: c V je klika grafu G p, q c, p q : p N q podle počtu uzlů se kliky děĺı na singletony, doubletony systém sousednosti je definován explicitně pomocí množiny hran E
Systémy sousedství a příslušné kliky: okoĺı singletony doubletony tripletony quadrupletony
Energie MRF Gibbsovo rozložení je dáno vztahem P(ω) = 1 Z e 1 T E(ω) energie MRF je možné vyjádřit pomocí klik grafu: E(ω) = V c (ω) = c C = V 1 (ω p ) + V 2 (ω p, ω q ) +... + {p} C 1 {p,q} C 2 V n (ω p, ω q...) {p,q...} C n omezením se na čtyřokoĺı 2 jsou uvažovány pouze singletony a horizontální a vertikální doubletony: E(ω) = V 1 (ω p ) + V 2 (ω p, ω q ) = {p} C 1 {p,q} C 2 E data (ω) + E smoothness (ω) E data (ω)... shoda konfigurace a dat Esmoothness (ω)... zastupuje spojitost reálného světa, tzn. preferuje homogenní oblasti 2často používané kvůli efektivnosti výpočtu
Isingův model jedná se o binární model vzhledem k počtu labelů, tzn. L = {0, 1} E(ω) = V 1 (ω p ) + V 2 (ω p, ω q ) {p} C 1 {p,q} C 2 interakční člen V 2 (ω p, ω q ) modeluje diskontinuity v olabelování: V2 (ω p, ω q ) = β ω p ω q = βδ(ω p, ω q ) { 1 if ωp ω δ(f p, f q ) = q... Kroneckerova delta 0 if ω p = ω q parametr β definuje míru penalizace za diskontinuitu, tzn. větší β preferuje kompaktní objekty (a) β = 0.7 (b) β = 1.1 (c) β = 2
Pottsův model Isingův model je velmi používaný, velkým omezením je jeho binárnost v úlohách s větším počtem labelů se používá Pottsův model množina labelů L = {1, 2,..., M} E(ω) = V 1 (ω p ) + V 2 (ω p, ω q ) {p} C 1 {p,q} C 2 interakční člen V 2 (ω p, ω q ) definován následovně: { β if ωp ω V p,q (ω p, ω q ) = q β if ω p = ω q parametr β má stejný význam jako u Isingova modelul = definuje míru penalizace za diskontinuitu
Optimalizace jakmile máme vybraný model a definované všechny hrany uzlu, resp. E(ω) smoothness a E(ω) data, je třeba vybrat optimální konfiguraci pole celá řada optimalizačních metod: gradientní metody simulované žíhání genetické algoritmy graph cut - state of the art metoda, bude popsána některé metody jsou pouze lokálního charakteru, tzn. nutno ošetřit problém uváznutí v lokálním extrému - např. vícenásobná inicializace metody hledající globální extrém jsou výpočetně mnohem náročnější metoda graph cut 3 garantuje nalezení extrému, který je nejhůře c-krát horší, než globální extrém, přičemž c je předem známo 3 resp. varianty využívající tzv. large moves: α expansion a α β swap
Segmentace 1/3 neznáme: MRF segmentační model, parametry modelu
Segmentace 2/3 1. Určení MRF modelu třídy určeny pomocí Gaussova rozdělení: ) 1 (fs µωs )2 P(f s ω s ) = 2πσωs exp ( 2σωs 2 potenciály klik: singleton: log(p(f ω)) doubleton: upřednostňují stejné labely u { sousedů; V C2 (j, i) = βδ(ω i, ω j ) = β, ω i = ω j β, ω i ω j 2. Určení parametrů modelu interakční potenciál β - a priori počet tříd L - poskytne uživatel každá třída λ reprezentována Gaussem N(µ λ, σ λ )
Segmentace 3/3 pravděpodobnost konfigurace ω: P(ω) = 1 Z exp( E(ω)) = 1 Z exp( c C V c (ω)) definice energie: E(ω) = (log( ) 2πσ ωs ) + (fs µωs ) 2 + βδ(ω 2σ s ωs 2 s, ω r ) s,r ω MAP = arg max P(ω f ) = arg min E(ω) ω Ω ω Ω následuje optimalizace např. metodou graph cut
Kriteriální funkce C(L) = λ R(L) + B(L) R(L) váží oblast (region) B(L) váží okraje segmentace(boundary), penalizuje samostatné pixely λ váží vliv oblasti a okraje na výsledné kritérium B(L) = δ(l p, L q ) = R(L) = p P R p (L p ) {p,q} N { B {p,q} δ(l p, L q ) 1 pokud L p L q 0 jinak
Možný návrh kriteriální funkce C(L) = R(L) + B(L) R(L) je míra vzdálenosti každého pixelu k barevnému prototypu dané třídy c(k) R(L) = [m,n] Image B(L) je ohodnocení sousedství třídy i a j S c (i, j) = (f (m, n) c(k) ) 2 }{{} D c B(L) = S c (i, j) { 0, i = j γ, i j [ ] 0 γ S c = γ 0
Matice D c
Ukázky výpočtu kritéria λ = 1 [ ] 0 1 S c = 1 0 size (D c ) = 3 3 2
Ukázky výpočtu kritéria λ = 1 [ ] 0 1 S c = 1 0 size (D c ) = 3 3 2
Ukázky výpočtu kritéria E(A) = λr(a) + B(A) [ ] 0 1 λ = 1, S c = 1 0 R(A) = 0 1 2 8 10 1 = 35 10 1 2 B(A) = 3 E(A) = 35 + 3 = 38
Ukázky výpočtu kritéria E(A) = λr(a) + B(A) [ ] 0 1 λ = 1, S c = 1 0 R(A) = 0 1 8 2 10 9 = 43 10 1 2 B(A) = 5 E(A) = 43 + 5 = 48
Ukázky výpočtu kritéria E(A) = λr(a) + B(A) [ ] 0 1 λ = 1, S c = 1 0 R(A) = 0 1 2 8 10 1 = 43 10 9 2 B(A) = 6 E(A) = 43 + 6 = 49
Ukázky výpočtu kritéria E(A) = λr(a) + B(A) [ ] 0 1 λ = 1, S c = 1 0 R(A) = 0 1 2 2 0 1 = 8 0 1 2 B(A) = 4 E(A) = 8 + 4 = 12
Konstrukce grafu T-linky spojují (p, t) a určují oblastní část kritéria R(L) N-linky spojují (p, q) a určují hranovou část kritéria B(L)
Interaktivita Neinteraktivní podoba Pixely o kterých nic nevíme Interaktivní podoba Pixely o kterých nic nevíme Pixely popředí Pixely pozadí
Volba vah v grafu K = 1 + max p I q:(p,q) N B (p,q) Hrana Váha (p, q) B (p,q) pro (p, q) N (s, p) λr p (bgd) pro p I, P / (O B) K pro p O 0 pro p B (p, t) λr p (obj) pro p I, P / (O B) 0 pro p O K pro p B Tabulka: Váhy jednotlivých typů hran při konstrukci grafu pro segmentaci pomocí Grap-Cut
Hledání minimálního řezu - Graph Cut Grow stage Augment stage Adopt stage Details in: Yuri Boykov and Vladimir Kolmogorov: An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision http://www.csd.uwo.ca/~yuri/papers/pami04.pdf
Hledání minimálního řezu - alternativa
Pravděpodobnostní model R p (obj) = ln P(I p O) R p (bgd) = ln P(I p B) ( ) B(p, q) = exp (I p I q ) 2 1 2σ 2 p, q Kde P(I O) a P(I B) reprezentují míru věrohodnosti, že pixel náleží objektu, nebo pozadí. Výraz p, q znamená vzdálenost mezi pixely a σ 2 představuje očekávaný rozptyl jasových hodnot.
Segmentace pomocí Graph-Cut v Matlabu img = [ 1 0 9 2 8 10 1 10 1 2 ] ; lambda = 1 ; Dc ( :, :, 1 ) = lambda ( img ) ; Dc ( :, :, 2 ) = lambda (10 img ) ; Sc = [ 0 1 1 0 ] ; [ gch ] = GraphCut ( open, Dc, Sc ) ; [ gch L ] = GraphCut ( expand, gch ) ; [ gch ] = GraphCut ( c l o s e, gch ) ;
Výpočet hodnoty kritéria v Matlabu img = [ 1 0 9 2 8 10 1 10 1 2 ] ; lambda = 1 ; Dc ( :, :, 1 ) = lambda ( img ) ; Dc ( :, :, 2 ) = lambda (10 img ) ; Sc = [ 0 1 1 0 ] ; l a b e l s = [ 1 1 0 0 0 0 0 0 0 ] ; [ gch ] = GraphCut ( open, Dc, Sc ) ; [ gch ] = GraphCut ( set, gch, l a b e l s ) [ gch se de ] = GraphCut ( energy, gch ) ; [ gch ] = GraphCut ( c l o s e, gch ) ;
Úlohy řesené pomocí Graph-Cut Segmentace Restaurace Syntéza Stereovidění
Segmentace - Jednoduchá
Segmentace
Restaurace
Syntéza
Stereovidění Pro detaily viz [?]
Interaktivní segmentace Interaktivní segmentace tumoru Interaktivní segmentace jater Interaktivní 3D segmentace