Как научить компьютер видеть бильярд: от распознавания шаров до восстановления траекторий
Компьютерное зрение, 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
