Arquitectura

El camino de una foto, paso a paso

A diferencia de El proyecto (la historia de cómo se llegó hasta aquí), esto es el sistema tal y como funciona hoy cuando subís una foto en Probarlo: qué modelo se ejecuta primero, qué decide cada etapa, y qué pasa si una etapa no encuentra nada.

Entrada

Foto subida en /probar.html

en paralelo — dos filtros independientes

1 · Filtro CLIP

¿Esto es un hueso?

/filter/clip — zero-shot contra los 9 grupos + "no es un hueso". Sin entrenamiento propio.

2 · Filtro ResNet18

Segunda opinión binaria

/filter/is-bone — hueso / no_hueso, modelo aparte del clasificador multi-clase.

3 · Segmentación

Grounded-SAM localiza el hueso

shared/cv_extractor/extract.py — contorno + recorte a bounding box con fondo gris. Una sola pasada: alimenta features geométricas y el recorte que ve la CNN.

4 · Etapa 1

Modelo híbrido → grupo morfológico

/hybrid/classify — embedding CNN (ResNet18) + vector geométrico (elongación, circularidad, Hu...) → uno de 9 grupos (cranio, hueso_largo, vertebra...). El modelo de referencia: supera a CNN sola y a geométrico solo.

en paralelo al resultado de la etapa 1 — no la sustituyen

5 · Puerta de elongación

Atajo para hueso_largo

Si elongación > 0.900 → hueso_largo directo, sin CNN. Generaliza mejor a fotos reales (recall 0.38 → 0.88). Si no salta, manda la CNN de la etapa 1.

6 · Qwen VLM

Tercera opinión

/describe/qwen, /describe/qwen/features — descripción libre + grupo sugerido, o JSON de descriptores anatómicos. Para auditar casos dudosos, no decide nada.

etapa 2 — según el grupo predicho en la etapa 1

hueso_largo · hueso_pequeno · vertebra

Modelo de hueso concreto

fémur, húmero, astrágalo... — entrenado solo con filas de ese grupo.

cranio · mandibula_maxilar

Modelo de taxón

humano / no_humano — entrenado solo con filas de ese grupo.

costilla · hueso_plano · pelvis · sacro

Sin etapa 2 todavía

Se marca stage2_pending en vez de quedar en blanco.

Salida

Resultado mostrado al usuario

Todo corre en el mismo proceso FastAPI (ver infraestructura) y se dispara con una sola subida de foto — las cajas punteadas (puerta de elongación, Qwen) son opiniones en paralelo, no pasos obligatorios de la cadena principal.