Разработали систему детекции и трекинга объектов в реальном времени для высоконагруженной платформы. Прошли путь от классических OpenCV-алгоритмов до нейросетевого инференса с GPU-оптимизацией. Решение работает в продакшене.
Требовалось создать систему компьютерного зрения для высоконагруженной платформы (тысячи событий в секунду). Ключевые требования:
Первые несколько месяцев работали с чистыми OpenCV-алгоритмами обработки изображений для детектирования объектов:
Вывод: при всей гибкости классических методов они не обеспечивали нужной точности и устойчивости в сложных игровых сценах. Приняли решение двигаться в сторону нейросетей.
Начали с прототипов на Python с использованием YOLO. Отрабатывали детекцию на ограниченных датасетах. Здесь же столкнулись с проблемой аксонометрических сцен — объекты на поле выглядят искажённо, стандартные модели работали неудовлетворительно.
Готовые решения для разметки не подходили под нашу специфику. Пришлось создавать инструментарий с нуля:
Для продакшен-нагрузок переписали инференс на C++, задействовали всю мощь GPU:
Одна из самых сложных задач — формирование игрового контекста. Глаз не всегда видит объект: заслонение, уход за край поля, слияние с фоном. Но система должна знать, что объект существует, и учитывать его в контексте.
Реализовали механизм контекстного отслеживания — система «помнит» объект даже при временной потере видимости и прогнозирует его положение на основе истории трекинга.
Если у вас возникли вопросы или хотите обсудить проект, заполните форму обратной связи или свяжитесь с нами по телефону или электронной почте
Работаем с понедельника по пятницу с 9:00–18:00 (мск)
Не более 5 файлов, не более 5 МБ каждый
Нажимая на кнопку «Отправить», вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности