Introducción
Este artículo analizará una técnica de visión por computadora de segmentación semántica de imágenes. Aunque esto suena complejo, lo desglosaremos paso a paso e introduciremos un concepto interesante de segmentación semántica de imágenes, que es una implementación que utiliza transformadores de predicción densos o DPT, para abreviar, de las colecciones de Hugging Face. El uso de TED introduce una nueva fase de visión de computadora con capacidades inusuales.
OBJETIVOS DE APRENDIZAJE
- Comparación de TED versus comprensión convencional de conexiones distantes.
- Implementación de segmentación semántica mediante predicción de profundidad con DPT en Python.
- Explore los diseños de DPT y comprenda sus características únicas.
Este artículo fue publicado como parte del Blogatón de ciencia de datos.
Tabla de contenidos.
¿Qué es la segmentación semántica de imágenes?
Imagínese tener una imagen y querer etiquetar cada píxel de ella según lo que representa. Esa es la idea detrás de la segmentación semántica de imágenes. Podría usarse en visión por computadora, distinguiendo un automóvil de un árbol o separando partes de una imagen; Se trata de etiquetar píxeles de forma inteligente. Sin embargo, el verdadero desafío radica en dar sentido al contexto y las relaciones entre los objetos. Comparemos esto con, permítanme decirlo, el antiguo enfoque de manejo de imágenes.
Redes neuronales convolucionales (CNN)
El primer avance fue utilizar Redes neuronales convolucionales para abordar tareas que involucran imágenes. Sin embargo, las CNN tienen límites, especialmente a la hora de capturar conexiones de largo alcance en imágenes. Imagínese si está tratando de comprender cómo los diferentes elementos de una imagen interactúan entre sí a través de largas distancias; ahí es donde las CNN tradicionales tienen dificultades. Aquí es donde celebramos DPT. Estos modelos, basados en la poderosa arquitectura del transformador, exhiben capacidades para capturar asociaciones. Veremos los DPT a continuación.

¿Qué son los transformadores de predicción densos (DPT)?
Para entender este concepto, imagina combinar el poder de los Transformers que conocíamos en PNL Tareas con análisis de imágenes. Ese es el concepto detrás de Dense Prediction Transformers. Son como súper detectives del mundo de la imagen. Tienen la capacidad no solo de etiquetar píxeles en imágenes, sino también de predecir la profundidad de cada píxel, lo que proporciona información sobre qué tan lejos está cada objeto de la imagen. Esto lo veremos a continuación.

Caja de herramientas de la arquitectura DPT
Los TED vienen en diferentes tipos, cada uno con sus capas de "codificador" y "decodificador". Veamos dos populares aquí:
- Transformador DPT-Swin: Piense en un mega transformador con 10 capas de codificador y 5 capas de decodificador. Es excelente para comprender las relaciones entre elementos en niveles de la imagen.
- DPT-ResNet: Este es como un detective inteligente con 18 capas codificadoras y 5 capas decodificadoras. Destaca por detectar conexiones entre objetos lejanos manteniendo intacta la estructura espacial de la imagen.
Principales Caracteristicas
A continuación se ofrece un vistazo más de cerca a cómo funcionan los TED utilizando algunas características clave:
- Extracción de características jerárquicas: Al igual que las redes neuronales convolucionales (CNN) tradicionales, las DPT extraen características de la imagen de entrada. Sin embargo, siguen un enfoque jerárquico donde la imagen se divide en diferentes niveles de detalle. Es esta jerarquía la que ayuda a capturar el contexto local y global, permitiendo que el modelo comprenda las relaciones entre objetos a diferentes escalas.
- Mecanismo de autoatención: Esta es la columna vertebral de los DPT inspirados en la arquitectura original de Transformer, que permite al modelo capturar dependencias de largo alcance dentro de la imagen y aprender relaciones complejas entre píxeles. Cada píxel considera la información de todos los demás píxeles, lo que le brinda al modelo una comprensión integral de la imagen.
Demostración de Python de segmentación semántica de imágenes utilizando DPT
Veremos una implementación de DPT a continuación. Primero, configuremos nuestro entorno instalando bibliotecas no preinstaladas en Colab. Puedes encontrar el código para esto. aquí o en https://github.com/inuwamobarak/semantic-segmentation
Primero, instalamos y configuramos nuestro entorno.
!pip install -q git+https://github.com/huggingface/transformers.git
A continuación, preparamos el modelo sobre el que pretendemos entrenar.
## Define model # Import the DPTForSemanticSegmentation from the Transformers library
from transformers import DPTForSemanticSegmentation # Create the DPTForSemanticSegmentation model and load the pre-trained weights
# The "Intel/dpt-large-ade" model is a large-scale model trained on the ADE20K dataset
model = DPTForSemanticSegmentation.from_pretrained("Intel/dpt-large-ade")
Ahora cargamos y preparamos una imagen que nos gustaría usar para la segmentación.
# Import the Image class from the PIL (Python Imaging Library) module
from PIL import Image import requests # URL of the image to be downloaded
url = 'https://img.freepik.com/free-photo/happy-lady-hugging-her-white-friendly-dog-while-walking-park_171337-19281.jpg?w=740&t=st=1689214254~exp=1689214854~hmac=a8de6eb251268aec16ed61da3f0ffb02a6137935a571a4a0eabfc959536b03dd' # The `stream=True` parameter ensures that the response is not immediately downloaded, but is kept in memory
response = requests.get(url, stream=True) # Create the Image class
image = Image.open(response.raw) # Display image
image

from torchvision.transforms import Compose, Resize, ToTensor, Normalize # Set the desired height and width for the input image
net_h = net_w = 480 # Define a series of image transformations
transform = Compose([ # Resize the image Resize((net_h, net_w)), # Convert the image to a PyTorch tensor ToTensor(), # Normalize the image Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]), ])
El siguiente paso a partir de aquí será aplicar alguna transformación a la imagen.
# Transform input image
pixel_values = transform(image) pixel_values = pixel_values.unsqueeze(0)
Lo siguiente es pasar hacia adelante.
import torch # Disable gradient computation
with torch.no_grad(): # Perform a forward pass through the model outputs = model(pixel_values) # Obtain the logits (raw predictions) from the output logits = outputs.logits
Ahora, imprimimos la imagen como un conjunto de matrices. Convertiremos esto junto a la imagen con la predicción semántica.
import torch # Interpolate the logits to the original image size
prediction = torch.nn.functional.interpolate( logits, size=image.size[::-1], # Reverse the size of the original image (width, height) mode="bicubic", align_corners=False
) # Convert logits to class predictions
prediction = torch.argmax(prediction, dim=1) + 1 # Squeeze the prediction tensor to remove dimensions
prediction = prediction.squeeze() # Move the prediction tensor to the CPU and convert it to a numpy array
prediction = prediction.cpu().numpy()
Realizamos ahora la predicción semántica.
from PIL import Image # Convert the prediction array to an image
predicted_seg = Image.fromarray(prediction.squeeze().astype('uint8')) # Apply the color map to the predicted segmentation image
predicted_seg.putpalette(adepallete) # Blend the original image and the predicted segmentation image
out = Image.blend(image, predicted_seg.convert("RGB"), alpha=0.5)

Ahí tenemos nuestra imagen con la semántica predicha. Podrías experimentar con tus propias imágenes. Veamos ahora algunas evaluaciones que se han aplicado a los DPT.
Evaluaciones de desempeño en DPT
Los DPT se han probado en una variedad de trabajos y artículos de investigación y se han utilizado en diferentes campos de imágenes, como conjuntos de datos de paisajes urbanos, PASCAL VOC y ADE20K, y funcionan mejor que los modelos tradicionales de CNN. Los enlaces a este conjunto de datos y al trabajo de investigación se encontrarán en la sección de enlaces a continuación.
En paisajes urbanos, DPT-Swin-Transformer obtuvo una puntuación del 79.1 % en una métrica de intersección media sobre unión (mIoU). En PASCAL VOC, DPT-ResNet logró un mIoU del 82.8%, un nuevo punto de referencia. Estas puntuaciones son un testimonio de la capacidad de los DPT para comprender imágenes en profundidad.
El futuro de los DPT y lo que nos espera
Los DPT son una nueva era en la comprensión de imágenes. La investigación en DPT está cambiando la forma en que vemos e interactuamos con las imágenes y brinda nuevas posibilidades. En pocas palabras, la segmentación semántica de imágenes con DPT es un gran avance que está cambiando la forma en que decodificamos imágenes y definitivamente hará más en el futuro. Desde etiquetas de píxeles hasta comprensión de la profundidad, las DPT son lo que es posible en el mundo de la visión por computadora. Echemos un vistazo más profundo.
Estimación precisa de la profundidad
Una de las contribuciones más importantes de los DPT es la predicción de información de profundidad a partir de imágenes. Este avance tiene aplicaciones como reconstrucción de escenas 3D, realidad aumentada y manipulación de objetos. Esto proporcionará una comprensión crucial de la disposición espacial de los objetos dentro de una escena.
Segmentación semántica simultánea y predicción de profundidad
Las DPT pueden proporcionar tanto segmentación semántica como predicción de profundidad en un marco unificado. Esto permite una comprensión holística de las imágenes, lo que permite aplicaciones tanto para información semántica como para conocimiento profundo. Por ejemplo, en la conducción autónoma, esta combinación es vital para una navegación segura.
Reducir los esfuerzos de recopilación de datos
Los DPT tienen el potencial de aliviar la necesidad de un etiquetado manual extenso de los datos de profundidad. Las imágenes de entrenamiento con mapas de profundidad adjuntos pueden aprender a predecir la profundidad sin requerir anotaciones de profundidad de píxeles. Esto reduce significativamente el costo y el esfuerzo asociados con la recopilación de datos.
Comprensión de la escena
Permiten que las máquinas comprendan su entorno en tres dimensiones, lo cual es crucial para que los robots naveguen e interactúen de manera efectiva. En industrias como la manufactura y la logística, los DPT pueden facilitar la automatización al permitir que los robots manipulen objetos con una comprensión más profunda de las relaciones espaciales.
Los transformadores de predicción densa están remodelando el campo de la visión por computadora al proporcionar información de profundidad precisa junto con una comprensión semántica de las imágenes. Sin embargo, abordar los desafíos relacionados con la estimación detallada de la profundidad, la generalización, la estimación de la incertidumbre, la mitigación de sesgos y la optimización en tiempo real será vital para lograr plenamente el impacto transformador de las DPT en el futuro.
Para Concluir
La segmentación semántica de imágenes mediante transformadores de predicción densos es un viaje que combina el etiquetado de píxeles con información espacial. La unión de las DPT con la segmentación semántica de imágenes abre un camino apasionante en la investigación de la visión por ordenador. Este artículo ha tratado de desentrañar las complejidades subyacentes de las DPT, desde su arquitectura hasta su destreza de rendimiento y su potencial prometedor para remodelar el futuro de la segmentación semántica en la visión por computadora.
Puntos clave
- Los DPT van más allá de los píxeles para comprender el contexto espacial y predecir profundidades.
- Los DPT superan al reconocimiento de imágenes tradicional que captura la distancia y la información 3D.
- Los DPT redefinen la percepción de imágenes, permitiendo una comprensión más profunda de los objetos y las relaciones.
Preguntas Frecuentes
R1: Si bien los DPT están diseñados principalmente para el análisis de imágenes, sus principios subyacentes pueden inspirar adaptaciones para otras formas de datos. La idea de capturar el contexto y las relaciones a través de transformadores tiene aplicaciones potenciales en distintos dominios.
R2: Los DPT tienen potencial en la realidad aumentada a través de un ordenamiento de objetos más preciso y una interacción en entornos virtuales.
R3: Los métodos tradicionales de reconocimiento de imágenes, como las CNN, se centran en etiquetar objetos en imágenes sin comprender completamente su contexto o diseño espacial, pero los modelos DPT van más allá al identificar objetos y predecir sus profundidades.
R4: Las aplicaciones son extensas. Pueden mejorar la conducción autónoma al ayudar a los automóviles a comprender y navegar en entornos complejos. Pueden hacer progresar las imágenes médicas mediante análisis precisos y detallados. Más allá de eso, los DPT tienen el potencial de mejorar el reconocimiento de objetos en robótica, mejorar la comprensión de escenas en fotografía e incluso ayudar en experiencias de realidad aumentada.
R5: Sí, existen diferentes tipos de arquitecturas TED. Dos ejemplos destacados incluyen DPT-Swin-Transformer y DPT-ResNet, donde DPT-Swin-Transformer tiene un mecanismo de atención jerárquico que le permite comprender las relaciones entre elementos de la imagen en diferentes niveles. Y DPT-ResNet incorpora mecanismos de atención residual para capturar dependencias de largo alcance preservando al mismo tiempo la estructura espacial de la imagen.
enlaces:
Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.
Relacionado:
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://www.analyticsvidhya.com/blog/2023/09/image-semantic-segmentation-using-dense-prediction-transformers/