segmentacion 2014
-
Upload
lupicinio-garcia-ortiz -
Category
Documents
-
view
29 -
download
0
Embed Size (px)
description
Transcript of segmentacion 2014
-
Segmentacin
Javier Gonzlez Jimnez
Dep. de Ingeniera de Sistemas y Automtica
UNIVERSIDAD DE MLAGA
-
Segmentacin
Contenido
Introduccin
Tcnicas basadas en la Frontera
Tcnicas de Umbralizacin
Tcnicas basadas en Regiones
Mean-Shift
-
Segmentacin
1. Introduccin
Segmentacin
divide una imagen en regiones u objetos cuyos pxeles poseen atributos similares (niveles de grises, textura, etc.).
-
Segmentacin
1. Introduccin
Conceptualmente, cabe distinguir dos enfoques:
De arriba a abajo (Top down): Pxeles del mismo objeto fsico deben
estar en la misma regin
De abajo a arriba (Bottom up): Pxeles parecidos deben estar en la
misma regin
La cebra un objeto!
Cada raya negra un objeto!
-
Segmentacin
1. Introduccin
La psicologa Gestalt establece propiedades que los humanos
empleamos para segmentar:
-
Segmentacin
1. Introduccin
Similitud, Proximidad,
-
Segmentacin
1. Introduccin
Esto es lo que se pretende
http://dags.stanford.edu/projects/scenedataset.html
-
Segmentacin
2. Tcnicas basadas en la Frontera
Persiguen el aislamiento de los objetos de la imagen mediante la
identificacin de los pxeles que configuran la frontera de estos.
Bordes de la imagen
lugares donde se produce un cambio significativo de los niveles de intensidad
con el gradiente, los contornos no salen cerrados (rudo, iluminacinno uniforme, etc.)
es necesario unir los bordes detectados!!
Dos tcnicas fundamentales:
Tcnicas locales
Tcnicas globales
{ LoG + pasos por ceroSeguimiento del Contorno Operador de CannyTransformada de Hough
-
Segmentacin
2. Tcnicas basadas en la Frontera
s=2
th=0.007
LoG + pasos por cero
s=2
th=0.001
Contornos abiertos
No-ruido
I = imread('rice.tif');
log = edge(I,'log',0.001,2);
figure, imshow(log)
EN MATLAB
-
Segmentacin
2. Tcnicas basadas en la Frontera
Detecta curvas en una imagen
Hough clsica: la curva se especifica mediante una ecuacin analtica
Hough generalizada: deteccin de curvas arbitrarias de las que no se dispone de su expresin analtica
Transformada de Hough
-
Segmentacin
3. Segmentacin por Umbralizacin
Suposicin: distintos objetos de la imagen presentan distintos niveles de gris
Imagen ideal(3 objetos)
HistogramaImagen
Imagen con
ruido
-
Segmentacin
3. Segmentacin por Umbralizacin
Objetivo: encontrar umbrales Ti que separen agrupaciones de niveles de gris
Ejemplo:
L-1 nivelesentrada
nivelessalida
L-1
T
A
B
Aplicando
una LUT
Digital Image Processing 2002 R. C. Gonzalez & R. E. Woods
-
Segmentacin
3. Segmentacin por Umbralizacin
El umbral puede depender de una serie de variables:
T = T[x, y, p(x,y), f(x,y)]
En muchas aplicaciones basta un nico umbral (i.e. objeto homogneo sobre fondo)
Coord.
del pxel Nivel de gris
T = T[ f(x,y)]
T = T[p(x,y), f(x,y)]
Umbral global
Umbral local
Umbral dinmico o
adaptativo
T = T[ x,y]
Propiedad
local del
pixel (x,y)
BINARIZACION
-
Segmentacin
3. Segmentacin por Umbralizacin
La cuestin es dnde se coge el umbral! Mtodo de Otzu, mean-shift, umbral
ptimo, etc.
Ejemplo::
Nivel de gris A
T
y)g(x,
y)f(x, Ty)f(x,si
casootroenA
Digital Image Processing 2002 R. C. Gonzalez & R. E. Woods
-
Segmentacin
3. Segmentacin por Umbralizacin
Efecto de la iluminacin
+ =
Se puede segmentar por
umbralizacin
NO se puede segmentar
por umbralizacin
Fuente de luz NO uniforme
Digital Image Processing 2002 R. C. Gonzalez & R. E. Woods
-
Segmentacin
3. Segmentacin por Umbralizacin
Imagen original Umbralizacin global
Divisin de la imagen Umbralizacin adaptativa Digital Image Processing 2002 R. C. Gonzalez & R. E. Woods
-
Segmentacin
3. Segmentacin por Umbralizacin
%Leemos imagen de prueba y calculamo su histo --> no hay manera de segmentar por umbral
im1=imread('rice.tif');
%Calculamos el fondo de la imagen
bg32=blkproc(im1,[32,32],'min(x(:))'); %fondo de bloques de 32x32 (imagen 8x8)
bg256=imresize(bg32,[256,256],'bicubic'); %se interpola la imagen de 8x8 para obtener una de 256x256
%Se lo quitamos a la imagen original y la realzamos para reestablecer el brillo y contraste
dif=double(im1)-double(bg256); %
dif_realzada=imadjust(uint8(dif),[0 max(dif(:))]./255,[0 1],1. ); %La realzamos
%OJO: hay que dividir por 255 para que este en el rango[0 1]
%Lo dibujamos todo
figure
subplot(2,3,1), imshow(im1), title('Imagen original')
subplot(2,3,4), imhist(im1); title('Histograma imagen original')
subplot(2,3,2), imshow(uint8(dif)); title('Imagen diferencia')
subplot(2,3,5), imshow(bg256); title('Imagen del fondo')
subplot(2,3,3), imshow(uint8(dif_realzada)); title('Im. dif. realzada')
subplot(2,3,6), imhist(uint8(dif_realzada)); title('Histo im. dif. realzada')
EN MATLAB: Sustraer fondo no homogneo
-
Segmentacin
3. Segmentacin por Umbralizacin
%Leemos imagen de prueba y calculamo su histo --> no hay manera de segmentar por umbral
im1=imread('rice.tif');
%Calculamos el fondo de la imagen
bg32=blkproc(im1,[32,32],'min(x(:))'); %fondo de bloques de 32x32 (imagen 8x8)
bg256=imresize(bg32,[256,256],'bicubic'); %se interpola la imagen de 8x8 para obtener una de 256x256
%Se lo quitamos a la imagen original y la realzamos para reestablecer el brillo y contraste
dif=double(im1)-double(bg256); %
dif_realzada=imadjust(uint8(dif),[0 max(dif(:))]./255,[0 1],1. ); %La realzamos
%OJO: hay que dividir por 255 para que este en el rango[0 1]
%Lo dibujamos todo
figure
subplot(2,3,1), imshow(im1), title('Imagen original')
subplot(2,3,4), imhist(im1); title('Histograma imagen original')
subplot(2,3,2), imshow(uint8(dif)); title('Imagen diferencia')
subplot(2,3,5), imshow(bg256); title('Imagen del fondo')
subplot(2,3,3), imshow(uint8(dif_realzada)); title('Im. dif. realzada')
subplot(2,3,6), imhist(uint8(dif_realzada)); title('Histo im. dif. realzada')
EN MATLAB: Sustraer fondo no homogneo
-
Segmentacin
3. Segmentacin por Umbralizacin
Tipos de iluminacin
Cmara
Objeto
Fuentede luz
Retroiluminacin
Cmara
Iluminacin estructural
-
Segmentacin
3. Segmentacin por Umbralizacin
Tipos de iluminacin
Cmara
Luz lser
Iluminacin direccional
Cmara
Fuentede luz
Iluminacin difusa
National Instruments
-
Segmentacin
4. Tcnicas basadas en Regiones
Idea: Agrupar pxeles parecidos: agrupar los pxeles de la imagen en regiones tal queAtributos para decidir si parecidos: intensidad, textura, color,
posicin, etc.
Source: K. Grauman
Ejemplo: color
-
Segmentacin
4. Tcnicas basadas en Regiones
1. Se parte de un conjunto de puntos semillas a los que se les van
aadiendo pxeles vecinos que poseen propiedades similares
2. Si se usan n semillas, al final se podr obtener una segmentacin
con un mximo de n regiones, adems del fondo.
Crecimiento de regiones
1. Tomar p como semilla inicial de crecimiento.
2. Si el criterio de seleccin se cumple para "p", entonces aadir "p a la
regin de crecimiento.
3. Para cada vecinos de "p" (pi) que est fuera de la regin:
p = pi
Ir a 2
Algoritmo
-
Segmentacin
4. Tcnicas basadas en Regiones
Crecimiento de regiones
0 0 5 6 7
1 1 5 8 7
0 1 6 7 7
2 0 7 6 6
0 1 5 6 5
0 0 5 6 7
1 1 5 8 7
0 1 6 7 7
2 0 7 6 6
0 1 5 6 5
Predicado:
diferencia de color
menor que 3
0 0 5 6 7
a a b b b
a a b b b
a a b b b
0 1 5 6 5
a a b b b
a a b b b
a a b b b
a a b b b
a a b b b
0 0 5 6 7
1 1 5 8 7
0 1 6 7 7
2 0 7 6 6
0 1 5 6 5
Predicado: diferencia
de color menor que 8
0 0 5 6 7
a a a b b
a a a b b
a a a b b
0 1 5 6 5
a a a a b
a a a b b
a a a b b
a a a b b
a a a a b
Depende de la implementacin!!
-
Segmentacin
4. Tcnicas basadas en Regiones
Crecimiento de regiones
Esta tcnica plantea dos problemas fundamentales:
1. la eleccin de las semillas que pueden representar las regiones de
inters.
Textura: Requieren imgenes con elevada resolucin.
Niveles de gris: Se suele tener en cuenta la intensidad media actualizada de laregin (media dinmica ), as como la dispersin de sta (desviacin tipica de las
intensidades).
Niveles de grises ms localizacin: La agregacin de un pxel no depende slode su intensidad sino que tambin influye la proximidad o cercana del pxel a la
semilla.
2. la seleccin de las propiedades para la inclusin de pxeles en cada regin.
se suele basar en la naturaleza del problema,
requiere algn tipo de informacin previa de las regiones a segmentar.
-
Segmentacin
4. Tcnicas basadas en RegionesM
odelo
de
localiz
acio
ndel pelo
Imagen original
Cabeza
segmentada Pelo segmentado
Ejemplo: para tener coherencia espacial debemos imponer
algn atributo espacial
Crecimiento de regiones
-
Segmentacin
4. Tcnicas basadas en Regiones
Algoritmo general:
1. Se escogen K medias iniciales
2. Se crean K clusters (regiones) asociando cada punto con su
media mas cercana.
3. Los centroides de los K clusters son las nuevas medias.
4. Repetir pasos 2 y 3 hasta convergencia
Ejemplo K=3
K-medias (K-means)
(Wikipedia)
-
Segmentacin
4. Tcnicas basadas en Regiones
K-medias (K-means)
Parecido a crecimiento de regions, pero
En cada iteracin se clasifican todos los pixeles de laimagen, no slo los vecinos
Termina cuando los centros de las regiones no se mueven(frente a "no ms pixeles que aadir")
Ilustracin interactiva:
http://home.dei.polimi.it/matteucc/Clustering
/tutorial_html/AppletKM.html
-
Segmentacin
4. Tcnicas basadas en Regiones
Algoritmo K-medias para segmentacin
1. Escoger K pxeles de la imagen (manualmente, aleatoriamente, heurstico,
etc.) y tomarlos como representativos de las K regiones asociadas
2. Asignar cada pxel de la imagen a la regin ms parecida (de acuerdo con la
medida de distancia)
3. Actualizar las caractersticas de cada regin con la media de los nuevos
pxeles asignados
4. Repetir pasos 2 y 3 hasta que ningn punto cambie de regin (convergencia).
5. Unir regiones conectadas si son similares.
Representar cada pxel de la imagen con un vector de color, intensidad, textura, posicin, etc.
Definir una medida de distancia en ese espacio (del vector anterior)
-
Segmentacin
4. Tcnicas basadas en Regiones
K-medias: Ejemplo Matlab
im = rgb2gray(imread('torre_monica.jpg')); % Gray scale image
figure,subplot(1,2,1),imshow(im),title('Imagen original')
nPixels = prod(size(im));
data = reshape(im, 1,nPixels ); %Image as a vector (just one feature)
pert = kmeans(double(data), 2); % Two clases
clus=reshape(pert, size(im)); %Vector Image back to a matrix
im_clust=uint8(255*clus/max(max(clus)));
subplot(1,2,2), imshow(im_clust), title('Imagen segmentada')
-
Segmentacin
4. Tcnicas basadas en Regiones
K-medias. Ejemplo color
050
100150
200250 300
0
50
100
150
200
250
300
0
100
200
300
RED
Segmented objects in the RGB space
GREEN
BLU
E
data =
p
p
p
BBB
GGG
RRR
21
21
21
Pxels de la imagen
Caractersticas
del pxel R
G
B2 clusters en el
espacio RGB
Objeto 1
Objeto 2
-
Segmentacin
4. Tcnicas basadas en Regiones
K-medias
Normalmente, slo color no garantiza
grupos espacialmente localizados
Necesario alguna
propiedad espacial
p.e valores (r,g,b,x,y)
-
Segmentacin
4. Tcnicas basadas en Regiones
K-medias
Pros
Simplicidad
Convergencia a mnimo local (no garantia de
convergencia minimo global)
Cons
Alto uso de memoria
Hay que fijar K
Sensible a inicializacion
Sensible a outliers
Asume clusters esfricos
-
Segmentacin
4. Tcnicas basadas en Regiones
Divisin y fusin de regiones
Algoritmo
se basa en la subdivisin inicial de la imagen en un conjunto de
regiones arbitrarias y disjuntas
1. Sea R0 la regin inicial, constituida por la imagen completa;
2. Seleccionar un predicado P;
3. Para toda regin Ri, tal que, P(Ri) = FALSE: Subdividir Ri en cuatro
cuadrantes disjuntos;
4. Fusionar cualquier par de regiones adyacentes Rj y Rk, para las que se
verifique P(RjURk) = TRUE;
5. Si existen ms regiones para fusionar o dividir entonces ir a 3, si no, parar;
-
Segmentacin
4. Tcnicas basadas en Regiones
Divisin y fusin de regiones
R41 R42
R43 R44
R3
R1 R2
R1 R2 R3 R4
R41 R42 R43 R44
R
DivisinFusin
-
Segmentacin
4. Tcnicas basadas en Regiones
Divisin y fusin de regiones
En MATLAB: qtdemo
-
Segmentacin
5. Mean Shift
Como funciona
Mean shift = Desplazamiento de la media
Idea: cualquier punto en la cuenca de atraccin de la modapertenece al cluster que define esa moda
El proceso siempre
converge !
-
Segmentacin
5. Mean Shift
Se considera que las caractersticas siguen funciones de
densidad de probabilidad (p.d.f).
Regiones con alta densidad = mximos locales de p.d.f =
MODAS de densidad conocida.
Mean Shift detecta estas modas
Cada uno de estos puntos
son las caractersticas (2
en este caso) de cada
pxel de la imagen.
Si tuviramos una sla
caracteristica discreta y
finita (p.e. intensidad)
tendramos un histograma
-
Segmentacin
5. Mean Shift
Cuencas de atraccin:
regin en la la trajectoria del mean-shift de sus puntosconvergen a una misma moda
Ejemplo: Dos cuencas de atraccin:
-
Segmentacin
Seleccionar caractersticas de los pixels (color, gradiente,
posisin, textura, etc.)
Lanzar mean-shift para cada punto del espacio de
caractersticas (es decir, para cada pixel)
Formar clusters con todos los puntos que convergen a la
misma (o muy similar) moda.
Algoritmo
5. Mean Shift
-
Segmentacin
Ejemplo
5. Mean Shift
-
Segmentacin
http://www.caip.rutgers.edu/~comanici/MSPAMI/msPamiResults.html
5. Mean Shift
Ejemplo