Guia Tecnica
Pipeline Completo: De la Ecografia al Modelo de IA
Paso a paso de como construimos un modelo de aprendizaje automatico para detectar cardiopatias congenitas en ecografias prenatales, desde la captura de imagenes hasta la validacion clinica.
← Volver a la presentacionCaptura de Imagenes Ecograficas
El punto de partida es la obtencion de imagenes ecograficas del corazon fetal. Cada paciente es evaluada en CERPO entre las 18 y 32 semanas de gestacion, y se capturan entre 2 y 5 imagenes por cada uno de los 5 planos cardiacos de Yagel.
Etiquetado con CVAT
Para entrenar un modelo supervisado, cada imagen debe ser evaluada sistematicamente por medicos especialistas. Utilizamos CVAT (Computer Vision Annotation Tool) como plataforma de etiquetado, con un sistema jerarquico de 3 niveles (Primario, Secundario, Terciario) que evalua cada punto anatomico como Normal, Anormal o No Evaluable.
¿Que es CVAT?
CVAT es una herramienta open-source desarrollada por Intel para anotacion de imagenes y video. En nuestro proyecto, la utilizamos para evaluar cada imagen ecografica mediante un checklist anatomico de 39 puntos distribuidos en los 5 planos de Yagel. El esquema de etiquetado fue disenado por el equipo medico de CERPO y cada estructura se clasifica en 3 estados: Normal, Anormal, o No Evaluable.
Jerarquia de etiquetado — 3 niveles
Codificacion en CVAT: XXYY_PLANO_Descripcion
0209_C4C_Septum interauricular indemne→ Normal
Evalua la posicion de los organos abdominales para determinar el situs visceral.
- 0101 Circunferencia Abdominal
- 0102 Estomago a Izquierda
- 0103 Aorta posterior y a la izquierda de la columna
- 0104 VCI anterior y a la derecha de la columna
- 0105 Segmento corto de la Vena Umbilical
El plano mas importante del screening. Evalua sistematicamente 15 puntos anatomicos del corazon fetal.
- 0201 Area Cardiaca
- 0202 Posicion cardiaca en hemitorax izquierdo
- 0203 Angulo cardiaco 45° +/-20
- 0204 4 camaras presentes
- 0205 2 atrios de similar tamano
- 0206 2 ventriculos de similar tamano
- 0207 Concordancia Auriculo Ventricular
- 0208 FO de derecha a izquierda
- 0209 Septum interauricular indemne
- 0210 Al menos una vena pulmonar en AI
- 0211 Banda moderadora en VD
- 0212 Cruz cardiaca indemne
- 0213 Offseting valvular normal
- 0214 Aorta descendente posterior a AI
- 0215 Derrame pericardico < 2 mm
El sistema CRP (Cardiopatia - Referencia Perinatal) es una clasificacion jerarquica de 3 niveles disenada especificamente para este proyecto, con 9 categorias principales y 73 codigos de diagnostico. Formato: CRP[N1].[N2].[N3] donde N1 = categoria, N2 = subcategoria, N3 = diagnostico especifico.
Preprocesamiento de Imagenes
Antes de alimentar las imagenes al modelo, se aplican transformaciones para estandarizarlas y mejorar la capacidad de generalizacion del modelo.
- Recorte de regiones no informativas: Se remueven los bordes del ecografo (texto, logos, barras laterales) dejando solo la imagen ultrasonica.
- Redimensionamiento: Todas las imagenes se escalan a un tamano uniforme (ej: 224x224 px para arquitecturas estandar, o 299x299 para Inception).
- Normalizacion: Los valores de pixeles se escalan al rango [0, 1] o se estandarizan con media y desviacion estandar del dataset.
- Data augmentation: Se aplican transformaciones aleatorias para aumentar la variabilidad del dataset de entrenamiento.
Arquitectura del Modelo: ¿Por que Deep Learning?
El objetivo es que un algoritmo mire una ecografia cardiaca fetal y determine si presenta anomalias estructurales. Para esto necesitamos un modelo que pueda "ver" — extraer patrones visuales de una imagen y tomar una decision. Existen varias familias de modelos capaces de hacer esto.
Comparacion de enfoques
| Enfoque | Principio | Dataset requerido | Ecografia? | Limitacion |
|---|---|---|---|---|
| ML clasico (SVM, Random Forest) | Features manuales (textura, forma) | Pequeno | Limitado | El humano decide que features importan — pierde patrones sutiles |
| CNN (Redes Convolucionales) | Aprende features automaticamente de la imagen | Medio (~1-5K) | Excelente | Necesita datos etiquetados; caja negra |
| Vision Transformer (ViT) | Atencion global sobre parches de la imagen | Grande (>10K) | Bueno | Necesita muchos datos; computacionalmente costoso |
| U-Net / Segmentacion | Pixel a pixel: genera mascara de la anomalia | Medio + mascaras | Excelente | Requiere anotaciones de segmentacion (poligonos) |
| YOLO / Deteccion | Localiza y clasifica objetos en bounding boxes | Medio + boxes | Bueno | Mejor para localizar que para clasificar globalmente |
¿Por que CNN es la mejor opcion para este proyecto?
- Aprendizaje jerarquico automatico: Las CNN aprenden una jerarquia de caracteristicas visuales — las primeras capas detectan bordes y texturas del ultrasonido, las capas intermedias reconocen formas anatomicas (septum, valvulas, camaras), y las capas profundas integran todo para clasificar. Esto replica el proceso cognitivo del medico ecografista.
- Tamano del dataset compatible: Con ~5000 imagenes etiquetadas, las CNN funcionan bien (especialmente con transfer learning). Los Vision Transformers necesitarian 10x mas datos. El ML clasico perderia patrones sutiles.
- Evidencia clinica: La mayoria de los estudios publicados en deteccion ecografica de cardiopatias congenitas con IA usan CNN (ResNet, VGG, EfficientNet). Esto permite comparar resultados directamente con la literatura.
- Explicabilidad con GradCAM: Las CNN permiten generar mapas de calor (GradCAM) que muestran que region de la imagen fue determinante para la decision. Esto es critico en medicina — el medico necesita entender por queel modelo dice "anormal".
- Eficiencia de inferencia: Una CNN entrenada clasifica una imagen en milisegundos, lo que permite uso en tiempo real durante la ecografia.
¿Como se logra el diagnostico con Deep Learning?
El flujo completo desde la ecografia hasta el diagnostico:
El ecografista obtiene una imagen del corazon fetal en uno de los 5 planos de Yagel
La imagen se recorta, redimensiona a 224x224px, y normaliza
Las capas convolucionales extraen automaticamente patrones: bordes → texturas → formas → estructuras anatomicas
La capa final produce P(anormal) — una probabilidad entre 0 y 1
Si P > umbral optimo (Youden), se clasifica como 'Anormal'. El umbral se determina con la curva ROC
GradCAM genera un heatmap mostrando QUE region de la imagen influyo en la decision
El medico ve: imagen + clasificacion + probabilidad + heatmap → toma la decision clinica final
Importante: El modelo NO reemplaza al medico
El modelo es una herramienta de apoyo diagnostico, no un sistema autonomo. El flujo clinico es: modelo sugiere → medico revisa → medico decide. El objetivo es reducir la tasa de cardiopatias que pasan inadvertidas (falsos negativos), no automatizar el diagnostico.
Un modelo por cada plano
Se entrena un modelo CNN independiente para cada uno de los 5 planos de Yagel. Cada modelo se especializa en las caracteristicas visuales propias de su corte cardiaco (el plano de 4 camaras tiene patrones muy distintos al de 3 vasos), lo que mejora la precision respecto a un modelo unico generalista.
Entrenamiento del Modelo
El entrenamiento es el proceso donde el modelo "aprende" a distinguir corazones normales de anormales, ajustando progresivamente sus parametros internos para minimizar los errores de clasificacion.
Particion de datos
La Cohorte 1 se divide aleatoriamente manteniendo la proporcion de clases (estratificada):
| Parametro | Valor | Justificacion |
|---|---|---|
| Funcion de perdida | Binary Cross-Entropy | Estandar para clasificacion binaria |
| Optimizador | Adam | Convergencia rapida, adaptativo |
| Learning rate | 1e-4 (con decay) | Bajo para fine-tuning, previene olvido catastrofico |
| Batch size | 32 | Balance entre memoria GPU y estabilidad del gradiente |
| Epocas | 50 (early stopping) | Se detiene si no mejora en 10 epocas |
| Regularizacion | Dropout 0.5 + L2 | Previene sobreajuste en datasets pequenos |
Validacion y Metricas
La validacion mide objetivamente que tan bien funciona el modelo. Usamos dos fases: validacion interna (30% de Cohorte 1) y validacion externa (Cohorte 2 independiente).
Curva ROC
La curva ROC (Receiver Operating Characteristic) es el grafico central de la evaluacion. Muestra la relacion entre la tasa de verdaderos positivos (sensibilidad) y la tasa de falsos positivos (1 - especificidad) para diferentes umbrales de decision.
AUC(Area Under the Curve): Un valor entre 0 y 1. Un AUC de 0.5 = clasificador aleatorio (inutil). Un AUC de 1.0 = clasificador perfecto. En la practica, un AUC > 0.85 se considera excelente para diagnostico medico.
¿Cuantos enfermos detecta correctamente? Critica en screening prenatal — no queremos perder ninguna cardiopatia.
¿Cuantos sanos identifica correctamente? Evita alarmas innecesarias.
Maximiza simultaneamente sensibilidad y especificidad.
VPP: si el modelo dice "anormal", ¿que probabilidad hay de que realmente lo sea? VPN: si dice "normal", ¿que tan confiable es?
Deploy y Uso Clinico
Una vez validado, el modelo se exporta a formato ONNX para integrarse en un sistema web que permite a los medicos subir una ecografia y obtener una prediccion en tiempo real.
Respondiendo la Pregunta de Investigacion
¿Puede un modelo de aprendizaje automatico basado en CNN alcanzar un rendimiento diagnostico comparable al de un operador experto en la deteccion de cardiopatias congenitas estructurales?
La respuesta se determina comparando las metricas del modelo (sensibilidad, especificidad, AUC) contra el gold estandar ecocardiografico fetal y las tasas de deteccion reportadas en la literatura (4.5% - 50%). Un modelo con AUC > 0.85 y sensibilidad > 80% representaria una mejora significativa respecto al screening convencional.
← Ver resultados en la presentacion