Resultados

Rendimiento sobre fotos reales

El examen que de verdad importa no es el banco de renders limpios (optimista, porque comparte distribución con el entrenamiento) sino un banco aparte de fotografías reales de huesos, nunca vistas por ningún modelo. Esta tabla compara los cuatro enfoques probados, antes y después de sumar fotos reales al entrenamiento.

Modelo Descripción Accuracy · solo síntesis histórico Accuracy · + fotos reales re-verificado hoy
Geométrico RandomForest sobre medidas OpenCV 0.5185 0.5439
CNN ResNet18 sobre píxeles del recorte segmentado 0.5741 0.6842
Híbridomejor modelo CNN + medidas geométricas concatenadas 0.6852 0.7719
Cascada Regla de elongación → hueso largo; resto → híbrido 0.6296 0.7719

Columna "solo síntesis": accuracy histórica, checkpoint anterior a sumar fotos reales al entrenamiento — no re-verificada (haría falta reentrenar esa variante para tener también su macro-F1/balanced accuracy). Columna "+ fotos reales": re-ejecutada hoy contra los modelos y el banco actuales (57 de las 63 fotos del manifest — 6 no están ya en disco, ver nota abajo), por eso difiere un poco del número citado en versiones anteriores de esta página. Cascada sale idéntica al híbrido en este banco: la regla de elongación solo se disparó en 8 fotos, y en las 8 coincidió con lo que la CNN ya predecía sola.

Accuracy esconde el desbalance — por eso el titular usa balanced accuracy

Con 8.5× de diferencia entre el grupo más y menos representado, un accuracy alto puede convivir con una clase entera en 0% de recall (pasa exactamente con "costilla" en el modelo geométrico, abajo). Balanced accuracy y macro-F1 promedian por clase antes de promediar entre clases, así que una clase ignorada pesa igual que una que domina el dataset — no se puede compensar acertando mucho en las clases fáciles.

Modelo n Accuracy Balanced accuracy Macro F1 Macro precision Macro recall Top-3 accuracy
Geométrico 57 0.544 0.536 0.47 0.57 0.54 0.860
CNN 57 0.684 0.665 0.67 0.75 0.66 0.877
Híbridomejor modelo 57 0.772 0.783 0.77 0.81 0.78 0.895
Cascada 57 0.772 0.783 0.77 0.81 0.78 0.895

Todas las cifras de esta tabla se generaron en la misma corrida, hoy, contra el mismo banco de 57 fotos reales (training/evaluate_cnn_real_photos.py / evaluate_real_photos.py / evaluate_cascade_real_photos.py, segmentación Grounded-SAM). El híbrido pasa de 0.772 accuracy a 0.783 balanced accuracy — sube, no baja: en este banco concreto no hay ninguna clase con recall en 0 para el híbrido (ver desglose completo abajo), así que balanced accuracy no lo penaliza. El geométrico sí lo sufre: 0.544 accuracy pero 0.47 de macro-F1, arrastrado por "costilla" en 0.00 precisión/recall/F1.

Desglose por clase — los 4 modelos, banco completo

Grupo n Geométrico
P / R / F1
CNN
P / R / F1
Híbrido
P / R / F1
costilla3 0.00 / 0.00 / 0.00 0.50 / 0.33 / 0.40 1.00 / 0.67 / 0.80
cráneo6 0.33 / 0.67 / 0.44 1.00 / 0.83 / 0.91 0.67 / 0.67 / 0.67
hueso largo8 0.89 / 1.00 / 0.94 1.00 / 0.25 / 0.40 0.88 / 0.88 / 0.88
hueso pequeño3 0.43 / 1.00 / 0.60 0.67 / 0.67 / 0.67 0.43 / 1.00 / 0.60
hueso plano8 1.00 / 0.38 / 0.55 0.38 / 0.62 / 0.48 1.00 / 0.62 / 0.77
mandíbula/maxilar8 0.50 / 0.75 / 0.60 0.89 / 1.00 / 0.94 0.60 / 0.75 / 0.67
pelvis8 1.00 / 0.12 / 0.22 0.67 / 0.75 / 0.71 0.86 / 0.75 / 0.80
sacro6 0.50 / 0.33 / 0.40 1.00 / 0.67 / 0.80 1.00 / 1.00 / 1.00
vértebra7 0.44 / 0.57 / 0.50 0.60 / 0.86 / 0.71 0.83 / 0.71 / 0.77
Macro avg57 0.57 / 0.54 / 0.47 0.75 / 0.66 / 0.67 0.81 / 0.78 / 0.77

P / R / F1 = precisión / recall / F1-score por clase. Cascada no está en esta tabla porque en el banco actual predice exactamente igual que Híbrido (ver nota arriba). El geométrico falla sobre todo por baja precisión o recall en clases con forma parecida a otra (pelvis→cráneo, costilla→hueso plano en la matriz de confusión) — la CNN compensa esas confusiones con textura donde la forma sola no alcanza; el híbrido combina ambas señales y es el único sin ninguna clase en 0.

Por grupo morfológico: forma vs. textura

Una iteración anterior (antes de sumar las fotos reales al entrenamiento) mide por separado el recall de cada rama sobre el mismo banco — ilustra bien por qué combinarlas ayuda: donde falla la forma, suele acertar la textura, y viceversa.

Grupo n Recall geométrico Recall CNN
hueso_largo80.880.38
hueso_pequeño30.670.67
hueso_plano80.620.62
mandíbula/maxilar70.430.71
vértebra70.140.71
cráneo70.000.57
sacro60.000.33
pelvis70.000.29
costilla20.000.50