Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clasificación de Severidad de Daños Vehiculares

Open In Colab](https://colab.research.google.com/github/cesardataviz/Deep-Learning-G3/blob/main/notebook/Proyecto_Final_DL_Car_Damage_Colab.ipynb) PyTorch Dataset Accuracy Kappa

Diploma de Especialización en Data Analytics · Curso Deep Learning · Universidad ESAN Profesor: Javier Zárate

📑 Tabla de contenidos


🎯 Objetivo

Clasificar automáticamente la severidad de daños vehiculares (minor / moderate / severe) para triage de siniestros de seguros: un CNN entrenado desde cero se compara contra ResNet18 (transfer learning), y ambos se auditan con Grad-CAM antes de considerar cualquier despliegue — un modelo con buen accuracy pero decisiones no explicables no es aceptable en un sistema que afecta pagos de seguros.

✅ Cumplimiento de la rúbrica

Criterio de la rúbrica Dónde se cumple Evidencia
Informe — contextualiza el problema en Deep Learning informe/Informe_Proyecto_Final.pdf, Sección 1 Problema de negocio (triage), encuadre como clasificación + explicabilidad
Implementación — representación, arquitectura, entrenamiento, hiperparámetros justificados Notebook, secciones de arquitectura y entrenamiento Tabla de hiperparámetros con justificación, 2 arquitecturas comparadas
Resultados — métricas antes/después, comparación, limitaciones Notebook + informe, Sección 3 Accuracy, F1, Kappa cuadrático, matrices de confusión, Grad-CAM, limitaciones explícitas

🧩 Fases del desarrollo

Todas las fases están en un solo notebook: notebook/Proyecto_Final_DL_Car_Damage_Colab.ipynb

Fase Secciones del notebook Contenido
1️⃣ Preprocesamiento de datos DataPipeline de datos Carga del dataset (Kaggle), split train/val/test estratificado, Data Augmentation, WeightedRandomSampler
2️⃣ Entrenamiento Arquitectura A — CNN desde ceroArquitectura B — ResNet18Entrenamiento CNN desde cero (5 bloques + GAP), ResNet18 con fine-tuning gradual (3 etapas)
3️⃣ Evaluación del modelo Evaluación comparativaGrad-CAMAuditoría de negocio Accuracy, F1, Cohen's Kappa cuadrático, matrices de confusión, Grad-CAM desde cero
4️⃣ Prueba del objetivo del trabajo Probar el modelo con una imagen puntual Inferencia sobre una imagen (test set o subida por el usuario), con predicción + Grad-CAM en vivo

Flujo metodológico del proyecto

📊 Los datos

Distribución de clases del dataset

⚠️ Ver limitación del dataset

Las fotos están curadas y bien encuadradas hacia el daño. Una foto real de un cliente (fondo, ángulo, mala luz) es más difícil — el desempeño reportado aquí es un techo optimista, no una estimación de desempeño en producción.

🏗️ Arquitectura

Arquitectura del CNN desde cero

🔍 ¿Por qué Global Average Pooling en vez de Flatten + Dense?

Es la arquitectura que Selvaraju et al. (2020) identifican como caso especial de CAM: los pesos de la capa final se vuelven directamente interpretables como importancia por canal — el modelo se diseñó pensando en explicabilidad desde el inicio, no como un añadido posterior.

🔍 ¿Por qué ResNet18 se entrena en 3 etapas (fine-tuning gradual)?

Descongelar todo el backbone desde la época 1 mete gradientes ruidosos de la capa final (recién inicializada) hacia pesos preentrenados que ya eran buenos. Se entrena en 3 etapas: solo fc → se descongela layer4 → se descongela también layer3. Da más estabilidad que descongelar todo de golpe.

📈 Resultados principales

Comparación de accuracy y Kappa Matrices de confusión

Métrica CNN desde cero ResNet18 (TL)
Accuracy 58.1% 66.1%
Cohen's Kappa (cuadrático) 0.660 0.716

Hallazgo clave: el CNN desde cero, aunque con menor accuracy, comete errores "baratos" (confunde clases adyacentes) y casi nunca errores "caros" (confundir minor con severe) — comportamiento esperable de un modelo que aprendió una representación razonable del problema pese a no tener el prior de ImageNet.

🔥 Explicabilidad (Grad-CAM)

Esquema conceptual de Grad-CAM

Grad-CAM se implementó desde cero (sin librerías de alto nivel), siguiendo Selvaraju et al. (2020), para auditar si ambos modelos basan sus decisiones en la zona de daño real del vehículo o en correlaciones espurias (fondo, marca, placa) — paso obligatorio antes de considerar cualquier uso en un flujo real de triage de siniestros.

✅ Ver checklist de auditoría de negocio
Pregunta Resultado
¿El modelo mira el daño real? ✅ Sí, tras agregar un 5to bloque conv al CNN
¿Hay correlaciones espurias (fondo, marca, placa)? ✅ No detectadas en los ejemplos auditados
¿Los errores son razonables? ✅ Sí — suele mirar la zona correcta pero subestima el grado
¿Auditoría exhaustiva de todo el test set? ⚠️ Pendiente — solo se revisaron 2-3 ejemplos por modelo

▶️ Cómo correr el notebook

  1. Clic en el badge "Open in Colab" de arriba (o abre el .ipynb manualmente en Colab).
  2. Activa GPU: Runtime → Change runtime type → T4 GPU.
  3. Ejecuta celda por celda, en orden.
  4. La sección Data imprime la estructura real del dataset descargado — verifícala antes de continuar (la ruta de Kaggle puede variar).

⚠️ Limitaciones y trabajo futuro

Ver detalle
  • Validez externa: dataset curado, no fotos reales de clientes.
  • Un solo split de test (~124 imágenes): no se validó estabilidad con múltiples semillas o k-fold.
  • No implementado aún: ensemble (CNN + ResNet18), Test-Time Augmentation, umbral de confianza/abstención.
  • Formulación categórica de un problema ordinal: una extensión futura debería usar regresión ordinal (p. ej. CORAL) en vez de Cross-Entropy estándar.

📁 Estructura del repositorio

proyecto-final-dl-car-damage/
├── README.md
├── assets_para_github_2/                 <- imágenes usadas en este README
├── notebook/
│   └── Proyecto_Final_DL_Car_Damage_Colab.ipynb
├── informe/
│   └── Informe_Proyecto_Final.pdf
└── presentacion/
    └── Presentacion_Proyecto_Final.pdf

👥 Autores

Integrante Rol
Cesar Augusto Romero Aranda
Sara Katiuska Diaz Mendo
German Rodrigo Guerra Wiegman
Esteban Tocto Cano
Emmil Parras Salinas

Proyecto académico — Diploma de Especialización en Data Analytics, Universidad ESAN (2026)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages