SEGMENTERING IN 106, V-2001 Segmentering er en prosess som deler opp bildet i meningsfulle regioner. I det enkleste tilfelle har vi bare to typer regioner BILDE-SEGMENTERING DEL I Forgrunn Bakgrunn Problemet blir banalt hvis vi bare har én objekt-region, og denne er homogen. 26/3 2001 Vi har som regel flere objekter i bildet. Fritz Albregtsen Objektene er sjelden helt like, selv om de er av samme type. Ofte har vi flere typer (klasser) objekter samtidig. Belysningen kan variere over bildet. Refleksjon etc varierer over objektet. FA 26/3/2001 FA/IN106/segm-01 SEGMENTERING SEGMENTERING Hva er god segmentering? Regioner i et segmentert bilde bør være uniforme og homogene m.h.t. karakteristika som gråtone, tekstur, eller andre egenskaper. Nabo-regioner av forskjellig klasse bør være signifikant forskjellige m.h.t. de egenskaper der regionene hver for seg er uniforme. Regioner bør være enkle, uten mange hull. Region-grensene bør være enkle (uten mange frynser ), og må være riktig plassert. I praksis er dette ofte vanskelig! Det finnes ingen grunnleggende teori for segmentering. Segmentering er ett av de viktigste elementene i et komplett bilde-analyse system. I segmenteringen får vi fram regioner og objekter som senere skal beskrives og gjenkjennes. Vi skal se på to kategorier av metoder, basert på to egenskaper ved piksler i bilder, nemlig likhet og diskontinuitet Ved terskling og ved region-basert segmentering (groing, split-and-merge) får vi fram de pikslene som ligner hverandre. Dermed har vi alle pikslene i objektet. I kant-basert segmentering finner vi basalelementer kant-punkter, linje-punkter, hjørnepunkter,... I neste steg: Tynner og kjeder sammen til kanter, linjer, hjørner,... Dermed har vi omrisset av objektene. Kombinasjons-metoder gir best resultat. FA/IN106/segm-02 FA/IN106/segm-03
Motivasjon for kant-deteksjon Punkt-deteksjon Repeterte fenomener i en sekvens bringer oss lite ny informasjon. Anta at vi benytter en konvolusjonsmaske med vekter w i gitt ved Vi vet at dette utnyttes i kommunikasjon og i digital bilde-kompresjon. Det meste av informasjonen i et bilde finnes ved kantene/omrissene til objektene/regionene i bildet. Kanter brukes her om intensitets-kanter, farge-kanter, tekstur-kanter, etc. Biologiske visuelle systemer er basert på kant-deteksjon, ikke på f.eks. terskling. Slike systemer arbeider ofte både parallelt og sekvensielt: Alle lokale omgivelser behandles uavhengig av hverandre, og behandles derfor samtidig. Lokalt resultat kan være avhengig av tidligere resultat(er). Vi beregner 1 8 1 R = 9 w i z i i=1 der z i er den gråtone-verdi vi finner under maskeverdien w i. Et punkt (i, j) avviker fra sine omgivelser hvis R(i, j) > T der T > 0 er en terskel, og R beregnes ved å sentrere masken om punktet (i, j). Dette er samme maske som vi brukte til høyfrekvens-filtrering, men her anvendes en terskel T for å finne punkter som avviker tilstrekkelig fra sine omgivelser. Hvilket resultat får vi i homogene områder? Hva med en hellende gråtone-flate? FA/IN106/segm-04 FA/IN106/segm-05 Linje-deteksjon Digitale gradient-operatorer Anta at vi har fire konvolusjonsmatriser 2 2 2 1 1 2 2 1 1 2 1 1 1 1 2 Maskene vil detektere linjer som er ett piksel brede, og som er orientert i retningene 0 o,45 o, 90 o, 135 o ( 45 o ). Dette er en gruppe av operatorer som gir approksimasjoner til De ortogonale gradient komponentene δf(x, y)/δx og δf(x, y)/δy Gradienten i en gitt retning δf(x, y)/δr Noen operatorer gir bare et estimat av kant-styrken (magnituden) Andre gir også retningen. Anta at vi konvolverer hver omegn i bildet med alle fire maskene, og får resultatene R i, i [1, 2, 3, 4] Hvis R i > R j for alle j i, da ligger den linjen vi har detektert nærmest orienteringen til maske i. Gitt to digitale masker H x og H y. Disse konvolveres med det digitale bildet F (i, j) og måler gradient-komponentene g x og g y over en omegn om (i, j) ibildetf. FA/IN106/segm-06 FA/IN106/segm-07
Gradient i kontinuerlig bilde Gradienten til F langs r i retning θ δf δr = δf δx δx δr + δf δy δy δr dvs. δf δr = δf δf cos θ + δx δy sin θ Gradienten er størst når δ δf =0 δθ δr Dvs når δf δx sin θ g + δf δy cos θ g =0 Retningen til kanten relativt til x-aksen er derfor θ g = tan 1 g y g x Og gradient-magnituden er δf = [ gx 2 δr + g2 y max ] 1/2 Digitale gradient-approksimasjoner Asymmetrisk 1D operator G R (i, j) =F(i, j) F (i, j 1) G C (i, j) =F(i, j) F (i +1,j) Definisjonen er gitt slik at komponentene er positive for en kant der intensiteten øker fra venstre mot høyre og nedenfra og oppover i bildet. Gradient-estimatene refererer ikke til samme sted i bildet. Symmetrisk 1D operator G R (i, j) =F(i, j +1) F(i, j 1) G C (i, j) =F(i 1,j) F(i+1,j) Gradient-estimatene refererer nå til (i, j). FA/IN106/segm-08 FA/IN106/segm-09 Symmetriske gradient-operatorer Operatoren gjøres mindre følsom for støy ved å midle i én retning og derivere i den ortogonale retningen. Eksempler: Prewitt, Sobel, Frei-Chen. Frei-Chen gir samme gradient om kanten ligger langs aksene eller diagonalt. Prewitt er mer følsom for horisontale og vertikale enn for diagonale kanter. Det motsatte er tilfelle for Sobel. Prewitt-operatoren glatter ikke ut støy like effektivt som Sobel-operatoren. Større masker gir mindre støy-følsomhet. Alle de tre nevnte operatorene er separable. FA/IN106/segm-10 Pixel difference Gradient-operatorer Separated pixel difference Roberts Prewitt Sobel Frei-Chen 0 1 1 H C(i, j) = H C(i, j) = 0 0 1 H C(i, j) = H C(i, j) = 2 0 2 H C(i, j) = 1 0 1 2 0 2 H C(i, j) = 1 0 0 1 2 1 1 2 1 1 2 1 0 0 0 1 2 1
De gradient-operatorene vi har sett på, forutsetter at forandringen i gråtone er en (tilnærmet) step-funksjon. Når transisjons-området blir større er det mer hensiktsmessig å benytte 2. deriverte. Merk at f har to maksima, og at det er f = 0 som markerer intensitets-kanten. Den generaliserte 2. deriverte er gitt ved G(x, y) = 2 (F (x, y)) der er gitt ved 2 F = 2 F x + 2 F 2 y 2 G(x, y) = 0 hvis F(x, y) er en lineær funksjon av x og y. G(x, y) endrer fortegn der F (x, y) har et infleksjons-punkt. Denne operatoren gir ikke brede kanter! Vi finner bare magnitude, ikke retning. Merk at G har to ekstremalverdier idet vi passerer en kant, mens G = 0 markerer kant-posisjonen. FA/IN106/segm-12a FA/IN106/segm-12b I1Der 2 fekvivalent med 2. deriverte Kontinuerlig Digitalt f(x) f(i) f (x) f (i) =f(i) f(i 1) f (x) = 2 f(x) f (i) =f (i) f (i 1) =[f(i) f(i 1)] [f(i 1) f(i 2)] = f(i 2) 2f(i 1) + f(i) Av symmetri-hensyn flytter vi operatoren slik at den er sentrert om i. Dessuten bytter vi fortegn 2 f(i) = f(i 1)+2f(i) f(i+1) Legg merke til at e kan uttrykkes som senter-verdi minus et (veiet) middel over et lokalt naboskap. 1D : 2 f(i) = f(i 1) + 2f(i) f(i +1) = 3f(i) i+1 f(j) 2D pluss : 1 4 1 2D kvadrat : 1 8 1 = = j=i 1 0 5 0 0 9 0 FA/IN106/segm-13 FA/IN106/segm-14
LoG = 2 G Gauss-funksjonen i 1D er gitt som G(x) = 1 e (x µx)2 2πσ mens den 2-dimensjonale sirkelsymmetriske Gauss-funksjonen er gitt ved G(x, y) = 1 (x µx) 2 +(y µy) 2 2πσ 2e Anta at middelverdiene µ x = µ y =0,ogderivér G x = 1 xe (x2 +y 2 ) 2πσ 4 2 G x = 1 2 2πσ 4 Tilsvarende får vi 2 G y = 1 2 2πσ 4 1 x2 1 y2 σ 2 e (x2 +y 2 ) σ 2 e (x2 +y 2 ) og summen av 2 G og x 2 2 G blir dermed y 2 2 G = 1 2 x2 + y 2 2πσ 4 σ 2 e (x2 +y 2 ) Laplacian-of-Gaussian (LoG) Først foreslått av David Marr (1980) I2D 2 G(x, y) = 1 2 2πσ 4 (x 2 + y 2 ) σ 2 σ er standard-avviket til G(x,y) exp (x2 + y 2 ) w = 2 2σ er bredden av den sentrale positive toppen i LoG-operatoren I de fleste tilfelle er størrelsen på operatoren 3w, 8.5σ. 99.7% av arealet under en 1D Gauss ligger mellom µ 3σ og µ +3σ. Integralet av LoG operatoren mellom disse grensene 0. FA/IN106/segm-15 FA/IN106/segm-16 Hough-transform Anta at vi har foretatt en kantdeteksjon og en terskling av resultat-bildet. Dermed har vi n punkter som f.eks. beskriver et objekt. Vi vil finne delmengder av disse punktene som ligger på rette linjer. Betrakt et punkt (x i,y i ) og en rett linje y i = ax i + b Hvert punkt (x i,y i ) i bilde-domenet svarer til en rett linje gitt ved b = x i a + y i i parameter-domenet (ab-planet) Hough-transform II Del opp ab-planet i akkumulator-celler A [a, b],a [a min,a max ];b [b min,b max ] sett alle A[a,b] := 0; for hvert punkt (x,y) der grad(x,y) > T for alle mulige verdier av a b = -xa + y; A[a,b] := A[a,b] + 1; end end En verdi A [i, j] =M svarer til at M punkter i x, y-planet ligger på linjen y = a i x + b j Denne representasjonen håndterer ikke vertikale linjer! FA/IN106/hough-01 FA/IN106/hough-02
Hough-transform III Benytter normal-representasjonen for en rett linje, gitt ved x cos θ + y sin θ = ρ Hough-transform IV Del opp ρθ-planet i akkumulatorceller A [ρ, θ],ρ [ρ min,ρ max ];θ [θ min,θ max ] Range for θ er ±90 o fra x-aksen horisontal linje har θ =90 o,ρ 0 vertikal linje har θ =90 o,ρ 0 eller θ = 90 o,ρ 0 Range for ρ er ±D 2 der D er lengden av sidekanten i bildet. Hvert punkt (x i,y i ) i xy-planet gir nå opphav til en sinusoid i ρθ-planet. M ko-lineære punkter som ligger på linjen x cos θ j +sinθ j =ρ i gir M kurver som skjærer hverandre i punktet (ρ i,θ j ) i parameter-planet. Lokale maksima => signifikante linjer FA/IN106/hough-03 FA/IN106/hough-04 Hough-transform, problemer Hough-transform, sirkler Lengde og posisjon til et linjesegment kan ikke finnes. Ko-lineære linjesegmenter kan ikke skilles fra hverandre. Hvordan skal vi finne lokale maksima i parameter-planet, som svarer til sammen hengende linjestykker i bildeplanet? Parametrisering av sirkel i xy-planet (x a) 2 +(y b) 2 =c 2 Vi få r altså et 3-dimensjonalt parameter-rom åsøkei. Enkel prosedyre, gitt akkumulator A[i, j, k] : Høy terskel => korte linjestykker går tapt Lav terskel => deteksjon av ikkesammenhengende piksler. Løsning: Lokal terskling. Traverser de piksler som svarer til et maksimum i parameter-planet. Sjekk at gap < toleranse. sett alle A[a,b,c] := 0; for hvert punkt (x,y) der grad(x,y) > T for alle mulige a og b c = sqrt((x-a)**2 + (y-b)**2); A[a,b,c] := A[a,b,c] + 1; end; end; Andre, mer elegante forslag? FA/IN106/hough-05 FA/IN106/hough-06