/ Proyectos / Salud / Displasia de cadera

Detección temprana de displasia de cadera en infantes: ResNet50 y GANs sobre radiografías pélvicas

Clasificación de displasia del desarrollo de cadera (DDC) combinando transfer learning con ResNet50 y aumento de datos médicos escasos con redes generativas antagónicas (GANs).

10 min de lectura Python · TensorFlow/Keras · GANs Datos: 354 radiografías pélvicas de infantes (Fraiwan et al., 2022) Aplicable a tesis y proyectos aplicados
Radiografía pélvica de infante analizada con deep learning para detectar displasia del desarrollo de cadera

El objetivo era clasificar radiografías pélvicas de infantes de 3 a 6 meses como presencia o ausencia de displasia del desarrollo de cadera (DDC), una condición donde el diagnóstico manual depende fuertemente de la experiencia del radiólogo y muestra variabilidad interobservador. El problema real: el dataset disponible tenía solo 354 sujetos (120 con DDC, 234 normales), un tamaño típico en imagen médica pediátrica, pero insuficiente para entrenar una red profunda desde cero sin sobreajustar.

Se combinaron dos técnicas complementarias: una GAN para generar radiografías sintéticas y balancear las clases sin depender de más pacientes reales, y transfer learning con ResNet50 preentrenado en ImageNet para aprovechar filtros visuales ya aprendidos en vez de partir de cero. El hallazgo más importante no fue solo la exactitud final. Fue confirmar, con un baseline honesto, que la ganancia venía de la arquitectura y del balanceo combinados, no de una sola de las dos.


Mapa del casoContenido


Estructura de alto nivelDiagrama de la solución

Fuente Radiografía pélvica AP infante de 3 a 6 meses Preprocesamiento Resize 224×224 + filtro Gaussiano + normalización Aumento con GAN Generador / Discriminador balanceo a 350 / 350 Modelos clásicos SVM Árbol de Decisión Modelos profundos CNN baseline ResNet50 · InceptionV3 Selección del modelo ResNet50 gana la comparación Clasificación final DDC / Normal + probabilidad Verificación especialista apoyo diagnóstico, no reemplazo

Pasa el cursor sobre cada bloque para ver qué hace ese paso.

El balanceo con GAN se hizo antes de comparar arquitecturas, no después, porque comparar modelos sobre un dataset todavía desbalanceado habría premiado artificialmente al modelo con más capacidad de memorizar la clase mayoritaria (Normal).

Para que esto no se quede en el notebook, puedes explorar abajo cómo cambia el balance de clases con la GAN, cómo se compara ResNet50 contra el baseline, y qué pasa con la sensibilidad y la precisión al mover el umbral de decisión (demo educativa, no diagnóstica):

Demo educativa, no diagnóstica. Los casos y curvas son ilustrativos, pensados para explicar el pipeline. Ningún resultado aquí sustituye la evaluación de un especialista.

¿Qué cambia el aumento de datos con GAN?

El dataset real tiene muchos más casos normales que casos con DDC. La GAN no duplica imágenes existentes: genera radiografías sintéticas nuevas para la clase minoritaria.

DDC
120
Normal
234

CNN baseline vs. ResNet50 con transfer learning

Mismas condiciones de entrenamiento, mismo dataset balanceado con GAN. La diferencia es solo la arquitectura.

Exactitud74.3% → 97.4%
Sensibilidad73.7% → 98.8%
Precisión75.4% → 96.0%
CNN baseline Ganancia con ResNet50

Mueve el umbral de decisión

A umbral 0.50 se muestran las métricas del modelo ResNet50 reportadas en el estudio. Fuera de ese punto, la curva es una aproximación pedagógica de la relación sensibilidad-precisión, no una medición real.

Más sensibleUmbral: 0.50Más preciso
98.8%
Sensibilidad
96.0%
Precisión
Caso A (sintético) — probabilidad estimada 92%
DDC
Caso B (sintético, borderline) — probabilidad estimada 54%
DDC
Caso C (sintético) — probabilidad estimada 8%
Normal

El Caso B muestra por qué el umbral importa: con un umbral más alto (más "preciso"), un caso borderline real como este puede pasar como Normal. Es exactamente la clase de decisión que un especialista revisa, no el modelo solo.


Cómo se construyóConstrucción de la solución

Condiciones del proyecto

RestricciónDato
Tamaño del dataset real354 sujetos: 120 con DDC, 234 normales, de 2 hospitales de Jordania
Privacidad de datos médicosNo es posible ampliar el dataset simplemente pidiendo más radiografías de pacientes
Formato de entradaRadiografías pélvicas AP en escala de grises, tamaños heterogéneos
Objetivo del proyectoSistema de apoyo diagnóstico, no reemplazo del especialista
OpciónPor qué se descartó
Entrenar una CNN profunda desde cero354 sujetos no alcanzan para aprender buenos filtros visuales sin sobreajustar
Balancear solo con oversampling clásico (rotar, voltear, recortar)Genera variaciones triviales de las mismas imágenes, no información nueva
GAN para datos sintéticos + transfer learning con ResNet50Aporta variedad real al conjunto de entrenamiento y reutiliza conocimiento visual ya aprendido en vez de partir de cero

Pasos

1

Confirmar que había señal antes de comprometerse con una arquitectura

Agente: propuso ir directo a entrenar un clasificador sobre las imágenes crudas.
Criterio aplicado: primero explorar la separabilidad de las clases con K-Means y PCA sobre características extraídas, para confirmar que había una señal recuperable antes de invertir en una arquitectura más compleja.

2

Balanceo del dataset con GAN, no solo con transformaciones simples

Agente: sugirió aumentar los datos solo con rotaciones, volteos y recortes.
Criterio aplicado: entrenar un generador y un discriminador de forma adversarial para producir radiografías sintéticas nuevas, y balancear el dataset de 120/234 a 350 sujetos por clase, en vez de duplicar variaciones triviales de las mismas imágenes.

3

Un baseline honesto antes del modelo final

Agente: propuso ir directo a ResNet50 y reportar solo esa métrica.
Criterio aplicado: entrenar primero SVM, Árbol de Decisión y una CNN simple como comparación, para que la ganancia de ResNet50 fuera medible frente a algo, no solo asumida.

4

Transfer learning en dos fases, no entrenamiento completo desde el inicio

Agente: sugirió entrenar ResNet50 completo desde el primer epoch.
Criterio aplicado: congelar el modelo base preentrenado en ImageNet y entrenar solo la cabeza nueva primero; después liberar las últimas 20 capas y hacer fine-tuning con un learning rate mucho más bajo, para no destruir los pesos preentrenados con gradientes grandes sobre un dataset pequeño.

Proceso de iteración

Ajuste documentado, no forzado

Antes de llegar a ResNet50, se probaron modelos clásicos (SVM, Árbol de Decisión) sobre características extraídas de la imagen, y una CNN simple entrenada desde cero como baseline. También se entrenó InceptionV3 con transfer learning como segunda comparación. Ninguno de los modelos clásicos ni el CNN baseline superó el 75% de exactitud, mientras que ResNet50 con fine-tuning alcanzó 97.4%, lo que confirmó que la combinación de transfer learning y datos balanceados con GAN sí justificaba la complejidad extra frente a un enfoque más simple.


CierreLecciones importantes

Un accuracy de 97.4% se lee muy distinto según el tamaño del dataset detrás. Aquí son 354 sujetos reales de dos hospitales, balanceados con datos sintéticos generados por una GAN entrenada sobre esos mismos 354 casos. Eso no invalida el resultado, pero sí cambia lo que se puede afirmar con él: es evidencia de que la arquitectura y el balanceo funcionan, no una prueba de que el modelo generaliza a otras poblaciones o equipos de radiografía. Esa distinción, entre "el pipeline funciona" y "el modelo está listo para clínica", es la que un jurado de tesis pregunta primero, y es la que este proyecto documenta con honestidad en vez de esconder.

Si quieres ver el estado más reciente y amplio de la literatura en este campo, esta revisión sistemática es una buena referencia del nivel de evidencia que se espera antes de hablar de uso clínico real: Artificial Intelligence to Detect Developmental Dysplasia of Hip: A Systematic Review.

Termina ya tu proyecto

¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.

El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.

53
proyectos
8
sectores
100%
aplicado

Sin registro. Acceso inmediato