Week 74 - Balanceo estratificado (train, test offline y online)
Balanceo del Dataset, Segmentación y Entrenamiento de Modelos DL
Con el objetivo de mejorar el desempeño en conducción autónoma dentro del simulador CARLA, se rediseñó completamente el proceso de dataset y entrenamiento.
Estratificación y Balanceo 5×4 (Steer–Throttle)
Para evitar que el modelo aprendiera sesgos a conducir recto o a acelerar siempre al máximo, se definió una estratificación basada en:
| Variable | Clases | Descripción |
|---|---|---|
| Ángulo de giro (steer) | 5 | Fuerte izquierda → Fuerte derecha |
| Aceleración (throttle) | 4 | Muy lento → Muy rápido |
Total: 20 clases combinadas (5×4)
Se pasó de un dataset sin procesar de ~95 000 imágenes a un dataset balanceado de ~45 000 imágenes, con igual proporción de muestras en cada clase.
El dataset final se dividió en:
| Conjunto | Porcentaje |
|---|---|
| Train + Validation | 85% |
| Test (offline) | 15% |
| Split interno Train/Val | 80/20 |
Preprocesamiento de Imágenes Segmentación → Recorte → Normalización → Augmentations
Las imágenes utilizadas para entrenar los modelos fueron exclusivamente segmentadas, permitiendo que el modelo se enfoque únicamente en la geometría de la carretera:
- Se utilizó el canal de segmentación de CARLA
- Se extrajo la clase calzada
-
Se generó una máscara binaria:
- Calzada → blanco [255,255,255]
- Resto → negro [0,0,0]
- Eliminando totalmente edificios, cielo, vehículos y peatones
- Reduciendo el ruido visual y acelerando el aprendizaje del modelo
Además:
- Se realizó un recorte del ~40% de la parte superior de la imagen (solo se dejó la zona relevante para la conducción)
*Se aplicaron augmentations de Albumentations para robustez:
RandomBrightnessContrast
- Affine
- MotionBlur
- GaussianBlur
- GaussNoise
- Normalización
Visualización del Balanceo
Se observa una distribución uniforme después del balanceo, asegurando que el modelo reciba experiencias variadas equitativamente.
Resultados Offline
| Modelo | Steer RMSE | Steer MAE | Throttle RMSE | Throttle MAE |
|---|---|---|---|---|
| PilotNet | 0.2402 | 0.1598 | 0.2588 | 0.1945 |
| MobileNet V3-Small | 0.1771 | 0.1098 | 0.2079 | 0.1435 |
| ResNet18 | 0.1635 | 0.0985 | 0.1972 | 0.1335 |
| EfficientNet V2-S | 0.1425 | 0.0630 | 0.1807 | 0.0951 |
EfficientNet V2-S obtiene el mejor rendimiento global en la predicción de steer y throttle. ResNet18 también presenta resultados competitivos.
Comportamiento Online
Se observó un leve zig-zag en conducción autónoma real. Esto está asociado al ruido humano en el dataset:
La conducción fue registrada con un joystick de PS4, lo cual dificulta movimientos suaves y precisos.
Esto introduce una oscilación ligera pero persistente en la inferencia online.
Nueva tabla global comparativa por modelo
(Valores antiguos vs nuevos, mostrando deterioro relativo en Throttle/Steer)
| Modelo | Steer RMSE | Steer MAE | Throttle RMSE | Throttle MAE |
|---|---|---|---|---|
| ResNet18 | +80.0% | +48.1% | +101.0% | +89.3% |
| EfficientNet V2-S | −55.8% | −74.7% | −53.7% | −72.5% |
| MobileNet V3-Small | −54.7% | −68.2% | −46.7% | −58.5% |
| PilotNet | −12.2% | −18.9% | −35.6% | −44.4% |
EfficientNet V2-S mejora entre ~55% y 75% dependiendo de la métrica MobileNet y PilotNet mejoran también de forma consistente Solo ResNet18 empeora.
En la práctica online todavía se observa zig-zag derivado de ruido humano en la recolección de datos, por lo cual se propone reemplazar el joystick por un volante real, mejorar la naturaleza de la conducción teleoperada y fusionar RGB + segmentación para mayor anticipación a curvas.
Próximos pasos
| Acción | Objetivo |
|---|---|
| RGB + máscara (4 canales) | Mejor anticipación y estabilidad |
| Recopilar dataset con volante real | Reducir ruido del steer humano |
| Balanceo suave (no total) | Mantener priorización natural del dataset |
| Pruebas en BehaviorMetrics (python API) | Métricas reales de navegación |
Test online (Efficientnet_v2_s, Town02)
Efficientnet_v2_s Driving Test – CARLA Town02