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

La segmentación de imágenes es una técnica de computer vision que divide una imagen digital en distintos grupos de píxeles (segmentos de imagen) para facilitar la detección de objetos y otras tareas relacionadas. Al descomponer los complejos datos visuales de una imagen en segmentos de una forma específica, la segmentación de imágenes permite un tratamiento de imagen 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 deep learning. Los algoritmos convencionales de segmentación de imágenes procesan las 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 machine learning, basado en conjuntos de datos anotados, se utiliza para entrenar modelos que clasifiquen con precisión los tipos específicos de objetos y regiones que contiene una imagen.

La segmentación de imágenes es un método de computer vision muy versátil y práctico. Puede aplicarse a una amplia gama de casos prácticos de inteligencia artificial, desde el apoyo al diagnóstico en imágenes médicas, pasando por la identificación de objetos de interés en imágenes de satélite, hasta la automatización de la locomoción para robótica y coches autoconducidos.

Contenido relacionado

Suscríbase al boletín de IBM

Segmentación de imágenes, detección de objetos y clasificación de imágenes: comparación

La segmentación de imágenes representa una evolución avanzada de la clasificación de imágenes y la detección de objetos; también es un conjunto distinto de capacidades únicas de computer vision.

Clasificación de imágenes aplica una etiqueta de clase a una imagen completa. Por ejemplo, un modelo sencillo de clasificación de imágenes puede entrenarse para clasificar imágenes de vehículos como "coche" o "camión". Los sistemas convencionales de clasificación de imágenes suelen ser poco sofisticados, ya que no tratan por separado las características individuales de las imágenes.

Detección de objetos combina la clasificación de imágenes y la localización de objetos, generando regiones rectangulares, denominados "cuadros delimitadores", en las que se encuentran los objetos. Así, en lugar de etiquetar simplemente una imagen de un vehículo como "coche" o "camión", un modelo de detección de objetos podría indicar dónde se encuentran los coches o camiones en la imagen. Aunque la detección de objetos puede clasificar varios elementos dentro de una imagen y determinar la anchura y altura aproximadas de cada elemento, no puede discernir formas o contornos precisos. Esto limita la capacidad de los modelos convencionales de detección de objetos para delinear objetos poco espaciados con cuadros delimitadores superpuestos.

La segmentación de imágenes procesa datos visuales a nivel de píxel, utilizando diversas técnicas para anotar píxeles individuales como pertenecientes a una clase o instancia específica. Las técnicas tradicionales de segmentación de imágenes determinan las anotaciones analizando las cualidades inherentes de cada píxel (conocidas como "heurística"), como el color y la intensidad, mientras que los modelos de deep learning utilizan redes neuronales complejas para un sofisticado reconocimiento de patrones. Los resultados de este proceso de anotación son máscaras de segmentación, que representan el límite y la forma específicos, píxel a píxel, de cada clase, que generalmente corresponde a diferentes objetos, características o regiones dentro de la imagen. 

En términos generales, 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 contables" y "cosas incontables"

La diferencia entre los distintos tipos de segmentación de imágenes radica en la forma en que tratan las clases semánticas: las categorías específicas a las que determina que pertenece un píxel dado.

En el lenguaje de computer vision, hay dos tipos de clases semánticas. Cada una de ellas se presta a técnicas diferentes para una segmentación precisa y eficaz.

Las cosas contables son clases de objetos con formas características, como "coche", "árbol" o "persona". Normalmente, las cosas contables tienen instancias claramente definidas que son contables. Tienen relativamente poca variación de tamaño de un caso a otro, así como partes constituyentes distintas de la cosa en sí: por ejemplo, todos los coches tienen ruedas, pero una rueda no es un coche.

Cosas incontables hace referencia a clases semánticas de forma amorfa y tamaño muy variable, como "cielo", "agua" o "hierba". Normalmente, las cosas no tienen instancias individuales claramente definidas y contables. A diferencia de las cosas contables, las cosas incontables no tienen partes diferenciadas: una brizna de hierba y un campo de césped son ambos igualmente "hierba".

Algunas clases, en determinadas condiciones de imagen, pueden ser cosas contables o cosas incontables. Por ejemplo, un grupo numeroso de personas puede interpretarse como varias "personas" (cada una de ellas una cosa contable de forma distinta) o como una "multitud" singular de forma amorfa.

Aunque la mayoría de los esfuerzos de detección de objetos se centran principalmente en las clases de cosas contables, es importante tener en cuenta que las cosas incontables (cielo, paredes, suelos, tierra) constituyen la mayor parte de nuestro contexto visual. Las cosas son un dato esencial para identificar objetos, y viceversa: un objeto metálico 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 deep learning.

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 emite ningún otro contexto o información (como los objetos).

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

Por ejemplo, un modelo de segmentación semántica entrenado para identificar determinadas clases en una calle de la ciudad produciría máscaras de segmentación que indicarían los límites y contornos de cada clase relevante de cosas contables (como vehículos o postes de la luz) y cosas incontables (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 coches aparcados uno delante de otro podrían tratarse simplemente como un segmento largo de "coches".

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 sólo predicen la clasificación semántica de cada píxel (sin tener en cuenta las instancias individuales), la segmentación por instancias delinea la forma exacta de cada instancia de objeto por separado.

La segmentación de instancias aísla cosas contables de cosas incontables que pasa por alto. Por lo tanto, se puede entender 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 cosas contables de la misma clase se tocan o incluso se superponen, los modelos de segmentación por 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. Veamos, por ejemplo, cómo tratan los dos modelos diferentes los coches aparcados en esta imagen de una calle de la ciudad.

Los algoritmos de segmentación de instancias suelen abordar el problema en dos etapas o en una sola toma. Los modelos de dos etapas, como las redes neuronales convolucionales basadas en regiones (R-CNN), realizan una detección de objetos convencional para generar cuadros delimitadores para cada instancia propuesta y, a continuación, realizan una segmentación y clasificación más refinadas dentro de cada cuadro delimitador. Los modelos "de una toma", como YOLO (You Only Look Once), logran la segmentación de instancias en tiempo real realizando la detección, clasificación y segmentación de objetos simultáneamente.

Los enfoques de una sola toma ofrecen mayor velocidad (con una contrapartida en precisión), mientras que los enfoques en dos etapas ofrecen mayor precisión (con una contrapartida en velocidad).

Segmentación panóptica

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

En una tarea de segmentación panóptica, cada píxel debe ser anotado tanto con una etiqueta semántica como con un "ID de instancia". Los píxeles que comparten la misma etiqueta y el mismo ID pertenecen al mismo objeto; para los píxeles determinados como cosas incontables, se ignora el ID de instancia.

Así, la segmentación panóptica proporciona a los sistemas de computer vision una comprensión global y holística de una imagen dada. Aunque su atractivo es obvio, lograr una segmentación panóptica de forma coherente y eficiente desde el punto de vista computacional es un gran reto.

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

Los intentos iniciales de modelos de segmentación panóptica se limitaban a combinar los dos modelos, realizando cada tarea por separado y combinando después sus resultados en una fase de posprocesamiento. Este enfoque tiene dos inconvenientes principales: requiere una gran sobrecarga computacional y tiene problemas con las discrepancias entre los puntos de datos obtenidos por la red de segmentación semántica y los puntos de datos obtenidos 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 deep learning. La mayoría se basan en una red "troncal", 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 una "cabeza semántica" y una "cabeza de instancia") y luego fusiona la salida de cada rama mediante un sistema ponderado. Entre las arquitecturas panópticas propuestas figuran 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 la 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 pueden entrenarse rápidamente con algoritmos sencillos de machine learning para tareas como la clasificación semántica.

Aunque los métodos de segmentación basados en el deep learning son capaces de lograr una 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 ciertos problemas de forma más eficiente.

Las técnicas tradicionales (o "clásicas") de segmentación de imágenes más comunes son:

  • Umbralización: Los métodos de umbralización crean imágenes binarias, clasificando los píxeles en función de si su intensidad está por encima o por debajo de un determinado "valor umbral". El método de Otsu se utiliza a menudo para determinar el valor umbral que minimiza la variación intraclase.
  • Histogramas: Los histogramas, que representan la frecuencia de determinados valores de píxeles en una imagen, suelen utilizarse para definir umbrales. Por ejemplo, los histogramas pueden inferir los valores de los píxeles del fondo, lo que ayuda a aislar los píxeles del objeto.
  • 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.
  • Algoritmos watersheds: Los algoritmos watersheds transforman las imágenes en escala de grises y generan un mapa topográfico en el que la "elevación" de cada píxel viene determinada por su luminosidad. Se pueden deducir regiones, fronteras y objetos a partir de la formación de "valles", "crestas" y "cuencas hidrográficas".
  • Segmentación basada en regiones: A partir de uno o varios "píxeles semilla", los algoritmos de crecimiento de regiones agrupan los píxeles vecinos con características similares. Los algoritmos pueden ser aglomerativos o divisivos.
  • Segmentación basada en clústeres: Es un método de aprendizaje no supervisado, los algoritmos de agrupación dividen los datos visuales en grupos de píxeles con valores similares. Una variante común es el agrupamiento K-means, en el que k es el número de clústeres: los valores de los píxeles se trazan como puntos de datos, y se seleccionan puntos aleatorios k como centro de un clúster ("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 los clústeres se hayan estabilizado. El proceso se visualiza aquí (enlace externo a ibm.com).
Modelos de segmentación de imágenes de deep learning

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

A pesar de las compensaciones en cuanto a requisitos informáticos y tiempo de entrenamiento, los modelos de deep learning superan sistemáticamente a los modelos tradicionales y constituyen la base de la mayoría de los avances actuales en computer vision.

Entre los principales modelos de deep learning utilizados en la segmentación de imágenes se incluyen:

  • Redes totalmente convolucionales (FCNs): Las FCN, utilizadas a menudo para la segmentación semántica, son un tipo de red neuronal convolucional (CNN) sin capas fijas. Una red de codificadores 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 (o reduce la muestra) estos datos de características para eliminar la información no esencial. A continuación, estos datos comprimidos se introducen en las capas decodificadoras, que aumentan la muestra de 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 FCN para reducir la pérdida de datos durante el muestreo descendente con conexiones de salto, preservando un mayor detalle al omitir selectivamente algunas capas convolucionales a medida que la información y los gradientes se desplazan por las redes neuronales. Su nombre procede de la forma de los diagramas que muestran la disposición de sus capas.
  • Deeplab: Al igual que las U-Nets, Deeplab es una arquitectura FCN modificada. Además de saltar conexiones, utiliza la convolución diluida (o "atrófica") para obtener mapas de salida más grandes sin necesidad de potencia de cálculo adicional.
  • Máscara R-CNN: Las máscara R-CNN son un modelo líder para la segmentación de instancias. Las máscara R-CNN combinan una red de propuesta de región (RPN) que genera cuadros delimitadores para cada instancia potencial con una "cabeza de máscara" basada en FCN que genera máscaras de segmentación dentro de cada cuadro delimitador confirmado.
Conjuntos de datos de entrenamiento para modelos de deep learning

Para no solo mapear los límites de los segmentos de imagen, sino también predecir qué cosas incontables o cosas contables representa cada segmento, los modelos de deep learning 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 deep learning infieren los patrones y valores de píxeles típicos de cada etiqueta.

Las distintas tareas requieren datos de entrenamiento diferentes: un sistema de computer vision para coches autoconducidos se entrena con imágenes etiquetadas con clases semánticas como "persona", "coche", "carril" y "señal de stop", 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 preetiquetados cuidadosamente por expertos humanos, lo que puede resultar extremadamente laborioso. 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 sobre el terreno" a la hora de evaluar el éxito de los modelos entrenados: las métricas de rendimiento suelen expresarse como porcentaje de resultados que coinciden exactamente con las anotaciones del conjunto de datos de entrenamiento.

Los conjuntos de datos de entrenamiento más populares para los modelos de segmentación de imágenes de deep learning incluyen:

  • COCO (Objetos comunes en contexto): un conjunto de datos a gran escala que contiene más de 330 000 imágenes con segmentos anotados en 80 categorías de cosas contables y 91 categorías de cosas incontables.
  • ADE20K: un conjunto de datos de segmentación de escenas creado por el MIT que contiene más de 20 000 imágenes con más de 150 clases semánticas.
  • Cityscapes: un conjunto de datos a gran escala centrado en las calles urbanas. Sus datos se recogieron en 50 ciudades a lo largo de distintos días, épocas del año y condiciones meteorológicas.
Casos prácticos para la segmentación de imágenes

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

  • Imágenes médicas: La segmentación de imágenes tiene muchas aplicaciones en radiografía, resonancia magnética (RM), ultrasonidos y tomografía computerizada (TC), y ayuda 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 a los coches autónomos evitar obstáculos como peatones y otros coches, así como identificar carriles y señales de tráfico. Se utiliza de forma similar para la navegación en robótica.
  • Imágenes por satélite: La segmentación semántica y de instancias automatiza la identificación de diferentes características del terreno y topográficas.
  • Ciudades inteligentes: La segmentación de imágenes potencia tareas como el control y la vigilancia del tráfico en tiempo real.
  • Fabricación: Además de las tareas de robótica, la segmentación de imágenes permite clasificar productos y detectar defectos.
  • Agricultura: La segmentación de imágenes ayuda a los agricultores a estimar el rendimiento de los cultivos y a detectar las malas hierbas para su eliminación.
Soluciones relacionadas
IBM Maximo Visual Inspection

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

Descubra IBM Maximo Visual Inspection

Recursos de segmentación de imágenes IBM Research: Computer Vision

Los modernos sistemas de computer vision tienen una precisión sobrehumana en el reconocimiento y análisis de imágenes, pero no entienden realmente lo que ven. En IBM Research estamos diseñando sistemas de IA capaces de ver el mundo como nosotros.

Introducción a la computer vision y al procesamiento de imágenes

Este curso para principiantes le ayudará a comprender la computer vision y sus diversas aplicaciones en muchos sectores. Como parte del curso, utilizará Python, Pillow y OpenCV para el procesamiento básico de imágenes y realizará la clasificación de imágenes y la detección de objetos.

Introducción a IBM Maximo Visual Inspection

Empiece 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 computer vision sin código para la inspección visual automatizada con IBM Maximo Visual Inspection: un conjunto de herramientas intuitivas para etiquetar, entrenar e implementar modelos de visión de inteligencia artificial.

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