Кейс
Система компьютерного зрения для спортивной аналитики

Разработали систему детекции и трекинга объектов в реальном времени для высоконагруженной платформы. Прошли путь от классических OpenCV-алгоритмов до нейросетевого инференса с GPU-оптимизацией. Решение работает в продакшене.

Задача
Что требовалось

Требовалось создать систему компьютерного зрения для высоконагруженной платформы (тысячи событий в секунду). Ключевые требования:

  • Детектирование и трекинг объектов на игровом поле в реальном времени
  • Формирование игрового контекста — даже когда объект временно скрыт из виду
  • Высокая точность распознавания в сложных аксонометрических сценах
  • Интеграция с высоконагруженной платформой
  • Работы велись в рамках NDA — технические детали и название заказчика не раскрываются
Этап 1
Классическое компьютерное зрение

Первые несколько месяцев работали с чистыми OpenCV-алгоритмами обработки изображений для детектирования объектов:

  • Различные методики фильтрации изображений
  • Функции обнаружения контуров и ключевых точек
  • Классические методы сегментации и выделения объектов

Вывод: при всей гибкости классических методов они не обеспечивали нужной точности и устойчивости в сложных игровых сценах. Приняли решение двигаться в сторону нейросетей.

Этап 2
Переход на нейросети

Начали с прототипов на Python с использованием YOLO. Отрабатывали детекцию на ограниченных датасетах. Здесь же столкнулись с проблемой аксонометрических сцен — объекты на поле выглядят искажённо, стандартные модели работали неудовлетворительно.

Этап 3
Разметка и маппинг

Готовые решения для разметки не подходили под нашу специфику. Пришлось создавать инструментарий с нуля:

  • Разработали собственный софт для разметки объектов
  • Несколько месяцев выбирали методику разметки в аксонометрических проекциях
  • Решили задачу маппинга: соотнесение координат с экрана с реальными координатами на игровом поле
Этап 4
GPU-инференс

Для продакшен-нагрузок переписали инференс на C++, задействовали всю мощь GPU:

  • Инференс на C++ с использованием CUDA
  • Экспорт моделей в ONNX и оптимизация под TensorRT
  • Добились стабильной работы в реальном времени на серверном GPU
Этап 5
Контекстный анализ

Одна из самых сложных задач — формирование игрового контекста. Глаз не всегда видит объект: заслонение, уход за край поля, слияние с фоном. Но система должна знать, что объект существует, и учитывать его в контексте.

Реализовали механизм контекстного отслеживания — система «помнит» объект даже при временной потере видимости и прогнозирует его положение на основе истории трекинга.

Результаты
Что получилось
  • Система работает в продакшене, обрабатывая видеопотоки в реальном времени
  • Достигнута высокая точность детекции даже в сложных аксонометрических сценах
  • Реализован контекстный анализ — объекты отслеживаются даже при временной потере видимости
  • Пройден путь от классических алгоритмов до оптимизированного нейросетевого инференса
  • Создан собственный инструментарий для разметки и работы с данными
  • Система интегрирована в высоконагруженную платформу заказчика
Стек
Технологии
OpenCVYOLOPythonC++CUDAONNXTensorRTPyTorch
Мы на связи
Контакты

Если у вас возникли вопросы или хотите обсудить проект, заполните форму обратной связи или свяжитесь с нами по телефону или электронной почте

Работаем с понедельника по пятницу с 9:00–18:00 (мск)

Есть вопросы? Напишите нам
Вложение
Загрузка файла

Прикрепить файл

Не более 5 файлов, не более 5 МБ каждый

Нажимая на кнопку «Отправить», вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности