1 minute read

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_idx
  • sim_frame
  • sim_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.