Week 94 - Construcción de datasets Noise Injection y DAgger
Avances en construcción de dataset y entrenamiento PilotNet
Durante esta fase persiste el problema de sincronización entre el archivo *.log del recorder de CARLA y el archivo CSV externo, utilizado para almacenar la acción humana sobre steer.
El procedimiento implementado busca establecer correspondencia entre:
- imagen segmentada (
image_seg) - etiqueta humana (
steer_human)
Sin embargo, aunque el proceso logra asociar imágenes con etiquetas, durante el entrenamiento el modelo no presenta un desempeño consistente, lo que sugiere posibles errores de alineación temporal entre el estado visual y la acción registrada.
Problema de sincronización
La sincronización se ha intentado realizar mediante:
tick_idxsim_framesim_time- tiempo relativo por muestra
El inconveniente principal es que el archivo *.log conserva únicamente la acción efectivamente aplicada al vehículo, mientras que la etiqueta que interesa para aprendizaje por imitación es la acción humana original, especialmente en escenarios con perturbación.
Esto genera una posible desalineación entre el comando de dirección humano y el comando aplicado, afectando la calidad del dataset para entrenamiento.
Se está evaluando si es posible utilizar únicamente el archivo *.log para reconstruir la etiqueta de steer_human.
En principio, esto no sería suficiente, ya que el recorder almacena la acción aplicada en simulación, no necesariamente la corrección humana original cuando existe ruido o política DAgger.
Construcción de datasets en vivo
Con el fin de evitar los problemas asociados al flujo recorder → replayer, se construyeron dos nuevos datasets directamente en vivo, sin proceso de replay posterior, ambos a 10 Hz.
Dataset B — Noise Injection
Total muestras: 48k
La política aplicada consiste en perturbación gaussiana sobre la dirección:
a_exec = a_human + epsilon
con:
epsilon ~ N(0, sigma²)
Configuración utilizada:
--noise-sigma 0.04
El ruido se aplicó durante toda la conducción, permitiendo capturar maniobras de recuperación de forma continua.
Dataset C — DAgger
Total muestras: 52k
Escenas de recuperación: 14.20%
Política aplicada:
--dagger-every-seconds 6
--dagger-hold-ticks 8
--recovery-ticks 18
Cada 6 segundos se activa una acción DAgger durante 8 ticks (0.8 s a 10 Hz), seguida por una ventana de recuperación de 18 ticks (1.8 s).
Resultado preliminar
Se entrenó PilotNet sobre ambos datasets.
Resultado observado:
- Noise Injection: completa circuito
- DAgger: completa circuito
Esto sugiere que la construcción en vivo preserva mejor la correspondencia entre imagen y etiqueta.
Se están evaluando algunas métricas de desempeño con el fin de confirmar la forma correcta de construir el dataset. Estas métricas se incorporarán posteriormente al análisis.