Képfeldolgozás 4. előadás Konvolúció, élkereső eljárások. Fotometriai alapok Benedek Csaba és Szirányi Tamás.
Ismétlés: konvolúciók http://mathworld.wolfram.com/convolution.html Súlyozott összeg-képzés G(m,m ) ( f *g)(t) f ( )g(t ) d f * g F G n n 2 2 2 2) n n 2 K(n,n )F(m (Fourier térben szorzás),m 2008 2
Konvolúciók Súlyok mátrixban, egyszerű tárolás, műveletek G(m n n r r r r,m n n 2 2 r 2 r r 2 2 r ) K(n, n 2 )F(m n, m 2 n 2 ) 2 * K (n,n )F(m n,m n ) 2 2 Kernel Eredeti kép Itt K egy 3x3-as kernel: r =r 2 = K* a K kernel 80 fokos elforgatottja: 2 2 9 G K* F K: a -- a 0- a - a -0 a 00 a 0 2008 3 a - a 0 a K*: a a 0 a - a 0 a 00 a -0 a - a 0- a --
Konvolúciók Alkalmazás: szűrések Elmosások - zajszűrések élszűrések (gradiens), élkiemelések Konvolúciós mátrix együtthatóinak összege: : átlagoló típus 0: élszűrő típus 2008 4
Egyszerű (átlagolós) elmosás Konvolúciós kernel mérete: x 2008 5
Konvolúciók Kép szélein kicsúszás különféle megoldások oldal-tükrözés körbejárás konstanssal feltöltés stb. 2008 6
Konvolúció-tulajdonságok Felcserélhetőség, linearitás f*g=g*f f*(g*h)=(f*g)*h f*(g+h)=f*g+f*h a(f*g)=(af)*g=f*(ag) F(f*g)=F(f)F(g) ->Fourier térben szorzás 2008 7
Műveleti igény: k s kernelméret és P képméret (itt pixelben mért terület mindkettő) esetén általában ~ k s P db művelet kell. Nagy kernelméret esetén a művelet végrehajtása lassú lehet (lásd gyakorlat) 2008 8
Konvolúciók műveleti igény csökkentés közelítő megoldással Szeparálhatóság műveletigény csökkentése (2r +)x(2r 2 +) és (2r 3 +)x(2r 4 +) es méretű kernelekkel végzett konvolúciók egymásutánja megfeleltethető egy [2(r +r 3 )+]x[2(r 2 +r 4 )+] 5x7 és 7x3 konv = x9 konv Műveleti igény 2 egymásután konvolúcionál: (5x7+7x3)P=26P (P a pixelek száma) nagy kernelű konvolúciónál: (x9)p=209p 7x7 > 49, 3x3+5x5 -> 34 (pl. Prewitt, blur, stb.) Kérdés: egy nagy kernel hogy dekomponálható két kisebb kernelre? (elmosásoknál közelítés is lehet elég) 2008 9
Egyszerű (átlagoló) elmosás műveleti igényének csökkentése 0 2 Integrálkép: köztes reprezentáció I f I f x y f (x, y) f (i, j) i j f 2 0 0 3 0 0 4 Pl: I f (3,3) 0 2 2 0 0 3 0 0 4 = a pixelek értékeinek összege: I f 3 4 3 3 6 7 6 7 2 7 8 3 8 2008 0
2008 számítása: dinamikus programozással ~P időben: I f y j j) f (x, y) t(x, 4 0 0 3 0 0 2 2 0 8 3 8 7 2 7 6 7 6 3 3 4 3 5 5 7 4 6 3 0 3 2 0 : f f I : t...w x f (x,), (x,) : t...h y y), t(, y) : (, I f f (x,y) ) t(x,y (x,y) t y) t(x, y), (x I y) (x, I f f Segéd-segédkép: 4 0 0 3 0 0 2 2 0 8 3 8 7 2 7 6 7 6 3 3 4 3 5 5 7 4 6 3 0 3 2 0 : f f I : t 4 0 0 3 0 0 2 2 0 8 3 8 7 2 7 6 7 6 3 3 4 3 5 5 7 4 6 3 0 3 2 0 : f f I : t 4+7=
c ia Integrálkép felhasználása Tetszőleges téglalap által lefedett pixelek értékeinek összege az integrálkép segítségével 3 db additív művelettel számítható: d jb f (i, j) I f (c,d) I f (a,d) (c, b ) Példa (a=2, b=2, c=3, d=3): -6-3+=3 I f I f (a, b ) Megj: itt a definíció szerint I f (0,y)=0, és I f (x,0)=0, minden x és y -ra 0 2 3 4 f 2 0 0 3 0 0 4 If 3 3 6 7 6 7 2 7 8 3 8 2008 2
Integrálkép felhasználása simításhoz (egyszerű átlagolás esetén) ~ f (x, y) 2r r r f (x i, y ) 2 ir jr j (2r+) 2 összeadás + osztás Pl: r=5 Teljes képre a műveleti igény ~22P ~ f (x, y) I f (x r, y 2r 2 (I f (x r ) I f r, y (x r) I r, x r )) r) 2008 3 f (x r, y 3 összeadás + osztás Pl: r=5 Teljes képre a műveleti igény ~ 2P+4P=6P int. kép számítás átlag számítása
Szorgalmi feladat (ez most nem konvolúció) Írj hatékony lokális kontrasztszámító algoritmust az integrálkép felhasználásával! A kontraszt a (2r+) 2 szomszédságban található pixelek szórásaként számítandó. 2 (x, y) 2r 2 r r f (x i, y j) f (x, y) ir jr ~ 2 ahol: ~ f (x, y) 2r r r ir jr f (x i, y j 2 ) Segítség: 2 r r ( x, y) 2 2r ir jr 2 f (x i, y j) f (x, y) 2 ~ 2008 4
Konvolúció alkalmazásai Élszűrések (élkeresés) Élkiemelések (crispening, sharpening) Zajszűrések egyenletes, Gauss (impulzusra nem jók) 2008 5
Konv. példák - elmosás - blur Average blur 2008 6
Konv. példák - elmosás Gauss Gaussian blur 2008 7
Elmosások Elmosásnak meg kell tartania az átlagot a konvolúciós együtthatók összege Nem okozhat eltolódásokat legyen szimmetrikus Izotróp irány-érzéketlen, minden irányban ugyanolyan hatású 2008 8
Elmosások Átlagolás (box filter): Erős élből lankás élt csinál(hat) eltüntethet azonos frekv. mintát Minta erősségét csökkenti 2008 9
Zajszűrés Zajos kép 5x5 blur 2008 20
Élkeresés 2008 2
Élkeresés - Tartalom Élkeresés célok Módszerek áttekintése Elsőrendű módszerek Másodrendű módszerek Canny algoritmus 2008 22
Élkeresés célok Cél: objektumok kontúrjainak meghatározása Él-pontok: a fényesség ugrásszerűen változik 2008 23
Éldetekció Cél: a 2D képből görbék kinyerése Szegmentálás, karc-szűrés, felismerések A pixeleknél kompaktabb reprezentálása a tartalomnak 2008 24
Élkeresés célja Képi információk, struktúra kinyerése Sarkok, vonalak, határok Nem mindig egyszerű 2008 25
Élkeresés Jó élszűrő filter tulajdonságai: homogén területeken (konstans intenzitás) nem ad választ izotróp: a szűrő válasza független az él irányától (~ minden élt megtalál) jó detekció: minél kevesebb zaj által okozott hamis élt találjon minél kevesebb valódi élt hagyjon ki jó lokalizáció: a detektált élek minél közelebb legyenek a valódi élekhez 2008 26
Alapstruktúrák Él: drasztikus intenzitás-váltás (ugrásszerű, folyamatos) Vonal: vékony, hosszú, kb. azonos szélességű, azonos intenzitású tartomány Folt: zárt alakzatot képező azonos intenzitású régió Sarok: kontúrvonal/él törése/irányváltása 2008 27
Élek eredete Felület normálisa változik (ugrászerűen) Felület mélysége változik (folytonosan) A felület színe változik Megvilágítás/árnyékok okozta különbségek Változatos jelenségek okozhatnak éleket 2008 28
Élek típusai Intenzitásfüggvény a kép egy adott egyenese mentén: lépcső, rámpa háztető vonal 2008 29
Élek zajosságának jellemzése SNR: magasság/zajszórás SNR edge h 2008 30
Élek jellemzői Normális: vektor ami merőleges az élre és a legnagyobb intenzitásváltozás irányába mutat Irány: a vonal irányába mutató vektor Helyzet, középpont Erősség: intenzitásának aránya a környező kontraszttal 2008 3
Élkeresés - módszerek Kép reprezentáció: szürkeségi érték az x és y koordináta függvénye (fényesség-függvény) Élkeresési módszerek Csak gradiens alapú: Elsőrendű: a fényeség-függvény első deriváltját vizsgálja Másodrendű: a fényeség-függvény második deriváltját vizsgálja Összetett Pl: Canny f ( x, y) 2008 32
Kép-kétváltozós függvény megfeleltetés 2008 33
Elsőrendű módszerek/ Gradiensvektor f f x f y T A gradiensvektor hossza f f x x szerinti parciális derivált közelítése f x i, j 2 f y f (i, j) f (i, j) 2v 2 v: két szomszédos pixel középpontjának távolsága 2008 34
Elsőrendű módszerek/2 x irányú gradienskép d x ( i, j) f ( i, j) f ( i, j) Megfelelő konvolúciós kernel: Zajérzékenység y irányú szűrés X irányú PREWITT operátor = 2008 35
Elsőrendű módszerek/3 y irányú gradiensképzés d y ( i, j) f ( i, j ) f ( i, j ) y irányú PREWITT kernel 2008 36
2008 37 Elsőrendű módszerek/4 Gradienskép : Egyszerűsítés: 2 2 ), ( ), ( ), ( j i d j i d j i d f y x ij ), ( ), ( ), ( j i d j i d j i d y x
Eredmények (elsőrendű) Prewitt gradiensképzés y irányú gradiens x irányú gradiens Összesített gradiens kép 2008 38
További elsőrendű módszerek/ Sobel operátor Roberts operátor 45 fokos éleket emeli ki 2008 39
Sobel eredmények 2008 40
2008 4 Élkeresés compass filter pl. Kirsch 5 5 5 3 0 3 3 3 3 3 5 5 3 0 5 3 3 3 3 3 5 3 0 5 3 3 5
Másodrendű élkeresés: motiváció Vízszintes élkeresés az alábbi képen: A fényességi függvény (fenn), valamint x szerint első (középen) és második (lenn) deriváltjának alakulása egy adott egyenes mentén. 2008 42
Másodrendű eset: szélsőérték helyett 0 átmenet keresése szélsőérték zero crossing 2008 43
Valós kép: piros vonal alatti rész intenzitás függvénye 2008 44
2008 45 Másodrendű módszerek/ A gradiensvektor divergenciájának képzése 2 2 2 ), ( ), ( 2 ), ( ), ( ), ( ), ( ), ( ), ( v y x f y x f y x f v v y x f y x f v y x f y x f x y x f
Másodrendű módszerek/2 Az x irányú második derivált közelítése (y irány hasonló): A Laplace operátor konvolúciós mátrixa: 2008 46
Variációk: másodrendű éldetekciós kernelek. változat: Másodrendű Prewitt 2- változat 2008 47
Első és másodrendű élkeresés eredmények összevetése 2008 48
Zajhatások szűrése (D szemléltetés) x Hol az él? x 2008 49
f f: eredeti jel h h: Gaussi elmosás kernel h*f h*f: szűrt jel p*(h*f) p: Prewitt (elsőrendű gradiens kernel) A jel simítása Gaussi kernellel, majd elsőrendű Prewitt kernel használata 2008 50
Konvolúció asszociatív: p*(h*f)=(p*h)*f Nem kell 2 konvolúciót használni csak -et a Gauss deriváltja operátorral (ami szintén egy kernel ami diszkretizálható) p*h Gauss kernel deriváltja 2008 5
Másodrendű eset: Laplacian of Gaussian (LoG) Simítás+ Laplace = konv. A LoG operátorral f h: Gaussi simítás kernel l: Laplace-kernel l*h Laplacian of Gaussian operator 2008 52
2D éldetekció szűréssel: Laplacian of Gaussian 2D Gaussi simító kernel 2D Gauss függvény deriváltja fenn továbbra is a Laplace operátor: Kernelértékek meghatározása a függvény diszkrét helyeken történő approximációjával 2008 53
Canny éldetektor Cél: összefüggő, egységnyi vastagásgú élhálózat létrehozása Főleg lépcsős éleket talál meg Gaussi zaj szűrésére képes Három lépést tartalmaz: Gradienstérkép meghatározása vékonyítás a nem lokális maximumok törlésével Hysteres. thresh. 2008 54
Canny-. lépés. Konvolúció (mint eddig) Simítás egy Gauss szűrővel x és y irányú differenciaképzés 2. Az (i,j) pontokban a gradiens erőssége [d(i,j)] mellet az irányát [n(i,j) - élnormális] is meghatározzuk f ij x 2 y d ( i, j) d ( i, ) 2 d( i, j) j n(i, j) arctan d d x y (i, (i, j) j) 2008 55
Canny-. lépés kimenete, pixelenként d(i,j)= élerősség (milyen erős az él, a gradiens nagyságával arányos) n(i,j) = élnormális (milyen irányba mutat) A normálist tartalmazza 2008 56
2. lépés: Non-max Suppression Fő cél az élek vékonyítása A gradiensképen vastag nagy gradiensű területek alakulhatnak ki. Ezeket a korábbi módszerek mind élpontnak definiálták. Az élekre merőleges (itt piros) vonalak mentén csak - pontot kellene potenciális élpontnak meghagyni: a lokálisan legvilágosabbat 2008 57
2. Non-max Suppression-algoritmus. Meghatározunk 4 főirányt: (0, 45, 90, 35) 2. Minden (i, j)-re az n(i,j) lokális élnormális irányhoz a hozzá legközelebb eső főirány valamelyikét rendeljük 3. Ha d(i,j) élerősség kisebb, mint (i,j) bármelyik n(i,j) irányú szomszédjában, akkor G(i,j):=0. Egyébként (lokális maximum): G(i,j):=d(i,j) 4. Eredmény: G kép a d gradiens-erősség kép megfelelője, ám az él-kandidáns régiók elvékonyodnak 3 4 2 3 4 2 2 4 3 2 3 4 2008 58
3. Thresholding Naív megoldás: G képet egy t threshold küszöbbel vágjuk el Ha a küszöb túl kicsi akkor sok hamis élpont keletkezik. Ha túl nagy: igazi élek is eltűnnek Ha az élek gradiens-értéke a küszöb körül ingadozik, akkor sok szakadás lehet Megoldás: hysteresis küszöbölés 2 küszöbérték használata, t és t 2 (t <t 2 ): Ha G(x,y) értéke a felső küszöbnél nagyobb akkor (x,y) biztos él Ha G(x,y) érték az alsó küszöbnél kisebb akkor (x,y) biztosan nem él Ha a két küszöb között van, akkor vegyük fel élnek, ha az élnormálisokra merőleges irányban (tehát az élek futásával azonos irányban) az egyik szomszédja élpont 2008 59
Canny éldetektor: eredmény eredeti kép 2008 60
Canny éldetektor: eredmény Gradiens normája: d 2008 6
Canny éldetektor: eredmény Vékonyítás után (E) (non-maximum suppression) 2008 62
Canny éldetektor: eredmény hysteresis küszöbölés 2008 63
2008 64
fine scale high threshold 2008 65
coarse scale, high threshold 2008 66
Canny éldetekció - eredmények 2008 67
2008 68 Edge crispening - élerősítések 0 0 5 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 Konvolúciós mátrix:
2008 69 Edge crispening - élerősítések gyakran jobbá teszi a képet 2 2 5 2 2 9 0 0 5 0 0
Fotometriai alapok 2008 70
Fotometriai alapok: spektrális eloszlás Fényforrás jellemzője: spektrális energia eloszlás időegységre eső kibocsátott energia (tehát: teljesítmény) sűrűsége az adott hullámhosszon (analógia: folytonos valószínűségi változó sűrűségfüggvénye) A fényforrás által kibocsátott össz teljesítmény: 2008 7
Spektrális eloszlás CIE (Comission Internationale de l Eclairage): fény és színnel kapcsolatos nemzetközi szabványokért felelős szervezet Pár standard fényforrás spektrális energia eloszlása S A : wolframszálas izzólámpa, S B :napfény, S C borult égbolt 2008 72
Érzékelt fényesség Függ a szenzor karakterisztikájától is érzékenységi 2008 73
Trikromatikus színillesztés Tetszőleges szín megfeleltethető három megfelelő erősségű elemi színkomponens egymásra illesztésével. Additív reprodukció (színes tv) a három (R,G,B) fényforrás ugyanarra a területre vetít. Szubtraktív reprodukció (fényképészet, nyomtatás) 2008 74
Additív színillesztés Adott C fény és W referencia fehér fény, valamint R,G,B keverő fények. Cél: R,G,B-ből állítsuk össze C-t illetve W-t! Tristimulus értékek C-hez: T (C), T 2 (C), T 3 (C) pl. A (C) = az első keverő komponens erőssége a C szín összeállításakor 2008 75
Additív színillesztés 2008 76
A színillesztés axiómái (/2) (Grassman) 2008 77
A színillesztés axiómái (2/2) 2008 78
Érzékelt (mért) szín modellje s j (λ): receptor érzékenysége e j (C): receptor válasza 2008 79
Kapcsolat egy adott bázissal mért tristimulus hármas (színkeverés!) és egy adott receptor-hármas (színmérés!) válaszai között 2008 80
R,G,B alapszínek Az alapszínek megválasztása részben önkényes, a könnyű előállíthatóság is szempont volt. Higanygőzlámpa spektrumvonalaiból szűrőkkel elkülöníthető az alábbi három szín: R G B Hullámhossz [nm] 700,? 546, 435,8 Intenzitás [rel] 4,59 0,06 Az intenzitás azt a relatív intenzitás arányt adja, amely mellett a három alapszín összege azonos színűnek látszik a látható tartományban egyenletes spektrumú, fehér fénnyel. CIE (Commission Internationale d'éclairage) szavány, 93. Forrás: Székely V, BME 2008 8
R,G,B alapszínek Spektrumszínek: C(λ)=C 0 δ(λ- λ 0 ) (azaz olyan hullámok, melyek spektruma Dirac-delta) R, G és B értékei λ 0 függvényében Forrás: Székely V, BME 2008 82
Tetszőleges φ(λ) spektrum-eloszlással rendelkező szín kikeverése R ( ) r( ) d G ( ) g( ) B ( ) b ( ) d d Forrás: Székely V, BME 2008 83
2008 84 r,g koordináták miatt elég két koordinátát megadni (pl r és g). Ezek a koordináták nem tartalmazzák az intenzitás információt. B G R R r B G R G g B G R B b b g r Forrás: Székely V, BME
r-g sík: (A valóságos színek tartományát a diagramon árnyalás jelzi) Forrás: Székely V, BME 2008 85
CIE x-y koordináta rendszer Affin transzformáció: az R,G,B koordináta-rendszer leképzése le egy újabb, szintén lineáris X,Y,Z koordinátarendszerre, úgy, hogy minden valós színingernek pozitív színösszetevők feleljenek meg, az R=G=B fehérnek X=Y=Z feleljen meg, az Y összetevő egyúttal adja ki a fénysűrűséget. X Y Z 2,769,000 0,752 4,590 0,057,30 0,060 5,599 R G B Forrás: Székely V, BME 2008 86
CIE x-y koordináta rendszer x X X Y Z y X Y Y Z z X Z Y Z Forrás: Székely V, BME 2008 87
Színterek Csak krominancia (luminancia-független) színkomponensek: rg, C C 2 C 3 Minden komponens függ a luminanciától: RGB, XYZ Vegyesen luminancia függő és krominancia komponensek: HSV, HSI, CIE L*a*b, CIE L*u*v* 2008 88
HSI színtér Forrás: Nicu Sebe 2008 89
HSI színtér 2008 90
CIE L*a*b* Színek euklideszi távolsággal összehasonlíthatók X 0,Y 0,Z 0 : referencia fehér pont 2008 9
CIE L*u*v* Színek euklideszi távolsággal összehasonlíthatók 2008 92
CC2C3 színtér (bezárt szögeket mér RGB-ben, luminancia-független) 2008 93
2008 94
2008 95
2008 96
A módszerek határai Az invariáns tulajdonságok csak meghatározott megvilágítási körülmények között, megfelelő minőségű képeken, és megfelelő fényvisszaverő felületek jelenlétével érvényesek. Pl: C C 2 C 3 színtér használata Árnyékszűrésre nem elég hatékonyvideofelügyeleti környezetben 2008 97
Felhasznált irodalom, anyagok Kovács Levente, Császár Gergely, Képfeldogozás kurzus, VENK Vámossy Zoltán, BMF képfeldolgozás anyag Nicu Sebe, előadás: in Joint Delos-Muscle Summer School on Multimedia Digital Libraries, Machine Learning and Cross-modal Technologies for Access and Retrieval, San Vincenzo, Italy, 2-7 June, 2006. Bryan S. Morse: Edge Detection, (Brigham Young University) Székely Vladimír: Képfeldolgozás (Budapesti Műszaki és Gazdaságtudományi Egyetem) Kató Zoltán: Képfeldolgozás előadás anyag (Szegedi Egyetem) William K. Pratt: Digital Image Processing 2008 98