Éldetektálás Digitális képelemzés alapvető algoritmusai 1 Alapvető képi sajátságok Csetverikov Dmitrij Eötvös Lóránd Egyetem, Budapest csetverikov@sztaki.hu http://vision.sztaki.hu Informatikai Kar Az éldetektálás elvei 3 Gradiens élszűrők Egyszerű gradiensszűrők A Canny-éldetektor Az éldetektálás utófeldolgozása 4 A zero-crossing éldetektor Alapvető képi sajátságok Képi élek corner line blob Él: kontúrra merőleges intenzitás-változás a mai előadás Sarok: hirtelen forduló kontúron a következő előadás Vonal: keskeny, hosszú régió Képi élek nem mindig esnek egybe fizikai élekkel. azaz 3D-s tárgyak éleivel Képi élek hirtelen intenzitás-változások. intensity discontinuities Fizikai élek hirtelen felület-változások. surface discontinuities Például arnyékok élei nem esnek egybe felület-változásokkal. de mégis fizikai élekből erednek, azok vetületei Folt: kompakt régió
Az élek jelentősége Az éldetektálás lépései 1/: élszűrés Gyakran egybeesnek fizikai élekkel. az objektumok határaival Alapot adnak kontúralapú képszegmentáláshoz. Az emberi szem a látás alacsony szintjén, "hardverben" detektálja az éleket. nem intenzitásokkal, hanem intenzitás-külónbségekkel operál így tud változó fényviszonyokhoz alkalmazkodni original image Edge filtering magnitude orientation Edge localisation Élszűrés elött simító zajszűrőt alkalmazhatunk. Egy élszűrő élekre reagál. felerősíti az éleket elnyomja a kisváltozású régiókat map orientation ideális él elmosódott él Egy tipikus élszűrő eredménye: élerősség (magnitúdó): lokális kontraszt élorientáció: a kontúr lokális orientációja Az éldetektálás lépései /: éllokalizálás Éldetektálási példa: 3 3-s Prewitt operátor Edge filtering Edge localisation original image magnitude orientation map orientation eredeti kép élerősség élorientáció élkép Éllokalizálás egy vagy több utófeldolgozási lépés. Eltüntet zajos éleket. Eltüntet "fantom" éleket. Vékony, folytonos kontúrokat biztosít. Bináris élképet eredményez. a pixel élpont-e hozzárendelhetünk orientációt is Élorientáció cirkuláris adat: ugrik -nál és π-nél. felső vonal alsó vonal Az eredeti kép keresztmetszetei a két vonal mentén.
Élnormálvektor, élirányvektor és élorientáció Élszűrők direction normal orientation Élnormálvektor: Az élre merőleges egységvektor a leggyorsabb intenzitás-növekedés irányában. Élirányvektor: Az élnormálvektorra merőleges, vele pozitív szöget bezáró egységvektor. párhuzamos az éllel Élorientáció: cirkuláris adat, mod π. Élszűrők alkalmazzák a képfüggvény deriváltjait, hogy felerősítsék az élre merőleges intenzitás-változásokat elnyomják az ilyen változásokat nem tartalmazó régiókat Élszűrésre gyakran a következő operátorokat alkalmazzák: a gradiens operátort, eredménye egy vektor ( ) f(x, y) =. f x, f y a Laplace operatort, eredménye egy skalár f(x, y). = f x + f y Élek és deriváltak kapcsolata Jó élszűrő kritériumai 1/ Az élek vagy az első derivált abszolút értékének maximumai a második derivált nulla átmenetei, előjel-váltásai f(x) f x f x Nullás eredmény ott, ahol nincs képváltozás. maszkelemek összege nulla: r,c w(r, c) = Izotrópia az eredmény nem függ az él orientációjától Jó detektálás. A következő események valószínűsége minimális: hamis, zajos élek detektálása (false positives) valós élek elvesztése (false negatives)
Jó élszűrő kritériumai / Az izotrópia-kritérium illusztrációja Jó lokalizálás a detektált él lehető legközelebb van a tényleges élhez Egy élet csak egyszer jelez (single response). a valós él körüli hamis lokális maximumok száma minimális eredeti kép izotrop élszűrő anizotrop élszűrő step response noisy response Valós él körüli hamis lokális maximumok. Izotrop élszűrő: minden irányra azonos magnitúdó Anizotrop élszűrő: irányfüggő magnitúdó a 45 k irányokban erősebb (k = 1,,...) a 9 k irányokban gyengébb A "single response" kritérium illusztrációja Gradiens élszűrők W1 W object Feltételezzük, hogy a képfüggvény deriválható és minden pontban meghatározzuk a gradiensvektort ( ) f(x, y) =. f x, f = ( ) f x, f y y Ugyanazt a kontúrdarabor az W1 és W ablakban is látjuk. valós élekkel párhuzamos "fantom" élek, vastag kontúrok A magnitúdó függ az ablak és a kontúr átfedésétől. A jelenség mindenfajta detektálási feladatra jellemző ha csúsztatott ablakkal végezzük A gradiensvektor magnitúdója és szöge M(x, y) = fx + fy Θ(x, y) = arctan f x f y Θ(x, y) a leggyorsabb intenzitás-növekedés iránya M(x, y) a leggyorsabb intenzitás-növekedés nagysága
Intenzitás-felület A gradiensvektor jelentése direction fastest growth intensity surface kép intenzitás-felület küszöbölt 1 küszöbölt gradient = normal Az f(x, y) képfüggvényt 3D-s felületnek ábrázoljuk. Az intenzitás-felületre ráraktuk a képet. A küszöbölt (szintre vágott) kép kontúrjai szintvonalak. level lines Az él intenzitás-felülete, a szintvonalak és a gradiens. 3 3-as gradiensszűrők A Canny-éldetektor tulajdonságai A parciális deriváltakat különbségekkel approximáljuk. X és Y irányú gradiensszűrőket kapunk f G x = f x, G y a G x 9-fokos elforgatottja f G y = f y Gyakran a Prewitt- és a Sobel-szűrőt használják. Az izotrop szűrő kevésbé érzékeny az él orientációjára. Prewitt G x Sobel G x Izotrop G x 1 1 1 1 1 1 1 1 1 4 1 + 1 1 1 1 1 1 1 3 A Canny-éldetektor optimális zajosított ideális élre, ha a zaj additív, nemkorrelált és normáleloszlású az élszűrő lineáris Az optimalitási kritérium két alkritérium kombinációja: jó detektálás jó lokalizálás A "single response" kritérium teljesítéséhez az éldetektor két utófeldolgozási eljárást alkalmaz: nem-maximumok elnyomását (non-maxima suppression) hiszterézis-küszöbölést (hysteresis thresholding) Az eredeti Canny-szűrő elég bonyolult de van egyszerűsített, közelítő változata
A Canny-szűrő egyszerűsített, közelítő változata A egyszerűsített Canny-szűrő gyors mevalósítása Gauss-szűrővel elsimítjuk a képet g(x, y) = f(x, y) w G (x, y; σ) Utána alkalmazzuk a gradiensszűrőt és megkapjuk az élerősséget és -orientációt. A σ paraméter meghatározza a szűrő méretét. σ választása a következő tényezőktől függ: kívánt részletsség: finom élek vagy globális élek zajszint Felhasználjuk a lineáris szűrők asszociatívitását: ( f(x, y) w G (x, y) ) = f(x, y) ( w G (x, y) ) Felhasználjuk a Gauss-szűrő szeparábilitását: w G (x, y) = w G (x) w G (y) Megkapjuk a gradiensszűrő vektort: w G (x, y) = ( w G (y) w G (x), w G(x) w G (y)) w G (x) =. w } G(x) = C x exp { x x σ A szűrőt két 1D-s szűrő sorozataként alkalmazzuk w G (x) alakja növekvő σ-ra Éllokalizálás DERIVATIVE of GAUSSIAN 1..5..5 σ=.5 σ=.8 σ= 1. 6 4 4 6 RADIUS Bemenet M(x, y) élerősség (magnitúdó) Θ(x, y) élorientáció Kimenet bináris élkép: 1 ha van él, ha nincs él Nagy élerősségű pontok közül kiválasztja a valós éleket. Minden olyan élszűrővel alkalmazható, amely élerősséget és -orientációt biztosít gradiens: pl. Canny, Prewitt nem gradiens: pl. Mérő-Vassy Két alapműveletet tartalmaz, lásd Canny-éldetektor. csak a nem-maximumok elnyomásáról lesz itt szó
A nem-maximumok elnyomása (NME) Illusztrációk az NME-művelethez A fantomélek miatt az M(x, y)-ben levő kontúrok vastagok. A művelet törli a nemmaximális erősségű pixeleket megőrizve a kontúrok folytonosságát. Algoritmus: A nem-maximumok elnyomása 1 Az M (x, y) kimenetbe bemásoljuk az M(x, y)-t. Az M(x, y)-ben minden pontból lépünk a két, élre merőleges irányban. 3 Legyen a kiinduló pixel C, a két szomszédos pixel az élre merőlegesen A és B. 4 Ha M(A) > M(C) vagy M(B) > M(C), akkor az M (x, y)-ben töröljük a C-t: M (x, y) =. normal direction pixel A Ponttörlés pixel C pixel B M(C)>M(A) M(C)>M(B) A C-t nem töröljük, mert M(C) > M(A), M(C) > M(B) A A-t, B-t töröljük, mert M(A) < M(C), M(B) < M(C) Élre merőleges lépés normal A középső pixel jobb- és baloldali szomszéját kell választani, ha az élnormálvektor a jelzett szögtartományban van..5.5 Példa a nem-maximumok elnyomására A zero-crossing éldetektor működési elve Steep Blurred élerősség élerősség-metszet NME eredménye Az NME vékonyítja a kontúrokat az élerősség képen. Az élerősség-metszetet a vonal mentén kinagyítva mutatjuk. f(x) df dx d f _ dx Double Zero crossing Alkalmazzuk a Laplace szűrőt. A szűrt képen megkeressük a nulla átmeneteket.
A nulla átmenetek keresése A LoG operátor konvolúciós maszkja + + + +... A Laplace-szűrő helyett használjuk a LoG szűrőt. Laplacian-of-Gaussian deriválás előtti simítás, regularizáció Az ablak közepéből induló r,θ polárkoordinátákban vagy Felhasználhatjuk a fenti egyszerű maszkokat és elforgatottjaikat. előjel váltás vonal két oldalán nulla átmenet Lokálisan közelíthetjük a képfüggvényt lineáris függvénnyel. analitikus megoldás f = 1 r ( f ) 1 f r + r r r θ Az operátorok felcserélhetőségét és a Gauss-szűrő szimmertiáját felhasználva megkapjuk a LoG operátort: w LoG (r) = C ( r σ ) exp { } r σ A LoG szűrő alakja változó σ-ra A Difference-of-Gaussians (DoG) szűrő LAPLACIAN of GAUSSIAN. 1.5 1..5. σ= σ=.5 σ=1.5 6 4 4 6 RADIUS w "Mexikói kalap" σ részletességi paraméter kisebb σ finomabb élek A LoG szűrőt elvágjuk kσ-nál, a Gauss szűrőhöz hasonlóan. A pozitív középső rész mérete w = σ. A LoG szűrő nem szeparábilis. nagy σ esetén lassú A Difference-of-Gaussians szűrő a LoG szűrő gyors szeparábilis közelítése w LoG (r;σ) w G (r;σ 1 ) w G (r;σ ). = w DoG (r; σ 1,σ ) w G (r;σ 1 ), w G (r;σ ) két Gauss-szűrő általános esetben σ σ 1 < σ Gyakran használják a σ 1 = σ, σ = 1.6σ beállítást: w DoG (r;σ) = w G (r; σ) w G (r; 1.6σ)
A zero-crossing éldetektor tulajdonságai A zero-crossing éldetektor paramétere Folytonos zero-crossing éldetektor zárt kontúrokat eredményez. folytonos felület vízszintes síkkal való metszete elvileg, segíthet kontúrkövetésben a gyakorlatban sok zajos kontúrt kapunk Nem biztosít élorientációt. a nem-maximumok elnyomását nem lehet alkalmazni gyenge, fantom és zajos éleket másképpen kell eltávolítani pl. a gradiens segítségével: kis gradiens zajos él A σ paraméterrel beállíthatjuk a szűrő méretét. Ez részletesség-szabályozást jelent. σ változásával élhierárchia alakul ki a scale-space-ben a részletesség csökkenésével az élek eltünnek vagy összeolvadnak fa-szerű élstruktúra támogatja a kép struktúrális elemzését Példák 15 15-ös szűrővel történő éldetektálásra LoG abszolút LoG nulla DoG nulla LoG abszolút: a LoG output abszolút értéke a sötét vonalak a kontúrok LoG nulla: itt eltávolítottuk a gyenge éleket. DoG nulla: itt nem távolítottuk el a gyenge éleket.