
Кэширование и трекинг. Как YOLO экономит время и нервы
rRenegat 1 час назад Кэширование и трекинг. Как YOLO экономит время и нервы Средний 7 мин 2.4K Блог компании RUVDS.com Искусственный интеллект Серверная оптимизация * Программирование * Машинное обучение * Обзор...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. rRenegat 1 час назад Кэширование и трекинг. Как YOLO экономит время и нервы Средний 7 мин 2. 4K Блог компании RUVDS.
com Искусственный интеллект Серверная оптимизация * Программирование * Машинное обучение * Обзор Случалось мне работать с CV: запускаешь сорокаминутное видео, YOLO честно находит людей, машины, собак. На двадцатой минуте падает сеть или, что хуже, камера наблюдения выходит из строя. Модель снова смотрит те же кадры, снова инференс, трекинг ID, пошла пахота GPU… Так продолжаться не может — подключаю кеширование.
Технические детали
Сегодня разбираемся, как совместить что находится в кадре, где это находится и с какой вероятностью. YOLO получила популярность благодаря высокой скорости работы и возможности обработки видео в реальном времени. " data-abbr="YOLO">YOLO и кэширование Redis с трекингом объектов так, чтобы каждый кадр считался ровно один раз и чтобы информация не терялась.
В конце будут готовые сниппеты, которые можно сразу скопировать и запустить. Почему нельзя «просто детектить»? Любой, кто запускал model.
track() на видео из десяти тысяч кадров, знает, что модель будет мусолить каждый пиксель, даже если в кадре пустая стена. А если стена неподвижна десять секунд, триста одинаковых кадров получат триста одинаковых вызовов нейросети. Умножаем на цену GPU и стараемся не заплакать.
Отраслевые последствия
Вторая проблема: трекинг объектов (ByteTrack, BoT-SORT, DeepSORT) держит своё состояние в оперативной памяти. Выключили свет/сломали камеру или, в конце концов, краш VS-code — потерялись ID всех, кто был в кадре. При перезапуске объект получает новый id, и смысл видеоаналитики обесценивается.
Третья проблема: повторное распознавание. Одна и та же машина паркуется каждое утро, но модель каждый раз с нуля извлекает её признаки, читает номер, определяет цвет. Ненужные телодвижения, не правда ли?
Решение описанных проблем достаточно тривиально: нужен кэш. Простые решения (а-ля пикл-файл и другие локальные кэши) не удовлетворяли моим требованиям архитектуры (прежде всего масштабируемость, модульность), поэтому я использовал Redis, который можно развернуть на отдельном порту. Кэшируем детекции: RedisРассмотрим на простом примере: Redis запущен в докере На всякий случай docker run -d --name redis-yolo -p 6372:6379 redis:alpineКлюч — MD5-хэш изображения.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





