Эфир 18.11 · Поток 318 ноября в 19:00 МСК — бесплатный практический эфир по ИИ-агентам · Живой Поток 3 стартует 23.11Эфир 18 ноября →Поток 3 (23.11)
ИнфраструктураAPI / Продукт · В работуHabr AI→ оригинал

YOLO и Redis: как кэшировать результаты детекции видео

YOLO обрабатывает видео, но при сбое сети или камеры всё начинается сначала — GPU пахает впустую. Кэширование в Redis запоминает результаты детекции для каждого кадра, так что перезапуск продолжает работу с того же момента, экономя ресурсы и время.

AI-обработка оригинала Habr AI; редакция Hamidun News
YOLO и Redis: как кэшировать результаты детекции видео
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью

При обработке видеопотока YOLO встречаешься с неприятной проблемой: запускаешь видео на сорок минут, модель честно находит людей, машины, собак на каждом кадре. На двадцатой минуте падает сеть, выходит из строя камера наблюдения или просто отключается электричество. Перезапускаешь систему. И вот беда: YOLO начинает обрабатывать видео заново, от самого начала. Все двадцать минут инференса повторяются, GPU молотит впустую, таким образом теряется время и электроресурсы.

Почему это больно Каждый проход YOLO через видеокадр требует вычислительной мощности.

На GPU это стоит дорого — в буквальном смысле расходуется энергия, в переносном — зависает обработка и отстаёт расписание. Без кэширования система не помнит, что она уже вычислила. Это как пересчитывать с нуля: если обработка была на кадре 1200, а потом упал сервер, при перезапуске начнёшь с кадра 0 и снова найдёшь людей и машины в первых 1200 кадрах. Параллельно теряешь информацию о трекинге — ID объектов на этом отрезке видео. Если нужно отследить конкретного человека через всё видео, потеря данных означает разрыв траектории и смешивание ID между объектами. Проблема усугубляется масштабом: на полусуточном видеонаблюдении, где в день обрабатывается 100+ часов материала, потеря прогресса означает кратный рост затрат.

Кэширование в Redis Redis — in-memory хранилище, которое работает быстро (задержка миллисекунды).

Идея: запомнить результаты детекции для каждого кадра и восстановиться при перезапуске. Система кэширует: Результаты детекции для каждого кадра (список объектов, их координаты, класс) Трек-ID для каждого объекта между кадрами (связь между одним и тем же объектом в соседних кадрах) Временные метки обработки (когда был обработан каждый кадр) Статус обработки (какой кадр был последним завершённым) При перезапуске система проверит Redis, найдёт последний обработанный кадр и продолжит с того же момента. GPU не тратит время на повторный инференс для старых кадров, только для новых.

Практический выход Статья предлагает готовые сниппеты Python, которые можно скопировать и использовать сразу.

Код решает три задачи: Кэширование результата YOLO в Redis с ключом вида video:{video_id}:frame:{frame_num} и TTL для очистки старых данных Восстановление при перезапуске: система проверяет Redis, пропускает уже обработанные кадры, начинает с нового * Отслеживание ID объектов между кадрами с запоминанием связей в кэше Автор делится опытом реальной работы: система становится отказоустойчивой, видео обрабатывается без потерь данных о траекториях объектов. На практике GPU экономит 30–50% времени на долгих видео благодаря пропуску повторного инференса.

Что это значит Для production-систем видеоаналитики это критично.

Камеры наблюдения, спортивная аналитика, автономные системы — везде YOLO + Redis экономит время и деньги на электричество и вычисления. Просто добавь Redis в архитектуру, и сбои сети станут забытой проблемой.

Сюжет
ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Единое AI-пространство · Nomad

Протестируйте новые LLM и мультимодальные модели в одном окне

Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.

Открыть Nomad AI →Автономный Nomad Agent
Что вы думаете?
Загружаем комментарии…