Inicio
Temas
Segmentación semántica
La segmentación semántica es una tarea de visión artificial que asigna una etiqueta de clase a píxeles utilizando un algoritmo de aprendizaje profundo (DL). Es una de las tres subcategorías en el proceso general de segmentación de imágenes que ayuda a las computadoras a comprender la información visual. La segmentación semántica identifica colecciones de píxeles y las clasifica de acuerdo con 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 integral de análisis de imágenes 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 instancia 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 o instancia individual 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 implican ambos tipos de información: realizan segmentación semántica y detectan y segmentan instancias de objetos individuales, brindando un análisis más completo de la imagen al asignar a cada píxel una etiqueta semántica y (cuando corresponda) un identificador de instancia único.
Vea cómo puede escalar las cargas de trabajo de IA, para todos sus datos, en cualquier lugar.
Las tareas de segmentación semántica ayudan a las máquinas a distinguir las diferentes clases de objetos y regiones de fondo de una imagen. Con el auge de la inteligencia artificial (IA) y el aprendizaje automático (ML), la segmentación de imágenes y la creación de mapas de segmentación juegan un papel importante en el entrenamiento de las computadoras para reconocer un 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 las máquinas interpretar 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 fundamental: 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 (sin 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ágenes.1
Con el creciente éxito de los algoritmos de aprendizaje profundo para ayudar a las máquinas a interpretar imágenes como datos, las máquinas son cada vez mejores en la identificación de objetos. Si bien la tarea de clasificación de imágenes ayuda a la máquina a comprender qué información contiene una imagen, la segmentación semántica permite a la máquina identificar las ubicaciones precisas de diferentes tipos de información visual, así como dónde comienza y termina.
Los modelos de segmentación semántica 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 color 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, otra para el suelo y otra para el cielo de 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 aprendizaje profundo (DL) requieren que un modelo se entrene en grandes conjuntos de datos previamente etiquetados y anotados por expertos humanos, ajustando sus pesos y sesgos mediante técnicas de aprendizaje automático como la propagación inversa y el descenso de gradiente.
Los métodos de DL han llegado a reemplazar otros algoritmos de aprendizaje automático "tradicionales", como Support Vector Machines (SVM) y Random Forest. Aunque las redes neuronales profundas requieren más tiempo, datos y recursos computacionales para capacitarse, superaron a otros métodos y rápidamente se convirtieron en el enfoque elegido después de que las primeras innovaciones resultaron exitosas.
La tarea de clasificar los datos de imagen con precisión requiere conjuntos de datos que consistan en valores de píxeles que representan 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 que se utilizan para el aprendizaje automático.
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 uno. Por ejemplo, imagine un problema de segmentación en el que se enseña a la visión artificial 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 visión artificial del automóvil debe estar entrenada para reconocerlos a todos de manera consistente o, de lo contrario, es posible que no siempre le indique al automóvil que frene. Además, el entrenamiento también debe ser extremadamente exacto y preciso, de lo contrario, podría frenar constantemente después de clasificar de manera errónea imágenes inocuas como objetos de preocupación.
Estos son algunos de los conjuntos de datos de código abierto más populares utilizados en la segmentación semántica y de imagen:
Clases de objetos visuales de Pascal (Pascal VOC): el conjunto de datos VOC de Pascal 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, incluso la detección, segmentación y subtítulos de imágenes.
Cityscapes: el popular conjunto de datos de paisajes urbanos 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 robusta para que funcionen correctamente. Estos son algunos modelos de segmentación semántica ampliamente utilizados.
Redes completamente convolucionales (FCN)
Una red completamente convolucional (FCN) es una arquitectura de red neuronal de última generación, que se utiliza para la segmentación semántica y que depende de varias capas conectadas y convolucionales. 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 la convolución, la agrupación o el muestreo 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 FCN original que se presentó en 2015 y logra mejores resultados de forma consistente. Consta de dos partes, un codificador y un decodificador. Mientras que el codificador apila capas convolucionales que constantemente reducen el muestreo de la imagen para extraer información a partir de ella, el decodificador reconstruye las características de la imagen utilizando 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
El modelo de segmentación semántica DeepLab fue desarrollado por Google 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 aumentar el muestreo 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 características se extrae a través de un algoritmo de campo aleatorio condicional totalmente conectado (CRF) para capturar y utilizar más detalles para la función de pérdida de píxeles, lo que da como resultado una máscara de segmentación más clara y precisa.
Pyramid Scene Parsing Network (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 la de sus predecesores. Al igual que los algoritmos anteriores, la arquitectura PSPnet emplea el enfoque de codificador-decodificador, pero donde DeepLab aplicaba escalado para realizar sus cálculos a nivel de píxeles, PSPnet agrega una nueva capa de agrupación piramidal para lograr sus resultados. La agrupación de múltiples escalas de PSPnet le permite analizar una ventana más amplia de información de la imagen que otros modelos.
Los automóviles autónomos utilizan la segmentación semántica para ver el mundo que los rodea y reaccionar en tiempo real. La segmentación semántica separa lo que el automóvil ve en regiones visuales categorizadas, como carriles en una carretera, otros automóviles e intersecciones. El conocimiento proporcionado al automóvil mediante 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 que cruza la calle u otro automóvil que frena de forma repentina.
Muchos procedimientos médicos comunes, como tomografías computarizadas, radiografías y resonancias magnéticas, dependen del análisis de imágenes. Aunque en el pasado esta tarea solía recaer en un profesional de la medicina, hoy en día los modelos de segmentación de imágenes médicas logran resultados similares. Al analizar la imagen y dibujar límites exactos alrededor de los diversos objetos, la IA que cuenta con segmentación semántica puede ayudar a detectar anomalías e incluso sugerir posibles diagnósticos.
Los agricultores utilizan IA, automatización y segmentación semántica para ayudar a detectar la existencia de plagas en sus cultivos e incluso automatizar la pulverización de pesticidas. La visión artificial puede decirle al granjero qué partes del campo están potencialmente afectadas por la plaga, o en riesgo de estarlo, y un sistema automatizado puede tomar medidas para eliminar la plaga.
La segmentación semántica se utiliza con frecuencia para permitir que las cámaras cambien entre el modo vertical y horizontal, agreguen o eliminen un filtro o creen un efecto. Todos los filtros y funciones populares en aplicaciones como Instagram y TikTok usan segmentación semántica para identificar automóviles, edificios, animales, entre otros objetos, para que se puedan aplicar los filtros o efectos elegidos.
La segmentación semántica y la segmentación de imágenes desempeñan un papel fundamental en el procesamiento de imágenes para las cargas de trabajo de IA. IBM® aprovecha varias herramientas y tecnologías clave de código abierto de IA y las combina con innovaciones de investigación de IBM para permitir 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 controlar 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 utilizados en la enseñanza de las computadoras para que aprendan a comprender y procesar la información visual.
1“Practical Machine Learning for Computer Vision” (enlace externo a ibm.com), Lakshmanan, Valliappa, Gorner, Martin y Gillard, Ryan, O'Reilly Media, julio de 2021