fbpx
Wikipedia

Segmentación (procesamiento de imágenes)

La segmentación es uno de los problemas generales del campo de la visión artificial y consiste en dividir una imagen digital en varias regiones (grupos de píxeles) denominadas segmentos. Más concretamente, la segmentación es un proceso de clasificación por píxel que asigna una categoría a cada píxel de la imagen analizada. Este problema general se divide en problemas especializados, dando lugar por ejemplo a:

  • segmentación por color
  • segmentación por texturas
  • superpíxel
  • segmentación semántica

Cada problema especializado le otorga un significado propio a las categorías que se usan en la clasificación de los píxeles. Uno de los casos más elementales de segmentación es la umbralización, un tipo particular de segmentación por color con solo dos categorías: claro y oscuro. Cada píxel se clasifica como claro u oscuro comparando su intensidad con una intensidad de referencia dada denominada umbral. Por otro lado, uno de los casos más sofisticados es la segmentación semántica que clasifica objetos diversos. Mask R-CNN es un segmentador semántico que clasifica 90 categorías del dataset COCO, reconociendo personas, vehículos, vegetación, calle, vereda, edificios, y demás elementos típicos en escenas urbanas.

El objetivo de la segmentación es localizar regiones con significado. La segmentación se usa tanto para localizar objetos como para encontrar sus bordes dentro de una imagen. El resultado de la segmentación de una imagen es un conjunto de segmentos que cubren toda la imagen sin superponerse. Se puede representar como una imagen de etiquetas (una etiqueta para cada píxel) o como un conjunto de contornos.

Elementos y proceso de segmentación

Cada algoritmo de segmentación discrimina una determinada cantidad de clases o categorías, y a cada categoría le asigna una etiqueta o identificador, un valor entero que el algoritmo usa para expresar esa categoría. La mínima clasificación posible es la que discrimina dos categorías; es un caso frecuente y se la denomina segmentación binaria.

Todos los algoritmos de segmentación operan sobre una imagen, típicamente a color o en blanco y negro, y generan otra imagen, artificial, del mismo tamaño que la analizada, en la que cada píxel expresa una etiqueta. Las regiones formadas por píxeles vecinos con la misma etiqueta se denomina segmento. Los segmentos se pueden interpretar como piezas de un rompecabezas: no se superponen y entre todos cubren la imagen completa.

La imagen resultante de una segmentación está preparada para ser consumida computacionalmente, pero no para ser visualizada. Para presentar a un usuario el resultado de una segmentación es necesaria una etapa de visualización que asigna colores fácilmente discernibles a cada etiqueta.

Alternativamente, en lugar de usar una imagen de etiquetas, el resultado de una segmentación se pueden representar mediante contornos, líneas cerradas de formas arbitrarias que señalan los bordes de los segmentos.

Glosario

La segmentación de imágenes utiliza jerga de visión artificial y de aprendizaje automático, que se resume a continuación:

  • etiqueta: número entero que identifica una categoría
  • segmento: grupo de píxeles conectados (vecinos) con una misma categoría
  • segmentación: proceso que produce una imagen de etiquetas, asignando una etiqueta para cada píxel de la imagen original

Taxonomía

Los diversos métodos de segmentación se clasifican de varias maneras.

  • Segmentación binaria
    • la que distingue solo dos categorías
    • las que no son binarias se denominan segmentación múltiple
  • Segmentación asistida o semiautomática
    • algoritmos que requieren anotaciones previas, señalando regiones a analizar o a distinguir
    • una persona suele hacer anotaciones marcando zonas sobre la imagen
    • en algunos casos es posible automatizar estas anotaciones haciendo uso de otros algoritmos de visión artificial
  • Segmentación semántica
    • distingue categorías de alto nivel significante, usualmente objetos
  • Segmentación instanciada
    • distingue individuos de la misma categoría
  • Segmentación panóptica
    • combinación de la segmentación semántica e instanciada, reconociendo individuos de varias categorías
  • Segmentación basada en modelos de aprendizaje profundo (deep learning)
 
Segmentación binaria por umbralización, con umbral automático

Segmentación binaria

Los segmentadores binarios son los que tienen solo dos categorías, usualmente denominadas frente y fondo. Su uso principal es el de extraer un segmento con el objeto buscado.

La umbralización es la segmentación más básica y simple, es un ejemplo de segmentación binaria. Opera sobre cada píxel de manera independiente clasificándolos por su intensidad comparada con un umbral dado: si es más claro corresponde al frente, si no, al fondo.

 
3 métodos de segmentación asistida. Los métodos de izquierda y derecha requieren que el usuario indique con verde algunos de los píxeles incluidos en el objeto a segmentar, y con azul algunos de los píxeles que no se deben incluir. El método del medio requiere indicar con un recuadro rojo el objeto a segmentar.

Segmentación asistida o semiautomática

Estos métodos requieren que el usuario aporte indicaciones sobre la región de la imagen a segmentar. Los mayores exponentes de este tipo de segmentación son el algoritmo Watershed, cuyo concepto se remonta a 1979, y GrabCut, de 2004.

Watershed

Requiere que se le asignen etiquetas a algunos píxeles, a los que se denominan semillas; el algoritmo amplía paulatinamente la región a partir de ellas buscando los bordes entre segmentos. Si el resultado no es el esperado, el usuario debe aumentar la cantidad de marcas especialmente en la zona que se debe cambiar.

GrabCut

Es un algoritmo más moderno pero anterior a las redes convolucionales. Es un segmentador binario que intenta capturar el objeto dominante en la imagen. Requiere que el usuario recuadre el objeto: la zona fuera del recuadro se toma como semilla del segmento de fondo.

Métodos interactivos

Livewire es una técnica interactiva que traza el borde del segmento a partir de puntos indicados por el usuario.

SImple iterative object extraction es una técnica ampliamente adoptada y más avanzada que la anterior, de 2006 y de código abierto.

Segmentación basada en aprendizaje profundo

La introducción de las redes convolucionales (CNN, convolutional neural networks) en la visión artificial fue un gran hito en 2012, que abrió un campo de investigación intensiva con resultados sorprendentes. La rápida evolución de las CNN llegó al campo de la segmentación dando un salto cualitativo en 2015 de la mano de FCN, SegNet y ResNet, marcando un antes y un después: prácticamente todos los algoritmos de segmentación posteriores a 2015 están basados en CNN y resuelven problemas complejos y de alto nivel como la segmentación semántica, instanciada y panóptica dejando obsoletos a sus predecesores. Por este motivo los anteriores a 2015 son calificados como "clásicos", y solo sobrevivieron a la obsolescencia los dedicados a segmentaciones de bajo nivel, como la umbralización o la segmentación por color y algunas notables excepciones como GrabCut y Watershed.

El estado del arte en 2018 estuvo dado por el modelo Mask R-CNN, segmentador semántico e instanciado entrenado sobre el dataset COCO, que distingue 90 categorías de objetos comunes.

Métodos

Existen innumerables algoritmos de segmentación, y se crean nuevos cada día, muchos de ellos altamente especializados. A continuación se indican algunos algoritmos famosos, y luego se describen diversas técnicas de segmentación.

  • Mask R-CNN

Segmentación del color

Consiste en clasificar píxeles exclusivamente por su color. La umbralización pertenece a esta categoría, y salvo esta excepción la segmentación por color no tiene particular relevancia en problemas de visión artificial, pero sí lo tiene en procesamiento de imágenes, por los efectos visuales que logra.

Hay tres métodos principales de segmentación por color:

  • Umbralización, segmentación binaria por intensidad del píxel
  • basado en histograma, de cuyo análisis se identifican modas que se adoptan como color base para una categoría
  • de agrupamiento, que es un caso particular de segmentación basado en histograma, donde los rangos de color de cada categoría se determinan con un algoritmo de clustering, típicamente K-means.

Basados en histograma

Los métodos basados en el histograma son muy eficientes en comparación con otros métodos de segmentación de la imagen, ya que normalmente requieren solo una pasada por los pixeles. En esta técnica, un histograma se calcula a partir de todos los píxeles de la imagen, y los picos y valles en el histograma se utilizan para localizar los grupos en la imagen (el color o la intensidad pueden ser usados como medida). Un refinamiento de esta técnica consiste en aplicar de forma recursiva el método de búsqueda de histograma a los clusters de la imagen con el fin de dividirlos en grupos más pequeños. Esto se repite con las agrupaciones, cada vez más pequeños hasta que no se puedan formar más agrupaciones. Una desventaja del método de búsqueda de histograma es que puede ser difícil de identificar los picos y valles importantes en la imagen.

 
Imagen a segmentar

De agrupamiento (Clustering)

 
Segmentación en 16 grupos (clusters) de color, logrando un efecto de posterizado

El algoritmo de K-means es una técnica iterativa que se utiliza para dividir una imagen en K clusters. El algoritmo básico es:

  1. Escoger K centros de clusters, ya sea de forma aleatoria o basándose en algún método heurístico .
  2. Asignar a cada píxel de la imagen el clúster que minimiza la varianza entre el pixel y el centro del clúster.
  3. Recalcular los centros de los clusters haciendo la media de todos los pixeles del clúster.
  4. Repetir los pasos 2 y 3 hasta que se consigue la convergencia (por ejemplo, los pixeles no cambian de clusters).
 
Segmentación en dos grupos de color

En este caso, la varianza es la diferencia absoluta entre un píxel y el centro del clúster. La diferencia se basa típicamente en color, la intensidad, la textura, y la localización del pixel, o una combinación ponderada de estos factores. El número K se puede seleccionar manualmente, aleatoriamente, o por una heurística. Este algoritmo garantiza la convergencia, pero puede devolver una solución que no sea óptima. La calidad de la solución depende de la serie inicial de clusters y del valor de K. En estadística y aprendizaje automático, el algoritmo de las k-medias es un algoritmo de agrupamiento para dividir objetos en k grupos, donde k <n. Es similar al algoritmo de maximización de expectativas para las mezclas de gaussianas ya que ambos pretenden encontrar los centros de agrupaciones naturales de los datos. El modelo requiere que los atributos del objeto correspondan a los elementos de un espacio vectorial. El objetivo es intentar alcanzar la mínima varianza total entre clusters, o, la función de error al cuadrado. El algoritmo de las k-medias fue inventado en 1956. La forma más común del algoritmo usa una heurística de refinamiento conocido como el algoritmo de Lloyd. El algoritmo de Lloyd comienza dividiendo los puntos de entrada en k conjuntos iniciales, ya sea al azar o usando algunos datos heurísticos y a continuación, calcula el punto medio o centro de gravedad de cada conjunto. Se construye una nueva partición, asociando cada punto con el centro de gravedad más cercano. Luego se recalculan los baricentros es para los nuevos clusters, y el algoritmo se repite alternando la aplicación de estos dos pasos hasta que la converja, que se obtiene cuando los puntos ya no cambiar de cluster (o los centros de gravedad ya no se modifican). Los algoritmos de Lloyd y de las K-medias a menudo se utilizan como sinónimos, pero en realidad el algoritmo de Lloyd es una heurística para resolver el problema de las K-medias, como ocurre con ciertas combinaciones de puntos de partida y baricentros, el algoritmo de Lloyd puede converger a una solución incorrecta. Existen otras variantes, pero el algoritmo de Lloyd es el más popular, porque converge muy rápidamente. En cuanto al rendimiento, el algoritmo no garantiza que se devuelva un óptimo global. La calidad de la solución final depende en gran medida del conjunto inicial de clusters, y puede, en la práctica, ser mucho más pobre que el óptimo global. Dado que el algoritmo es extremadamente rápido, es un método común ejecutar el algoritmo varias veces y devolver las mejores agrupaciones obtenidas. Un inconveniente del algoritmo de las k-medias es que el número de clusters k es un parámetro de entrada. Una elección inadecuada de k puede dar malos resultados. El algoritmo también asume que la varianza es una medida adecuada de la dispersión del cluster.

Detección de bordes

La detección de bordes es un campo bien desarrollado por sí mismo en el procesamiento de imágenes. Los límites de regiones y los bordes están estrechamente relacionados, ya que a menudo hay un fuerte ajuste en la intensidad en los límites de las regiones. Las técnicas de detección de bordes pueden ser usadas como otra técnica de segmentación más. Los bordes identificados por la detección de bordes en ocasiones están desconectados. Para segmentar un objeto a partir de una imagen sin embargo, es necesario que los bordes formen figuras cerradas.

De crecimiento de regiones

El primer método de crecimiento de regiones fue el método de crecimiento de regiones a partir de semillas. Este método toma un conjunto de semillas como entrada junto con la imagen. Las semillas marcan cada uno de los objetos que tienen que ser segmentados. Las regiones crecen iterativamente mediante la comparación de todos los píxeles vecinos no asignados a ninguna región. La diferencia entre el valor de la intensidad de un pixel y el de la media de la región, δ, se utiliza como una medida de similitud. Cada pixel se asigna a la región con la que su diferencia con la media es menor, de esta forma todos los pixeles se asignan a sus respectivas regiones. Este proceso continúa hasta que todos los pixeles tienen asignada una región. El método de crecimiento de regiones por semillas requiere semillas como entrada adicional. Los resultados de la segmentación dependen de la elección de las semillas. El ruido en la imagen puede hacer que las semillas queden mal colocadas. El método de crecimiento de regiones sin semillas es un algoritmo modificado que no requiere semillas explícitas. Comienza con una única región A1 - el píxel elegido aquí no influyen significativamente en la segmentación final. En cada iteración se considera los píxeles vecinos de la misma manera que con el algoritmo anterior. Se diferencia del algoritmo el método de crecimiento de regiones a partir de semillas en que si el mínimo δ es menor que un umbral predefinido T entonces se agrega a la región respectiva Aj. Si no, entonces el píxel se considera significativamente diferente de todas las actuales regiones Ai y se crea una nueva región An + 1 con ese píxel. Una variante de esta técnica, propuesta por Haralick y Shapiro (1985), se basa en la intensidad de píxel. La media y la dispersión de una región y la intensidad del píxel candidato se utiliza para calcular un test estadístico. Si la prueba estadística es suficientemente pequeña, el píxel se añade a la región, y la media de la región y de dispersión se vuelven a calcular. De lo contrario, el píxel es rechazado, y se utiliza para formar una nueva región.

Del conjunto de nivel

La propagación de curvas es una técnica popular en el análisis de imágenes para la extracción de objetos, seguimiento de objetos, la reconstrucción en 3D, etc. La idea central de este enfoque consiste en desarrollar una curva hacia el menor potencial de una función de coste que en su definición refleja la tarea a la que está dirigida e impone ciertas limitaciones de suavidad. Las técnicas de Lagrange se basan en la parametrización del contorno de acuerdo con alguna estrategia de muestreo y luego desarrollar cada elemento de acuerdo a la imagen y sus condiciones internas. Si bien esta técnica puede ser muy eficiente, también sufre varias limitaciones, como decidir sobre la estrategia de muestreo, la estimación de las propiedades geométricas internas de la curva, el cambio de su topología, abordar los problemas de dimensiones superiores, etc. En cada caso, una ecuación en derivadas parciales llamada la ecuación del conjunto de nivel es resuelto por diferencia finita. El método del conjunto de nivel fue propuesto inicialmente para realizar un seguimiento de interfaces móviles por Osher y Sethian en 1988 y se ha diseminado a través de varios dominios de imágenes a finales de los noventa. Se puede utilizar para hacer frente de manera eficiente al problema de la propagación de la curva/superficie/etc. de una manera implícita. La idea central consiste en representar la evolución del contorno usando una función con signo, donde su nivel cero corresponde al contorno actual. Entonces, de acuerdo a la ecuación de movimiento de las curvas de nivel, se puede obtener fácilmente un flujo similar de la superficie implícita que cuando se aplica al nivel de cero reflejará la propagación del contorno. El método del conjunto de nivel tiene numerosas ventajas: es implícito, no tiene parámetros, ofrece una manera directa para estimar las propiedades geométricas de la estructura que evoluciona, puede cambiar la topología y es intrínseco. Además, pueden utilizarse para definir un marco de optimización como el propuesto por Zhao, Merriman y Osher en 1996. Por lo tanto, se puede concluir que es un marco muy conveniente para hacer frente a numerosas aplicaciones de visión artificial y análisis de imágenes médicas. Además, la investigación en varias estructuras de datos para representar los conjuntos de nivel ha dado lugar a implementaciones muy eficientes de este método.

De particionamiento gráfico

Los métodos de particionamiento gráfico se pueden usar con eficacia en la segmentación de imágenes. En estos métodos, la imagen se modela como un grafo ponderado no dirigido. Por lo general, un pixel o un grupo de pixeles se asocian con los nodos y los pesos de las aristas definen la similitud entre los píxeles vecinos. El gráfico (imagen) se divide de acuerdo a un criterio de diseño para modelar "bien" los clusters. Cada una de las particiones de nodos (pixeles) da como salida de estos algoritmos los objetos segmentados que hubiese en la imagen. Algunos algoritmos populares de esta categoría son cortes normalizados, camino aleatorio, el mínimo corte, particionamiento isoperimétrico y árboles de expansión mínima.

Basados en modelos

La hipótesis central de este enfoque es que las estructuras de interés tienen una forma geometría repetitiva. Por lo tanto, se puede buscar un modelo probabilístico para explicar la variación de la forma de la estructura y luego cuando se segmenta una imagen se imponen limitaciones para tomar la imagen como el modelo elegido a priori. Esta tarea implica:

  1. La selección de los ejemplos de entrenamiento (ejemplos que se usan para probar los modelos).
  2. La representación probabilística de la variación de los ejemplos seleccionados.
  3. La inferencia estadística entre el modelo y la imagen.

El estado del arte para la segmentación basada e en el conocimiento implica la forma activa y los modelos de apariencia, contornos activos y una plantilla deformable y métodos basados en niveles.

Segmentación multi-escala

Las segmentaciones de la imagen se calculan en múltiples escalas y a veces se propaga de gran escala a pequeña escala. Los criterios de segmentación pueden ser arbitrariamente complejos y se pueden tener en cuenta tanto criterios globales como locales. Un requisito común es que cada región debe estar conectada en algún sentido.

Segmentación jerárquica de señales unidimensionales

El trabajo de Witkin en el espacio escalar incluye la noción de que una señal unidimensional podría ser inequívocamente segmentado en regiones, con un parámetro de control de la escala de segmentación. Una observación clave es que los pases por cero de las derivadas segundas (mínimos y máximos de la primera derivada o pendiente) de las versiones multi-escala-alisadas de una señal forman un nido de árbol, que define las relaciones jerárquicas entre los segmentos a diferentes escalas. En concreto, la pendiente en los extremos a gran escala se refiere a las correspondientes características a pequeña escala. Cuando una pendiente máxima y otra mínima se cruzan entre sí en una escala mayor, los tres segmentos que se separaron se funden en un segmento, así se define la jerarquía de los segmentos mientras busca mantener los datos de manera jerárquica.

Segmentación de imágenes y el boceto original

Ha habido numerosos trabajos de investigación en esta área, de los cuales unos pocos han llegado a un estado en el que puede ser aplicado con la intervención manual interactivo (por lo general en aplicación de imágenes médicas) o totalmente automática. La siguiente es una breve reseña de algunas de las ideas principales ideas en las que se basan las investigaciones actuales. La estructura de anidación que Witkin describe es, sin embargo, específica para las señales de una sola dimensión y no es trivial la aplicación a las imágenes de dimensiones superiores. Sin embargo, esta idea general ha inspirado a algunos otros autores a investigar el paso de esquemas de grande escala a pequeña escala para la segmentación de imágenes. Koenderink propone el estudio de cómo la intensidad de iso-contornos evolucionan en escalas y este enfoque se investigó en mayor detalle por Lifshitz y Pizer. Lamentablemente, sin embargo, la intensidad de las características de la imagen cambia con las escalas, lo que implica que es difícil de rastrear las características de la imagen a gran escala a pequeña escalas utilizando la información de iso-intensidad. Lindeberg estudio el problema de vincular los extremos locales y los puntos de silla con las escalas, y propuso una representación de la imagen primitiva llamada el boceto a escala original que hace explícitas las relaciones entre las estructuras a escalas diferentes, y también que las características que la imagen son estables en grandes rangos de escala incluyendo las escalas apropiadas para ellas. Bergholm propuso para la detección de bordes a gran escala en escalas de espacio y después llevarlo a pequeña escala con la opción manual tanto de la detección a gran escala como a pequeña escala. Gauch y Pizer estudiaron el problema complementario de las crestas y los valles en múltiples escalas y desarrollarón una herramienta para la segmentación interactiva de imágenes basadas en escalas múltiples watershed. El uso de multi-escala watershed con aplicación al mapa de gradiente también ha sido investigado por Olsen y Nielsen y ha sido portada para el uso clínico por Dam Vincken et al. que propuso un hyperstack para definir las relaciones probabilísticas entre las estructuras de la imagen a diferentes escalas. El uso de estructuras estables de imagen sobre las escalas ha sido promovido por Ahuja y sus colaboradores en un sistema totalmente automatizado. Más recientemente, estas ideas para la segmentación de imágenes en múltiples escalas mediante la vinculación de las estructuras de la imagen con las escalas han sido recogidos por Florack y Kuijper. Bijaoui y Rue asociaron las estructuras detectadas en la escala espacial por encima de un umbral mínimo en un árbol de objetos que abarca múltiples escalas y se corresponde con un tipo de función en la señal original. Las características extraídas son exactamente reconstruida usando un método iterativo conjugado con de la matriz de gradiente.

Redes neuronales de segmentación

Las redes neuronales de segmentación se basan en el procesamiento de pequeñas áreas de una imagen utilizando una red neuronal artificial o un conjunto de redes neuronales. Después de este proceso de decisión se construye un mecanismo que marca las áreas de una imagen de acuerdo a la categoría reconocida por la red neuronal. Un tipo de red diseñada especialmente para esto es el mapa de Kohonen.

Las redes neuronales de parejas de pulsos (PCNNs) son modelos neuronales propuesto por modelos corteza visual de un gato y desarrollado para un alto rendimiento de procesamiento de imágenes biomiméticas. En 1989, Eckhorn presentó un modelo neuronal para emular el mecanismo de la corteza visual del gato. El modelo de Eckhorn proporciona una herramienta sencilla y eficaz para estudiar la corteza visual de mamíferos pequeños, y pronto fue reconocido por ser una aplicación con un gran potencial en el procesamiento de imágenes. En 1994, el modelo de Eckhorn fue adaptado para ser un algoritmo de procesamiento de imágenes por Johnson, quien calificó este algoritmo como Pulse-Coupled Neural Network. Aproximadamente desde el año 2000, PCNNs (por sus siglas en inglés) han sido utilizados para una variedad de aplicaciones de procesamiento de imagen, incluyendo: segmentación de imágenes, generación de características, generación de funciones, la extracción de rostros, detección de movimiento, detección de regiones en crecimiento, reducción de ruido, etc. Un PCNN es una red neuronal de dos dimensiones. Cada neurona en la red corresponde a un píxel en una imagen de entrada, recibiendo la información del color de su correspondiente pixel como un estímulo externo. Cada neurona se conecta con sus neuronas vecinas, recibiendo estímulos locales de ellas. Los estímulos externos y locales se combinan en un sistema de activación interna, que acumula los estímulos hasta que se excede un umbral dinámico, dando como resultado una salida de pulsos. A través de cálculos iterativos, las neuronas PCNN producen series temporales de impulsos de salidas. La serie temporal de impulsos de salidas contiene información de la imagen de entrada y puede ser utilizado para varias aplicaciones de procesamiento de imágenes, tales como la segmentación de la imagen y la generación de características. Comparado con los medios convencionales de procesamiento de imágenes, PCNNs tienen varias ventajas importantes, incluida la robustez frente al ruido, la independencia de las variaciones en los patrones geométricos de entrada, capacidad para pasar por pequeñas variaciones en los patrones de intensidad de entrada, etc.

Historia de las redes convolucionales de segmentación

En 2012 AlexNet, una red neuronal convolucional (Alex Krizhevsky, Geoffrey Hinton, and Ilya Sutskever) batió el récord de clasificación de ILSVRC, bajando el menor error alcanzado de 2011 de 25.8% a 16.4%, este hecho marco un antes y después para la clasificación de imágenes y la visión por computadora en general, puesto que inició una explosión de diferentes arquitecturas de redes convolucionales y métodos de aprendizaje profundo que en apenas 4 años bajaron el error a 3.57%. En 2014 GoogleNet (Google) y VGG (campeón y sub-campeón respectivamente) bajaron el error de AlexNet de 25.8% a 6.7% y 7.3% respectivamente, en 2015 ResNet (Microsoft) superó el estado del arte bajando el error a 3.57%. Un dato sorprendente es que ResNet no solo batió el récord de clasificación de imágenes, sino que batió al resto de algoritmos en 'Detección y Localización' y en 'Segmentación Semántica'.

El 14 de noviembre de 2014 es publicada FCN (Fully Convolutional Networks for Semantic Segmentation) una red que populariza el uso de redes convolucionales end-to-end para la segmentación semántica, la cual rehúsa redes pre-entrenadas como Imagenet y para el remuestreo usa capas de deconvolución, introduciendo conexiones puente entre en codificador y el decodificador para fusionar características más locales con características más semánticas.

Una observación muy importante hecha por los autores de FCN es que las capas totalmente conectadas pueden ser vistas como una convolución con filtros que cubren completamente la entrada, esto es equivalente a evaluar la red original de clasificación solapando ventanas, pero es más eficiente debido a que los cálculos son compartidos en las regiones donde se solapan las mismas.

Después de terminar la convolución en una red de Imagenet pre-entrenada como VGG, los mapas de características todavía necesitan ser ampliados debido a la reducción dimensional de las capas de agrupamiento (Pooling en la bibliografía). Envés de usar interpolación bilineal, las capas de deconvolución aprenden la interpolación. No obstante, a esto, la capas de deconvolución aún producen segmentaciones erróneas debido a la pérdida de información que producen las capas de agrupamiento, por esta razón se introducen conexiones puente para obtener mejores resultados.

El 2 de septiembre de 2015 es publicada SegNet (A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation) en donde a diferencia de FCN los índices del agrupamiento son transferidos del codificador al decodificador para mejorar la resolución de la segmentación. SegNet introduce más conexiones puente que FCN, y envés de pasar las características extraídas por el codificador lo que se transfiere son los índices de agrupamiento realizados por las capas de agrupamiento, esto hace que SegNet sea más eficiente que FCN, sin embargo, sus resultados son mucho peores.

SegNet y FCN son 2 de las primeras arquitecturas codificador-decodificador, sin embargo, en el estado actual del arte SegNet no es recomendado para ningún modelo de producción.

Las convoluciones dilatadas comienzan a ser utilizadas a partir de 2015. En noviembre de 2015 se publica “Multi-Scale Context Aggregation by Dilated Convolutions” que usa convoluciones dilatadas para la predicción densa, proponiendo un módulo de contexto que usa convoluciones dilatadas para la agregación a múltiples escalas.

Las capas de agrupamiento ayudan en las redes de clasificación debido a que aumentan los campos receptivos, pero esto no es lo mejor para la segmentación debido a la pérdida de resolución, para ello las convoluciones dilatadas permiten el crecimiento del campo de visión sin tener que reducir la dimensión espacial. En esta arquitectura basada en la red convolucional VGG16 las 2 últimas capas de agrupamiento son eliminadas y las convoluciones subsecuentes son remplazadas por capas de deconvolución. Particularmente, las convoluciones entre las capas de agrupamiento 3 y 4 tienen dilatación 2 y después de la capa pool de agrupamiento 4 tienen dilatación 4. Con este módulo (llamado módulo front-end en este artículo) la predicción densa es obtenida sin incrementar el número de parámetros. Un módulo llamado “módulo de contexto”, es entrenado de forma separada con la salida del módulo front-end. Este módulo es una dilatación en cascada de diferentes valores de dilatación, de esta forma el contexto en múltiples escalas es agregado y las predicciones son mejoradas.

DeepLab (versión 1 y 2) salen a la luz en los artículos “Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs” en diciembre de 2014 y “DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs” en junio de 2016 respectivamente, estos modelos usan convoluciones dilatadas, proponen una pirámide de dilatación espacial (ASPP) y usan CRFs totalmente conectados para el post-procesamiento.

Las convoluciones dilatadas incrementan el campo de visión sin tener que incrementar la cantidad de parámetros. El procesamiento multi-escala es realizado pasando diferentes escalas de la imagen original a redes convolucionales en paralelo (Pirámide de imágenes) y/o usando diferentes tipos de dilataciones (ASPP). La predicción es realizada por el CRF, que es entrenado/afinado por separado como una etapa de post-procesamiento.

RefineNet de “Multi-Path Refinement Networks for High-Resolution Semantic Segmentation” publicada en noviembre de 2016 propone que todas las componentes sigan un diseño de conexiones residuales. Las convoluciones dilatadas a pesar de sus virtudes poseen una alta complejidad computacional, lo que la hacen muy costosas y necesitan una gran cantidad de memoria. En este artículo se propone una arquitectura codificador-decodificar. El codificador está conformado por bloques de ResNet-101. El decodificador tiene bloques de refinamiento que concatenan/fusionan características extraídas por el codificador y características de mejor resolución extraídas de un bloque de refinamiento previamente calculado. Cada bloque de refinamiento tiene una componente para fusionar características en diferentes resoluciones haciendo remuestreo a la de menor resolución y una componente para capturar el contexto basado en repetidas capas agrupamiento de 5x5 con desplazamiento (stride) 1, cada una de esas componentes siguen un diseño de conexiones residuales.

En diciembre de 2016 PSPNet “Pyramid Scene Parsing Network” propone un módulo de agrupamiento en pirámide para agregar el contexto. Las características globales de la imagen importan debido a que dan pistas acerca de la distribución de las clases segmentadas. El módulo de agrupamiento en pirámide permite capturar esta información aplicando grandes filtros en las capas de agrupamiento. Esta arquitectura usa convoluciones dilatadas para modificar ResNet, el módulo de agrupamiento en pirámide concatena los mapas de características de ResNet con características ampliadas de una capa de agrupamiento en paralelo con filtros que cubren toda, la mitad y pequeñas porciones de la imagen.

Usar filtros de gran tamaño es muy conveniente sin embargo muy costosos o impracticables, sin embargo “Large Kernel Matters -- Improve Semantic Segmentation by Global Convolutional Network” publicado en marzo de 2017 propone una arquitectura codificador-decodificador con convoluciones de grandes kernels. La segmentación semántica requiere tanto segmentación como la clasificación de los objetos segmentados. Debido a que las capas totalmente conectadas son impracticables, esta arquitectura propone utilizar convoluciones de grandes kernels. Otra razón para esto, es que a pesar de que redes de gran profundidad como ResNet tienen un alto campo de visión, la red tiende a obtener información de una región más pequeña (campo receptivo valido).

Los filtros de gran tamaño son computacionalmente muy costosos y tienen una gran cantidad de parámetros, es por esto que esta arquitectura se basa en la idea de que una convolución de kxk es aproximadamente la suma de convoluciones de 1xk + kx1 y de kx1 + 1xk. Este módulo es llamado Global Convolutional Network (GCN). Esta arquitectura usa ResNet sin ninguna dilatación para el codificador, mientras que GCNs y deconvoluciones para el decodificador. Un bloque residual llamado Boundary Refinement es usado también en esta última tarea.

La versión 3 de DeepLab es publicada en junio de 2017 en “Rethinking Atrous Convolution for Semantic Image Segmentation”, mejorando la pirámide de convoluciones dilatadas (ASPP) propuesta en las versiones anteriores. En esta arquitectura ResNet es modificada para usar convoluciones dilatadas como lo hacía DeepLab2. La mejora de ASPP tiene que ver con la concatenación de diferentes niveles de características extraídas de imágenes, usando convoluciones de 1x1 y 3 convoluciones dilatadas de 3x3 con diferentes valores de dilatación. Se aplica normalización de batch después de cada capa convolucional en paralelo. El módulo en cascada es un bloque ResNet excepto porque las componentes de convoluciones son sustituidas por convoluciones dilatadas. En esta arquitectura no se usan CRFs y mejora los resultados obtenidos con DeepLab2, los autores reflejan que la mejora viene dada por la normalización del batch y por la mejor forma de codificar el contexto a múltiples escalas.

Aplicaciones

La segmentación es un problema general de la visión artificial y se suele usar como etapa en un proceso más complejo. No obstante muchas veces la segmentación da respuesta a una necesidad concreta y deriva en aplicaciones finales, como las siguientes:

  • Procesamiento de imágenes
    • Recortando objetos
    • Posterizando colores
  • Pruebas médicas
    • Localización de tumores y otras patologías
    • Medida de volúmenes de tejido
  • Localización de objetos en imágenes de satélite (teledetección)
    • Medición de superficies construidas, sobre fotos satelitales

Software de código abierto

Existen varios paquetes de software de código abierto para realizar la segmentación de imágenes.

  • ITK - Kit de herramientas de segmentación.
  • ITK-SNAP - es una interfaz gráfica que combina segmentación manual y semiautomática, con conjuntos de nivel.
  • GIMP que incluye entre otras herramientas SIOX.
  • VXL.
  • ImageMagick.
  • MITK - tiene un módulo para la segmentación manual.
  • OpenCV - es una librería de visión artificial originalmente desarrollada por Intel.
  • GRASS GIS tiene el módulo i.smap para la segmentación de imágenes.
  • Fiji – es un paquete de procesamiento de imágenes que incluye varios plug-ins de segmentación.

También hay paquetes de software disponible de forma gratuita para fines académicos:

  • GemIdent
  •   Datos: Q56933
  •   Multimedia: Image segmentation

segmentación, procesamiento, imágenes, segmentación, problemas, generales, campo, visión, artificial, consiste, dividir, imagen, digital, varias, regiones, grupos, píxeles, denominadas, segmentos, más, concretamente, segmentación, proceso, clasificación, píxel. La segmentacion es uno de los problemas generales del campo de la vision artificial y consiste en dividir una imagen digital en varias regiones grupos de pixeles denominadas segmentos Mas concretamente la segmentacion es un proceso de clasificacion por pixel que asigna una categoria a cada pixel de la imagen analizada Este problema general se divide en problemas especializados dando lugar por ejemplo a segmentacion por color segmentacion por texturas superpixel segmentacion semanticaCada problema especializado le otorga un significado propio a las categorias que se usan en la clasificacion de los pixeles Uno de los casos mas elementales de segmentacion es la umbralizacion un tipo particular de segmentacion por color con solo dos categorias claro y oscuro Cada pixel se clasifica como claro u oscuro comparando su intensidad con una intensidad de referencia dada denominada umbral Por otro lado uno de los casos mas sofisticados es la segmentacion semantica que clasifica objetos diversos Mask R CNN es un segmentador semantico que clasifica 90 categorias del dataset COCO reconociendo personas vehiculos vegetacion calle vereda edificios y demas elementos tipicos en escenas urbanas El objetivo de la segmentacion es localizar regiones con significado La segmentacion se usa tanto para localizar objetos como para encontrar sus bordes dentro de una imagen El resultado de la segmentacion de una imagen es un conjunto de segmentos que cubren toda la imagen sin superponerse Se puede representar como una imagen de etiquetas una etiqueta para cada pixel o como un conjunto de contornos Indice 1 Elementos y proceso de segmentacion 1 1 Glosario 2 Taxonomia 2 1 Segmentacion binaria 2 2 Segmentacion asistida o semiautomatica 2 2 1 Watershed 2 2 2 GrabCut 2 2 3 Metodos interactivos 2 3 Segmentacion basada en aprendizaje profundo 3 Metodos 3 1 Segmentacion del color 3 1 1 Basados en histograma 3 2 De agrupamiento Clustering 3 2 1 Deteccion de bordes 3 3 De crecimiento de regiones 3 4 Del conjunto de nivel 3 5 De particionamiento grafico 3 6 Basados en modelos 3 7 Segmentacion multi escala 3 7 1 Segmentacion jerarquica de senales unidimensionales 3 7 2 Segmentacion de imagenes y el boceto original 3 8 Redes neuronales de segmentacion 4 Historia de las redes convolucionales de segmentacion 5 Aplicaciones 6 Software de codigo abiertoElementos y proceso de segmentacion EditarCada algoritmo de segmentacion discrimina una determinada cantidad de clases o categorias y a cada categoria le asigna una etiqueta o identificador un valor entero que el algoritmo usa para expresar esa categoria La minima clasificacion posible es la que discrimina dos categorias es un caso frecuente y se la denomina segmentacion binaria Todos los algoritmos de segmentacion operan sobre una imagen tipicamente a color o en blanco y negro y generan otra imagen artificial del mismo tamano que la analizada en la que cada pixel expresa una etiqueta Las regiones formadas por pixeles vecinos con la misma etiqueta se denomina segmento Los segmentos se pueden interpretar como piezas de un rompecabezas no se superponen y entre todos cubren la imagen completa La imagen resultante de una segmentacion esta preparada para ser consumida computacionalmente pero no para ser visualizada Para presentar a un usuario el resultado de una segmentacion es necesaria una etapa de visualizacion que asigna colores facilmente discernibles a cada etiqueta Alternativamente en lugar de usar una imagen de etiquetas el resultado de una segmentacion se pueden representar mediante contornos lineas cerradas de formas arbitrarias que senalan los bordes de los segmentos Glosario Editar La segmentacion de imagenes utiliza jerga de vision artificial y de aprendizaje automatico que se resume a continuacion etiqueta numero entero que identifica una categoria segmento grupo de pixeles conectados vecinos con una misma categoria segmentacion proceso que produce una imagen de etiquetas asignando una etiqueta para cada pixel de la imagen originalTaxonomia EditarLos diversos metodos de segmentacion se clasifican de varias maneras Segmentacion binaria la que distingue solo dos categorias las que no son binarias se denominan segmentacion multiple Segmentacion asistida o semiautomatica algoritmos que requieren anotaciones previas senalando regiones a analizar o a distinguir una persona suele hacer anotaciones marcando zonas sobre la imagen en algunos casos es posible automatizar estas anotaciones haciendo uso de otros algoritmos de vision artificial Segmentacion semantica distingue categorias de alto nivel significante usualmente objetos Segmentacion instanciada distingue individuos de la misma categoria Segmentacion panoptica combinacion de la segmentacion semantica e instanciada reconociendo individuos de varias categorias Segmentacion basada en modelos de aprendizaje profundo deep learning Segmentacion binaria por umbralizacion con umbral automatico Segmentacion binaria Editar Los segmentadores binarios son los que tienen solo dos categorias usualmente denominadas frente y fondo Su uso principal es el de extraer un segmento con el objeto buscado La umbralizacion es la segmentacion mas basica y simple es un ejemplo de segmentacion binaria Opera sobre cada pixel de manera independiente clasificandolos por su intensidad comparada con un umbral dado si es mas claro corresponde al frente si no al fondo 3 metodos de segmentacion asistida Los metodos de izquierda y derecha requieren que el usuario indique con verde algunos de los pixeles incluidos en el objeto a segmentar y con azul algunos de los pixeles que no se deben incluir El metodo del medio requiere indicar con un recuadro rojo el objeto a segmentar Segmentacion asistida o semiautomatica Editar Estos metodos requieren que el usuario aporte indicaciones sobre la region de la imagen a segmentar Los mayores exponentes de este tipo de segmentacion son el algoritmo Watershed cuyo concepto se remonta a 1979 y GrabCut de 2004 Watershed Editar Requiere que se le asignen etiquetas a algunos pixeles a los que se denominan semillas el algoritmo amplia paulatinamente la region a partir de ellas buscando los bordes entre segmentos Si el resultado no es el esperado el usuario debe aumentar la cantidad de marcas especialmente en la zona que se debe cambiar GrabCut Editar Es un algoritmo mas moderno pero anterior a las redes convolucionales Es un segmentador binario que intenta capturar el objeto dominante en la imagen Requiere que el usuario recuadre el objeto la zona fuera del recuadro se toma como semilla del segmento de fondo Metodos interactivos Editar Livewire es una tecnica interactiva que traza el borde del segmento a partir de puntos indicados por el usuario SImple iterative object extraction es una tecnica ampliamente adoptada y mas avanzada que la anterior de 2006 y de codigo abierto Segmentacion basada en aprendizaje profundo EditarLa introduccion de las redes convolucionales CNN convolutional neural networks en la vision artificial fue un gran hito en 2012 que abrio un campo de investigacion intensiva con resultados sorprendentes La rapida evolucion de las CNN llego al campo de la segmentacion dando un salto cualitativo en 2015 de la mano de FCN SegNet y ResNet marcando un antes y un despues practicamente todos los algoritmos de segmentacion posteriores a 2015 estan basados en CNN y resuelven problemas complejos y de alto nivel como la segmentacion semantica instanciada y panoptica dejando obsoletos a sus predecesores Por este motivo los anteriores a 2015 son calificados como clasicos y solo sobrevivieron a la obsolescencia los dedicados a segmentaciones de bajo nivel como la umbralizacion o la segmentacion por color y algunas notables excepciones como GrabCut y Watershed Segmentacion semantica distinguiendo 4 categorias muneco de peluche rosa vaso y fondo El estado del arte en 2018 estuvo dado por el modelo Mask R CNN segmentador semantico e instanciado entrenado sobre el dataset COCO que distingue 90 categorias de objetos comunes Metodos EditarExisten innumerables algoritmos de segmentacion y se crean nuevos cada dia muchos de ellos altamente especializados A continuacion se indican algunos algoritmos famosos y luego se describen diversas tecnicas de segmentacion Umbralizacion thresholding Watershed GrabCut Livewire SImple iterative object extractionMask R CNNSegmentacion del color Editar Consiste en clasificar pixeles exclusivamente por su color La umbralizacion pertenece a esta categoria y salvo esta excepcion la segmentacion por color no tiene particular relevancia en problemas de vision artificial pero si lo tiene en procesamiento de imagenes por los efectos visuales que logra Hay tres metodos principales de segmentacion por color Umbralizacion segmentacion binaria por intensidad del pixel basado en histograma de cuyo analisis se identifican modas que se adoptan como color base para una categoria de agrupamiento que es un caso particular de segmentacion basado en histograma donde los rangos de color de cada categoria se determinan con un algoritmo de clustering tipicamente K means Basados en histograma Editar Los metodos basados en el histograma son muy eficientes en comparacion con otros metodos de segmentacion de la imagen ya que normalmente requieren solo una pasada por los pixeles En esta tecnica un histograma se calcula a partir de todos los pixeles de la imagen y los picos y valles en el histograma se utilizan para localizar los grupos en la imagen el color o la intensidad pueden ser usados como medida Un refinamiento de esta tecnica consiste en aplicar de forma recursiva el metodo de busqueda de histograma a los clusters de la imagen con el fin de dividirlos en grupos mas pequenos Esto se repite con las agrupaciones cada vez mas pequenos hasta que no se puedan formar mas agrupaciones Una desventaja del metodo de busqueda de histograma es que puede ser dificil de identificar los picos y valles importantes en la imagen Imagen a segmentar De agrupamiento Clustering Editar Segmentacion en 16 grupos clusters de color logrando un efecto de posterizado El algoritmo de K means es una tecnica iterativa que se utiliza para dividir una imagen en K clusters El algoritmo basico es Escoger K centros de clusters ya sea de forma aleatoria o basandose en algun metodo heuristico Asignar a cada pixel de la imagen el cluster que minimiza la varianza entre el pixel y el centro del cluster Recalcular los centros de los clusters haciendo la media de todos los pixeles del cluster Repetir los pasos 2 y 3 hasta que se consigue la convergencia por ejemplo los pixeles no cambian de clusters Segmentacion en dos grupos de color En este caso la varianza es la diferencia absoluta entre un pixel y el centro del cluster La diferencia se basa tipicamente en color la intensidad la textura y la localizacion del pixel o una combinacion ponderada de estos factores El numero K se puede seleccionar manualmente aleatoriamente o por una heuristica Este algoritmo garantiza la convergencia pero puede devolver una solucion que no sea optima La calidad de la solucion depende de la serie inicial de clusters y del valor de K En estadistica y aprendizaje automatico el algoritmo de las k medias es un algoritmo de agrupamiento para dividir objetos en k grupos donde k lt n Es similar al algoritmo de maximizacion de expectativas para las mezclas de gaussianas ya que ambos pretenden encontrar los centros de agrupaciones naturales de los datos El modelo requiere que los atributos del objeto correspondan a los elementos de un espacio vectorial El objetivo es intentar alcanzar la minima varianza total entre clusters o la funcion de error al cuadrado El algoritmo de las k medias fue inventado en 1956 La forma mas comun del algoritmo usa una heuristica de refinamiento conocido como el algoritmo de Lloyd El algoritmo de Lloyd comienza dividiendo los puntos de entrada en k conjuntos iniciales ya sea al azar o usando algunos datos heuristicos y a continuacion calcula el punto medio o centro de gravedad de cada conjunto Se construye una nueva particion asociando cada punto con el centro de gravedad mas cercano Luego se recalculan los baricentros es para los nuevos clusters y el algoritmo se repite alternando la aplicacion de estos dos pasos hasta que la converja que se obtiene cuando los puntos ya no cambiar de cluster o los centros de gravedad ya no se modifican Los algoritmos de Lloyd y de las K medias a menudo se utilizan como sinonimos pero en realidad el algoritmo de Lloyd es una heuristica para resolver el problema de las K medias como ocurre con ciertas combinaciones de puntos de partida y baricentros el algoritmo de Lloyd puede converger a una solucion incorrecta Existen otras variantes pero el algoritmo de Lloyd es el mas popular porque converge muy rapidamente En cuanto al rendimiento el algoritmo no garantiza que se devuelva un optimo global La calidad de la solucion final depende en gran medida del conjunto inicial de clusters y puede en la practica ser mucho mas pobre que el optimo global Dado que el algoritmo es extremadamente rapido es un metodo comun ejecutar el algoritmo varias veces y devolver las mejores agrupaciones obtenidas Un inconveniente del algoritmo de las k medias es que el numero de clusters k es un parametro de entrada Una eleccion inadecuada de k puede dar malos resultados El algoritmo tambien asume que la varianza es una medida adecuada de la dispersion del cluster Demostracion del algoritmo estandar 1 Se selecionan k puntos de la imagen 3 en este caso los mostrados en color 2 Se crean k clusters a partir de los puntos anteriores 3 El centro de gravedad de cada uno de los grupos k se convierte en el nuevo medio 4 Los pasos 2 y 3 se repiten hasta que se alcance la convergencia Deteccion de bordes Editar La deteccion de bordes es un campo bien desarrollado por si mismo en el procesamiento de imagenes Los limites de regiones y los bordes estan estrechamente relacionados ya que a menudo hay un fuerte ajuste en la intensidad en los limites de las regiones Las tecnicas de deteccion de bordes pueden ser usadas como otra tecnica de segmentacion mas Los bordes identificados por la deteccion de bordes en ocasiones estan desconectados Para segmentar un objeto a partir de una imagen sin embargo es necesario que los bordes formen figuras cerradas De crecimiento de regiones Editar El primer metodo de crecimiento de regiones fue el metodo de crecimiento de regiones a partir de semillas Este metodo toma un conjunto de semillas como entrada junto con la imagen Las semillas marcan cada uno de los objetos que tienen que ser segmentados Las regiones crecen iterativamente mediante la comparacion de todos los pixeles vecinos no asignados a ninguna region La diferencia entre el valor de la intensidad de un pixel y el de la media de la region d se utiliza como una medida de similitud Cada pixel se asigna a la region con la que su diferencia con la media es menor de esta forma todos los pixeles se asignan a sus respectivas regiones Este proceso continua hasta que todos los pixeles tienen asignada una region El metodo de crecimiento de regiones por semillas requiere semillas como entrada adicional Los resultados de la segmentacion dependen de la eleccion de las semillas El ruido en la imagen puede hacer que las semillas queden mal colocadas El metodo de crecimiento de regiones sin semillas es un algoritmo modificado que no requiere semillas explicitas Comienza con una unica region A1 el pixel elegido aqui no influyen significativamente en la segmentacion final En cada iteracion se considera los pixeles vecinos de la misma manera que con el algoritmo anterior Se diferencia del algoritmo el metodo de crecimiento de regiones a partir de semillas en que si el minimo d es menor que un umbral predefinido T entonces se agrega a la region respectiva Aj Si no entonces el pixel se considera significativamente diferente de todas las actuales regiones Ai y se crea una nueva region An 1 con ese pixel Una variante de esta tecnica propuesta por Haralick y Shapiro 1985 se basa en la intensidad de pixel La media y la dispersion de una region y la intensidad del pixel candidato se utiliza para calcular un test estadistico Si la prueba estadistica es suficientemente pequena el pixel se anade a la region y la media de la region y de dispersion se vuelven a calcular De lo contrario el pixel es rechazado y se utiliza para formar una nueva region Del conjunto de nivel Editar La propagacion de curvas es una tecnica popular en el analisis de imagenes para la extraccion de objetos seguimiento de objetos la reconstruccion en 3D etc La idea central de este enfoque consiste en desarrollar una curva hacia el menor potencial de una funcion de coste que en su definicion refleja la tarea a la que esta dirigida e impone ciertas limitaciones de suavidad Las tecnicas de Lagrange se basan en la parametrizacion del contorno de acuerdo con alguna estrategia de muestreo y luego desarrollar cada elemento de acuerdo a la imagen y sus condiciones internas Si bien esta tecnica puede ser muy eficiente tambien sufre varias limitaciones como decidir sobre la estrategia de muestreo la estimacion de las propiedades geometricas internas de la curva el cambio de su topologia abordar los problemas de dimensiones superiores etc En cada caso una ecuacion en derivadas parciales llamada la ecuacion del conjunto de nivel es resuelto por diferencia finita El metodo del conjunto de nivel fue propuesto inicialmente para realizar un seguimiento de interfaces moviles por Osher y Sethian en 1988 y se ha diseminado a traves de varios dominios de imagenes a finales de los noventa Se puede utilizar para hacer frente de manera eficiente al problema de la propagacion de la curva superficie etc de una manera implicita La idea central consiste en representar la evolucion del contorno usando una funcion con signo donde su nivel cero corresponde al contorno actual Entonces de acuerdo a la ecuacion de movimiento de las curvas de nivel se puede obtener facilmente un flujo similar de la superficie implicita que cuando se aplica al nivel de cero reflejara la propagacion del contorno El metodo del conjunto de nivel tiene numerosas ventajas es implicito no tiene parametros ofrece una manera directa para estimar las propiedades geometricas de la estructura que evoluciona puede cambiar la topologia y es intrinseco Ademas pueden utilizarse para definir un marco de optimizacion como el propuesto por Zhao Merriman y Osher en 1996 Por lo tanto se puede concluir que es un marco muy conveniente para hacer frente a numerosas aplicaciones de vision artificial y analisis de imagenes medicas Ademas la investigacion en varias estructuras de datos para representar los conjuntos de nivel ha dado lugar a implementaciones muy eficientes de este metodo De particionamiento grafico Editar Los metodos de particionamiento grafico se pueden usar con eficacia en la segmentacion de imagenes En estos metodos la imagen se modela como un grafo ponderado no dirigido Por lo general un pixel o un grupo de pixeles se asocian con los nodos y los pesos de las aristas definen la similitud entre los pixeles vecinos El grafico imagen se divide de acuerdo a un criterio de diseno para modelar bien los clusters Cada una de las particiones de nodos pixeles da como salida de estos algoritmos los objetos segmentados que hubiese en la imagen Algunos algoritmos populares de esta categoria son cortes normalizados camino aleatorio el minimo corte particionamiento isoperimetrico y arboles de expansion minima Basados en modelos Editar La hipotesis central de este enfoque es que las estructuras de interes tienen una forma geometria repetitiva Por lo tanto se puede buscar un modelo probabilistico para explicar la variacion de la forma de la estructura y luego cuando se segmenta una imagen se imponen limitaciones para tomar la imagen como el modelo elegido a priori Esta tarea implica La seleccion de los ejemplos de entrenamiento ejemplos que se usan para probar los modelos La representacion probabilistica de la variacion de los ejemplos seleccionados La inferencia estadistica entre el modelo y la imagen El estado del arte para la segmentacion basada e en el conocimiento implica la forma activa y los modelos de apariencia contornos activos y una plantilla deformable y metodos basados en niveles Segmentacion multi escala Editar Las segmentaciones de la imagen se calculan en multiples escalas y a veces se propaga de gran escala a pequena escala Los criterios de segmentacion pueden ser arbitrariamente complejos y se pueden tener en cuenta tanto criterios globales como locales Un requisito comun es que cada region debe estar conectada en algun sentido Segmentacion jerarquica de senales unidimensionales Editar El trabajo de Witkin en el espacio escalar incluye la nocion de que una senal unidimensional podria ser inequivocamente segmentado en regiones con un parametro de control de la escala de segmentacion Una observacion clave es que los pases por cero de las derivadas segundas minimos y maximos de la primera derivada o pendiente de las versiones multi escala alisadas de una senal forman un nido de arbol que define las relaciones jerarquicas entre los segmentos a diferentes escalas En concreto la pendiente en los extremos a gran escala se refiere a las correspondientes caracteristicas a pequena escala Cuando una pendiente maxima y otra minima se cruzan entre si en una escala mayor los tres segmentos que se separaron se funden en un segmento asi se define la jerarquia de los segmentos mientras busca mantener los datos de manera jerarquica Segmentacion de imagenes y el boceto original Editar Ha habido numerosos trabajos de investigacion en esta area de los cuales unos pocos han llegado a un estado en el que puede ser aplicado con la intervencion manual interactivo por lo general en aplicacion de imagenes medicas o totalmente automatica La siguiente es una breve resena de algunas de las ideas principales ideas en las que se basan las investigaciones actuales La estructura de anidacion que Witkin describe es sin embargo especifica para las senales de una sola dimension y no es trivial la aplicacion a las imagenes de dimensiones superiores Sin embargo esta idea general ha inspirado a algunos otros autores a investigar el paso de esquemas de grande escala a pequena escala para la segmentacion de imagenes Koenderink propone el estudio de como la intensidad de iso contornos evolucionan en escalas y este enfoque se investigo en mayor detalle por Lifshitz y Pizer Lamentablemente sin embargo la intensidad de las caracteristicas de la imagen cambia con las escalas lo que implica que es dificil de rastrear las caracteristicas de la imagen a gran escala a pequena escalas utilizando la informacion de iso intensidad Lindeberg estudio el problema de vincular los extremos locales y los puntos de silla con las escalas y propuso una representacion de la imagen primitiva llamada el boceto a escala original que hace explicitas las relaciones entre las estructuras a escalas diferentes y tambien que las caracteristicas que la imagen son estables en grandes rangos de escala incluyendo las escalas apropiadas para ellas Bergholm propuso para la deteccion de bordes a gran escala en escalas de espacio y despues llevarlo a pequena escala con la opcion manual tanto de la deteccion a gran escala como a pequena escala Gauch y Pizer estudiaron el problema complementario de las crestas y los valles en multiples escalas y desarrollaron una herramienta para la segmentacion interactiva de imagenes basadas en escalas multiples watershed El uso de multi escala watershed con aplicacion al mapa de gradiente tambien ha sido investigado por Olsen y Nielsen y ha sido portada para el uso clinico por Dam Vincken et al que propuso un hyperstack para definir las relaciones probabilisticas entre las estructuras de la imagen a diferentes escalas El uso de estructuras estables de imagen sobre las escalas ha sido promovido por Ahuja y sus colaboradores en un sistema totalmente automatizado Mas recientemente estas ideas para la segmentacion de imagenes en multiples escalas mediante la vinculacion de las estructuras de la imagen con las escalas han sido recogidos por Florack y Kuijper Bijaoui y Rue asociaron las estructuras detectadas en la escala espacial por encima de un umbral minimo en un arbol de objetos que abarca multiples escalas y se corresponde con un tipo de funcion en la senal original Las caracteristicas extraidas son exactamente reconstruida usando un metodo iterativo conjugado con de la matriz de gradiente Redes neuronales de segmentacion Editar Las redes neuronales de segmentacion se basan en el procesamiento de pequenas areas de una imagen utilizando una red neuronal artificial o un conjunto de redes neuronales Despues de este proceso de decision se construye un mecanismo que marca las areas de una imagen de acuerdo a la categoria reconocida por la red neuronal Un tipo de red disenada especialmente para esto es el mapa de Kohonen Las redes neuronales de parejas de pulsos PCNNs son modelos neuronales propuesto por modelos corteza visual de un gato y desarrollado para un alto rendimiento de procesamiento de imagenes biomimeticas En 1989 Eckhorn presento un modelo neuronal para emular el mecanismo de la corteza visual del gato El modelo de Eckhorn proporciona una herramienta sencilla y eficaz para estudiar la corteza visual de mamiferos pequenos y pronto fue reconocido por ser una aplicacion con un gran potencial en el procesamiento de imagenes En 1994 el modelo de Eckhorn fue adaptado para ser un algoritmo de procesamiento de imagenes por Johnson quien califico este algoritmo como Pulse Coupled Neural Network Aproximadamente desde el ano 2000 PCNNs por sus siglas en ingles han sido utilizados para una variedad de aplicaciones de procesamiento de imagen incluyendo segmentacion de imagenes generacion de caracteristicas generacion de funciones la extraccion de rostros deteccion de movimiento deteccion de regiones en crecimiento reduccion de ruido etc Un PCNN es una red neuronal de dos dimensiones Cada neurona en la red corresponde a un pixel en una imagen de entrada recibiendo la informacion del color de su correspondiente pixel como un estimulo externo Cada neurona se conecta con sus neuronas vecinas recibiendo estimulos locales de ellas Los estimulos externos y locales se combinan en un sistema de activacion interna que acumula los estimulos hasta que se excede un umbral dinamico dando como resultado una salida de pulsos A traves de calculos iterativos las neuronas PCNN producen series temporales de impulsos de salidas La serie temporal de impulsos de salidas contiene informacion de la imagen de entrada y puede ser utilizado para varias aplicaciones de procesamiento de imagenes tales como la segmentacion de la imagen y la generacion de caracteristicas Comparado con los medios convencionales de procesamiento de imagenes PCNNs tienen varias ventajas importantes incluida la robustez frente al ruido la independencia de las variaciones en los patrones geometricos de entrada capacidad para pasar por pequenas variaciones en los patrones de intensidad de entrada etc Historia de las redes convolucionales de segmentacion EditarEn 2012 AlexNet una red neuronal convolucional Alex Krizhevsky Geoffrey Hinton and Ilya Sutskever batio el record de clasificacion de ILSVRC bajando el menor error alcanzado de 2011 de 25 8 a 16 4 este hecho marco un antes y despues para la clasificacion de imagenes y la vision por computadora en general puesto que inicio una explosion de diferentes arquitecturas de redes convolucionales y metodos de aprendizaje profundo que en apenas 4 anos bajaron el error a 3 57 En 2014 GoogleNet Google y VGG campeon y sub campeon respectivamente bajaron el error de AlexNet de 25 8 a 6 7 y 7 3 respectivamente en 2015 ResNet Microsoft supero el estado del arte bajando el error a 3 57 Un dato sorprendente es que ResNet no solo batio el record de clasificacion de imagenes sino que batio al resto de algoritmos en Deteccion y Localizacion y en Segmentacion Semantica El 14 de noviembre de 2014 es publicada FCN Fully Convolutional Networks for Semantic Segmentation una red que populariza el uso de redes convolucionales end to end para la segmentacion semantica la cual rehusa redes pre entrenadas como Imagenet y para el remuestreo usa capas de deconvolucion introduciendo conexiones puente entre en codificador y el decodificador para fusionar caracteristicas mas locales con caracteristicas mas semanticas Una observacion muy importante hecha por los autores de FCN es que las capas totalmente conectadas pueden ser vistas como una convolucion con filtros que cubren completamente la entrada esto es equivalente a evaluar la red original de clasificacion solapando ventanas pero es mas eficiente debido a que los calculos son compartidos en las regiones donde se solapan las mismas Despues de terminar la convolucion en una red de Imagenet pre entrenada como VGG los mapas de caracteristicas todavia necesitan ser ampliados debido a la reduccion dimensional de las capas de agrupamiento Pooling en la bibliografia Enves de usar interpolacion bilineal las capas de deconvolucion aprenden la interpolacion No obstante a esto la capas de deconvolucion aun producen segmentaciones erroneas debido a la perdida de informacion que producen las capas de agrupamiento por esta razon se introducen conexiones puente para obtener mejores resultados El 2 de septiembre de 2015 es publicada SegNet A Deep Convolutional Encoder Decoder Architecture for Image Segmentation en donde a diferencia de FCN los indices del agrupamiento son transferidos del codificador al decodificador para mejorar la resolucion de la segmentacion SegNet introduce mas conexiones puente que FCN y enves de pasar las caracteristicas extraidas por el codificador lo que se transfiere son los indices de agrupamiento realizados por las capas de agrupamiento esto hace que SegNet sea mas eficiente que FCN sin embargo sus resultados son mucho peores SegNet y FCN son 2 de las primeras arquitecturas codificador decodificador sin embargo en el estado actual del arte SegNet no es recomendado para ningun modelo de produccion Las convoluciones dilatadas comienzan a ser utilizadas a partir de 2015 En noviembre de 2015 se publica Multi Scale Context Aggregation by Dilated Convolutions que usa convoluciones dilatadas para la prediccion densa proponiendo un modulo de contexto que usa convoluciones dilatadas para la agregacion a multiples escalas Las capas de agrupamiento ayudan en las redes de clasificacion debido a que aumentan los campos receptivos pero esto no es lo mejor para la segmentacion debido a la perdida de resolucion para ello las convoluciones dilatadas permiten el crecimiento del campo de vision sin tener que reducir la dimension espacial En esta arquitectura basada en la red convolucional VGG16 las 2 ultimas capas de agrupamiento son eliminadas y las convoluciones subsecuentes son remplazadas por capas de deconvolucion Particularmente las convoluciones entre las capas de agrupamiento 3 y 4 tienen dilatacion 2 y despues de la capa pool de agrupamiento 4 tienen dilatacion 4 Con este modulo llamado modulo front end en este articulo la prediccion densa es obtenida sin incrementar el numero de parametros Un modulo llamado modulo de contexto es entrenado de forma separada con la salida del modulo front end Este modulo es una dilatacion en cascada de diferentes valores de dilatacion de esta forma el contexto en multiples escalas es agregado y las predicciones son mejoradas DeepLab version 1 y 2 salen a la luz en los articulos Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs en diciembre de 2014 y DeepLab Semantic Image Segmentation with Deep Convolutional Nets Atrous Convolution and Fully Connected CRFs en junio de 2016 respectivamente estos modelos usan convoluciones dilatadas proponen una piramide de dilatacion espacial ASPP y usan CRFs totalmente conectados para el post procesamiento Las convoluciones dilatadas incrementan el campo de vision sin tener que incrementar la cantidad de parametros El procesamiento multi escala es realizado pasando diferentes escalas de la imagen original a redes convolucionales en paralelo Piramide de imagenes y o usando diferentes tipos de dilataciones ASPP La prediccion es realizada por el CRF que es entrenado afinado por separado como una etapa de post procesamiento RefineNet de Multi Path Refinement Networks for High Resolution Semantic Segmentation publicada en noviembre de 2016 propone que todas las componentes sigan un diseno de conexiones residuales Las convoluciones dilatadas a pesar de sus virtudes poseen una alta complejidad computacional lo que la hacen muy costosas y necesitan una gran cantidad de memoria En este articulo se propone una arquitectura codificador decodificar El codificador esta conformado por bloques de ResNet 101 El decodificador tiene bloques de refinamiento que concatenan fusionan caracteristicas extraidas por el codificador y caracteristicas de mejor resolucion extraidas de un bloque de refinamiento previamente calculado Cada bloque de refinamiento tiene una componente para fusionar caracteristicas en diferentes resoluciones haciendo remuestreo a la de menor resolucion y una componente para capturar el contexto basado en repetidas capas agrupamiento de 5x5 con desplazamiento stride 1 cada una de esas componentes siguen un diseno de conexiones residuales En diciembre de 2016 PSPNet Pyramid Scene Parsing Network propone un modulo de agrupamiento en piramide para agregar el contexto Las caracteristicas globales de la imagen importan debido a que dan pistas acerca de la distribucion de las clases segmentadas El modulo de agrupamiento en piramide permite capturar esta informacion aplicando grandes filtros en las capas de agrupamiento Esta arquitectura usa convoluciones dilatadas para modificar ResNet el modulo de agrupamiento en piramide concatena los mapas de caracteristicas de ResNet con caracteristicas ampliadas de una capa de agrupamiento en paralelo con filtros que cubren toda la mitad y pequenas porciones de la imagen Usar filtros de gran tamano es muy conveniente sin embargo muy costosos o impracticables sin embargo Large Kernel Matters Improve Semantic Segmentation by Global Convolutional Network publicado en marzo de 2017 propone una arquitectura codificador decodificador con convoluciones de grandes kernels La segmentacion semantica requiere tanto segmentacion como la clasificacion de los objetos segmentados Debido a que las capas totalmente conectadas son impracticables esta arquitectura propone utilizar convoluciones de grandes kernels Otra razon para esto es que a pesar de que redes de gran profundidad como ResNet tienen un alto campo de vision la red tiende a obtener informacion de una region mas pequena campo receptivo valido Los filtros de gran tamano son computacionalmente muy costosos y tienen una gran cantidad de parametros es por esto que esta arquitectura se basa en la idea de que una convolucion de kxk es aproximadamente la suma de convoluciones de 1xk kx1 y de kx1 1xk Este modulo es llamado Global Convolutional Network GCN Esta arquitectura usa ResNet sin ninguna dilatacion para el codificador mientras que GCNs y deconvoluciones para el decodificador Un bloque residual llamado Boundary Refinement es usado tambien en esta ultima tarea La version 3 de DeepLab es publicada en junio de 2017 en Rethinking Atrous Convolution for Semantic Image Segmentation mejorando la piramide de convoluciones dilatadas ASPP propuesta en las versiones anteriores En esta arquitectura ResNet es modificada para usar convoluciones dilatadas como lo hacia DeepLab2 La mejora de ASPP tiene que ver con la concatenacion de diferentes niveles de caracteristicas extraidas de imagenes usando convoluciones de 1x1 y 3 convoluciones dilatadas de 3x3 con diferentes valores de dilatacion Se aplica normalizacion de batch despues de cada capa convolucional en paralelo El modulo en cascada es un bloque ResNet excepto porque las componentes de convoluciones son sustituidas por convoluciones dilatadas En esta arquitectura no se usan CRFs y mejora los resultados obtenidos con DeepLab2 los autores reflejan que la mejora viene dada por la normalizacion del batch y por la mejor forma de codificar el contexto a multiples escalas Aplicaciones EditarLa segmentacion es un problema general de la vision artificial y se suele usar como etapa en un proceso mas complejo No obstante muchas veces la segmentacion da respuesta a una necesidad concreta y deriva en aplicaciones finales como las siguientes Procesamiento de imagenes Recortando objetos Posterizando colores Pruebas medicas Localizacion de tumores y otras patologias Medida de volumenes de tejido Localizacion de objetos en imagenes de satelite teledeteccion Medicion de superficies construidas sobre fotos satelitalesSoftware de codigo abierto EditarExisten varios paquetes de software de codigo abierto para realizar la segmentacion de imagenes ITK Kit de herramientas de segmentacion ITK SNAP es una interfaz grafica que combina segmentacion manual y semiautomatica con conjuntos de nivel GIMP que incluye entre otras herramientas SIOX VXL ImageMagick MITK tiene un modulo para la segmentacion manual OpenCV es una libreria de vision artificial originalmente desarrollada por Intel GRASS GIS tiene el modulo i smap para la segmentacion de imagenes Fiji es un paquete de procesamiento de imagenes que incluye varios plug ins de segmentacion Tambien hay paquetes de software disponible de forma gratuita para fines academicos GemIdent CVIPtools MegaWave Datos Q56933 Multimedia Image segmentationObtenido de https es wikipedia org w index php title Segmentacion procesamiento de imagenes amp oldid 135303239, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos