Daft acelera hasta 15 veces la lectura de vídeo en formato LeRobot

Fuentes: How we made our LeRobot video reader up to 15× faster

Daft, la biblioteca de procesamiento de datos, ha reescrito su lector nativo del formato LeRobot para descodificar fotogramas de vídeo de forma por lotes en lugar de fila a fila, lo que reduce los tiempos de procesamiento hasta 15 veces en conjuntos de datos remotos. LeRobot se ha consolidado como el estándar abierto para datos de aprendizaje robótico, pero descodificar sus fotogramas resultaba caro y saturaba la memoria: cada fotograma obligaba a abrir el fragmento MP4 correspondiente y a releer su índice por la red, lo que costaba unos 3 segundos por fotograma y un crecimiento lineal con el tamaño del conjunto.

La nueva implementación agrupa 16 filas consecutivas en una función de descodificación por lotes. Para cada lote agrupa las filas por fragmento, ordena y agrupa los objetivos por marca temporal con un umbral de 10 segundos, y realiza una única búsqueda por clúster seguida de una lectura secuencial. El cambio es solo en Python y produce un resultado idéntico a nivel de bytes.

En seis conjuntos públicos LeRobot v3, la aceleración oscila entre 4 y 13 veces. Sobre el conjunto pepijn223/egodex-test en 1080p, descodificar los 632 fotogramas pasa de 29 minutos a menos de 2, una mejora de 15 veces. En una tubería de seguimiento de manos con MediaPipe, el proceso completo para 12 fotogramas remotos baja de 44,8 a 9,8 segundos.