Élek detektálása
DESCRIPTION
Élek detektálása. Vámossy Zoltán 2004 (Gonzales, Woods, Forsyth, Rehg, Hanson, Trucco, Verri, Thrun, Bradski anyagai alapján). E. Trucco, A. Verri: Introductory techniques for 3-D Computer Vision (Prentice Hall 1998). Vámossy Zoltán (Umeai Egyetem – Finnország) előadásai alapján. - PowerPoint PPT PresentationTRANSCRIPT
Élek detektálása
Vámossy Zoltán
2004
(Gonzales, Woods, Forsyth, Rehg, Hanson, Trucco, Verri, Thrun, Bradski anyagai alapján)
E. Trucco, A. Verri:Introductory techniques for 3-D Computer Vision (Prentice Hall 1998)
Vámossy Zoltán
(Umeai Egyetem – Finnország)előadásai alapján
3Vámossy Zoltán IAR 2004
2. előadás
4. fejezet (pp. 67-94)– Jellemzők detektálása (Feature detection)
• Élek (Edges)• Sarokpontok (Corners)
5. fejezet (pp. 95-121)– Jellemzők osztályozása (Feature classification)
• Vonalak – szakaszok (Lines)• Görbék (Curves)• Ellipszisek (Ellipses)• Deformálható kontúrok (Deformable contours)
4Vámossy Zoltán IAR 2004
Élek (edges)
Mit értünk él alatt? Élek olyan pixelek, ahol, vagy ami körül a kép
intenzitás-értékei erőteljesen megváltoznak
5Vámossy Zoltán IAR 2004
Általános jellemzők #1: élek (edges)
A: Hirtelen mélységi változás (discontinuity) B: Felület normálisának változása C: Megvilágítás változása: árnyékok, világítás változás D: Visszaverődésben változás: felület tulajdonság, jelek
A
C
B
D
6Vámossy Zoltán IAR 2004
Miért fontosak számunkra az élek?
A legtöbb elem, objektum, vagy azok árnyékai éleket generálnak
Az élek megtalálásával sokszor az objektum alakját és helyét meg tudjuk határozni
7Vámossy Zoltán IAR 2004
Tipikus élprofilok
Ugrás Rámpa Gerinc Tető Vonal
8Vámossy Zoltán IAR 2004
Hogyan találhatunk éleket?
9Vámossy Zoltán IAR 2004
Élkeresés 101
im = imread('bridge.jpg');image(im);figure(2); bw = double(rgb2gray(im));image(bw);gradkernel = [-1 1];dx = abs(conv2(bw, gradkernel, 'same'));image(dx);colorbar;
[dx,dy] = gradient(bw);gradmag = sqrt(dx.^2 + dy.^2);image(gradmag);
colorbarcolormap(gray(255))colormap(default)
10Vámossy Zoltán IAR 2004
Az éldetektálás lépései
Zajcsökkentés (Noise reduction) Élkiemelés (Edge enhancement) Éldetektálás (Edge detection) Éllokalizálás (Edge localisation)
11Vámossy Zoltán IAR 2004
Éldetektálók
Canny éldetektáló* Roberts éldetektáló Sobel éldetektáló* Prewitt éldetektáló Kirsch éldetektáló Laplace éldetektáló és a LoG (Marr-Hildreth) Susan él-, sarokpont detektáló Haralick módszere
*: a könyvben csak ez van
12Vámossy Zoltán IAR 2004
Definiciók
Él-normális = merőleges az élre, a maximális intenzitás-változás iránya, N(i, j) I(i, j)
Él-irány = az él iránya, merőleges a normálisra Él-pozíció = ahol a képen elhelyezkedik az él Él-erősség = megmutatja mennyire „jó” egy él.
Nagy változás -> nagy erősség
13Vámossy Zoltán IAR 2004
Él-irány, él-normális
14Vámossy Zoltán IAR 2004
Változás detektálás
Kép deriváltja
Differenciáló szűrők
Hátrafele differencia
Előrehaladó differencia
Központi differencia
[-1 1]
[1 -1]
[-1 0 1]
15Vámossy Zoltán IAR 2004
Deriváltak, differenciák 2D-ben
Definició
Közelítés
Konvoluciós magok
yxfyxf
y
yxf ,,lim
,0
16Vámossy Zoltán IAR 2004
Kép deriváltak
Image I
17Vámossy Zoltán IAR 2004
Élnormális megjelenítése
figure(5);hold on;image(smooth);colormap(gray(255));[m,n] = size(gradmag);
edges = (gradmag > 0.3 * gmax);inds = find(edges);[posx,posy] = meshgrid(1:n,1:m); posx2=posx(inds); posy2=posy(inds);gm2= gradmag(inds);sintheta = dx(inds) ./ gm2;costheta = - dy(inds) ./ gm2;
quiver(posx2,posy2, gm2 .* sintheta / 10, -gm2 .* costheta / 10,0);hold off;
18Vámossy Zoltán IAR 2004
Prewitt és Sobel éldetektálás
Kevésbé zajérzékeny (3x3 maszk jobban eltünteti a zajokat)
A nagyobb maszkméret miatt a meredek élek több pixel szélesen jelentkeznek
Főbb lépések– Input: Kép és küszöb– Képszűrés– Gradiens nagyság számolása– Küszöbölés
19Vámossy Zoltán IAR 2004
Sobel operátor
-1 -2 -1 0 0 0 1 2 1
-1 0 1-2 0 2 -1 0 1
S1= S2 =
Edge Magnitude =
Edge Direction =
S1 + S22 2
tan-1S1
S2
Él-erősség, él-irány:
20Vámossy Zoltán IAR 2004
Prewitt éldetektor
image blurred élek xátlagolásx irányban
Differenciáló szűrő x irányban
and results
image blurred élek yÁtlagolás y irányban
DifferenciálásY irányban
andresults
21Vámossy Zoltán IAR 2004
Sobel éldetektáló
image blurred Élek xátlagolás
x iránybanDifferenciáló szűrő x irányban
and results
image blurred élek yÁtlagolásY irányban
Differenciáló szűrés y irányban
andresults
22Vámossy Zoltán IAR 2004
Sobel éldetektáló
Image I Threshold Edges
23Vámossy Zoltán IAR 2004
Sobel éldetektáló
24Vámossy Zoltán IAR 2004
Sobel éldetektáló
25Vámossy Zoltán IAR 2004
Sobel maszk: összefoglalás
1 2 1
0 0 0
-1 -2 -1
-1 0 1 -2 0 2
-1 0 1
= 1/4 * [ 1 2 1]
1 0 -1
Sobel maszk szeparálható!
1
-1
-2
1
1
2 Éllel párhuzamos átlagolás
= 1/4 * [-1 0 -1]
1 2 1
26Vámossy Zoltán IAR 2004
Robert keresztoperátor
1 00 -1
0 1-1 0+
vagy
| I(x, y) - I(x+1, y+1) | + | I(x, y+1) - I(x+1, y) |
[ I(x, y) - I(x+1, y+1) ]2 + [ I(x, y+1) - I(x+1, y) ]2S =
S =
27Vámossy Zoltán IAR 2004
Robinson iránytű maszk
-1 0 1-2 0 2 -1 0 1
0 1 2-1 0 1 -2 -1 0
1 2 1 0 0 0 -1 -2 -1
2 1 0 1 0 -1 0 -1 -2
1 0 -1 2 0 -2 1 1 -1
0 -1 -2-1 0 -1 2 1 0
-1 -2 -1 0 0 0 1 2 1
-2 -1 0-1 0 1 0 1 2
28Vámossy Zoltán IAR 2004
További maszkok
1
111
1
-1 -1
Prewitt 1
-2
-1
-3
555
-3
-3 -3 -3
Kirsch
0
0
111
0
-1 -1 -1
Prewitt 2
0 0
121
0
-1 -2 -1
Sobel
0
-1 -1
11
0 0 0
- 2
2
Frei & Chen
29Vámossy Zoltán IAR 2004
Laplace
Ahol a gradiens maximális, ott a második derivált előjelet vált (0)
Elmosódott élek esetén pontosabb lokalizálás Ebben az esetben csak az élek helyét tudjuk
meghatározni, az irányát nem Az operátor nem érzékeny az elforgatásra,
izotrópikus Zajérzékeny -> Simítás előtte
30Vámossy Zoltán IAR 2004
Gauss simítás + Laplace (LoG)
Zajra nagyon érzékeny éldetektálók esetében előbb simítást szoktak alkalmazni
Például Gauss szűrőt
31Vámossy Zoltán IAR 2004
Gauss simítás
A Gauss szűrő paraméterének hatása növekedésével több pixel kerül az átlagolásba növekedésével a kép jobban el lesz mosva növekedésével a zaj jobban el lesz távolítva
32Vámossy Zoltán IAR 2004
Gauss simítás + Laplace (LoG)
Alkalmazhatjuk közvetlenül a Gauss szűrő Laplace-át – második derivált r szerint (Laplacian of Gaussian) – LoG
Mexikói kalap
33Vámossy Zoltán IAR 2004
LoG - Marr Hildreth éldetektáló
Robusztus Simított kép deriváltját közelíti A 0 átmeneteket kell vizsgálni Stabilabb zérushelyek jelölik az éleket, mert nem
meredek éleknél is pontos
34Vámossy Zoltán IAR 2004
Marr Hildreth éldetektor
Gauss simítás
Laplace
• gradiens (derivált)• Laplace
35Vámossy Zoltán IAR 2004
Marr Hildreth éldetektor
(LoG) számítása
36Vámossy Zoltán IAR 2004
LoG Filter
X
Y
37Vámossy Zoltán IAR 2004
Zéró átmenetek detektálása
Négy eset:– {+,-}– {+,0,-}– {-,+}– {-,0,+}
Zéró átmenetek (slope) számítása {a, -b} -> |a+b|. Éldetektálás
– zéróátmenet nagyságának küszöbölése
38Vámossy Zoltán IAR 2004
LoG szeparálhatóság
Hasonlóan a Gauss szűrőhöz– A kétdimenziós Gauss szűrő két egydimenzióssá
alakítható
n2 szorzás
2n szorzás
39Vámossy Zoltán IAR 2004
LoG szeparálhatóság
n2 szorzás
4n szorzás
40Vámossy Zoltán IAR 2004
Szeparálhatóság
Image
gxx(x) g(x)
gyy(y) g(y)
+
Image g(x) g(y) +
Gauss szűrő
LoG szűrő
41Vámossy Zoltán IAR 2004
LoG példa
I
42Vámossy Zoltán IAR 2004
LoG példa
43Vámossy Zoltán IAR 2004
Canny éldetektor
John Canny, “Finding Edges and Lines in Images”, Master’s Thesis, MIT, June 1983.– “Optimális” maszk – Gaussian szűrő– Non-maximum suppression – eltávolítja a maximumra
merőleges élgyanús pontokat– Hysteresis thresholding – hosszabb kontúrok
készítése– Subpixel accuracy (eredetiben nincs) – subpixeles
pontosság
44Vámossy Zoltán IAR 2004
Ideális éldetektáló
Milyen kritériumoknak kell megfelelnie egy ideális éldetektálónak?
Megbízható– mindent valódi élt detektál– nem detektál hibás éleket (zajos kép)
Az éleket pontosan lokalizálja Minden élt pontosan egyszer jelez
45Vámossy Zoltán IAR 2004
Canny éldetektor
Elsősorban lépcsős élekre A kép Gauss-zajjal terhelt
Három lépést tartalmaz
Kiemelés Nonmax_suppression Hysteres._thresh.
Input Image
Output:Kontúrok listái
46Vámossy Zoltán IAR 2004
I. Canny élkiemelő
Az élkiemelő elemei:
1. (Lineáris) konvolúció Gauss szűrővel
2. Gradiens számolás
3. Normális és erősség (nagyság) számítás
47Vámossy Zoltán IAR 2004
I. Canny élkiemelő - megjegyzés
1.lépés: Konvolúció J = I G
– I = eredeti kép (image)– G = Gauss szűrő magja (kernel)– Nagyobb szűrő jobban csökkenti a zajt, lassabb, de
kevésbé lokalizálja jól az éleket!
48Vámossy Zoltán IAR 2004
I. Canny élkiemelő
Minden I(i, j) pixelre kiszámoljuk a parciális deriváltakat
2. lépés: Derivált számítás
Megjegyzés: Konvolúció alkalmazása (A kép és a Gauss fgv. konvolúciójának első deriváltja ekvivalens a kép és a Gauss fv. első deriváltjának konvolúciójával. Zajszűrés és éldetektálás kombinálható.)
49Vámossy Zoltán IAR 2004
Canny éldetektor – Gauss deriváltja
50Vámossy Zoltán IAR 2004
Canny éldetektor – első két lépés
xS
yS
I
51Vámossy Zoltán IAR 2004
I. Canny élkiemelő
3. lépés: Erősség és normális meghatározás
Élerősség számítás (minden pixelre):
Élnormális (orientáció) számítás:
52Vámossy Zoltán IAR 2004
I. Canny élkiemelő - outputja
Es = élerősség (milyen jó az él, a gradiens nagyságával arányos)
Eo = élorientáció (milyen irányba mutat)– A normálist tartalmazza
53Vámossy Zoltán IAR 2004
II. Non-max Suppression
Élek ott vannak, ahol a gradiensnek lokális maximuma van
A Non-maxima suppression (nem maximumok elnyomása) célja:– Fals élpontok eltávolítása, amelyek az élre merőleges
irányban vannak– Egy vastagságú élekké zsugorítás
54Vámossy Zoltán IAR 2004
II. Non-max Suppression-algoritmus
1. Minden (i, j)-re határozzuk meg azt a dk (0, 45, 90, 135) irányt, ami legjobban közelíti az EO(i, j) élnormálist
2. Ha Es(i,j) < legalább egy szomszédjánál a dk irányokban, akkorIN(i,j) = 0 legyen (elnyomás), egyébként IN(i, j) = Es(i,j)
Eredmény: IN(i, j) vékonyított éleket tartalmazó kép a nem maximumok eltávolítása után
55Vámossy Zoltán IAR 2004
III. Canny – harmadik lépés oka
Fig 4.5
Élkiemelő - balról jobbra =3, =2, =1
56Vámossy Zoltán IAR 2004
III. Hysteresis thresholding
Miért szükséges a hysteresis küszöbölés?
Ha a küszöb túl alacsony, akkor fals élpontok maradnak
A küszöb felett, illetve alatt is lehet maximum erősség Ha az élek értéke a küszöb körül ingadozik, akkor sok szakadás lehet
57Vámossy Zoltán IAR 2004
Példa
58Vámossy Zoltán IAR 2004
Canny, alacsony threshold
59Vámossy Zoltán IAR 2004
Canny, magas threshold
60Vámossy Zoltán IAR 2004
Definiáljunk két thresholdot Minden IN(i, j) élpontra
– 1. Keressük meg a következő IN(i, j) élpontot, hogy
– 2. IN(i, j)-től kiindulva kövessük a lokális maximumok láncát az élnormálisokra merőleges irányban mindaddig, amíg
Jelöljünk meg minden maglátogatott pontot (lista) Tehát ha a felső küszöbnél nagyobb, akkor vegyük fel
élnek Ha az alsó küszöb alatt van, akkor nem él Ha a kettő között van, akkor vegyük fel élnek, ha egy
szomszédos pixel élhez tartozik
III. Hysteresis thresholding
61Vámossy Zoltán IAR 2004
III. Hysteresis thresholding
Eredmény: A kapcsolódó élpixelek listái
62Vámossy Zoltán IAR 2004
Canny eredmények
‘Y’ or ‘T’ csatlakozási probléma a Canny operátornál
63Vámossy Zoltán IAR 2004
Canny: Sarok effektus
64Vámossy Zoltán IAR 2004
Marr-Hildreth és Canny éldetektorok– Gauss simítás– Derivált számítás
• x és y irányokban
– Gradiens nagyság meghatározás– Gradiens nagyság küszöbölés
Marr-Hildreth és Canny különbségek– Marr-Hildreth másodrendű deriváltat használ– Marr-Hildreth a zéró átmenetek nagyságát küszöböli
LoG és Canny összehasonlítás
65Vámossy Zoltán IAR 2004
Marr-Hildreth operátor
Image 2g(x)Find
zero-crossingscompute
slopeThreshold
66Vámossy Zoltán IAR 2004
Canny
Image
gx(x,y)Gradiensnagyság
gy(x,y) Gradiensirány
Non-maximumsuppression
Hysteresis thresholding
67Vámossy Zoltán IAR 2004
Élpontosítás más módszerei
68Vámossy Zoltán IAR 2004
Ötlet 1: Bilineáris interpoláció
Használjunk bilineáris interpolációt szubpixeles pontosság érdekébenGradiens csökkenés: olyan pont keresése, ami maximalizálja S-t
69Vámossy Zoltán IAR 2004
Ötlet 2: Élkövetés
Következő pont: Merőleges a gradiensreHasználjunk Hysteresis-t
70Vámossy Zoltán IAR 2004
SUSAN algoritmus
Konturkeresés nem differenciáló operátorral Smith és Brady ötlete
(http://www.fmrib.ox.ac.uk/~steve/susan/susan/node1.html)
71Vámossy Zoltán IAR 2004
SUSAN algoritmus
A maszk közepén levő pont a nucleus (középpont) Az USAN egy rövidítés, jelentése:
univalue segment assimilating nucleus
72Vámossy Zoltán IAR 2004
SUSAN algoritmus
A SUSAN jelentése: smallest univalue segment assimilating nucleus.
73Vámossy Zoltán IAR 2004
SUSAN algoritmus
A nucleus és a maszkban lévő pontok eltérése alapján megjelölés:
A hasonló intenzitásúak száma
A területen levő élek meghatározása az élválasz függvénnyel történik (g geometriai küszöb)
74Vámossy Zoltán IAR 2004
SUSAN algoritmus
Az ugrásszerű átmenet elkerülése, stabilabb eredményt ad (táblázat!)
Haralick felületi modellje
Éldetektálás az intenzitásfelületre illesztett térbeli polinommmal
76Vámossy Zoltán IAR 2004
Felületi modell alkalmazása
Facet model: Felületi modellt tételezünk fel – közelítjük az intenzitás felületet általában térbeli polinommal és ebből határozunk meg éleket
Haralick bi-cubic modellje:
1. Legkisebb négyzetek módszerével illesztünk kétparaméteres polinomot
2. Adott pixel élpont ha:1. Második derivált 0
2. Harmadik derivált negatív
f(x, y)=k1+ k2x+ k3y+ k4x2+ k5xy+ k6y2+ k7x3+ k8x2y+ k9xy2+ k10y3 keressük a felületet ilyen alakban (1)
77Vámossy Zoltán IAR 2004
Haralick éldetektora
Irány menti deriváltak adott θ irányban:
A gradiens szöge a pozitív y tengellyel (0, 0)-ban:
78Vámossy Zoltán IAR 2004
Haralick éldetektora
Változó behelyettesítéssel (1) x = r sinθ, y = r cosθ:
c0 = k1
c1 = k2 sinθ + k3 cosθ
c2 = k4(sinθ)2 + k5sinθcosθ + k6(cosθ)2
c3 = k7(sinθ)3 + k8(sinθ)2cosθ + k9sinθ(cosθ)2 + + k10(cosθ)3
Második derivált 0, harmadik negatív, -> c3 < 0 és |c2 / 3c3| < r0
79Vámossy Zoltán IAR 2004
ki-k számítása maszkkal (Shah könyv)
80Vámossy Zoltán IAR 2004
Haralick algoritmusa
1. Keressük k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 értéket a legkisebb négyzetek módszerével, vagy az előző konvolúciós maszkokkal
2. Kiszámoljuk θ, sinθ, cosθ
3. Kiszámoljuk c2 = k4(sinθ)2 + k5sinθcosθ + k6(cosθ)2
4. Kiszámoljuk c3 = k7(sinθ)3 + k8(sinθ)2cosθ + k9sinθ(cosθ)2 + k10(cosθ)3
5. Ha c3 < 0 és |c2 / 3c3| < r0, akkor élpont