EN JA ZH ES

Introducción a la segmentación semántica - Arquitecturas U-Net y DeepLab

· 9 min de lectura

Qué es la segmentación semántica

La segmentación semántica asigna una etiqueta de categoría a cada píxel de una imagen, logrando comprensión de la escena a nivel de píxel. A diferencia de los cuadros delimitadores de la detección de objetos, la segmentación semántica proporciona contornos precisos de los objetos.

Definición de la tarea: Dada una imagen RGB de H×W×3, producir un mapa de etiquetas H×W donde cada valor de píxel corresponde a un ID de categoría.

Diferencia con la segmentación de instancias: La segmentación semántica no distingue entre individuos diferentes de la misma categoría. Por ejemplo, 3 peatones en una imagen se etiquetan todos como "persona", sin distinguir cuál es cuál. La segmentación de instancias asigna un ID diferente a cada peatón.

Datasets típicos:

  • PASCAL VOC: 20 clases + fondo, benchmark clásico
  • Cityscapes: Escenas de conducción urbana, 19 clases, anotación fina
  • ADE20K: 150 clases, máxima diversidad de escenas
  • COCO-Stuff: 171 clases, incluye objetos y materiales

FCN - La arquitectura pionera sin capas totalmente conectadas

FCN (Fully Convolutional Network, 2015) fue el primer método de aprendizaje profundo de extremo a extremo para segmentación semántica, sentando las bases para todos los métodos posteriores.

Idea central: Reemplazar las capas totalmente conectadas de redes de clasificación como VGG-16 por capas convolucionales 1×1, permitiendo que la red acepte entradas de cualquier tamaño y produzca mapas de segmentación del tamaño correspondiente.

Estrategias de sobremuestreo:

  • FCN-32s: Sobremuestreo directo 32x, resultado tosco
  • FCN-16s: Fusión de características pool4 seguida de sobremuestreo 16x
  • FCN-8s: Fusión de características pool3 y pool4 seguida de sobremuestreo 8x, mejor resultado

Contribuciones: Demostró que las redes de clasificación preentrenadas pueden transferirse a tareas de segmentación; estableció el paradigma básico de codificador (submuestreo) + decodificador (sobremuestreo); la idea de conexiones de salto para fusionar características multiescala influyó en todas las arquitecturas posteriores.

Limitaciones: Bordes de segmentación toscos; falta de información de contexto global; método de sobremuestreo simple (interpolación bilineal).

U-Net - Estructura codificador-decodificador y aplicaciones en imágenes médicas

U-Net (2015) fue diseñada para segmentación de imágenes médicas; su estructura simétrica codificador-decodificador y conexiones de salto se convirtieron en el paradigma clásico de redes de segmentación.

Características de la arquitectura:

  • Estructura simétrica: Codificador y decodificador con el mismo número de capas, formando una U
  • Conexiones de salto: Los mapas de características de cada capa del codificador se concatenan directamente con la capa correspondiente del decodificador, preservando detalles espaciales
  • Sobremuestreo gradual: El decodificador restaura la resolución gradualmente, duplicando en cada paso

Por qué es adecuada para imágenes médicas:

  • Los datasets médicos suelen ser pequeños (decenas a cientos de imágenes), U-Net rinde excelentemente con pocos datos
  • El aumento de datos (deformación elástica, rotación, volteo) expande efectivamente los datos de entrenamiento
  • La segmentación precisa de bordes es crucial para el diagnóstico médico

Variantes:

  • 3D U-Net: Versión 3D para datos volumétricos CT/MRI
  • Attention U-Net: Mecanismo de compuerta de atención que enfoca regiones importantes
  • U-Net++: Conexiones de salto densas, fusión de características multiescala
  • nnU-Net: Framework autoconfigurado que optimiza automáticamente todos los hiperparámetros

Serie DeepLab - Alta precisión con convolución dilatada y CRF

La serie DeepLab amplía el campo receptivo sin reducir la resolución mediante convolución dilatada (Atrous/Dilated Convolution), siendo el método de referencia para segmentación semántica general.

Convolución dilatada: Inserta espacios (valores cero) entre los elementos del kernel de convolución estándar, ampliando el campo receptivo sin aumentar el número de parámetros. Con tasa de dilatación r=2, un kernel 3×3 tiene un campo receptivo efectivo equivalente a 5×5.

ASPP (Atrous Spatial Pyramid Pooling): Usa en paralelo múltiples convoluciones dilatadas con diferentes tasas de dilatación para capturar información de contexto multiescala. Configuración típica: r=6, 12, 18 más convolución 1×1 y pooling promedio global.

Evolución de versiones DeepLab:

  • DeepLabV1: Convolución dilatada + postprocesamiento CRF
  • DeepLabV2: Introduce ASPP para características multiescala
  • DeepLabV3: ASPP mejorado con contexto global
  • DeepLabV3+: Añade módulo decodificador, mejora precisión de bordes. Versión más utilizada actualmente

Rendimiento: DeepLabV3+ (backbone ResNet-101) alcanza mIoU ~82% en Cityscapes y ~89% en PASCAL VOC.

Preparación de datos de entrenamiento y métodos de anotación

La anotación de alta calidad a nivel de píxel es la base del entrenamiento de segmentación semántica y también la etapa más laboriosa.

Herramientas de anotación:

  • CVAT: Código abierto, soporta polígonos, pincel, anotación asistida por IA
  • Label Studio: Código abierto, soporta múltiples tipos de anotación y colaboración en equipo
  • Labelme: Herramienta Python ligera, adecuada para anotación a pequeña escala
  • Asistencia SAM: Usar SAM para generar máscaras iniciales, corrección humana, mejora drástica de eficiencia

Formatos de anotación:

  • Imagen de máscara: Imagen monocanal del mismo tamaño que la original, valores de píxel son IDs de categoría
  • Formato COCO: Archivo JSON que registra coordenadas de contornos poligonales
  • Formato VOC: Máscara PNG en color, cada color corresponde a una categoría

Aumento de datos:

  • Transformaciones geométricas: recorte aleatorio, volteo, rotación, escalado
  • Transformaciones de color: ajuste aleatorio de brillo, contraste, saturación
  • Deformación elástica: particularmente efectiva en imágenes médicas
  • Mixup/CutMix: mezclar diferentes imágenes para aumentar diversidad

Implementación y despliegue - Del entrenamiento en PyTorch a la inferencia en el borde

Flujo completo desde el entrenamiento del modelo hasta el despliegue en producción.

Entrenamiento en PyTorch:

  • Usar bibliotecas torchvision o segmentation_models_pytorch
  • Función de pérdida: CrossEntropyLoss (estándar) o Dice Loss (para desequilibrio de clases)
  • Optimizador: AdamW, lr=1e-4, weight_decay=1e-4
  • Programación de tasa de aprendizaje: CosineAnnealingLR o PolynomialLR
  • Técnicas de entrenamiento: precisión mixta (AMP), acumulación de gradientes, backbone preentrenado

Exportación del modelo:

  • ONNX: torch.onnx.export(model, dummy_input, 'model.onnx')
  • TorchScript: torch.jit.trace(model, dummy_input)
  • TensorRT: ONNX → motor TensorRT, inferencia óptima en GPU NVIDIA

Despliegue en el borde:

  • Móvil: Backbone MobileNetV3 + cabeza DeepLabV3, formato CoreML/TFLite
  • Embebido: TensorRT en Jetson, segmentación en tiempo real
  • Navegador: ONNX Runtime Web o TensorFlow.js

Optimización de inferencia: La cuantización (INT8) puede acelerar 2-4x; la destilación de conocimiento transfiere conocimiento de modelos grandes a pequeños; reducir la resolución de entrada (ej. 512×512) acelera significativamente.

Artículos relacionados

Visión general de la detección de objetos - Comparación de arquitectura y rendimiento de YOLO, SSD y Faster R-CNN

Explicación sistemática de la detección de objetos con aprendizaje profundo. Cubre los principios de YOLO, SSD y Faster R-CNN, compromisos velocidad-precisión y criterios de selección prácticos con benchmarks concretos.

Fundamentos de segmentación de imágenes - Principios de división de regiones y aplicaciones

Introducción sistemática a la segmentación de imágenes, desde métodos clásicos de umbralización hasta técnicas de aprendizaje profundo (U-Net, DeepLab, SAM), incluyendo métricas de evaluación e implementación en navegador.

Comparación de herramientas de anotación de imágenes - Cómo elegir entre CVAT, Label Studio y Roboflow

Comparación exhaustiva de herramientas de anotación de imágenes para aprendizaje automático. Cubre funcionalidades, costos y capacidades de asistencia IA de CVAT, Label Studio, Roboflow y más.

Guía técnica de eliminación de fondos - Segmentación y procesamiento de recorte explicados

Explicación técnica de las técnicas de eliminación de fondos. Compara la segmentación semántica, el alpha matting basado en trimap y los enfoques de detección de bordes con sus diferencias de precisión.

Fundamentos del procesamiento de imágenes médicas - Datos y técnicas de DICOM, CT y MRI

Guía sistemática del procesamiento de imágenes médicas que cubre estándares DICOM, principios de imagen CT/MRI, ventaneo, segmentación y aplicaciones clínicas de IA.

Tecnología de etiquetado automático de imágenes - Detección de objetos, reconocimiento de escenas y generación de subtítulos

Explicación de la tecnología de etiquetado automático de imágenes con IA. Cubre detección de objetos (YOLO), reconocimiento de escenas, generación de subtítulos de imágenes y su implementación en aplicaciones web con ejemplos prácticos.

Términos relacionados