Как мы ускорили видеоаналитику в шесть раз и не купили ни одной новой видеокарты
Сегодня камеры стоят почти везде. В торговом центре они считают посетителей, на заводе следят за безопасностью, в логистике помогают оптимизировать процессы, а в офисе фиксируют, кто зашёл и кто вышел. Камера сама по себе — это просто глаз. Настоящая магия начинается тогда, когда поверх видео накладывается аналитика: нейросети, которые в реальном времени ищут людей, считают объекты, оценивают движение.
Но у этой магии есть обратная сторона — она очень прожорливая. Видеопотоки нужно прогонять через нейросети, и на больших данных даже мощные сервера начинают задыхаться. Особенно если система собрана «из коробки» и не оптимизирована.
Проблема клиента
С такой ситуацией к нам и пришёл клиент. У него уже стояла система видеоаналитики: несколько десятков камер, подключённых к серверу с GPU. Всё вроде бы работало, но слишком медленно. За тридцать секунд система успевала обработать всего четыре видеопотока.
Для живого бизнеса это означало одно: бизнес не получит информацию в моменте. Ведь, к моменту когда видео будет обработано, оно станет уже неактуальным. А теперь представьте, что речь идёт не об офисе, а о заводе или складе, где важна каждая секунда и где от скорости зависит безопасность людей.
Первое решение, которое обсуждали у клиента, было максимально простое: «давайте купим ещё одну видеокарту». Казалось бы, логично: больше железа — больше мощности. Но стоимость оборудования в такой конфигурации была бы сравнима с ценой небольшой машины, и это только начало расходов. К железу пришлось бы докупать софт, поддерживать инфраструктуру, а эффект при этом не гарантирован.
Мы предложили другой путь: оптимизировать систему так, чтобы она работала быстрее на том, что уже есть.
С чего начали
Мы всегда начинаем с диагностики. Сели и посмотрели, как именно устроен процесс. Выяснилось, что система работала «по накатанной»:
каждый видеопоток подавался в нейросеть отдельно,
обработка шла строго по очереди,
процессор и видеокарта работали не синхронно и большую часть времени простаивали.
Отдельная история была с разрешением входных кадров. В сеть загонялись изображения 640×480. Для бытовой камеры это кажется скромным размером, но для нейросети это лишние пиксели. Сеть честно пыталась их проглотить, только толку от этого не было. Людей в кадре это не делало «более узнаваемыми», зато ресурсы уходили в никуда.
Почему уменьшение разрешения — не страшно
Один из мифов видеоаналитики: «чем выше качество изображения, тем лучше результат». На самом деле это не всегда так. В задачах распознавания людей важны крупные контуры, движения, ключевые признаки. Увеличение разрешения до абсурда лишь добавляет лишние детали — плитка на полу, трещины на стенах, мелкие артефакты, которые для задачи не имеют никакого значения.
Мы начали постепенно уменьшать размер входных кадров. Эксперименты показали, что оптимальная точка — примерно 416×256. Это почти в полтора раза меньше исходного, но качество распознавания людей сохранилось. Зато скорость обработки резко выросла.
Параллельная обработка и балансировка
Следующим шагом было изменение самой логики работы. Если раньше система напоминала кассу в магазине, где очередь из десяти человек обслуживает один кассир, то мы сделали так, чтобы работало сразу несколько касс. Видео стали обрабатываться параллельно, и сразу загрузка ресурсов выросла в разы.
Здесь важно было грамотно распределить задачи между CPU и GPU. До оптимизации они работали несогласованно: GPU простаивал, пока процессор готовил данные, а процессор ждал, пока GPU «пережёвывает» ролик. Мы сделали так, чтобы GPU занимался инференсом, пока новые фреймы готовятся на CPU. Теперь оба ресурса загружены равномерно.
Результат
Когда мы закончили оптимизацию и запустили систему в работу, цифры приятно удивили даже нас. Вместо четырёх видеопотоков за 30 секунд система теперь обрабатывала 22. Почти шестикратное ускорение — без покупки нового оборудования.
Для клиента это означало экономию бюджета, отказ от дорогостоящего расширения инфраструктуры и при этом полноценное выполнение задач. Люди в кадре распознавались так же корректно, система перестала «задыхаться», и бизнес наконец получил инструмент, на который можно было опереться.
Что это показало
Опыт с этим проектом стал для нас хорошей иллюстрацией нескольких важных принципов.
Во-первых, в работе с нейросетями не всегда выигрывает максимальное разрешение. Иногда лишние пиксели только мешают.
Во-вторых, оптимизация алгоритмов и архитектуры часто даёт больший эффект, чем покупка нового «железа».
И в-третьих, тюнинг моделей — это отдельная инженерная задача, которая требует экспериментов, тестов и внимательного анализа. Но результат того стоит.
Итог
Сегодня эта система работает у клиента без перебоев и обрабатывает почти в шесть раз больше видеопотоков, чем раньше. Это не просто цифры в отчёте — это реальная разница между системой, которая еле справляется, и системой, которая помогает бизнесу работать эффективнее и безопаснее.
Для нас этот проект стал напоминанием о том, что оптимизация — это тоже искусство. Где-то оно заключается в архитектуре, где-то в правильной балансировке ресурсов, где-то в настройке самой модели. Но результат всегда один: система работает быстрее, а клиент получает больше пользы.











