Мобильное приложение PerformStars
Записывайте, загружайте и разбирайте тренировки.
Скачать
← Research & Engineering

Как научить компьютер видеть бильярд: от распознавания шаров до восстановления траекторий

Компьютерное зрение, YOLO, геометрия и физическое моделирование на примере разработки PerformStars

Введение

На первый взгляд автоматический анализ бильярда кажется относительно простой задачей компьютерного зрения. Стол имеет известную геометрию, шары обладают правильной сферической формой, а их количество и размер ограничены правилами игры.

Достаточно установить камеру, обнаружить шары на каждом кадре и проследить за их перемещениями. На практике всё существенно сложнее.

Шары движутся с высокой скоростью, сталкиваются друг с другом и с бортами, временно перекрываются, исчезают из поля зрения или оказываются неразличимыми из-за особенностей освещения. Камера может быть установлена под произвольным углом, а геометрия изображения искажается перспективой.

При этом обнаружить шар недостаточно. Для полноценного анализа необходимо понять, какой именно шар двигался, где находился до удара, как изменялась его траектория и каким оказался результат игрового эпизода.

В проекте PerformStars мы решаем эту задачу, разрабатывая систему, которая преобразует обычную видеозапись бильярдной партии или тренировки в структурированный набор пространственно-временных данных.

1. Почему обнаружение бильярдных шаров — нетривиальная задача

Современные нейросетевые детекторы объектов достаточно хорошо распознают объекты с выраженными визуальными признаками. Однако бильярд представляет собой особый случай.

Во-первых, шары занимают относительно небольшую площадь кадра. Например, при съёмке всего стола камерой с разрешением Full HD диаметр шара может составлять всего несколько десятков пикселей.

Во-вторых, разные шары имеют практически одинаковые размеры и форму, а их внешний вид может существенно меняться в зависимости от освещения.

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

Отдельную проблему представляет размытие при движении. При скорости 2 м/с и частоте съёмки 30 кадров в секунду шар перемещается примерно на 6,7 см между соседними кадрами. Это больше диаметра стандартного шара для пула — 57,15 мм.

Следовательно, даже при корректном обнаружении объектов на двух последовательных изображениях нельзя гарантировать их однозначное соответствие. А при столкновении нескольких шаров ближайший объект на следующем кадре не обязательно является тем же шаром.

2. Детекция объектов с помощью YOLO

Для обнаружения шаров в PerformStars используются собственные обученные модели на базе архитектур семейства YOLO. Такой подход обеспечивает сочетание скорости обработки и качества локализации небольших объектов.

Детектор получает видеокадр и возвращает обнаруженные объекты с координатами, размерами и оценками уверенности. Центры обнаруженных шаров используются для дальнейшего геометрического анализа.

Однако ограничиться одним универсальным детектором невозможно. Нужно учитывать различия между игровыми дисциплинами, типами шаров, освещением и ракурсами. Поэтому в проекте используются специализированные модели и обучающие наборы данных для разных условий и типов объектов.

Почему одной нейросети недостаточно

Нейросеть отвечает на вопрос: «Где на этом кадре находятся шары?» Но она не знает, какой из них двигался секунду назад, какой участвовал в столкновении и какой должен появиться в следующем кадре. Здесь возникает необходимость перехода от независимой детекции к анализу временных последовательностей.

3. Геометрия стола и переход к физическим координатам

Координаты изображения зависят от расположения камеры. Один и тот же шар может иметь разные пиксельные координаты при съёмке сверху и под углом. Для дальнейшего анализа необходимо перейти к общей системе координат игрового стола.

В PerformStars для определения игровой поверхности используются модели сегментации и процедуры геометрической калибровки. Один из основных математических инструментов — проективное преобразование, или гомография.

Проективное преобразование координат изображения в координаты стола

Формула 1. Проективное преобразование координат: (x, y) — координаты на изображении, (X, Y) — координаты плоскости стола, H — матрица преобразования, λ — масштабный множитель однородных координат.

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

4. От отдельных точек к траекториям

Предположим, детектор обнаружил десять шаров на одном кадре и десять — на следующем. Как определить, какой шар какому соответствует?

Простейший вариант — сопоставлять объекты по расстоянию между центрами:

Евклидово расстояние между двумя обнаружениями

Формула 2. Евклидово расстояние между положениями двух обнаружений в системе координат стола.

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

Поэтому сопоставление ближайших координат требует дополнительных механизмов проверки. В архитектуре PerformStars последовательность обнаружений рассматривается как временные наблюдения физических объектов. Для анализа учитываются пространственная близость, перемещения между кадрами, геометрия игровой поверхности и согласованность предполагаемого движения.

Особенно важна возможность восстановить траекторию после временной потери обнаружения. Если шар исчезает на несколько кадров из-за размытия или перекрытия, это не обязательно должно приводить к разрыву игрового эпизода.

5. Распознавание номера шара и проблема идентичности

В пуле разные шары обладают цветовыми и графическими признаками, но их распознавание зависит от поворота, освещения, бликов и разрешения изображения.

В PerformStars для этой задачи исследуются и применяются специализированные классификаторы, обученные на изображениях отдельных шаров. После обнаружения объекта соответствующая область изображения передаётся классификатору, оценивающему вероятности принадлежности к категориям.

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

Если при столкновении алгоритм ошибочно меняет местами идентификаторы, накопленная информация начинает относиться к другому объекту. Поэтому распознавание номера тесно связано с сопровождением объектов во времени.

6. Физическая модель как дополнительный источник информации

Бильярд интересен тем, что движение шаров подчиняется достаточно хорошо изученным законам механики. Имеется ограниченный набор взаимодействий: движение по поверхности, столкновения шаров, контакты с бортами и замедление из-за трения.

Это даёт возможность использовать физическое моделирование при анализе неоднозначных траекторий. В PerformStars анализ движения дополнен моделированием возможных сценариев удара.

Общую идею сопоставления наблюдений с симуляцией можно представить как задачу минимизации ошибки:

Минимизация ошибки между моделируемыми и наблюдаемыми положениями

Формула 3. Поиск параметров физической модели θ, при которых моделируемые положения объектов лучше всего согласуются с наблюдениями. Это иллюстративная математическая постановка, а не полная формула производственного алгоритма.

В реальной задаче дополнительно приходится учитывать ошибки распознавания, неопределённость сопоставления шаров, неполные траектории и несколько взаимодействующих объектов.

7. Как понять, что удар действительно состоялся

Следующая задача — выделить из непрерывной видеозаписи отдельные игровые эпизоды. Нужно установить начало удара, наблюдать движение и столкновения, а затем определить момент завершения.

Ошибочное завершение эпизода может привести к ложному новому удару: оставшееся движение шара система примет за самостоятельное событие.

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

После определения границ эпизода можно восстановить исходную позицию, параметры движения и результат удара. Именно здесь поток кадров превращается в структурированное спортивное событие.

8. Проверка на реальных видеозаписях

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

В испытании на 124 реальных ударах система обнаружила 93,5% из них. Точность определения результата «сыгран / промах» среди принятых решений составила 97,2%, а покрытие решений — 91,4% от обнаруженных ударов.

Эти показатели относятся к обнаружению игровых событий и классификации их результата, а не к точности локализации отдельных шаров. Для полноценного отчёта о детекции шаров потребуются отдельные измерения Precision, Recall, mAP и ошибки координат.

Демонстрационные материалы: видео 1, видео 2.

9. Что остаётся сложной задачей

Сохранение идентичности после столкновений. В особенности когда внешне похожие шары пересекаются или временно исчезают.

Устойчивость к разным условиям съёмки. Наклон камеры, освещение, разрешение и частичное закрытие игровой поверхности повышают неопределённость.

Согласование нейросетевых и физических моделей. Важно не только обнаруживать объекты, но и оценивать физическую согласованность их движений.

Вычислительная эффективность. Обработка больших объёмов видео должна оставаться экономически оправданной при параллельном анализе тренировок и матчей.

10. Заключение

Разработка PerformStars показала, что автоматический анализ бильярда нельзя свести к одной нейронной сети. Детекция шаров — лишь первый уровень.

Для получения спортивной аналитики необходимо объединить компьютерное зрение, геометрию, сопровождение объектов, распознавание идентичности, физическое моделирование и временной анализ событий.

Бильярдная сцена — наглядный пример сложной задачи восстановления динамики нескольких взаимодействующих объектов по неполным визуальным наблюдениям. Аналогичные вопросы встречаются в робототехнике и промышленном машинном зрении.

Наша задача — не просто научить компьютер видеть бильярдный стол, а математически описывать происходящую на нём игру.

PerformStars Research & Engineering