Élek detektálása

80
Élek detektálása Vámossy Zoltán 2004 (Gonzales, Woods, Forsyth, Rehg, Hanson, Trucco, Verri, Thrun, Bradski anyagai alapján)

Upload: declan

Post on 25-Jan-2016

55 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: Élek detektálása

Élek detektálása

Vámossy Zoltán

2004

(Gonzales, Woods, Forsyth, Rehg, Hanson, Trucco, Verri, Thrun, Bradski anyagai alapján)

Page 2: Élek detektálása

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

Page 3: Élek detektálása

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)

Page 4: Élek detektálása

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

Page 5: Élek detektálása

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

Page 6: Élek detektálása

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

Page 7: Élek detektálása

7Vámossy Zoltán IAR 2004

Tipikus élprofilok

Ugrás Rámpa Gerinc Tető Vonal

Page 8: Élek detektálása

8Vámossy Zoltán IAR 2004

Hogyan találhatunk éleket?

Page 9: Élek detektálása

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)

Page 10: Élek detektálása

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)

Page 11: Élek detektálása

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

Page 12: Élek detektálása

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

Page 13: Élek detektálása

13Vámossy Zoltán IAR 2004

Él-irány, él-normális

Page 14: Élek detektálása

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]

Page 15: Élek detektálása

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

Page 16: Élek detektálása

16Vámossy Zoltán IAR 2004

Kép deriváltak

Image I

Page 17: Élek detektálása

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;

Page 18: Élek detektálása

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

Page 19: Élek detektálása

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:

Page 20: Élek detektálása

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

Page 21: Élek detektálása

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

Page 22: Élek detektálása

22Vámossy Zoltán IAR 2004

Sobel éldetektáló

Image I Threshold Edges

Page 23: Élek detektálása

23Vámossy Zoltán IAR 2004

Sobel éldetektáló

Page 24: Élek detektálása

24Vámossy Zoltán IAR 2004

Sobel éldetektáló

Page 25: Élek detektálása

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

Page 26: Élek detektálása

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 =

Page 27: Élek detektálása

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

Page 28: Élek detektálása

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

Page 29: Élek detektálása

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

Page 30: Élek detektálása

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

Page 31: Élek detektálása

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

Page 32: Élek detektálása

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

Page 33: Élek detektálása

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

Page 34: Élek detektálása

34Vámossy Zoltán IAR 2004

Marr Hildreth éldetektor

Gauss simítás

Laplace

• gradiens (derivált)• Laplace

Page 35: Élek detektálása

35Vámossy Zoltán IAR 2004

Marr Hildreth éldetektor

(LoG) számítása

Page 36: Élek detektálása

36Vámossy Zoltán IAR 2004

LoG Filter

X

Y

Page 37: Élek detektálása

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

Page 38: Élek detektálása

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

Page 39: Élek detektálása

39Vámossy Zoltán IAR 2004

LoG szeparálhatóság

n2 szorzás

4n szorzás

Page 40: Élek detektálása

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ő

Page 41: Élek detektálása

41Vámossy Zoltán IAR 2004

LoG példa

I

Page 42: Élek detektálása

42Vámossy Zoltán IAR 2004

LoG példa

Page 43: Élek detektálása

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

Page 44: Élek detektálása

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

Page 45: Élek detektálása

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

Page 46: Élek detektálása

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

Page 47: Élek detektálása

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!

Page 48: Élek detektálása

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ó.)

Page 49: Élek detektálása

49Vámossy Zoltán IAR 2004

Canny éldetektor – Gauss deriváltja

Page 50: Élek detektálása

50Vámossy Zoltán IAR 2004

Canny éldetektor – első két lépés

xS

yS

I

Page 51: Élek detektálása

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:

Page 52: Élek detektálása

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

Page 53: Élek detektálása

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

Page 54: Élek detektálása

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

Page 55: Élek detektálása

55Vámossy Zoltán IAR 2004

III. Canny – harmadik lépés oka

Fig 4.5

Élkiemelő - balról jobbra =3, =2, =1

Page 56: Élek detektálása

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

Page 57: Élek detektálása

57Vámossy Zoltán IAR 2004

Példa

Page 58: Élek detektálása

58Vámossy Zoltán IAR 2004

Canny, alacsony threshold

Page 59: Élek detektálása

59Vámossy Zoltán IAR 2004

Canny, magas threshold

Page 60: Élek detektálása

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

Page 61: Élek detektálása

61Vámossy Zoltán IAR 2004

III. Hysteresis thresholding

Eredmény: A kapcsolódó élpixelek listái

Page 62: Élek detektálása

62Vámossy Zoltán IAR 2004

Canny eredmények

‘Y’ or ‘T’ csatlakozási probléma a Canny operátornál

Page 63: Élek detektálása

63Vámossy Zoltán IAR 2004

Canny: Sarok effektus

Page 64: Élek detektálása

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

Page 65: Élek detektálása

65Vámossy Zoltán IAR 2004

Marr-Hildreth operátor

Image 2g(x)Find

zero-crossingscompute

slopeThreshold

Page 66: Élek detektálása

66Vámossy Zoltán IAR 2004

Canny

Image

gx(x,y)Gradiensnagyság

gy(x,y) Gradiensirány

Non-maximumsuppression

Hysteresis thresholding

Page 67: Élek detektálása

67Vámossy Zoltán IAR 2004

Élpontosítás más módszerei

Page 68: Élek detektálása

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

Page 69: Élek detektálása

69Vámossy Zoltán IAR 2004

Ötlet 2: Élkövetés

Következő pont: Merőleges a gradiensreHasználjunk Hysteresis-t

Page 70: Élek detektálása

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)

Page 71: Élek detektálása

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

Page 72: Élek detektálása

72Vámossy Zoltán IAR 2004

SUSAN algoritmus

A SUSAN jelentése: smallest univalue segment assimilating nucleus.

Page 73: Élek detektálása

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)

Page 74: Élek detektálása

74Vámossy Zoltán IAR 2004

SUSAN algoritmus

Az ugrásszerű átmenet elkerülése, stabilabb eredményt ad (táblázat!)

Page 75: Élek detektálása

Haralick felületi modellje

Éldetektálás az intenzitásfelületre illesztett térbeli polinommmal

Page 76: Élek detektálása

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)

Page 77: Élek detektálása

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:

Page 78: Élek detektálása

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

Page 79: Élek detektálása

79Vámossy Zoltán IAR 2004

ki-k számítása maszkkal (Shah könyv)

Page 80: Élek detektálása

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