Segmentación - parte 1 - Departamento de Ingeniería de Sistemas
Transcripción
Segmentación - parte 1 - Departamento de Ingeniería de Sistemas
Segmentación de Imágenes Parte 1 Visión Artificial Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Introducción Introducción ● Segmentación de imágenes: Partición de la imagen de una manera semánticamente significativa. http://kasanpro.com/p/matlab/license-plate-character-recognition-system-neural-network Introducción ● Segmentación de imágenes: Partición de la imagen de una manera semánticamente significativa. http://21stcenturywire.com/2015/01/29/revealed-the-tsas-new-computerized-facial-andemotional-recognition-system/ Introducción ● Segmentación de imágenes: Partición de la imagen de una manera semánticamente significativa. https://raweb.inria.fr/rapportsactivite/RA2013/morpheo/uid30.html Introducción ● Segmentación de imágenes: Partición de la imagen de una manera semánticamente significativa. http://www.tnt.uni-hannover.de/staff/leal/ Introducción ● Segmentación de imágenes: Encontrar un objeto en una imagen. (particionar en clases: objeto(s) y fondo) http://computerblindness.blogspot.com/2010/06/object-detection-vs-semantic.html Introducción ● Segmentación de imágenes: Encontrar un objeto en una imagen. (particionar en clases: objeto(s) y fondo) http://computerblindness.blogspot.com/2010/06/object-detection-vs-semantic.html Introducción ● Segmentación de imágenes (médicas): Particionar la imagen en regiones (clases, subconjuntos) homogéneos con respecto a una o más características. http://www.unc.edu/~fengs/research.html Segmentación ● Dadas las diferentes características de las imágenes y los elementos a segmentar... ... no existe un método estándar de segmentación que produzca buenos resultados para cualquier imagen. ● Eso implica que existen diferentes métodos de segmentación, cada uno válido para un contexto diferente. Segmentación ● Se buscan soluciones “correctas”: - Regiones uniformes y homogéneas. - Interiores simples y con un mínimo de “huecos”. - Regiones adyacentes deben tener atributos “suficientemente” diferentes. - Fronteras entre regiones deben ser “simples”, “iguales” y “espacialmente acertadas”. Haralick, R.M., and Shapiro, L.G. "Image segmentation techniques." Technical Symposium East. International Society for Optics and Photonics, 1985. Segmentación ● ¿Cómo evaluar una buena segmentación? - Independencia de la inicialización: Intravariabilidad (reproductibilidad). - Comparación con el “experto” humano: Sensibilidad (verdaderos positivos). Especificidad (verdaderos negativos). Métodos de segmentación ● Basados en umbrales. ● Basados en bordes. ● Basados en regiones. Métodos de segmentación ● Basados en umbrales: Utilización de uno o varios umbrales de acuerdo a la distribución de intensidades en el histograma. - Umbralización y binarización. - Umbrales múltiples. - Umbrales automáticos. Usados en forma directa, o en combinación con otras tareas de pre- y post-procesamiento. Métodos basados en umbrales ● Umbralización o binarización: Extraer los objetos comparando su valor de intensidad con un valor de referencia (umbral). I. Bankman. Handbook of Medical Image Processing and Analysis, 2ed. Academic Press, 2009. Métodos basados en umbrales ● Umbralización o binarización: Extraer los objetos comparando su valor de intensidad con un valor de referencia (umbral). I. Bankman. Handbook of Medical Image Processing and Analysis, 2ed. Academic Press, 2009. Métodos basados en umbrales ● Método de Otsu: Asume que la imagen contiene dos clases de pixeles (histograma bimodal). Calcula el umbral óptimo que minimiza la varianza intra-clase y maximiza la varianza inter-clase. Calcula probabilidades de cada posible clase, y comprueba las varianzas hasta que encuentra la mínima dentro de las clases y/o la máxima entre las clases. Métodos basados en umbrales ● Método de Otsu: http://www.labbookpages.co.uk/software/imgProc/otsuThreshold.html Métodos basados en umbrales ● Agrupamiento K-means: Método de clasificación, que asigna puntos dados a K diferentes segmentos. En el caso de las imágenes, asigna cada pixel a una de las K regiones de acuerdo a su valor de intensidad. Es necesario saber de antemano el valor de K. Métodos basados en umbrales ● Agrupamiento K-means: Algoritmo: 1. Definir K-1 umbrales, y distribuírlos uniformemente sobre el histograma. Particionar la imagen de acuerdo a los umbrales. 2. Calcular la intensidad promedio en cada segmento. 3. Redefinir los umbrales como el punto medio entre las intensidades promedio de los segmentos. Reparticionar la imagen con los nuevos umbrales. 4. Repetir pasos 2 y 3 hasta que no se encuentren diferencias significativas. Métodos basados en umbrales ● Agrupamiento K-means: Métodos basados en umbrales ● Agrupamiento K-means: 3 regiones 4 regiones Iteración 1 6 regiones Métodos basados en umbrales ● Agrupamiento K-means: 3 regiones 4 regiones Iteración 2 6 regiones Métodos basados en umbrales ● Agrupamiento K-means: 3 regiones 4 regiones Iteración 5 6 regiones Métodos basados en umbrales ● Agrupamiento K-means: 3 regiones 4 regiones Iteración 10 6 regiones Métodos basados en umbrales ● Agrupamiento K-means: 3 regiones 4 regiones Iteración 20 6 regiones Métodos basados en umbrales ● Agrupamiento K-means: 3 regiones 4 regiones Iteración 30 6 regiones Métodos basados en umbrales ● Umbralización óptima: Basada en la forma del histograma. Asumir el histograma como suma de distribuciones. http://dbm.neuro.uni-jena.de/vbm/segmentation/ Métodos de segmentación ● Basados en bordes: Identificación de los objetos puede obtenerse también encontrando los bordes que lo definen. Borde: frontera entre dos regiones con propiedades de intensidad relativamente distintas. Detectar el borde: encontrar lugares en la imagen donde la intensidad cambia “abruptamente”. Métodos basados en bordes ● Perfil del borde ● Primera derivada ● Segunda derivada http://mipav.cit.nih.gov/pubwiki/index.php/Edge_Detection:_Zero_X_Laplacian Métodos basados en bordes ● Detección de bordes: ∂ I ( x) G x= ∂ x1 ∂ I (x) G y= ∂ x2 ∇ I =|G x|+|G y| Métodos basados en bordes ● Gradiente morfológico: diferencia entre la dilatación y la erosión de la imagen con el mismo elemento estructural. - = - = Métodos basados en bordes ● Detección de bordes: La derivada o gradiente puede estimarse con convoluciones de la imagen con kernels o filtros específicos: ∂ I ( x) G x= ∂ x1 ∂ I (x) G y= ∂ x2 correlación con [−0.5 0 0.5] correlación con [ ] −0.5 0 0.5 Métodos basados en bordes ● Detección de bordes con filtros: Diferencia de pixeles. Métodos basados en bordes ● Detección de bordes con filtros: Diferencia de pixeles. Métodos basados en bordes ● Detección de bordes con filtros: Diferencia separada de pixeles. Métodos basados en bordes ● Detección de bordes con filtros: Diferencia separada de pixeles. Métodos basados en bordes ● Detección de bordes con filtros: Operador de Roberts. Métodos basados en bordes ● Detección de bordes con filtros: Operador de Roberts. Métodos basados en bordes ● Detección de bordes con filtros: Operador de Prewitt. Métodos basados en bordes ● Detección de bordes con filtros: Operador de Prewitt. Métodos basados en bordes ● Detección de bordes con filtros: Operador de Sobel. Métodos basados en bordes ● Detección de bordes con filtros: Operador de Sobel. Métodos basados en bordes ● Detección de bordes con filtros: Operador Gaussiano. Implica suavizar la imagen con un kernel Gaussiano y luego calcular el gradiente por diferencia de pixeles. σ=1 Métodos basados en bordes ● Detección de bordes con filtros: Operador Gaussiano. Implica suavizar la imagen con un kernel Gaussiano y luego calcular el gradiente por diferencia de pixeles. σ=1 Métodos basados en bordes ● Detección de bordes con filtros: Operador Gaussiano. Implica suavizar la imagen con un kernel Gaussiano y luego calcular el gradiente por diferencia de pixeles. σ=5 Métodos basados en bordes ● Detección de bordes con filtros: Operador Gaussiano. Implica suavizar la imagen con un kernel Gaussiano y luego calcular el gradiente por diferencia de pixeles. σ=5 Métodos basados en bordes ● Detección de bordes con filtros: Operador Gaussiano. Implica suavizar la imagen con un kernel Gaussiano y luego calcular el gradiente por diferencia de pixeles. σ = 10 Métodos basados en bordes ● Detección de bordes con filtros: Operador Gaussiano. Implica suavizar la imagen con un kernel Gaussiano y luego calcular el gradiente por diferencia de pixeles. σ = 10 Métodos basados en bordes ● Detección de bordes: Operador de Canny. Técnica formulada con tres objetivos: 1. detección óptima, para reducir la respuesta al ruido. 2. buena localización, con distancia mínima entre el borde original y el estimado. 3. respuesta única, para eliminar múltiples respuestas a un único borde. Métodos basados en bordes ● Detección de bordes: Operador de Canny. Algoritmo de aproximación: 1. suavizar la imagen con un filtro Gaussiano. 2. encontrar la dirección del gradiente con el operador de Sobel. 3. usar supresión no-maximal, que retiene sólo aquellos puntos en el pico del borde. 4. binarizar manteniendo los bordes conectados. Métodos basados en bordes ● Detección de bordes: Operador de Canny. M. Nixon & A. Aguado. Feature Extraction & Image Processing for Computer Vision, 3ed. Academic Press, 2012. Métodos basados en bordes ● Detección de bordes: Operador de Canny. Sobel Canny Métodos basados en bordes ● Detección de bordes: Operador de Canny. Sobel Canny Métodos basados en bordes ● RATS (Robust Automatic Threshold Selection): Permite definir automáticamente umbrales de segmentación a partir de la información del gradiente (bordes). ∑x∈ Ω I (x)|∇ I (x)| t= ∑x∈Ω |∇ I (x)| Su éxito depende del filtro de gradiente usado. Métodos basados en bordes ● RATS (Robust Automatic Threshold Selection): σ=1 σ=5 t = 115 t = 118 Ejercicios Ejercicio OpenCV ● ● ● Análisis de histogramas: http://docs.opencv.org/2.4/doc/tutorials/imgpro c/histograms/back_projection/back_projection.ht ml Operador de Sobel: http://docs.opencv.org/2.4/doc/tutorials/imgproc /imgtrans/sobel_derivatives/sobel_derivatives.ht ml Operador de Canny: http://docs.opencv.org/2.4/doc/tutorials/imgpro c/imgtrans/canny_detector/canny_detector.html Referencias ● ● ● ● ● R.C. González, R.E. Woods. Digital Image Processing, 3rd edition. Pearson Prentice Hall, 2008. I. Bankman. Handbook of Medical Image Processing and Analysis, second edition. Academic Press, 2009. M. Nixon & A. Aguado. Feature Extraction & Image Processing for Computer Vision, third edition. Academic Press, 2012. http://www.bioss.ac.uk/people/chris/ch4.pdf http://www.cs.uu.nl/docs/vakken/ibv/reader/chapter10. pdf