Éldetektálás Sergyán Szabolcs Budapesti Műszaki Főiskola Neumann János Informatikai Kar 2009. szeptember 21. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 1 / 28
Mit nevezünk élnek? Intuitív megközeĺıtés: Az él azon összekapcsolt pixelek halmaza, melyek két régió határán fekszenek. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 2 / 28
Mit nevezünk élnek? Intuitív megközeĺıtés: Az él azon összekapcsolt pixelek halmaza, melyek két régió határán fekszenek. Más megközeĺıtés: Az él olyan pixelek halmaza, ahol vagy ami körül a kép intenzitás értékei szignifikánsan megváltoznak. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 2 / 28
A Hirtelen mélységi változás B Felület normálisának változása C Megvilágítás változása D Visszaverődésben változás Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 3 / 28
Ideális élek Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 4 / 28
Ideális élek Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 5 / 28
Zaj hatása az ideális élekre Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 6 / 28
Mely pixelek lehetnek élpixelek? Első rendű derivált Egy kép azon pixelei lehetnek élpixelek, melyek kétdimenziós elsőrendű deriváltjának értéke valamilyen előre definiált konstansnál nagyobbak. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 7 / 28
Mely pixelek lehetnek élpixelek? Első rendű derivált Egy kép azon pixelei lehetnek élpixelek, melyek kétdimenziós elsőrendű deriváltjának értéke valamilyen előre definiált konstansnál nagyobbak. Másod rendű derivált Egy kép azon pixelei lehetnek élpixelek, melyek környezetében a kétdimenziós másodrendű derivált előjelet vált. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 7 / 28
Matematikai háttér Egyváltozós függvény deriváltja: f x = lim f (x + ε) f (x) = f (x + 1) f (x) ε 0 ε Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 8 / 28
Matematikai háttér Egyváltozós függvény deriváltja: f x = lim f (x + ε) f (x) = f (x + 1) f (x) ε 0 ε Hasonlóan a második derivált: 2 f = f (x + 1) + f (x 1) 2f (x) x 2 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 8 / 28
Matematikai háttér Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 9 / 28
Elsőrendű derivált Az elsőrendű deriváltról a gradiens ad információt. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 10 / 28
Elsőrendű derivált Az elsőrendű deriváltról a gradiens ad információt. Az f (x, y) kép gradiense az (x, y) helyen egy vektor: f = [ Gx G y ] = [ f x f y ] Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 10 / 28
Elsőrendű derivált Az elsőrendű deriváltról a gradiens ad információt. Az f (x, y) kép gradiense az (x, y) helyen egy vektor: f = [ Gx G y ] = [ f x f y A gradiens mint vektor a vizsgált (x, y) pontbeli legnagyobb intenzitásváltozás irányába mutat. ] Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 10 / 28
Elsőrendű derivált Az elsőrendű deriváltról a gradiens ad információt. Az f (x, y) kép gradiense az (x, y) helyen egy vektor: f = [ Gx G y ] = [ f x f y A gradiens mint vektor a vizsgált (x, y) pontbeli legnagyobb intenzitásváltozás irányába mutat. A gradiens nagysága: f = mag( f) = ] G 2 x + G 2 y Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 10 / 28
Elsőrendű derivált Az elsőrendű deriváltról a gradiens ad információt. Az f (x, y) kép gradiense az (x, y) helyen egy vektor: f = [ Gx G y ] = [ f x f y A gradiens mint vektor a vizsgált (x, y) pontbeli legnagyobb intenzitásváltozás irányába mutat. A gradiens nagysága: f = mag( f) = ] G 2 x + G 2 y A számolás gyorsítása érdekében néha csalunk: f = mag( f) = G x + G y Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 10 / 28
Elsőrendű derivált A gradiens iránya (az x-tengelyhez viszonyítva): ( ) Gy α(x, y) = arctg G x Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 11 / 28
Elsőrendű derivált A gradiens iránya (az x-tengelyhez viszonyítva): ( ) Gy α(x, y) = arctg Az él iránya a gradiens irányára merőleges G x Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 11 / 28
Élkereső operátorok Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 12 / 28
Diagonális irányú élek detektálása Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 13 / 28
Gradiensek megjelenítése Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 14 / 28
Gradiensek megjelenítése Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 15 / 28
Gradiensek megjelenítése Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 16 / 28
Éldetektálás megvalósítása 1 Zajcsökkentés (pl. átlagoló szűrővel) Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 17 / 28
Éldetektálás megvalósítása 1 Zajcsökkentés (pl. átlagoló szűrővel) 2 Gradiens nagyságának meghatározása Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 17 / 28
Éldetektálás megvalósítása 1 Zajcsökkentés (pl. átlagoló szűrővel) 2 Gradiens nagyságának meghatározása 3 Azokat a pixeleket tekintjük élpixelnek, melyek gradiense egy adott köszübértéknél (threshold) nagyobb Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 17 / 28
Lehetséges további maszkok Robinson iránytű maszkok 1 0 1 2 0 2 1 0 1 1 0 1 2 0 2 1 0 1 0 1 2 1 0 1 2 1 0 0 1 2 1 0 1 2 1 0 1 2 1 0 0 0 1 2 1 1 2 1 0 0 0 1 2 1 2 1 0 1 0 1 0 1 2 2 1 0 1 0 1 0 1 2 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 18 / 28
Lehetséges további maszkok Robinson iránytű maszkok 1 0 1 2 0 2 1 0 1 1 0 1 2 0 2 1 0 1 0 1 2 1 0 1 2 1 0 0 1 2 1 0 1 2 1 0 1 2 1 0 0 0 1 2 1 1 2 1 0 0 0 1 2 1 2 1 0 1 0 1 0 1 2 2 1 0 1 0 1 0 1 2 Módosított Prewitt maszk 1 1 1 1 2 1 1 1 1 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 18 / 28
Lehetséges további maszkok Kirsch 5 5 5 3 0 3 3 3 3 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 19 / 28
Lehetséges további maszkok Kirsch 5 5 5 3 0 3 3 3 3 Frei & Chen 1 2 1 0 0 0 1 2 1 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 19 / 28
Másodrendű derivált Az ún. totális deriváltja (Laplacian) egy kétváltozós f (x, y) függvénynek: 2 f = 2 f x 2 + 2 f y 2 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 20 / 28
Másodrendű derivált Az ún. totális deriváltja (Laplacian) egy kétváltozós f (x, y) függvénynek: 2 f = 2 f x 2 + 2 f y 2 Korábban emĺıtett okokból: valamint 2 f = f (x + 1, y) + f (x 1, y) 2f (x, y), x 2 2 f = f (x, y + 1) + f (x, y 1) 2f (x, y). y 2 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 20 / 28
Másodrendű derivált Az ún. totális deriváltja (Laplacian) egy kétváltozós f (x, y) függvénynek: 2 f = 2 f x 2 + 2 f y 2 Korábban emĺıtett okokból: valamint Ebből adódik: 2 f = f (x + 1, y) + f (x 1, y) 2f (x, y), x 2 2 f = f (x, y + 1) + f (x, y 1) 2f (x, y). y 2 2 f = [f (x + 1, y) + f (x 1, y) + f (x, y + 1) + f (x, y 1)] 4f (x, y) Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 20 / 28
Laplace maszk Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 21 / 28
Laplace maszk és Gauss-szűrő A Laplace maszkot általában nem használják önmagában éldetektálásra: A második derivált túl érzékeny a zajokra, a kis változásokra is A második derivált egy élt kétszer is detektál A Laplace maszkkal nem lehet az élek irányát meghatározni Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 22 / 28
Laplace maszk és Gauss-szűrő A Laplace maszkot általában nem használják önmagában éldetektálásra: A második derivált túl érzékeny a zajokra, a kis változásokra is A második derivált egy élt kétszer is detektál A Laplace maszkkal nem lehet az élek irányát meghatározni A zajok csökkentése érdekében a Laplace maszkot Gauss-szűrővel együtt használjuk Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 22 / 28
Laplace maszk és Gauss-szűrő A Laplace maszkot általában nem használják önmagában éldetektálásra: A második derivált túl érzékeny a zajokra, a kis változásokra is A második derivált egy élt kétszer is detektál A Laplace maszkkal nem lehet az élek irányát meghatározni A zajok csökkentése érdekében a Laplace maszkot Gauss-szűrővel együtt használjuk Gauss szűrő (normális eloszlás): ahol r 2 = x 2 + y 2 és σ a szórás. h(r) = e r2 2σ 2, Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 22 / 28
Laplace maszk és Gauss-szűrő A Laplace maszkot általában nem használják önmagában éldetektálásra: A második derivált túl érzékeny a zajokra, a kis változásokra is A második derivált egy élt kétszer is detektál A Laplace maszkkal nem lehet az élek irányát meghatározni A zajok csökkentése érdekében a Laplace maszkot Gauss-szűrővel együtt használjuk Gauss szűrő (normális eloszlás): ahol r 2 = x 2 + y 2 és σ a szórás. h(r) = e r2 2σ 2, h r-szerinti második deriváltja megegyezik h második totális deriváltjával: ( r 2 2 σ 2 ) h(r) = e r2 2σ 2 σ 4 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 22 / 28
Laplace maszk és Gauss-szűrő Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 23 / 28
Nullátmenet Forrás: Gonzalez, Woods: Digital Image Processing Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 24 / 28
Éldetektálás megvalósítása 1 LoG (Laplacian of Gaussian) szűrő alkalmazása Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 25 / 28
Éldetektálás megvalósítása 1 LoG (Laplacian of Gaussian) szűrő alkalmazása 2 A szűrt képen nullátmenetek keresése Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 25 / 28
Canny éldetektáló 1 Gauss szűrés Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 26 / 28
Canny éldetektáló 1 Gauss szűrés 2 Minden (i, j) pixelre 1 kiszámítjuk az I x és I y gradiens komponenseket 2 közeĺıtjük az él erősségét: E s (i, j) = Ix 2 (i, j) + Iy 2 (i, j) 3 közeĺıtjük az él normálisának irányát: E o (i, j) = arctan I y I x Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 26 / 28
Canny éldetektáló 1 Gauss szűrés 2 Minden (i, j) pixelre 1 kiszámítjuk az I x és I y gradiens komponenseket 2 közeĺıtjük az él erősségét: E s (i, j) = Ix 2 (i, j) + Iy 2 (i, j) 3 közeĺıtjük az él normálisának irányát: E o (i, j) = arctan I y I x 3 Megkeressük azt a d k {0, 45, 90, 135 } orientációt, amely legjobban közeĺıti az E o (i, j) irányt. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 26 / 28
Canny éldetektáló 1 Gauss szűrés 2 Minden (i, j) pixelre 1 kiszámítjuk az I x és I y gradiens komponenseket 2 közeĺıtjük az él erősségét: E s (i, j) = Ix 2 (i, j) + Iy 2 (i, j) 3 közeĺıtjük az él normálisának irányát: E o (i, j) = arctan I y I x 3 Megkeressük azt a d k {0, 45, 90, 135 } orientációt, amely legjobban közeĺıti az E o (i, j) irányt. 4 Ha E s (i, j) kisebb mint legalább az egyik közvetlen szomszédja d k irányban, akkor legyen I N (i, j) = 0, egyébként pedig I N (i, j) = E s (i, j). Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 26 / 28
Canny éldetektáló 5 Keressünk egy olyan pixelt, melyre I N (i, j) > τ h. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 27 / 28
Canny éldetektáló 5 Keressünk egy olyan pixelt, melyre I N (i, j) > τ h. 6 Kiindulva I N (i, j)-ből kövessök a lokális maximumok láncát mindkét irányban az él normálisára merőlegesen addig, amíg I N > τ l teljesül. A megtalált éllánc pontjait jelöljük meg és egy listba mentsük el. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 27 / 28
Canny éldetektáló 5 Keressünk egy olyan pixelt, melyre I N (i, j) > τ h. 6 Kiindulva I N (i, j)-ből kövessök a lokális maximumok láncát mindkét irányban az él normálisára merőlegesen addig, amíg I N > τ l teljesül. A megtalált éllánc pontjait jelöljük meg és egy listba mentsük el. 7 Az 5. lépéstől ismételjük az eljárást az eddig nem vizsgált élpontokkal, amíg új láncokat tudunk találni. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 27 / 28
Irodalomjegyzék R. C. Gonzalez, R. E. Woods: Digital Image Processing. Prentice-Hall, 2002 E. Trucco, A. Verri: Introductory Technics for 3-D Computer Vision. Prentice Hall, 1998 Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 28 / 28