Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes...

11
1 Cap.V: Segmentación Segmentación: agrupar píxeles Creando regiones de interés. Criterios Similitud: los píxeles agrupados del objeto deben ser similares respecto algún criterio (nivel de gris, color, borde, textura,....). Conectividad: los objetos corresponden a áreas de píxeles con conectividad. Las particiones corresponden con regiones continuas de píxeles. Discontinuidad: los objetos tienen formas geométricas que definen unos contornos. Estos bordes delimitan unos objetos de otros. Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones

Transcript of Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes...

Page 1: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

1

Cap.V: Segmentación� Segmentación: agrupar píxeles � Creando regiones de interés.

� Criterios� Similitud: los píxeles agrupados del

objeto deben ser similares respecto algún criterio (nivel de gris, color, borde, textura,....).

� Conectividad: los objetos corresponden a áreas de píxeles con conectividad. Las particiones corresponden con regiones continuas de píxeles.

� Discontinuidad: los objetos tienen formas geométricas que definen unos contornos. Estos bordes delimitan unos objetos de otros.

Análisis de las imágenes

Cap.V: Segmentación

� Grandes dificultades� Tipos:

� Basadas en bordes� Umbralización� Orientado a regiones

Page 2: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

2

Algoritmos de segmentación

� Ambientes estructurados� Simples y repetitivos

Técnica basadas en los bordes� La localización de bordes requiere una etapa

de post-procesado.� Variantes:

� Crecimiento del borde� Asociación de segmentos

� Contornos activos� Localización de líneas

� círculos o elipses

� Transformadas de Hough

A

M

T

TGG

<−

<−

21

21

ϑϑ

Catenaria Detector de Canny

theta (grados)

rho

(pix

eles

des

de e

l cen

tro)

Espacio de líneas

0 50 100 150

-100

0

10050

100

150

Ejemplos de contornos activos

Page 3: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

3

Ejercicio 4� Dada la siguiente imagen calcular

1. El módulo del gradiente mediante la aproximación Utilice la máscara más simple para la implementación de la diferenciación y para los bordes replique el valor de los píxeles de frontera (condición de Neumman).

2. Determinar el umbral óptimo para la detección de los bordes y representar la imagen resultado.

2 3 4 3 2 2 3 2

2 2 2 8 9 2 2 3

2 2 2 9 10 3 2 2

2 9 8 8 9 9 8 2

3 8 8 8 2 3 3 2

2 9 8 9 9 2 2 3

2 8 8 9 8 4 2 2

2 2 3 2 2 2 2 2

( , ) ( , ) ( , )x yf x y f x y f x y∇ ≈ ∂ + ∂

Ejercicio 42 3 4 3 2 2 3 2

2 2 2 8 9 2 2 3

2 2 2 9 10 3 2 2

2 9 8 8 9 9 8 2

3 8 8 8 2 3 3 2

2 9 8 9 9 2 2 3

2 8 8 9 8 4 2 2

2 2 3 2 2 2 2 2

( )

0 0 0 0 0 0 0 0

0 1 2 5 7 0 1 1

0 0 0 1 0 1 0 1

0 7 6 1 0 6 6 0,

1 1 0 0 7 6 5 0

1 1 0 1 7 1 1 1

0 1 0 0 1 2 0 1

0 6 5 7 6 2 0 0

x f x y

∂ =

( )

0 1 1 1 1 0 1 1

0 0 0 6 1 7 0 1

0 0 0 7 0 6 1 0

0 7 1 0 1 0 1 6,

0 5 0 0 6 1 0 1

0 7 1 1 0 7 0 1

0 6 0 1 1 4 2 0

0 0 1 1 0 0 0 0

yf x y

∂ =

( )

0 1 1 1 1 0 1 1

0 1 2 11 8 7 1 2

0 0 0 8 0 7 1 1

0 14 7 1 1 6 7 6,

1 6 0 0 13 7 5 1

1 8 1 2 7 8 1 2

0 7 0 1 2 6 2 1

0 6 6 8 6 2 0 0

f x y

∇ ≈

0 2 4 6 8 10 12

140

2

4

6

8

10

12

14

16

18

20

Transformadas de Hough(1/4)

� Entrada: imagen binarizada de bordes� Salida: Detección de curvas (líneas,

circunferencias,...)� Procesamiento global: alto coste computacional

� Detección de líneas

x

y(xi,yi)

(xl,yl)

a

b(a1,b1)

(a2,b2)

x

y(xi,yi)

(xl,yl)

x

y(xi,yi)

(xl,yl)

a

b(a1,b1)

(a2,b2)

baxy ii +=

∞≤≤∞−

−=

a

axyb ii

Espacio paramétrico

Espacio imagen

Page 4: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

4

Ejemplo: transformadas de Hough

� Dado los puntos: (x,y) = {(1,0), (3,2), (4,3), (3,4)}. Determinar mediante la transformada de Hough, como tres de ellos pertenecen a la misma recta.

∞≤≤∞−

−=

a

axyb ii

Espacio paramétrico

-3 -2 -1 0 1 2 3-10

-5

0

5

10

15

a = yi - b*x

i

b

a

(1 0) azul

(3 2) verde(4 3) rojo

(3 4) cian

Transformadas de Hough(2/4)� Espacio paramétrico en coordenadas polares

� Disminuir las votaciones con el cálculo del gradiente

( )( )Cpd

senyx ii

,max00

cos

≤≤≤≤

=+

ρπθ

ςθθ

theta (grados)

rho

(pix

eles

des

de e

l cen

tro)

Espacio de líneas

0 20 40 60 80 100 120 140 160 180

-150

-100

-50

0

50

100

150 20

40

60

80

100

120

140

160

x

y

θ

ρ

x

y

θ

ρ

Catenaria Detector de Canny

theta (grados)

rho

(pix

eles

des

de e

l cen

tro)

Espacio de líneas

0 50 100 150

-100

0

10050

100

150

Ejercicio 1� Detectar las líneas de la imagen binarizada

mediante las transformadas de Houhg. Emplear el espacio paramétrico en coordenadas polares ( ) y con solo muestreo de los ángulos de 0º y 90º.

cosi ix y senθ θ ρ+ =

0 1 1 1 1 1 1

0 0 0 0 0 0 0

0 0 0 0 0 0 1

0 0 0 0 0 0 1

0 0 0 0 0 0 1

0 0 0 0 0 0 1

0 0 0 0 0 0 1

Page 5: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

5

Ejercicio 1� Las votaciones serán: cosi ix y senθ θ ρ+ =

0ºθ =

90ºθ = 6111110

1111106

7654321ρ

Ejercicio 2

� Segmentar el vaso capilar de la mamografía de la figura a) como se muestra en b)

Ejercicio 2� Una vez obtenida la imagen binaria de detección

de bordes, f(x,y), se procede al siguiente algoritmo:� Inicialización de la matriz de votaciones y votos:

1. C(θ, r ) = 0, para θ = θ1,...,θa, r = r1,...,rb.2. for θ = θ1,...,θa:

1. Para todos los pixeles (xi, yi) con f(xi, yi)=1 se determina:2. r = xi cos θ + yi sen θ

3. y se añade el voto: C(θ, r ) = C(θ, r ) + 1.4. End

� El algoritmo da la matriz de votaciones C(θ, r ). La recta se determinará con la celda de mayor votación.

Page 6: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

6

theta (grados)

rho

(pix

eles

des

deel

cen

tro)

Espacio de líneas

0 20 40 60 80 100 120 140 160 180

-100

-50

0

50

100

0

5

10

15

20

25

30

35

Ejercicio 2

Transformadas de Hough(3/4)� La mayoría son segmentos y no líneas

Imagen de entrada Imagen binarizada con detector de Canny

theta (grados)

rho

(pix

eles

des

de e

l ce

ntro

)

Espacio de líneas

0 50 100 150

-150

-100

-50

0

50

100

150 20

40

60

80

100

120

Resultados de la transformada de Hough

Resolución Matlab

>> imgEnt=imread(‘circuit.tif');imshow(imgEnt);pause;>> imgBorde=edge(imgEnt,'canny');imshow(imgBorde);>>theta = 0:180;>>[acum,rho] = radon(imgBorde,theta);>>imagesc(theta,rho,acum), colorbar;>>xlabel ('theta (grados)'), ylabel ('rho (pixeles desde el centro)')>>title('Espacio de líneas');

Transformadas de Hough(3/4)� Detección de circunferencias

� 3D: se suele acotar el radio

( ) ( ) 22

0

2

0 ryyxx ii =−+−

Resolución Matlab

>>imgEnt = imread('coins.png');radioMoneda = 30;>>[y0,x0,Accumulator]=houghcircle(edge(imgEnt,'canny'),

radioMoneda,4)>>UmbralVotaciones = 45;>>[x,y]=find(Accumulator>UmbralVotaciones);>>imshow(imgEnt);hold on;>>for i=1:size(x,1)

dibujarCirculos(radioMoneda,y(i),x(i));>>end;hold off

Page 7: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

7

Transformadas de Hough(4/4)� TH Generalizadas

� Detector de curvas� Método

� (xref,yref)

� Calcular para cada punto� r , β ,θ+90º� Tabla indexada por θ+90º

� Votaciones� a) Las coordenadas de referencia del objeto, (xref,yref).

� b) Y la orientación del objeto, α.

r

θ

β

r

θ

β

( )

( )αβ

αβ

+⋅+=

+⋅+=

senryy

rxx

iref

iref cos

0 100 200

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

x 104Umbral de 43 según Otsu

Imagen binarizadaEscenario con células

Umbralizaciones(1/2)

( )( )( )

>=

Tyxf

Tyxfyxg

,0

,1,

( )( )( )

<=

Tyxf

Tyxfyxg

,0

,1,

( ) ( )( )yxyxpyxfTT ,,,,,=

� Umbral: fondo + objetos

0 100 200

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

x 104Umbral de 43 según Otsu

Imagen binarizadaEscenario con células

Umbralizaciones(1/2)

( ) ( )( )yxyxpyxfTT ,,,,,=

� Segmentación por histograma� Es difícil identificar correctamente los

mínimos del histograma.� Se tienen problemas cuando las regiones

varían suavemente su nivel (por ejemplo, el efecto de las sombras, el ruido, …).

� Se aplica sólo cuando hay pocas regiones.

� No se pueden distinguir regiones separadas de niveles similares de gris.

� No considera la conectividad de los píxeles. Debido a este inconveniente, se suele emplear a continuación técnicas de post-procesado (se tratarán más adelante).

Page 8: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

8

Umbralizaciones(2/2)� Umbral óptimo

� Ajuste gaussiano.� Minimización de la varianza interclase.� Entropía del histograma.� Análisis de la concavidad.� Métodos basados en momentos.

� Método de Otsu� Modelo de densidad de Gauss para cada

grupo, N(µ, σ2)

222

ooff CCCCp PP σσσ ⋅+⋅=

{ } { }1,...,2,1,...,2,1,0 −++== ITTCTC of

∑∑−

+==

==1

10

I

Ti

iC

T

i

iC pPpPof

( ) ( )∑∑

∑∑

==

+==

⋅−=⋅−=

⋅=⋅=

T

i

iC

C

C

T

i

iC

C

C

I

Ti

i

C

C

T

i

i

C

C

piP

piP

piP

piP

o

of

f

f

o

f

f

0

22

0

22

1

10

0

0

11

11

µσµσ

µµ

Ejemplo de umbralización

0111211110

1223333111

0123553211

1123556222

2306676622

1116677622

1122666323

1122352211

0122333311

1131220211

nivel(i) 0 1 2 3 4 5 6 7

h(i) 6 33 26 16 0 5 11 3

p(i) 0.06 0.33 0.26 0.16 0 0.05 0.11 0.03

0 1 2 3 4 5 60.5

1

1.5

2

2.5

3

3.5Evolución de varianza ponderada

T Pcf Pco µcf µco σ2cf σ2co σ2P

0 0.06 0.94 0 2.60 0 3.30 3.10

1 0.39 0.61 0.84 3.47 0.13 2.93 1.84

2 0.65 0.35 1.30 4.57 0.39 2.30 1.06

3 0.81 0.19 1.64 5.89 0.77 0.41 0.70

4 0.81 0.19 1.64 5.89 0.77 0.41 0.70

5 0.86 0.14 1.83 6.21 1.34 0.16 1.18

6 0.97 0.03 2.30 7.00 2.93 0 2.84

Segmentación orientado a regiones(1/2)� Crecimiento de regiones

� Propiedades de similitud y continuidad

� A partir de píxeles semillas crecer� ¿Cómo crecer ?

� ¿Qué píxel tomar como semilla?� Nivel de gris de mayor probabilidad� Centroide de las fronteras

0)()1)()

))1

=↔∉=↔∈

≠∅=∩∪==

iRjiiRji

jii

n

i

pPRpdpPRpc

jiRRbRIa

jj

( ) ( ) ( ) ( )iii RRRisis kyxfcTyxfbTyxfyxfa σµµ <−<−<− ,),),,) ,,

BrainSegm.m

Page 9: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

9

Ejemplo de crecimiento de regiones

1 1 2 0 2 2 1 3 1 1

1 1 3 3 3 3 2 2 1 0

1 1 2 2 5 3 2 2 1 1

3 2 3 6 6 6 2 2 1 1

2 2 6 7 7 6 6 1 1 1

2 2 6 6 7 6 6 0 3 2

2 2 2 6 5 5 3 2 1 1

1 1 2 3 5 5 3 2 1 0

1 1 1 3 3 3 3 2 2 1

0 1 1 1 1 2 1 1 1 0

Segmente la imagen empleando crecimiento de regiones a partir de la semilla indicada. Aplique vecindad a 4 y utilice la regla: ( ) ( ), , 1s sf x y f x y− < .

Enfoque multiresolución� Pirámides y árboles

� Diferentes resoluciones espaciales� Promediado

Enfoque multiresolución� Árboles cuaternarios

� Diferentes resoluciones espaciales� División por contraste

Page 10: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

10

Ejemplo de fusión/división (Ejercicio 6)

16 15 14 13 20 20 22 20

12 40 12 9 20 20 22 20

8 7 4 5 20 22 22 20

4 3 2 1 22 20 22 20

5 5 6 6 1 1 1 1

7 7 7 7 1 1 1 1

8 6 5 4 1 2 1 1

6 6 3 2 1 1 1 1

� Para la siguiente matriz, realizar una descomposición de árbol cuaternario empleando como regla de división de la región que la diferencia entre el nivel de gris máximo y mínimo debe de mayor a un determinado umbral:

1. Obtener el árbol cuaternario si el umbral es 5.2. Obtener la matriz de salida con el umbral anterior.

Ejemplo de fusión/división

16 15 14 13 20 20 22 20

12 40 12 9 20 20 22 20

8 7 4 5 20 22 22 20

4 3 2 1 22 20 22 20

5 5 6 6 1 1 1 1

7 7 7 7 1 1 1 1

8 6 5 4 1 2 1 1

6 6 3 2 1 1 1 1

1 1 1 1 2 3 6 6

1 1 2 1 4 5 6 8

1 1 1 1 7 7 7 7

1 1 1 1 6 6 5 5

20 22 20 22 1 2 3 4

20 22 22 20 5 4 7 8

20 22 20 20 9 12 40 12

20 22 20 20 13 14 15 16

16 15 12 12 20.75 20.75 20.75 20.75

12 40 12 12 20.75 20.75 20.75 20.75

5.5 5.5 3 3 20.75 20.75 20.75 20.75

5.5 5.5 3 3 20.75 20.75 20.75 20.75

6 6 6.5 6.5 1.06 1.06 1.06 1.06

6 6 6.5 6.5 1.06 1.06 1.06 1.06

6.5 6.5 3.5 3.5 1.06 1.06 1.06 1.06

6.5 6.5 3.5 3.5 1.06 1.06 1.06 1.06

División y fusión de regiones� División y fusión de

regiones� Punto débil crecimiento:

las semillas� Descomponer en

regiones arbitrarias� Dividir si hay

discrepancia (árbol cuaternario)

� Fusionar regiones adyacentes� Crecimiento de

regiones

Page 11: Cap.V: Segmentación - elai.upm.es · Análisis de las imágenes Cap.V: Segmentación Grandes dificultades Tipos: Basadas en bordes Umbralización Orientado a regiones. 2 Algoritmos

11

Resolución Matlab

>>%División de la imagen>>imgEnt = imread('liftingbody.png');>>im1=imfilter(imgEnt,fspecial('gaussian'));>>imgDescomp = qtdecomp(im1,.27);>>imgDivision = imgEnt;>>for dim = [128 64 32 16 8 4 2 1]

[valores,fila,columna] = qtgetblk(im1, imgDescomp, dim);if (~isempty(valores))

doublesum = sum(sum(valores,1,'double'),2);endimgDivision = qtsetblk(imgDivision, imgDescomp, ...

dim, doublesum ./ dim^2);>>end

División y fusión de regiones