segmentacion 2014

download segmentacion 2014

of 41

description

Vision computacion

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