cap.v: segmentación - elai.upm.es · análisis de las imágenes cap.v: segmentación grandes...
Post on 26-Sep-2018
221 Views
Preview:
TRANSCRIPT
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
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
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
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
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.
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
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).
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
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
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
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
top related