YOLO e Redis: como armazenar em cache os resultados da detecção em vídeo
YOLO processa vídeo, mas, em caso de falha na rede ou na câmera, tudo começa de novo — desperdiçando tempo de GPU. O cache no Redis guarda os resultados da dete

Ao processar um stream de vídeo com YOLO, você encontra um problema desagradável: você inicia um vídeo de quarenta minutos, o modelo detecta fielmente pessoas, carros, cães em cada quadro. No vigésimo minuto, a rede cai, uma câmera de vigilância falha ou a energia simplesmente é cortada. Você reinicia o sistema. E aqui está o problema: YOLO começa a processar o vídeo do zero, desde o início. Todos os vinte minutos de inferência se repetem, a GPU trabalha em vão, e assim tempo e recursos elétricos são perdidos.
Por Que Isso Dói
Cada passagem do YOLO por um quadro de vídeo requer potência computacional. Na GPU isto é caro — literalmente consumindo energia, figurativamente travando o processamento e atrasando o cronograma. Sem cache, o sistema não lembra do que já computou.
É como recalcular do zero: se o processamento estava no quadro 1200, e depois o servidor cai, ao reiniciar você começa no quadro 0 e encontra pessoas e carros nos primeiros 1200 quadros tudo novamente. Ao mesmo tempo, você perde informações de rastreamento — IDs de objetos naquele segmento de vídeo. Se você precisa rastrear uma pessoa específica em todo o vídeo, a perda de dados significa quebra de trajetória e IDs misturados entre objetos.
O problema é agravado pela escala: em vigilância de meio dia, onde 100+ horas de material são processadas por dia, perder progresso significa um aumento proporcional nos custos.
Cache em Redis
Redis é um armazenamento em memória que funciona rapidamente (latência de milissegundos). A ideia: lembrar os resultados da detecção para cada quadro e recuperar-se ao reiniciar. O sistema cacheia:
- Resultados de detecção para cada quadro (lista de objetos, suas coordenadas, classe)
- ID de rastreamento para cada objeto entre quadros (conexão entre o mesmo objeto em quadros adjacentes)
- Carimbos de tempo de processamento (quando cada quadro foi processado)
- Status de processamento (qual quadro foi o último concluído)
Ao reiniciar, o sistema verifica Redis, encontra o último quadro processado e continua a partir daquele ponto. A GPU não gasta tempo em inferência repetida para quadros antigos, apenas para novos.
Solução Prática
O artigo oferece snippets Python prontos para usar que podem ser copiados e usados imediatamente. O código resolve três tarefas:
- Cachear resultados de YOLO em Redis com uma chave como `video:{video_id}:frame:{frame_num}` e TTL para limpeza de dados antigos
- Recuperação ao reiniciar: o sistema verifica Redis, pula quadros já processados, começa com o novo
- Rastreamento de IDs de objetos entre quadros com armazenamento de links em cache
O autor compartilha experiência do mundo real: o sistema se torna tolerante a falhas, o vídeo é processado sem perda de dados sobre trajetórias de objetos. Na prática, a GPU economiza 30–50% do tempo de processamento em vídeos longos ao pular inferência repetida.
O Que Isso Significa
Para sistemas de análise de vídeo em produção, isso é crítico. Câmeras de vigilância, análise de esportes, sistemas autônomos — em todo lugar YOLO + Redis economiza tempo e dinheiro em eletricidade e computação. Basta adicionar Redis à arquitetura, e as falhas de rede se tornam um problema esquecido.