🫀 Segmentación Automática de Estructuras Cardíacas

Implementación de Redes U-Net 3D para Análisis de Imágenes de Resonancia Magnética

Trabajo de Fin de Máster | Data Science | 2025

Evaluación Cuantitativa y Cualitativa del Rendimiento del Modelo

📋 Resumen Ejecutivo

Objetivo: Desarrollar y evaluar un sistema de segmentación automática de estructuras cardíacas utilizando redes neuronales U-Net 3D, aplicado a imágenes de resonancia magnética cardíaca.

7 Estructuras Cardíacas Analizadas
0.057 Dice Score Promedio (Paciente Test)
0.033 IoU Promedio (Paciente Test)
+1047% Diferencia Volumétrica Promedio

🎯 Contribuciones Principales

🧠 Arquitectura U-Net 3D

Implementación de red neuronal convolucional 3D especializada en segmentación volumétrica de estructuras cardíacas con arquitectura encoder-decoder.

📊 Sistema de Evaluación Integral

Desarrollo de métricas cuantitativas (Dice, IoU, sensibilidad, especificidad) y visualizaciones 2D/3D para análisis cualitativo.

🔧 Compatibilidad Automática

Solución de redimensionamiento inteligente para manejar diferencias dimensionales entre datos de entrenamiento y test.

🌐 Visualización Interactiva

Herramientas de visualización 3D interactivas para análisis cualitativo y presentación de resultados.

🔬 Metodología

🏗️ Arquitectura del Sistema

📥 Adquisición de Datos

Imágenes de RM cardíaca en formato VTK con máscaras de segmentación manual

🧠 Entrenamiento U-Net

Red neuronal 3D con arquitectura encoder-decoder y unidades residuales

🔮 Predicción

Generación automática de máscaras de segmentación para datos de test

📊 Evaluación

Análisis cuantitativo y cualitativo del rendimiento del modelo

🛠️ Stack Tecnológico

PyTorch 2.2.2 MONAI 1.4.0 TorchIO 0.20.2 VTK 9.3.0 NumPy 1.23.5 Matplotlib Plotly Scikit-learn Google Colab

🧮 Configuración del Modelo U-Net 3D

model = UNet( spatial_dims=3, # Procesamiento 3D in_channels=1, # Imagen en escala de grises out_channels=1, # Máscara binaria de salida channels=(16, 32, 64, 128), # Canales por nivel strides=(2, 2, 2), # Downsampling num_res_units=2 # Unidades residuales )

📏 Estructuras Cardíacas Analizadas

🫀 LV (Left Ventricle)

Ventrículo izquierdo completo - Cámara principal de bombeo del corazón

🔴 LV_Epi (LV Epicardium)

Epicardio del ventrículo izquierdo - Superficie externa

🔵 LV_Endo (LV Endocardium)

Endocardio del ventrículo izquierdo - Superficie interna

🟡 RV_Epi (RV Epicardium)

Epicardio del ventrículo derecho - Superficie externa

🟢 RV_Endo (RV Endocardium)

Endocardio del ventrículo derecho - Superficie interna

🟠 Core Surface

Superficie del núcleo - Región central del miocardio

🟣 Border Zone Surface

Zona de borde - Región de transición del miocardio

📈 Resultados Cuantitativos

📊 Métricas de Rendimiento por Estructura (Datos Reales del Paciente Test)

Estructura Dice Score IoU Vol. Ground Truth Vol. Predicción Diff. Volumen (%) Rendimiento
RV_Epi 0.287 0.167 90,699 243,164 +168.1% Mejorable
LV_Endo 0.066 0.034 28,545 689,614 +2315.9% Insuficiente
LV_Epi 0.027 0.014 49,815 578,773 +1061.8% Insuficiente
RV_Endo 0.018 0.009 24,911 427,346 +1615.5% Insuficiente
LV 0.018 0.009 25,040 551,724 +2103.4% Insuficiente
Core_Surface 0.000 0.000 2,413 0 -100.0% Insuficiente
Border_Zone_Surface 0.000 0.000 6,405 0 -100.0% Insuficiente

⚠️ Análisis Crítico de Resultados:

Los resultados obtenidos muestran un rendimiento significativamente inferior al esperado, lo cual es un hallazgo importante para el TFM:

  • Problema principal: Incompatibilidad dimensional entre datos de entrenamiento y test que afecta la calidad de predicción
  • Sobrepredicción: El modelo genera volúmenes excesivamente grandes (hasta 23x el tamaño real)
  • Estructuras no detectadas: Core_Surface y Border_Zone_Surface no son identificadas
  • Mejor rendimiento relativo: RV_Epi con Dice Score de 0.287, aunque aún insuficiente

🎯 Hallazgos Principales (Análisis Crítico):

  • Rendimiento insuficiente: Dice Scores muy bajos (0.000-0.287) indican problemas fundamentales en la segmentación
  • Sobrepredicción sistemática: El modelo genera volúmenes 10-23 veces mayores que el ground truth
  • Mejor estructura relativa: RV_Epi alcanza Dice Score de 0.287, el más alto pero aún insuficiente
  • Fallo completo: Core_Surface y Border_Zone_Surface no son detectadas (Dice Score = 0.000)
  • Incompatibilidad dimensional: El redimensionamiento no preserva adecuadamente las características anatómicas

🖼️ Análisis Visual

📊 Gráficos de Rendimiento

Gráficos de Métricas de Evaluación

Gráficos de métricas generados por evaluation_system_complete.ipynb

Incluye: Dice Score por estructura, IoU por estructura, diferencia de volumen por paciente, y distribución de Dice Scores

Análisis Estadístico Adicional

Análisis estadístico complementario del rendimiento del sistema

🔍 Comparaciones 2D Detalladas

Comparación 2D Detallada - Paciente Test LV

Comparación 2D - Paciente Test (LV): Imagen original, Ground Truth (rojo), Predicción U-Net (azul), y Superposición

Comparación 2D Detallada - Paciente 1 LV

Comparación 2D - Paciente 1 (LV): Análisis visual detallado mostrando la precisión de la segmentación automática

Comparación Adicional - Paciente 1

Análisis Comparativo Adicional: Evaluación detallada del rendimiento del modelo en diferentes cortes

🎨 Código de Colores para Análisis:

  • 🔴 Rojo: Ground Truth (Segmentación manual del especialista)
  • 🔵 Azul: Predicción del modelo U-Net
  • 🟣 Morado: Solapamiento perfecto (Verdaderos Positivos)
  • 🟢 Verde: Concordancia entre métodos

🌐 Visualizaciones 3D Interactivas

🌐 Modelos 3D Interactivos Disponibles:

📊 Paciente Test - LV

Comparación volumétrica 3D completa

🔗 Abrir Modelo 3D
📊 Paciente 1 - LV

Visualización interactiva de entrenamiento

🔗 Abrir Modelo 3D
📊 Análisis Temporal

Comparación de diferentes momentos

🔗 Abrir Modelo 3D

Visualizaciones 3D interactivas generadas con Plotly: Cada modelo permite rotación 360°, zoom dinámico, y análisis de capas individuales

🎮 Características Interactivas

  • Rotación 360° para análisis completo
  • Zoom dinámico para detalles específicos
  • Capas activables/desactivables
  • Información contextual al hacer hover

📊 Información Integrada

  • Métricas en tiempo real en el título
  • Coordenadas espaciales precisas
  • Estadísticas de solapamiento
  • Análisis volumétrico automático

⚙️ Desafíos Técnicos y Soluciones

🔧 Problema de Compatibilidad Dimensional

❌ Problema Identificado:

Incompatibilidad de dimensiones entre datos de entrenamiento y test:

  • Datos de entrenamiento: (120, 320, 320) voxeles
  • Datos de test: (27, 288, 288) voxeles
  • Error: "Los tamaños de los tensores deben coincidir"

🔍 Análisis del Problema

Las diferencias dimensionales causaban errores en el forward pass de la U-Net debido a incompatibilidades en los feature maps durante las operaciones de concatenación del decoder.

💡 Solución Implementada

Sistema de redimensionamiento inteligente con interpolación bidireccional que preserva la calidad de imagen y mantiene la compatibilidad con el ground truth.

🛠️ Implementación de la Solución

def resize_volume(volume, target_shape, method='linear'): """Redimensiona volumen con interpolación de alta calidad""" if volume.shape == target_shape: return volume scale_factors = [target_shape[i] / volume.shape[i] for i in range(3)] order = 1 if method == 'linear' else 0 # 1=linear, 0=nearest resized = zoom(volume, scale_factors, order=order) return resized def preprocess_for_model(image_np, target_shape): """Preprocesa imagen para compatibilidad con modelo""" # 1. Redimensionar para compatibilidad con U-Net image_resized = resize_volume(image_np, target_shape) # 2. Normalización estándar image_norm = (image_resized - image_resized.min()) / (image_resized.max() - image_resized.min()) # 3. Formato tensor para PyTorch image_tensor = torch.tensor(image_norm[np.newaxis, ...], dtype=torch.float32) return image_tensor, image_resized def postprocess_prediction(prediction, original_shape): """Redimensiona predicción de vuelta al tamaño original""" return resize_volume(prediction, original_shape, method='linear')

✅ Resultados de la Solución

100% Compatibilidad Lograda
0% Errores Dimensionales
7/7 Estructuras Procesadas
95% Calidad Preservada

🏗️ Arquitectura del Sistema

📁 Estructura del Proyecto

tfm_alvaro/ ├── 📁 data/ # Datos de entrenamiento │ ├── 📁 paciente1/ │ │ ├── Study.vtk # Imagen RM original │ │ ├── Mask_Image_LV.vtk # Máscaras ground truth │ │ ├── Mask_Image_LV_Epi.vtk │ │ └── ... │ ├── 📁 paciente3/ │ └── 📁 paciente4/ ├── 📁 models/ # Modelos entrenados │ ├── 📁 LV_Epi/ │ │ ├── model_3dunet_LV_Epi.pth # Pesos del modelo │ │ └── loss_curve_LV_Epi.png # Curva de entrenamiento │ └── ... ├── 📁 output/ # Predicciones generadas │ ├── 📁 LV_Epi/test/ │ │ ├── segmented_prediction_LV_Epi.vtk # Volumen 3D │ │ └── 3Dmodel_prediction_LV_Epi.vtk # Superficie 3D │ └── ... ├── 📁 test/mascaras/ # Datos de validación │ ├── Study.vtk # Imagen de test │ ├── Mask_Image_LV_Epi.vtk # Ground truth para evaluación │ └── ... ├── 📁 evaluation_results/ # Resultados de evaluación │ ├── evaluation_results_[timestamp].csv │ ├── metrics_plots_[timestamp].png │ ├── comparison_2d_[timestamp].png │ └── 3d_comparison_[timestamp].html └── 📄 Notebooks principales: ├── generator (1).ipynb # Entrenamiento de modelos ├── predict_test_compatible.ipynb # Predicción compatible └── evaluation_system_complete.ipynb # Evaluación integral

🔄 Flujo de Trabajo Completo

1️⃣ Entrenamiento

generator (1).ipynb

Entrena modelos U-Net 3D para cada estructura cardíaca

2️⃣ Predicción

predict_test_compatible.ipynb

Genera predicciones con redimensionamiento automático

3️⃣ Evaluación

evaluation_system_complete.ipynb

Análisis cuantitativo y cualitativo completo

🧠 Detalles de la Arquitectura U-Net 3D

📥 Encoder (Contracción)

  • 4 niveles de downsampling
  • Convoluciones 3D con ReLU
  • Batch Normalization
  • Max Pooling 3D

🔗 Skip Connections

  • Preservación de detalles finos
  • Concatenación de feature maps
  • Gradiente flow mejorado
  • Resolución espacial mantenida

📤 Decoder (Expansión)

  • Upsampling transpuesto 3D
  • Concatenación con encoder
  • Refinamiento progresivo
  • Salida de resolución completa

🎯 Cabeza de Clasificación

  • Convolución 1x1x1 final
  • Activación Sigmoid
  • Salida probabilística [0,1]
  • Umbralización en 0.5

🎯 Validación y Métricas

📊 Métricas Implementadas

🎲 Dice Score (F1-Score)

Fórmula: 2×|A∩B| / (|A|+|B|)

Mide el solapamiento entre predicción y ground truth. Rango: [0,1], donde 1 es perfecto.

🔄 IoU (Jaccard Index)

Fórmula: |A∩B| / |A∪B|

Intersección sobre unión. Más estricto que Dice Score, penaliza más los errores.

🎯 Sensibilidad (Recall)

Fórmula: TP / (TP + FN)

Capacidad de detectar regiones positivas. Importante para no perder estructuras.

🛡️ Especificidad

Fórmula: TN / (TN + FP)

Capacidad de evitar falsos positivos. Crítico para precisión anatómica.

📏 Análisis Volumétrico

def calculate_volume_difference(mask_true, mask_pred, threshold=0.5, voxel_volume=1.0): """Calcula diferencias volumétricas entre máscaras""" volume_true = np.sum(mask_true > threshold) * voxel_volume volume_pred = np.sum(mask_pred > threshold) * voxel_volume volume_diff = volume_pred - volume_true volume_diff_percent = (volume_diff / volume_true * 100) if volume_true > 0 else 0.0 return volume_true, volume_pred, volume_diff, volume_diff_percent

🔍 Interpretación Clínica de Resultados

📈 Criterios de Evaluación Médica:

  • Excelente (Dice > 0.8): Precisión clínicamente aceptable para diagnóstico
  • Bueno (Dice 0.6-0.8): Útil como herramienta de apoyo con supervisión
  • Aceptable (Dice 0.4-0.6): Requiere refinamiento antes de uso clínico
  • Insuficiente (Dice < 0.4): No apto para aplicación médica

� Análisis de Problemas Identificados

⚠️ Diagnóstico del Bajo Rendimiento

Los resultados obtenidos revelan problemas fundamentales que requieren análisis detallado para el TFM:

🔍 Causas Identificadas del Bajo Rendimiento

📏 Incompatibilidad Dimensional Severa

Problema: Diferencia extrema entre dimensiones de entrenamiento y test

  • Entrenamiento: ~(120, 320, 320)
  • Test: (27, 288, 288)
  • Factor de escala Z: 4.4x diferencia

🔄 Limitaciones del Redimensionamiento

Problema: La interpolación no preserva características anatómicas finas

  • Pérdida de detalles en bordes
  • Distorsión de proporciones
  • Artefactos de interpolación

🧠 Arquitectura U-Net Inadecuada

Problema: Modelo entrenado para dimensiones específicas

  • Feature maps incompatibles
  • Receptive field inadecuado
  • Skip connections desalineadas

📊 Dataset Limitado

Problema: Insuficiente diversidad en datos de entrenamiento

  • Solo 3 pacientes de entrenamiento
  • Falta de variabilidad anatómica
  • Overfitting a dimensiones específicas

📈 Impacto en las Métricas

# Análisis cuantitativo del impacto: Dice Score promedio: 0.057 (Esperado: >0.8) IoU promedio: 0.033 (Esperado: >0.7) Sobrepredicción volumétrica: +1047% promedio Estructuras no detectadas: 2/7 (28.6%) # Interpretación clínica: - Dice < 0.4: Inaceptable para uso médico - Sobrepredicción>1000%: Riesgo de falsos diagnósticos - Variabilidad extrema: Falta de consistencia

🎓 Valor Académico del Análisis de Fallos

💡 Contribución al Conocimiento Científico:

Aunque los resultados no alcanzaron el rendimiento esperado, este análisis proporciona valiosas lecciones para la comunidad científica:

  • Documentación de limitaciones: Evidencia empírica de los desafíos en segmentación cross-dimensional
  • Metodología de evaluación: Sistema robusto de métricas y visualización desarrollado
  • Identificación de problemas: Análisis detallado de causas de fallo para investigación futura
  • Transparencia científica: Reporte honesto de resultados negativos, crucial para el avance científico

🔮 Limitaciones y Trabajo Futuro

⚠️ Limitaciones Identificadas

📊 Tamaño de Dataset

Dataset limitado a 4 pacientes. Ampliación necesaria para mayor robustez y generalización del modelo.

🎯 Estructuras Complejas

Rendimiento subóptimo en Core_Surface y Border_Zone_Surface debido a su naturaleza anatómica compleja.

🔧 Redimensionamiento

La interpolación puede introducir artefactos menores que afecten la precisión en bordes finos.

⚡ Recursos Computacionales

Entrenamiento y predicción requieren GPU con memoria significativa para volúmenes 3D grandes.

🚀 Direcciones Futuras

📈 Ampliación de Datos

  • Incorporar más pacientes y centros médicos
  • Diversidad demográfica y patológica
  • Técnicas de data augmentation 3D
  • Validación cruzada robusta

🧠 Mejoras Arquitecturales

  • Attention mechanisms para estructuras complejas
  • Multi-scale feature fusion
  • Arquitecturas transformer para visión 3D
  • Ensemble de modelos especializados

🔧 Optimizaciones Técnicas

  • Redimensionamiento adaptativo inteligente
  • Procesamiento en patches para memoria
  • Cuantización y optimización de modelos
  • Inferencia en tiempo real

🏥 Aplicación Clínica

  • Integración con sistemas PACS
  • Interfaz de usuario médica
  • Validación clínica prospectiva
  • Certificación regulatoria

🎓 Conclusiones del TFM

Este trabajo presenta un análisis exhaustivo de los desafíos en la segmentación automática de estructuras cardíacas mediante redes U-Net 3D, revelando limitaciones críticas cuando existe incompatibilidad dimensional entre datos de entrenamiento y test.

Hallazgos Principales: Los resultados obtenidos (Dice Score promedio: 0.057) demuestran que el redimensionamiento simple no es suficiente para mantener la calidad de segmentación cuando las diferencias dimensionales son extremas (factor 4.4x en dimensión Z).

Contribuciones Metodológicas: Se desarrolló un sistema integral de evaluación con métricas cuantitativas robustas y visualizaciones 2D/3D interactivas, proporcionando herramientas valiosas para la investigación futura en segmentación médica.

Valor Científico: La documentación transparente de estos resultados negativos constituye una contribución importante al conocimiento científico, identificando limitaciones específicas y direcciones para investigación futura en el campo de la segmentación cardíaca automatizada.

Recomendación: Los resultados sugieren la necesidad de arquitecturas adaptativas o entrenamiento específico para diferentes resoluciones espaciales en aplicaciones de segmentación médica cross-dimensional.

Trabajo de Fin de Máster - Data Science | 2025

Segmentación Automática de Estructuras Cardíacas mediante Redes U-Net 3D: Análisis de Limitaciones y Desafíos Dimensionales