YOLO y Redis: cómo almacenar en caché los resultados de detección en video
YOLO procesa video, pero si falla la red o la cámara, todo empieza de nuevo, y la GPU trabaja en vano. El almacenamiento en caché en Redis guarda los resultados

Cuando procesas un flujo de vídeo con YOLO, te encuentras con un problema desagradable: inicias un vídeo de cuarenta minutos, el modelo detecta fielmente personas, coches, perros en cada fotograma. En el vigésimo minuto, la red cae, una cámara de vigilancia falla o simplemente se corta la electricidad. Reiniciar el sistema. Y aquí está el problema: YOLO comienza a procesar el vídeo desde cero, desde el principio. Los veinte minutos de inferencia se repiten, la GPU trabaja en vano, y así se pierden tiempo y recursos eléctricos.
Por Qué Esto Duele
Cada pasada de YOLO por un fotograma de vídeo requiere potencia computacional. En GPU esto es costoso — literalmente consumiendo energía, figurativamente paralizando el procesamiento y retrasando el calendario. Sin almacenamiento en caché, el sistema no recuerda lo que ya ha calculado.
Es como recalcular desde cero: si el procesamiento estaba en el fotograma 1200, y luego falla el servidor, al reiniciar comienzas en el fotograma 0 y encuentras personas y coches en los primeros 1200 fotogramas nuevamente. Al mismo tiempo, pierdes información de seguimiento — IDs de objetos en ese segmento de vídeo. Si necesitas rastrear a una persona específica en todo el vídeo, la pérdida de datos significa roturas de trayectoria e IDs mezclados entre objetos.
El problema se agrava por escala: en vigilancia de medio día, donde se procesan 100+ horas de material al día, perder progreso significa un aumento proporcional en los costos.
Almacenamiento en Caché en Redis
Redis es un almacenamiento en memoria que funciona rápidamente (latencia de milisegundos). La idea: recordar los resultados de detección para cada fotograma y recuperarse al reiniciar. El sistema almacena en caché:
- Resultados de detección para cada fotograma (lista de objetos, sus coordenadas, clase)
- ID de seguimiento para cada objeto entre fotogramas (conexión entre el mismo objeto en fotogramas adyacentes)
- Marcas de tiempo de procesamiento (cuándo se procesó cada fotograma)
- Estado de procesamiento (cuál fue el último fotograma completado)
Al reiniciar, el sistema comprueba Redis, encuentra el último fotograma procesado y continúa desde ese punto. La GPU no gasta tiempo en inferencia repetida para fotogramas antiguos, solo para nuevos.
Solución Práctica
El artículo ofrece fragmentos de Python listos para usar que se pueden copiar y usar inmediatamente. El código resuelve tres tareas:
- Almacenar en caché resultados de YOLO en Redis con una clave como `video:{video_id}:frame:{frame_num}` y TTL para limpieza de datos antiguos
- Recuperación al reiniciar: el sistema comprueba Redis, omite fotogramas ya procesados, comienza con el nuevo
- Rastreamiento de IDs de objetos entre fotogramas con almacenamiento de enlaces en caché
El autor comparte experiencia del mundo real: el sistema se vuelve tolerante a fallos, el vídeo se procesa sin pérdida de datos sobre trayectorias de objetos. En la práctica, GPU ahorra 30–50% del tiempo de procesamiento en vídeos largos al omitir inferencia repetida.
Lo Que Esto Significa
Para sistemas de análisis de vídeo en producción, esto es crítico. Cámaras de vigilancia, análisis deportivo, sistemas autónomos — en todas partes YOLO + Redis ahorra tiempo y dinero en electricidad y computación. Solo añade Redis a la arquitectura, y los fallos de red se convierten en un problema olvidado.