La segmentación semántica es una tarea de computer vision que asigna una etiqueta de clase a los píxeles utilizando un algoritmo de deep learning (DL).Es una de las tres subcategorías del proceso general de segmentación de imágenes que ayuda a los ordenadores a comprender la información visual.La segmentación semántica identifica colecciones de píxeles y las clasifica según diversas características.Las otras dos subcategorías de segmentación de imágenes son la segmentación de instancias y la segmentación panóptica.
La segmentación de imágenes es un proceso de análisis de imágenes de extremo a extremo que divide una imagen digital en varios segmentos y clasifica la información contenida en cada región. Los tres tipos de tareas de segmentación de imágenes (segmentación semántica, de instancias y panóptica) asignan etiquetas a píxeles individuales de la imagen para marcar los límites y formas específicos de diferentes objetos y regiones de la imagen, clasificándolos mediante el uso de información como el color, el contraste, la ubicación dentro de la imagen y otros atributos.
Mientras que la segmentación semántica etiqueta cada píxel contenido en una imagen por su clase semántica, la segmentación de instancias y la segmentación panóptica se utilizan para diferentes tareas de clasificación.Los modelos de segmentación de instancias se centran únicamente en las clases semánticas contenidas en una imagen que se pueden contar: entidades y objetos como personas, animales, árboles, automóviles o bocas de incendio.Detecta cualquier objeto individual, o instancia, y luego genera una máscara de segmentación y una etiqueta de identificación específica para cada uno.Los modelos de segmentación panóptica conllevan ambos tipos de información: realizan una segmentación semántica y detectan y segmentan instancias de objetos individuales, proporcionando un análisis más completo de la imagen al asignar a cada píxel tanto una etiqueta semántica como (cuando proceda) un identificador de instancia único.
Vea cómo puede escalar las cargas de trabajo de IA, para todos sus datos, en cualquier lugar.
Suscríbase al boletín de IBM
Las tareas de segmentación semántica ayudan a los equipos a distinguir las diferentes clases de objetos y regiones de fondo de una imagen. Con el auge de la inteligencia artificial (IA) y el machine learning (ML), la segmentación de imágenes y la creación de mapas de segmentación desempeñan un papel importante en el entrenamiento de ordenadores para reconocer contexto importante en imágenes digitales como paisajes, fotos de personas, imágenes médicas y mucho más.
Los modelos de aprendizaje de segmentación de imágenes permiten a los equipos interpretar la información visual de manera similar al cerebro humano.Si bien los modelos de segmentación de imágenes comparten ciertos usos con los modelos de detección de objetos, difieren en un aspecto crucial: identifican diferentes entidades contenidas en una imagen a nivel de píxel, en lugar de aproximar esa información con un cuadro delimitador.Básicamente, mientras que un modelo de clasificación de imágenes puede determinar lo que contiene una imagen (pero no realizar ninguna localización) y un modelo de detección de objetos puede determinar en qué parte de una imagen se encuentra el objeto, para determinar las formas y los límites específicos de las entidades de la imagen se requiere un modelo de segmentación de imágenes1.
Con el creciente éxito de los algoritmos de deep learning para ayudar a los equipos a interpretar imágenes como datos, los equipos son cada vez mejores en la identificación de objetos. Aunque la tarea de clasificación de imágenes ayuda al equipo a entender qué información contiene una imagen, la segmentación semántica permite al equipo identificar las ubicaciones precisas de diferentes tipos de información visual, así como dónde comienza y termina.
Los modelos semánticos de segmentación crean un mapa de segmentación de una imagen de entrada. Un mapa de segmentación es, básicamente, una reconstrucción de la imagen original en la que cada píxel ha sido codificado por su clase semántica para crear máscaras de segmentación. Una máscara de segmentación es simplemente una parte de la imagen que se ha diferenciado de otras regiones de la imagen. Por ejemplo, un mapa de segmentación de un árbol en un campo vacío probablemente contendría tres máscaras de segmentación: una para el árbol, una para el suelo y otra para el cielo en el fondo.
Para ello, los modelos de segmentación semántica utilizan redes neuronales complejas para agrupar con precisión los píxeles relacionados en máscaras de segmentación y reconocer correctamente la clase semántica del mundo real para cada grupo de píxeles (o segmento).Estos métodos de deep learning (DL) requieren que un modelo se entrene en grandes conjuntos de datos previamente etiquetados anotados por expertos humanos, ajustando sus ponderaciones y sesgos mediante técnicas de machine learning como la retropropagación y el descenso del gradiente.
Los métodos de DL han llegado a reemplazar a otros algoritmos de machine learning "tradicionales", como las máquinas de vectores de soporte (SVM) y el bosque aleatorio. Aunque las redes neuronales profundas requieren más tiempo, datos y recursos informáticos para entrenarse, superan a otros métodos y se convirtieron rápidamente en el enfoque elegido después de que las primeras innovaciones demostraran su éxito.
La tarea de clasificar con precisión los datos de la imagen requiere conjuntos de datos que consten de valores de píxel que representen máscaras para diferentes objetos o etiquetas de clase contenidas en una imagen. Normalmente, debido a la complejidad de los datos de entrenamiento involucrados en la segmentación de imágenes, estos tipos de conjuntos de datos son más grandes y complejos que otros conjuntos de datos de machine learning.
Hay muchos conjuntos de datos de segmentación de imágenes de código abierto disponibles, que abarcan una amplia variedad de clases semánticas con miles de ejemplos y anotaciones detalladas para cada una. Por ejemplo, imagine un problema de segmentación en el que se enseña a la computer vision en un automóvil sin conductor a reconocer todos los distintos objetos ante los que tendrá que frenar, como peatones, bicicletas y otros automóviles. La computer vision del coche debe estar entrenada para reconocerlos todos sistemáticamente o, de lo contrario, no siempre le indicará que frene; su entrenamiento también debe ser extremadamente exacto y preciso o, de lo contrario, podría frenar constantemente tras clasificar erróneamente visuales inocuos como objetos preocupantes.
Estos son algunos de los conjuntos de datos de código abierto más populares utilizados en la segmentación semántica y de imágenes:
Clases de objetos visuales de Pascal (Pascal VOC): el conjunto de Pascal VOC consta de muchas clases de objetos diferentes, cuadros delimitadores y mapas de segmentación sólidos.
MS COCO: MS COCO contiene alrededor de 330.000 imágenes y anotaciones para muchas tareas, como la detección, la segmentación y el subtitulado de imágenes.
Cityscapes: el popular conjunto de datos de cityscapes interpreta datos de entornos urbanos y se compone de 5000 imágenes con 20.000 anotaciones y 30 etiquetas de clase.
Los modelos entrenados exigen una arquitectura sólida para funcionar correctamente. Estos son algunos modelos de segmentación semántica ampliamente utilizados.
Redes totalmente convolucionales (FCN)
Una red totalmente convolucional (FCN) es una arquitectura de red neuronal de última generación utilizada para la segmentación semántica que depende de varias capas convolucionales conectadas. Mientras que la arquitectura CNN tradicional se compone de capas convolucionales y capas planas que generan etiquetas individuales, los modelos FCN reemplazan algunas de esas capas planas con bloques convolucionales 1:1 que pueden extraer más información sobre la imagen. Evitar el uso de capas planas y densas a favor de las capas de convolución, agrupamiento o sobremuestreo hace que las redes FCN sean más fáciles de entrenar.
U-Nets
La arquitectura U-Net es una modificación de la arquitectura original de FCN que se introdujo en 2015 y logra de forma constante mejores resultados. Consta de dos partes, un codificador y un decodificador. Mientras el codificador apila capas convolucionales que reducen constantemente la resolución de la imagen para extraer información de ella, el decodificador reconstruye las características de la imagen mediante el proceso de deconvolución. La arquitectura U-Net se utiliza principalmente en el campo médico para identificar tumores cancerosos y no cancerosos en los pulmones y el cerebro.
DeepLab
Google desarrolló el modelo de segmentación semántica de DeepLab en 2015 para mejorar aún más la arquitectura del FCN original y ofrecer resultados aún más precisos. Si bien las pilas de capas en un modelo FCN reducen significativamente la resolución de la imagen, la arquitectura de DeepLab utiliza un proceso llamado convolución dilatada para el sobremuestreo de los datos. Con el proceso de convolución dilatada, los kernels de convolución pueden eliminar información de una imagen y dejar espacios entre los parámetros del kernel.
El enfoque de DeepLab para la convolución dilatada extrae los datos del campo de visión más amplio mientras mantiene la misma resolución. A continuación, el espacio de entidades se extrae a través de un algoritmo de campo aleatorio condicional (CRF) completamente conectado para capturar y utilizar más detalles para la función de pérdida de píxeles, lo que genera una máscara de segmentación más clara y precisa.
Red de análisis piramidal de escenas (PSPNet)
En 2017, se introdujo un nuevo algoritmo de segmentación para la segmentación de imágenes. PSPNet implementa un módulo de análisis piramidal que recopila conjuntos de datos de imágenes contextuales con una tasa de precisión mayor que sus predecesores. Al igual que sus predecesoras, la arquitectura PSPNet emplea el enfoque codificador-decodificador, pero donde DeepLab aplicaba el escalado ascendente para hacer sus cálculos a nivel de píxel, PSPNet añade una nueva capa de agrupación piramidal para lograr sus resultados. La agrupación multiescala de PSPNet le permite analizar una ventana más amplia de información de la imagen que otros modelos.
Los coches autónomos utilizan la segmentación semántica para ver el mundo que les rodea y reaccionar a él en tiempo real. La segmentación semántica separa lo que ve el coche en regiones visuales categorizadas como carriles en una carretera, otros coches e intersecciones. El conocimiento proporcionado al coche por segmentación semántica le permite navegar de forma segura y llegar a su destino, así como tomar medidas importantes en respuesta a eventos inesperados como un peatón cruzando la carretera u otro coche que frena de repente.
Muchos procedimientos médicos comunes, como tomografías computarizadas, rayos X y resonancias magnéticas, se basan en el análisis de imágenes. Si bien en el pasado esta tarea normalmente recaía en un profesional médico, hoy en día, los modelos de segmentación de imágenes médicas están logrando resultados similares. Al analizar la imagen y trazar límites exactos alrededor de los distintos objetos que contiene, la IA equipada con segmentación semántica puede ayudar a detectar anomalías e incluso sugerir posibles diagnósticos.
Los agricultores están utilizando la IA, la automatización y la segmentación semántica para ayudar a detectar plagas en sus cultivos e incluso automatizar la pulverización de pesticidas. La computer vision puede decirle al agricultor qué partes de un campo están potencialmente infectadas o en riesgo, y un sistema automatizado puede tomar medidas para eliminar una plaga.
La segmentación semántica se utiliza con frecuencia para permitir a las cámaras cambiar entre el modo retrato y paisaje, añadir o eliminar un filtro o crear un efecto. Todos los filtros y funciones populares de aplicaciones como Instagram y TikTok utilizan la segmentación semántica para identificar coches, edificios, animales y otros objetos para poder aplicar los filtros o efectos elegidos.
La segmentación semántica y la segmentación de imágenes desempeñan funciones fundamentales en el procesamiento de imágenes para cargas de trabajo de IA. IBM® watsonx.data aprovecha varias herramientas y tecnologías clave de código abierto de IA y las combina con las innovaciones de investigación de IBM para habilitar flujos de trabajo de IA sólidos y eficientes para la empresa moderna.
Obtenga más información sobre IBM® watsonx.data, un almacén de datos que ayuda a las empresas a unificar y gobernar fácilmente sus datos estructurados y no estructurados.
Descubra cómo IBM® watsonx.data ayuda a las empresas a abordar los desafíos del complejo panorama de datos actual y a escalar la IA para satisfacer sus necesidades.
Descubra más sobre cómo la IA ayuda a organizar la información y crear resultados en entornos informáticos.
Obtenga más información sobre las diferencias entre los términos clave para enseñar a los ordenadores a comprender y procesar la información visual.
1“Practical Machine Learning for Computer Vision” [Machine learning práctico para computer vision] (enlace externo a ibm.com),Lakshmanan, Valliappa, Gorner, Martin y Gillard, Ryan, O'Reilly Media, julio de 2021