Inicio topics Segmentación de imágenes ¿Qué es la segmentación de imágenes?
Descubra IBM Maximo Visual Inspection
Un gráfico de diseño de cajas 3D

La segmentación de imágenes es una técnica de visión artificial que divide una imagen digital en grupos discretos de píxeles (segmentos de imagen) para fundamentar la detección de objetos y tareas relacionadas. Al analizar los datos visuales complejos de una imagen en segmentos con formas específicas, la segmentación de imágenes permite un procesamiento de imágenes más rápido y avanzado.

Las técnicas de segmentación de imágenes van desde el análisis heurístico simple e intuitivo hasta la implementación de vanguardia del aprendizaje profundo. Los algoritmos convencionales de segmentación de imágenes procesan características visuales de alto nivel de cada píxel, como el color o el brillo, para identificar los límites de los objetos y las regiones de fondo. El aprendizaje automático, que aprovecha los conjuntos de datos anotados, se utiliza para entrenar modelos a fin de que clasifiquen con precisión los tipos específicos de objetos y regiones que contiene una imagen.

Al ser un método muy versátil y práctico de visión artificial, la segmentación de imágenes tiene una amplia variedad de casos de uso de inteligencia artificial, desde ayudar en el diagnóstico médico por imágenes hasta la automatización de la locomoción en la robótica y los automóviles autónomos e identificar objetos de interés en imágenes satelitales.

Contenido relacionado

Suscríbase al boletín de IBM

Segmentación de imágenes vs. detección de objetos vs. clasificación de imágenes

La segmentación de imágenes representa una evolución avanzada tanto de la clasificación de imágenes como de la detección de objetos, así como un conjunto distintivo de capacidades únicas de visión artificial.

La clasificación de imágenes aplica una etiqueta de clase a toda una imagen. Por ejemplo, un modelo simple de clasificación de imágenes podría ser entrenado para categorizar imágenes de vehículos como “automóvil” o “camión”. Los sistemas convencionales de clasificación de imágenes son poco sofisticados, ya que no procesan las características individuales de la imagen por separado.

La detección de objetos combina la clasificación de imágenes con la localización de objetos, generando regiones rectangulares, llamadas “cuadros delimitadores”, en las que se ubican los objetos: en lugar de simplemente etiquetar la imagen de un vehículo como “automóvil” o “camión”, un modelo de detección de objetos podría indicar en qué parte de la imagen se encuentra/n el/los automóvil/es o camión/es. Si bien la detección de objetos puede clasificar varios elementos dentro de una imagen y aproximar el ancho y la altura de cada elemento, no puede discernir límites o formas precisos. Esto limita la capacidad de los modelos convencionales para delinear objetos que se encuentran demasiado juntos con cuadros delimitadores superpuestos.

La segmentación de imágenes procesa datos visuales a nivel de píxel, utilizando varias técnicas para anotar píxeles individuales como pertenecientes a una clase o instancia específica. Las técnicas “clásicas” de segmentación de imágenes determinan anotaciones mediante el análisis de cualidades inherentes de cada píxel (llamado “análisis heurístico”) como el color y la intensidad, mientras que los modelos de aprendizaje profundo emplean redes neuronales complejas para el reconocimiento de patrones sofisticados. Los resultados de esta anotación son máscaras de segmentación, que representan el límite y la forma específicos píxel por píxel de cada clase, que generalmente corresponde a diferentes objetos, características o regiones, en la imagen. 

A grandes rasgos, la segmentación de imágenes se utiliza para tres tipos de tareas: segmentación semántica, segmentación de instancias y segmentación panóptica.

Clases semánticas: “cosas” (things) y “elementos” (stuff)

La diferencia entre cada tipo de tarea de segmentación de imágenes radica en cómo tratan las clases semánticas: las categorías específicas a las que se puede pertenecer un píxel determinado.

En la jerga de la visión artificial, hay dos tipos de clases semánticas. Cada una se presta a diferentes técnicas para proporcionar una segmentación precisa y eficaz.

Cosas (things) se refiere a clases de objetos con formas características, como “automóvil” o “árbol” o “persona”. Normalmente, las cosas tienen instancias claramente definidas y contables. Varían relativamente poco de tamaño de una instancia a otra, así como están constituidas por partes distintas de la cosa en sí: por ejemplo, todos los automóviles tienen ruedas, pero una rueda no es un automóvil.

Elementos (stuff) se refiere a clases semánticas que son amorfas y de tamaño muy variable, como “cielo” o “agua” o “hierba”. Por lo general, las elementos no tienen instancias individuales claramente definidas ni contables. A diferencia de las cosas, los elementos no tienen partes distintivas: brizna de pasto y pastizal son ambos igualmente “pasto”.

Algunas clases, en determinadas condiciones de imagen, pueden ser a la vez cosas o elementos. Por ejemplo, un grupo numeroso de personas puede interpretarse como múltiples “personas” (cada una de ellas una cosa contable y con forma claramente definida) o como una “multitud” singular y amorfa.

Si bien la mayoría de las iniciativas de detección de objetos se centran principalmente en las clases de cosas, es importante tener en cuenta que los elementos (cielo, paredes, pisos, suelo) constituyen la mayor parte de nuestro contexto visual. Los elementos son un punto de datos esencial para identificar cosas, y viceversa: una cosa metálica en una carretera suele ser un coche; el fondo azul detrás de un barco es probablemente agua, mientras que el fondo azul detrás de un avión es probablemente cielo. Esto es de particular importancia para los modelos de aprendizaje profundo.

Segmentación semántica

La segmentación semántica es el tipo más simple de segmentación de imágenes. Un modelo de segmentación semántica asigna una clase semántica a cada píxel, pero no genera ningún otro contexto o información (como los objetos).

La segmentación semántica trata a todos los píxeles como elementos; no diferencia entre elementos y cosas.

Por ejemplo, un modelo de segmentación semántica entrenado para identificar determinadas clases en una calle urbana produciría máscaras de segmentación que indicarían los límites y contornos de cada clase relevante de cosa (como vehículos o postes de luz) y elementos (como carreteras y aceras), pero no haría ninguna distinción entre (ni contaría el número de) múltiples instancias de la misma clase. Por ejemplo, los automóviles estacionados uno frente a otro podrían tratarse simplemente como un segmento largo de “automóvil”.

Segmentación de instancias

La segmentación de instancias invierte las prioridades de la segmentación semántica: mientras que los algoritmos de segmentación semántica predicen solo la clasificación semántica de cada píxel (sin tener en cuenta instancias individuales), la segmentación de instancias delinea la forma exacta de cada instancia de objeto por separado.

La segmentación de instancias aísla las cosas de los elementos (mismos que ignora) y, por lo tanto, puede entenderse como una forma evolucionada de detección de objetos que genera una máscara de segmentación precisa en lugar de un cuadro delimitador aproximado.

Es una tarea más difícil que la segmentación semántica: incluso cuando las cosas de la misma clase se tocan o incluso se superponen entre sí, los modelos de segmentación de instancias deben ser capaces de separar y determinar la forma de cada una, mientras que los modelos de segmentación semántica pueden simplemente agruparlas. Considere, por ejemplo, cómo tratan los dos distintos modelos a los autos estacionados en esta imagen de una calle urbana.

Los algoritmos de segmentación de instancias generalmente adoptan un enfoque de dos etapas o one-shot (de una etapa) para abordar el problema. Los modelos de dos etapas, como las redes neuronales convolucionales basadas en regiones (R-CNN), realizan la detección convencional de objetos para generar cuadros delimitadores para cada instancia propuesta, y luego realizan una segmentación y clasificación más refinadas dentro de cada cuadro delimitador. Los modelos one-shot, como YOLO (You Only Look Once), logran segmentación de instancias en tiempo real mediante la detección, clasificación y segmentación simultánea de los objetos.

Los métodos one-shot ofrecen mayor velocidad (con una desventaja respecto de la precisión), mientras que los de dos etapas ofrecen una mayor precisión (con una desventaja respecto de la velocidad).

Segmentación panóptica

Los modelos de segmentación panóptica determinan la clasificación semántica de todos los píxeles y diferencian cada instancia de objeto en una imagen, combinando los beneficios de la segmentación semántica y de instancias.

En una tarea de segmentación panóptica, cada píxel debe anotarse tanto con una etiqueta semántica como con un “ID de instancia”. Los píxeles que comparten la misma etiqueta e ID pertenecen al mismo objeto; en el caso de los píxeles que se determinan elementos, se ignora el ID de instancia.

Por lo tanto, la segmentación panóptica proporciona a los sistemas de visión artificial una comprensión integral y holística de una imagen dada. Si bien su atractivo es obvio, lograr la segmentación panopítica de una manera consistente y computacionalmente eficiente es un desafío imponente.

El reto consiste en unificar dos metodologías contradictorias: los modelos de segmentación semántica tratan todos los píxeles como elementos, ignorando las instancias individuales de las cosas; los modelos de segmentación de instancias aíslan cosas individuales, ignorando los elementos. Ninguno de estos modelos puede absorber adecuadamente las responsabilidades del otro.

Los primeros intentos de modelos de segmentación panóptica simplemente combinaron los dos modelos, realizando cada tarea por separado y luego combinando su resultado en una fase de posprocesamiento. Este método tiene dos desventajas principales: requiere un gran sobrecoste (overhead) y batalla con las discrepancias entre la salida de puntos de datos por la red de segmentación semántica y la salida de puntos de datos por la red de segmentación de instancias.

Las arquitecturas de segmentación panóptica más recientes pretenden evitar estos inconvenientes con un enfoque más unificado del aprendizaje profundo. La mayoría se desarrollan a partir de una “red troncal” (backbone), como una red piramidal de características (FPN), que extrae características de la imagen de entrada, introduce los datos extraídos en ramas paralelas, como una “rama de primer plano” y una “rama de fondo”, o “cabeza semántica” y “cabeza de instancia”, y luego fusiona la salida de cada rama mediante un sistema ponderado. Las arquitecturas panópticas propuestas incluyen EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet y SpatialFlow.

Técnicas tradicionales de segmentación de imágenes

Las técnicas tradicionales de segmentación de imágenes utilizan información de los valores de color de un píxel (y características relacionadas como el brillo, el contraste o la intensidad) para la extracción de características, y se pueden entrenar rápidamente con algoritmos simples de aprendizaje automático para tareas como la clasificación semántica.

Si bien los métodos de segmentación basados en el aprendizaje profundo son capaces de brindar mayor precisión y un análisis de imágenes más sofisticado, especialmente tareas como la segmentación panóptica que requieren una gran cantidad de información contextual, los métodos tradicionales son mucho menos costosos y exigentes desde el punto de vista computacional, y pueden resolver determinados problemas de manera más eficaz.

Las técnicas comunes de segmentación de imágenes tradicionales (o “clásicas”) incluyen:

  • Umbrales: Los métodos de umbral crean imágenes binarias, clasificando los píxeles en función de si su intensidad está por encima o por debajo de un “valor umbral” dado. A menudo se utiliza el método de Otsu para determinar el valor umbral que minimiza la variación dentro de una clase.
  • Histogramas: los histogramas, que trazan la frecuencia de ciertos valores de píxel en una imagen, se utilizan a menudo para definir umbrales. Por ejemplo, los histogramas pueden inferir los valores de los píxeles de fondo, lo que ayuda a aislar los píxeles de objetos.
  • Detección de bordes: los métodos de detección de bordes identifican los límites de objetos o clases detectando discontinuidades en el brillo o el contraste.
  • Cuencas hidrográficas: los algoritmos de cuencas hidrográficas transforman las imágenes en escala de grises, luego generan un mapa topográfico en el que la “elevación” de cada píxel está determinada por su brillo. Se pueden inferir regiones, límites y objetos a partir de donde se forman “valles”, “crestas” y “cuencas fluviales”.
  • Segmentación basada en regiones: a partir de uno o más “píxeles semilla”, los algoritmos de crecimiento de regiones agrupan píxeles contiguos con características similares. Los algoritmos pueden ser aglomerativos o divisivos.
  • Segmentación basada en clústeres: los algoritmos de agrupación en clústeres, un método de aprendizaje no supervisado, dividen los datos visuales en grupos de píxeles con valores similares. Una variante común es la agrupación K-medias, en la que k es el número de clústeres (o agrupaciones): los valores de los píxeles se trazan como puntos de datos y se seleccionan puntos k aleatorios como centro de una agrupación (“centroide”). Cada píxel se asigna a un clúster en función del centroide más cercano, es decir, el más similar. A continuación, los centroides se reubican en la media de cada clúster y se repite el proceso, reubicando los centroides con cada iteración hasta que se hayan estabilizado. Puede visualizar el proceso aquí (enlace externo a ibm.com).
Modelos de segmentación de imágenes de aprendizaje profundo

Entrenadas en un conjunto de datos anotado de imágenes, las redes neuronales de los modelos de segmentación de imágenes de aprendizaje profundo descubren patrones subyacentes en los datos visuales y disciernen las características destacadas más relevantes para la clasificación, detección y segmentación.

A pesar de las desventajas respecto de los requisitos informáticos y el tiempo de entrenamiento, los modelos de aprendizaje profundo superan sistemáticamente a los modelos tradicionales y forman la base de la mayoría de los avances continuos en la visión artificial.

Los modelos de aprendizaje profundo destacados que se utilizan en la segmentación de imágenes incluyen:

  • Redes totalmente convolucionales (FCN): las FCN, que se utilizan a menudo para la segmentación semántica, son un tipo de red neuronal convolucional (CNN) sin capas fijas. Una red codificadora pasa datos de entrada visuales a través de capas convolucionales para extraer características relevantes para la segmentación o clasificación, y comprime los datos (downsampling) de esta característica para eliminar información no esencial. A continuación, estos datos comprimidos se introducen en las capas decodificadoras , interpolando los datos de características extraídos para reconstruir la imagen de entrada con máscaras de segmentación.
  • U-Nets: las U-Nets modifican la arquitectura de las FCN para reducir la pérdida de datos durante el submuestreo con conexiones de omisión, conservando más detalles mediante la omisión selectiva de algunas capas convolucionales a medida que la información y los gradientes se mueven a través de la red neuronal. Su nombre se deriva de la forma de los diagramas que demuestran la disposición de sus capas.
  • Deeplab: al igual que U-Nets, Deeplab es una arquitectura de FCN modificada. Además de las conexiones de omisión, utiliza convolución diluida (o “atrous”) para producir mapas de salida más grandes sin necesidad de tener potencia informática adicional.
  • Arquitecturas Mask R-CNN: estas arquitecturas son un modelo líder para la segmentación de instancias. Combinan una red de propuestas de región (RPN), que genera cuadros delimitadores para cada posible instancia, con una cabeza de máscara (mask head) basada en FCN que genera máscaras de segmentación dentro de cada cuadro delimitador confirmado.
  • Transformadores: inspirados por el éxito de los modelos de transformadores como GPT y BLOOM en el procesamiento de lenguaje natural, nuevos modelos como Vision Transformer (ViT), que utilizan mecanismos de atención en lugar de capas convolucionales han igualado o superado el rendimiento de las CNN en lo que respecta a tareas de visión artificial.
Conjuntos de datos de entrenamiento para modelos de aprendizaje profundo

Para no solo trazar los límites de los segmentos de imagen, sino también predecir cuáles elementos o cosas representa cada segmento, los modelos de aprendizaje profundo se entrenan en grandes conjuntos de datos anotados para reconocer clases semánticas específicas. A partir de estas imágenes preetiquetadas, los modelos de aprendizaje profundo infieren los patrones y valores de píxel típicos de cada etiqueta.

Diferentes tareas requieren diferentes datos de entrenamiento: un sistema de visión artificial para automóviles autónomos se entrena en imágenes etiquetadas con clases semánticas como “persona”, “automovil”, “carril” y “señal de alto”, mientras que los modelos de imágenes médicas requieren optimización para reconocer clases específicas de tejido físico, o tumores y otras patologías.

Los conjuntos de datos de entrenamiento deben ser etiquetados previamente por humanos expertos, lo cual es una tarea extremadamente laboriosa. La mayoría de los modelos de segmentación de imágenes utilizan grandes conjuntos de datos de código abierto. Estos conjuntos de datos públicos también sirven como “verdad fundamental” al evaluar el éxito de los modelos entrenados: las métricas de rendimiento a menudo se expresan como porcentaje de resultados que coinciden con precisión con las anotaciones en el conjunto de datos de entrenamiento.

Los conjuntos de datos de entrenamiento populares para modelos de segmentación de imágenes de aprendizaje profundo incluyen:

  • COCO (objetos comunes en contexto): un conjunto de datos de gran escala que contiene más de 330 000 imágenes con segmentos anotados en 80 categorías de cosas y 91 categorías de elementos.
  • ADE20K: un conjunto de datos de segmentación de escena creado por MIT que contiene más de 20 000 imágenes con más de 150 clases semánticas.
  • Cityscapes: un conjunto de datos de gran escala centrado en las calles urbanas. Sus datos se capturaron en 50 ciudades en diversas horas del día, épocas del año y condiciones climáticas.
Casos de uso para la segmentación de imágenes

La segmentación de imágenes se ha convertido en una herramienta esencial en diversos campos.

  • Diagnóstico por imágenes: la segmentación de imágenes tiene muchas aplicaciones en el ámbito de la medicina, por ejemplo, radiografías, imágenes por resonancia magnética (IRM), ultrasonidos y tomografía computarizada (TC), ayudando así en tareas como la detección de tumores, la segmentación cerebral, el diagnóstico de enfermedades y la planificación quirúrgica.
  • Vehículos autónomos: la segmentación de imágenes permite que los autos autónomos eviten obstáculos como peatones y otros autos, así como que identifiquen carriles y señales de tránsito. De igual manera se utiliza para fundamentar la navegación en robótica.
  • Imágenes satelitales: la segmentación semántica y de instancias automatizan la identificación de diferentes características del terreno y topográficas.
  • Ciudades inteligentes: la segmentación de imágenes impulsa tareas como el monitoreo y la vigilancia del tránsito en tiempo real.
  • Fabricación: además de potenciar las tareas de robótica, la segmentación de imágenes potencia la clasificación de productos y la detección de defectos.
  • Agricultura: la segmentación de imágenes ayuda a los agricultores a estimar los rendimientos de los cultivos y a detectar maleza para su eliminación.
Soluciones relacionadas
IBM Maximo Visual Inspection

Libere el poder de la visión artificial sin código para la inspección visual automatizada con un conjunto de herramientas intuitivas para etiquetar, entrenar y desplegar modelos de visión de inteligencia artificial.

Descubra IBM Maximo Visual Inspection

Recursos de segmentación de imágenes IBM Research: Visión artificial

Los sistemas modernos de visión artificial ofrecen una precisión sobrehumana cuando se trata de reconocimiento y análisis de imágenes, pero realmente no entienden lo que ven. En IBM Research, estamos diseñando sistemas de IA con la capacidad de ver el mundo al igual que nosotros.

Introducción a Visión artificial y Procesamiento de imágenes

Este curso para principiantes lo ayuda a comprender la visión artificial y sus diversas aplicaciones en múltiples industrias. Como parte del curso, utilizará Python, Pillow y OpenCV para el procesamiento básico de imágenes, así como realizará clasificación y detección de objetos.

Introducción a IBM Maximo Visual Inspection

Dé los primeros pasos con IBM Maximo Visual Inspection para crear y entrenar modelos basados en IA para inspeccionar sus activos y productos, e identificar los defectos que pueden causar problemas de producción y calidad.

Dé el siguiente paso

Libere el poder de la visión artificial sin código para la inspección visual automatizada con IBM Maximo Visual Inspection, un conjunto de herramientas intuitivas para etiquetar, entrenar y desplegar modelos de visión de inteligencia artificial.

Descubra IBM Maximo Visual Inspection Explore la demostración de MVI