Habr AI→ original

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

YOLO e Redis: como armazenar em cache os resultados da detecção em vídeo
Fonte: Habr AI. Colagem: Hamidun News.
◐ Ouvir artigo

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.

ZK
Hamidun News
Notícias de AI sem ruído. Seleção editorial diária de mais de 400 fontes. Produto de Zhemal Khamidun, Head of AI na Alpina Digital.
O que você acha?
Carregando comentários…