Este repositorio documenta el entrenamiento de un modelo baseline para clasificación de vehículos (grano fino) usando Ultralytics YOLO (modo classify) sobre el dataset Vehicle_MEX_Dataset.
Incluye scripts reproducibles, notebooks de aumento de datos, métricas y visualizaciones (sin subir el dataset completo de imágenes).
- Dataset original (descarga): https://data.mendeley.com/datasets/gbk6gnv245/1
- Estructura esperada para YOLO-CLS:
Vehicle_classification.v1/
├── train/
│ ├── B2/
│ ├── B3/
│ └── ...
├── valid/
│ ├── B2/
│ ├── B3/
│ └── ...
└── test/
├── B2/
├── B3/
└── ...
- ✅ Entrenar un baseline reproducible para clasificación de vehículos.
- ✅ Identificar errores por clase usando matriz de confusión.
- ✅ Proponer y ejecutar mejoras con regularización y aumento de datos.
- ✅ Preparar un flujo opcional de búsqueda de hiperparámetros (HPO) para acelerar la convergencia y mejorar precisión.
Etapas del flujo:
- Preprocesamiento y balanceo con
notebooks/Data_augmenter.ipynb - Entrenamiento con YOLO-CLS (Ultralytics)
- Validación y análisis (matrices de confusión + curvas de entrenamiento)
- Ajustes manuales e iteración
- (Opcional) HPO con Ray Tune + Optuna para encontrar mejores hiperparámetros
Este repositorio incluye el archivo de pesos entrenados listo para su descarga:
weights/best.pt
- Opción A (recomendado): clonar el repo
git clone <TU_URL_DE_GITHUB>/Vehicle_MEX_Model.git
cd Vehicle_MEX_Model- Opción B: descarga directa desde GitHub
- Abre
weights/best.pten GitHub - Descarga con el botón de descarga o usa el enlace raw (ejemplo):
https://raw.githubusercontent.com/<TU_USUARIO>/Vehicle_MEX_Model/main/weights/best.pt
from ultralytics import YOLO
model = YOLO("weights/best.pt")
pred = model.predict(source="ruta/a/imagen.jpg", imgsz=640)yolo classify predict model=weights/best.pt source="ruta/a/imagen.jpg" imgsz=640Métricas reportadas para el modelo entrenado (weights/best.pt):
| Metric | Value |
|---|---|
| Fitness | 0.9668674468994141 |
| Top-1 Accuracy | 0.9373493790626526 |
| Top-5 Accuracy | 0.9963855147361755 |
Vehicle_MEX_Model/
├── assets/ # Imágenes/GIF ligeros para README (no dataset completo)
├── configs/ # Configuraciones usadas en entrenamientos
├── notebooks/ # Notebooks de análisis/augmentación
├── results/ # Curvas, matrices, logs, CSV de resultados
├── weights/ # Pesos del modelo entrenado (best.pt)
├── scripts/ # Scripts de entrenamiento y HPO
├── requirements.txt
├── .gitignore
└── README.md
git clone <TU_URL_DE_GITHUB>/Vehicle_MEX_Model.git
cd Vehicle_MEX_Modelpython -m venv .venvWindows
.venv\Scripts\activateLinux/Mac
source .venv/bin/activatepip install -r requirements.txtScript principal:
scripts/1_Classification.py
Ejemplo:
python scripts/1_Classification.pyNotebook:
notebooks/Data_augmenter.ipynb
Incluye:
- selector de carpetas (local)
- análisis automático de desbalance por clase
- previsualización de augmentations
- exportación a estructura YOLO-CLS con imágenes 640x640 (padding + Lanczos)
- 🧱 Reproducibilidad: logs + configs (
configs/,results/) - 🧰 Aumentos realistas orientados a vehículos (rotación leve, perspectiva, brillo/contraste, ruido)
- 🧯 Regularización agresiva (dropout, weight decay, warmup)
- 🧪 HPO opcional con Ray Tune + Optuna
- Framework: Ultralytics YOLO (classification)
- Input: 640×640 (con padding para conservar proporciones)
- Optimizer: AdamW
- Scheduler: Cosine LR (si se habilita en los scripts)
- 🚦 Clasificación automática de tipos de vehículos en escenarios urbanos y carreteros
- 🛣️ Analítica de tráfico por categoría
- 🧾 Inventario vehicular y monitoreo en infraestructura
- 🔍 Soporte a sistemas ITS (Intelligent Transportation Systems)
Licencia MIT. Ver LICENSE.












