2 minute read

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.

EfficientNetV2-S – trayectoria con BehaviorMetrics
Figura — Distribución 3D de Steer vs Throttle (antes vs después del balanceo)

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