Inicio topics Segmentación de instancias ¿Qué es la segmentación de instancias?
Descubra IBM Maximo Visual Inspection
Una cuadrícula de contenedores de envío

La segmentación de instancias es una tarea de visión artificial impulsada por aprendizaje profundo que predice los límites exactos de píxeles de cada instancia de objeto individual en una imagen.

La segmentación de instancias, que es un subconjunto del campo más amplio de la segmentación de imágenes, proporciona resultados más detallados y sofisticados que los algoritmos convencionales de detección de objetos. Otras tareas de segmentación de imágenes son la segmentación semántica, que clasifica cada píxel de una imagen por clase semántica (la categoría de “cosa” o ”elemento” que representa) y la segmentación panóptica, que combina los objetivos de la segmentación de instancias y la segmentación semántica.

La segmentación de instancias tiene una amplia variedad de casos de uso de procesamiento de imágenes en muchas industrias, desde el análisis de imágenes médicas hasta la detección de objetos de interés en imágenes satelitales para permitir la navegación en automóviles autónomos.

Segmentación de instancias vs. detección de objetos

La diferencia principal entre las tareas de segmentación de instancias y la detección convencional de objetos es que la segmentación de instancias predice los límites del nivel de píxeles de cada objeto, mientras que la detección de objetos solo predice la ubicación aproximada de un objeto.

Los métodos convencionales de detección de objetos son una combinación evolucionada de clasificación de imágenes y localización de objetos. Un modelo de detección de objetos, entrenado con varios algoritmos de aprendizaje automático para reconocer los patrones visuales de categorías relevantes de objetos (por ejemplo, un modelo de conducción autónoma podría entrenarse para reconocer cosas como “automóvil” o “peatón”), analiza los datos visuales de una imagen de entrada para anotar cualquier instancia de objeto relevante y generar regiones rectangulares, llamadas “cuadros delimitadores”, en las que se ubica cada instancia.

Del mismo modo, los sistemas de segmentación de instancias detectan objetos en una imagen, pero con mucho más detalle: en lugar de un cuadro delimitador que aproxima la ubicación de una instancia de objeto, los algoritmos de segmentación de instancias generan una “máscara de segmentación” píxel por píxel de la forma precisa y área de cada instancia.

Muchas arquitecturas de modelos de segmentación de instancias líderes, como Mask R-CNN, realizan la detección convencional de objetos como un paso preliminar en el proceso de generación de máscaras de segmentación. Tales modelos de “dos etapas” suelen ofrecer una precisión de última generación, aunque con una desventaja respecto de la velocidad.

Contenido relacionado

Suscríbase al boletín de IBM

Segmentación de instancias vs. segmentación semántica

La segmentación semántica es una tarea menos compleja que la segmentación de instancias. A diferencia de esta última, la segmentación semántica no se preocupa por contar o distinguir entre diferentes instancias: su único objetivo es anotar cada píxel en una imagen con una etiqueta semántica de clase.

Los modelos de segmentación semántica no distinguen entre cosas, clases de entidades contables con formas distintas, como “automóvil” o “persona” y elementos (es decir, clases de entidades incontables con formas variables, como "cielo" o “carretera”).

Si varias instancias de objetos de la misma clase de cosa están muy próximas o se superponen entre sí, un modelo de segmentación semántica simplemente las agrupará dentro de un solo segmento de imagen. Considere, por ejemplo, cómo un modelo de segmentación semántica trata los automóviles estacionados muy juntos a cada lado de la calle en esta imagen.

Por el contrario, los modelos de segmentación de instancias se centran exclusivamente en detectar y generar máscaras de segmentación para cosas por separado. Un modelo de segmentación de instancias debe ser capaz de delinear cada instancia de objeto diferente, incluso para instancias ocluidas de la misma clase de objeto.

Segmentación de instancias vs. segmentación panóptica

La segmentación panóptica implica tanto la clasificación semántica de cada píxel de una imagen como la delineación de cada instancia de objeto diferente.

En teoría, los modelos de segmentación panóptica pueden realizar la segmentación de instancias, pero lo hacen a un costo computacional mucho mayor (ya que su salida incluye información adicional que no es necesariamente relevante para las tareas de segmentación de instancias).

Los intentos iniciales de segmentación panóptica simplemente realizaron la segmentación de instancias y la segmentación semántica por separado y luego combinaron sus resultados en un paso de posprocesamiento. Este método es computacionalmente ineficiente y no es capaz de resolver discrepancias entre las salidas del modelo semántico y las del modelo de instancias.

Métodos más recientes conectan una “cabeza” (head) de segmentación semántica y una “cabeza” de segmentación de instancias a una “red troncal” (backbone) compartida, a menudo una red piramidal de características (FPN), para la extracción de características: el aislamiento de datos visuales pertinentes. De este modo, se aumenta la eficiencia y se eliminan las discrepancias.

Casos de uso de la segmentación de instancias

La segmentación de instancias es esencial para diversas tareas de visión artificial.

  •  Imágenes médicas: la segmentación de instancias se utiliza para detectar los límites específicos de tejidos y patologías, como tumores.
  • Conducción autónoma: la segmentación de instancias permite que los autos autónomos detecten y clasifiquen los autos, objetos, personas y características de la carretera (como los semáforos) de forma precisa.
  • Imágenes satelitales: la segmentación de instancias puede ayudar a identificar y aislar objetos de interés, como distinguir entre varios edificios a lo largo de una carretera con fines de GPS.
  • Robótica: la segmentación de instancias permite la clasificación de artículos, la detección de defectos y, similar a los autos autónomos, permite que los robots disciernan y naveguen alrededor de objetos en su entorno.

 

 

¿Cómo funciona la segmentación de instancias?

El aprendizaje profundo se ha vuelto esencial para la segmentación de instancias: casi todos los métodos modernos de segmentación de imágenes utilizan redes neuronales. Aunque en los últimos años han surgido modelos transformadores como una alternativa viable, la mayoría de los métodos de segmentación de imágenes (incluidos los utilizados para la segmentación de instancias) aprovechan alguna forma de redes neuronales convolucionales (CNN).

Los modelos de segmentación de instancias basados en CNN se dividen en dos categorías:

  • Los modelos de dos etapas , como Mask R-CNN, primero realizan la detección de objetos y luego generan máscaras de segmentación de objetos.
  • Los modelos one-shot (o de una sola etapa), como YOLACT, realizan ambas tareas en paralelo.

Tanto los modelos de segmentación de instancias basados en CNN como los basados en transformadores utilizan una estructura de codificador-decodificador, en la que se utiliza una red de codificador para extraer datos relevantes de la imagen de entrada y una red de decodificador utiliza esos datos de características extraídos para reconstruir la imagen con un mapa de segmentación.

Para comprender los modelos de segmentación de instancias, es útil entender las partes que los constituyen.

Redes neuronales convolucionales (CNN)

Las CNN simples pueden clasificar imágenes y (en el caso de imágenes que contienen un solo objeto) objetos.

Para que los algoritmos matemáticos sean compatibles con una imagen, deben representar la imagen en un formato numérico. Las CNN procesan una imagen de entrada RGB como una matriz tridimensional (3D) de píxeles, en la que las tres dimensiones del píxel representan sus valores R(ed) (rojo), G(reen) (verde) y (B)lue (azul), respectivamente.

En una CNN convencional, existen tres tipos de capas:

  • Las capas convolucionales  usan filtros bidimensionales, llamados kernels, para extraer características relevantes de la imagen realizando convoluciones. Después de cada convolución, el kernel se mueve, avanza, a una región adyacente, repitiendo este proceso hasta que haya recorrido toda la imagen. El resultado de esta extracción de características es un mapa de características.

  • Las capas de agrupación comprimen los datos del mapa de características. Este proceso, también llamado downsampling (submuestreo o diezmado) o reducción de dimensionalidad, aumenta la eficiencia computacional y reduce el riesgo de sobreajuste en el entrenamiento de los modelos.

  • Las capas totalmente conectadas reciben y recopilan datos visuales de cada nodo en la red neuronal “totalmente conectada” y predicen si la imagen coincide con categorías para la que se le entrenó detectar.

Si bien las capas convolucionales adicionales pueden mejorar la precisión, agregar demasiadas capas provoca la desaparición de los gradientes, lo que impide la optimización del modelo. La arquitectura de ResNet resolvió este problema y allanó el camino para las CNN con cientos (o incluso miles) de capas.

Mire el video: “Qué son las redes neuronales convolucionales (CNN)” en YouTube.
CNN basada en regiones (R-CNN)

La R-CNN se desarrolló para resolver tareas complejas de detección de múltiples objetos que no se pueden lograr con las CNN estándar. Su evolución posterior, Faster R-CNN, es un componente integral de muchos modelos de segmentación de instancias.

Para hacer predicciones a nivel de objeto (en lugar de a nivel de imagen), la R-CNN introdujo propuestas de región: R-CNN utiliza la búsqueda selectiva (enlace externo a ibm.com) para proponer alrededor de 2000 cuadros superpuestos que pueden contener un objeto, luego introduce cada “propuesta de objeto” en una CNN para la extracción de características. Admite algoritmos de máquina vectorial (SVM) y luego clasifica objetos y genera cuadros delimitadores.

Faster R-CNN mejoró drásticamente la velocidad de las R-CNN al introducir primero la imagen completa en una CNN para la extracción de características y luego, usar el mapa de características resultante para identificar regiones de interés (RoI). Poco después, Faster R-CNN mejoró aún más la velocidad y la precisión al introducir una red de propuestas de región que se puede entrenar (RPN) para reemplazar el algoritmo de búsqueda selectiva más lento que no se puede entrenar.

Lea el artículo: “Faster R-CNN: hacia la detección de objetos en tiempo real con redes de propuestas de región”.
Redes totalmente convolucionales

Las redes totalmente convolucionales (FCN) sustituyen las capas fijas totalmente conectadas de una CNN simple con capas convolucionales y de agrupación adicionales, de ahí que sean “totalmente convolucionales”. La aparición de las FCN marcó el comienzo de la era moderna de la segmentación de imágenes.

Al igual que las CNN convencionales, las FCNs utilizan una red de codificadores, como ResNet o VGG, para la extracción de características y el submuestreo. Pero en lugar de pasar datos codificados a una capa totalmente conectada para clasificar toda la imagen, las FCNs pasan los datos codificados a través de capas de una red “decodificadora” que clasifica e interpola (upsample) los datos de características comprimidos para reconstruir la imagen original con máscaras de segmentación píxel por píxel.

Naturalmente, algunos datos se pierden durante el proceso de submuestreo. Las variaciones posteriores de FCN, como U-Net, introdujeron conexiones de omisión que omiten selectivamente algunas capas convolucionales para preservar mayores detalles.

Lea el documento: "Redes totalmente convolucionales para segmentación semántica"
Mask R-CNN

La arquitectura Mask R-CNN combinó la detección de objetos de una Faster R-CNN con las capacidades de segmentación de una FCN para lograr un gran avance en la segmentación de instancias.

Después de que la RPN genere cuadros delimitadores para los objetos propuestos y de que el resto de la red Faster R-CNN confirme cuáles propuestas de regiones contienen objetos (y realice regresiones para mejorar la precisión de los cuadros delimitadores de objetos), una FCN crea una máscara de segmentación de los objetos contenidos dentro de cada cuadro delimitador.

Este proceso es eficaz incluso cuando los objetos están ocluidos, ya que la red Faster R-CNN puede diferenciar entre cada instancia de objeto para garantizar que cada una se segmenta individualmente.

Lea el artículo: “Mask R-CNN”
Modelos one-shot (de una sola etapa)

Ciertas aplicaciones de segmentación de instancias, como la detección de artículos defectuosos en una línea de ensamblaje de fabricación, requieren resultados en tiempo real. Los modelos de una sola etapa se desarrollaron para casos de uso en los que la velocidad es de máxima prioridad.

Los modelos de dos etapas como Mask R-CNN son muy precisos, pero su enfoque inherentemente secuencial es difícil de acelerar. Los modelos de segmentación de instancias de una sola etapa, como YOLACT (You Only Look At CoefficienTs), se basan en modelos de detección de objetos de una etapa, como YOLO (You Only Look Once).

En YOLACT, una FPN crea mapas de características de alta resolución, que se introducen en dos ramas paralelas: una rama de FCN propone “máscaras prototipo” k de instancias de objetos potenciales; simultáneamente, una rama de capas completamente conectadas produce muchos “cuadros de anclaje”, similares a las propuestas de región, y también predice “coeficientes de máscara” k “ —uno para cada máscara prototipo— que representan la probabilidad de que un objeto propuesto se alinee con una máscara de segmentación propuesta. La supresión no máxima (NMS) se utiliza para filtrar las instancias propuestas con los coeficientes de máscara más altos.

Lea el documento: “YOLACT++: Mejor segmentación de instancias en tiempo real”
modelos de transformador

Las innovaciones recientes en la segmentación de instancias y la panóptica han analizado modelos de transformadores, inspirados en su éxito en campos como el procesamiento de lenguaje natural. Los modelos como Vision Transformers (ViT) utilizan la autoatención en lugar de la convolución, lo que permite un análisis holístico del contexto visual de una imagen.

El principal reto a superar han sido las exigencias computacionales: la complejidad computacional de la autoatención aumenta cuadráticamente con el tamaño de la imagen. Los transformadores Swin utilizan ventanas desplazadas (en lugar de ventanas deslizantes convencionales) para crear capas de autoatención que no se superponen, lo que hace que la complejidad computacional aumente linealmente, no cuadráticamente, con el tamaño de la imagen. Los modelos basados en Swin ahora rivalizan en precisión con las principales infraestructuras basadas en CNN.

Lea el artículo: “Transformador Swin: Transformador de visión jerárquica mediante ventanas desplazadas”
Entrenamiento de los modelos de segmentación de instancias

Los algoritmos de aprendizaje automático, incluidos los algoritmos de aprendizaje profundo utilizados para la segmentación de instancias, deben entrenarse. Tanto los modelos basados en CNN como los basados en transformadores se entrenan con retropropagación: los modelos realizan ingeniería inversa de imágenes de entrenamiento anotadas para aprender los pesos y sesgos apropiados para la tarea en cuestión.

La anotación de los datos de entrenamiento debe ser muy precisa a fin de maximizar el aprendizaje automático adecuado y servir como un punto de referencia de “verdad fundamental” (evidencia empírica) contra el cual se pueden evaluar y optimizar los modelos entrenados. Dado que las capacidades humanas superan con creces incluso los modelos de visión artificial más precisos, esta anotación se realiza a mano, lo cual es un proceso costoso y laborioso.

Para evitar el tiempo y el costo de los conjuntos de datos personalizados, la mayoría de los modelos utilizan conjuntos de datos de entrenamiento de código abierto o ajustan una red de codificadores preentrenados para tareas visuales más específicas. Los conjuntos de datos comunes de imágenes de código abierto incluyen:

  • COCO (objetos comunes en contexto): un conjunto de datos masivo 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.

  • Paisajes urbanos: un conjunto de datos a gran escala centrado en calles urbanas, con imágenes de 50 ciudades en varios días, temporadas y condiciones climáticas.

Evaluación de modelos de segmentación de instancias

Las medidas más comúnmente aplicadas de segmentación de instancias y rendimiento de detección de objetos son Intersección sobre unión (IOu) Precisión promedio (AP). Estas métricas generalmente se expresan en términos de rendimiento frente a un conjunto de datos de referencia, como “una AP de 54.4 en el conjunto de datos de COCO”.

Intersección sobre unión (IoU)
IoU mide el solapamiento de píxeles entre una máscara de verdad fundamental y la predicción de un modelo, expresado como un porcentaje o un número entero entre 0 y 1. Para imágenes con múltiples instancias, se utiliza la media de IoU (mIoU).

Si bien la IoU es intuitiva, tiene limitaciones importantes:

  • Recompensa las predicciones demasiado amplias. Incluso si una máscara de segmentación es demasiado grande, obtendrá una IoU perfecta de 1 si contiene la máscara de verdad fundamental en su interior.
  • No se puede utilizar como una función de pérdida. Para malas predicciones sin superposición (ya sea ligeramente desviadas o ni siquiera cercanas), IoU=0. Esto significa que IoU no es diferenciable y, por lo tanto, no puede ayudar a un algoritmo a optimizar un modelo. Intersección sobre unión generalizada (o GIoU) (enlace externo a ibm.com) modifica la IoU para hacerla diferenciable.

Precisión promedio (AP)
La AP se calcula como el área bajo la curva precisión-sensibilidad (precision-recall). Equilibra las compensaciones entre dos métricas, precisión y sensibilidad, calculadas utilizando valores de resultados discretos como verdaderos positivos (TP), verdaderos negativos (TN), falsos positivos (FP) y falsos negativos (FN).

  • La precisión mide la frecuencia con la que las predicciones positivas, en este caso, los píxeles de una instancia segmentada, son correctas: TP/(TP+FP). Tiene la desventaja de que recompensa falsos negativos.
  • Sensibilidad mide con qué frecuencia se capturan las predicciones positivas: TP/(TP+FN). Tiene la desventaja de que recompensa falsos positivos.

Para maximizar la relevancia, la AP a menudo se calcula dentro de umbrales específicos de IoU. Por ejemplo, “AP50” calcula la AP solo para predicciones con una IoU superior al 50 por ciento. La media de la precisión promedio (mAP) se utiliza de manera situacional como el valor promedio de la AP en todos los umbrales calculados.

 

 

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 instancias 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 diversas 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