Зачин

Как‑то раз двое ML‑щиков решили соединить свою любовь к компьютерному зрению и ракеточным видам спорта. Так родилась идея сделать систему видеоаналитики для падел‑тенниса.

Падел — это игра на стыке большого тенниса и сквоша. От сквоша падел взял стеклянные стены вокруг корта, а от большого тенниса — почти всё остальное, за исключением того, что всегда играют 2 на 2 и «подача мяча» (момент, с которого начинается каждый розыгрыш) выполняется снизу, а в большем теннисе сверху.

Пример того, как выглядит розыгрыш в падел-теннисе: ссылка.

Как выглядит корт для падел-тенниса (источник)
Как выглядит корт для падел-тенниса (источник)

На момент задумки готовых решений для падел-тенниса на рынке и в открытом доступе было не так много. Большинство инструментов покрывали простые применения: реализовывали лишь нарезку активных интервалов и не позволяли игрокам анализировать свой прогресс (например, решение 1 и решение 2). Среди более сложных решений с готовой видеоаналитикой не было абсолютного стандарта и каждое из них было сосредоточено на определённых возможностях применения (например, решение 1, решение 2, решение 3).

У нас был Заказчик, заинтересованный в создании подобного решения, и мы решили сделать прототип системы, которая была бы полезна спортсменам в процессе самостоятельных тренировочных игр.

Бизнес-задача

Задача анализа эффективности игроков в падел-теннисе актуальна как для самих спортсменов, так и для падел-центров.

Со стороны спортсменов: есть большое количество игроков-любителей, тренирующихся самостоятельно. И им хотелось бы получать информацию о характеристиках своей игры, видеть прогресс и в идеале получать точечные рекомендации от тренеров.

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

Пример крепления мобильных телефонов спортсменов для съёмки корта (источник)
Пример крепления мобильных телефонов спортсменов для съёмки корта (источник)

Со стороны падел-центров: возможность автоматически анализировать тренировочные игры по видео с камер падел-центра — привлекательное преимущество падел-центра. Добавление подобной аналитики можно рассматривать как способ привлечь новых клиентов. И так уже делают некоторые центры: появляется услуга "Аренда корта с ИИ". Пример весёлых комментариев в падел-чатах про подобную услугу, но в любом случае - это вызывает дополнительный интерес:

Подтверждение интереса любителей падел-тенниса к новой услуге "Аренда корта с ИИ"
Подтверждение интереса любителей падел-тенниса к новой услуге "Аренда корта с ИИ"

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

Пример крепления стационарных видеокамер на стенках корта (источник)
Пример крепления стационарных видеокамер на стенках корта (источник)

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

  • покрытие игроком корта: в каких зонах корта побывал спортсмен за игру?

  • карта ударов: куда попадали мячи после ударов игрока?

  • длина пробега: какое расстояние пробежал игрок?

  • скорость удара игрока;

  • средняя глубина удара: насколько близко к задней линии попадают мячи игрока? Считается, что чем ближе мяч попадает к задней линии, тем сложнее будет сопернику корректно отбить мяч и продолжить игру;

  • стоят ли игроки одной команды так, что их становится сложнее атаковать?

  • процент успешности первой подачи пошёл ли мяч в игру после подачи или игрок подаёт снова?

  • процент двойных ошибок в подачах игрока: двойными ошибками называются ситуации, когда игрок 2 раза подряд промахнулся во время выполнения подачи — не попал в квадрат или попал мячом в сетку. За каждую двойную ошибку соперникам начисляется игровое очко;

  • направление полёта мячей после первого удара после подачи: у каждого игрока своя тактика, полезно её анализировать.

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

Тестирование системы мы также проводили в этом падел-центре.

Поговорим про технику и некоторые нюансы

Кому не очень важна техника, можно сразу перейти к разделу "Пример работы на видео".

Для тех, кто знаком с компьютерным зрением, сейчас может показаться, что задача очень понятная. А именно нужно:

  • обучить детектор игроков и мяча,

  • научиться трекать игроков и мяч,

  • проецировать игроков и мяч на плоскость корта,

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

Но, как и во многих прикладных задачах, это только первый взгляд и на деле всё оказывается не так просто.

Наше "нехитрое" решение

Реализованное решение состоит из следующих этапов:

Компоненты решения
Компоненты решения

Детектор игроков и мяча обучался на датасете из открытого доступа (ссылка). В этом датасете кадры собраны из видеотрансляций соревнований по падел-теннису: ракурс и качество съёмки на соревнованиях обычно значительно лучше, чем записи с тренировок в падел-центрах. Поэтому этот датасет был дополнен собранными и размеченными вручную видео с YouTube с тренировочными играми в падел с более близкими к реальности ракурсами.

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

Для проецирования положений игроков и мяча предварительно задаются координаты углов разметки корта. Также выбранные ключевые точки корта полезны для калибровки камеры: исходя из смещения этих точек, например, можно определить, что камера существенно сдвинулась и нужно её поправить. Сдвиг камеры, например, может произойти, если в неё прилетит мяч.

Выбор ключевых точек (углов корта) для дальнейшего проецирования с помощью гомографии
Выбор ключевых точек (углов корта) для дальнейшего проецирования с помощью гомографии

Распознавания ударов и подач реализованы как эвристики на информации о положениях игроков и мяча. Идея распознавания ударов по мячу в том, что при ударе игрока мяч меняет направление по оси Y, а для подач — перед подачей есть время без активной игры, когда мяч находится только на одной из половин корта, и в момент подачи 3 из 4 игроков стоят за задней линией. В итоге подача распознаётся, если в течение последних секунд мяч был на одной и той же стороне корта и 3 игрока находятся за задней линией.

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

Пример работы на видео

Результаты трекинга игроков и мяча (обозначены зелёным и красным цветами соответственно), проекции положения игроков и мяча на вид корта сверху (в правом верхнем углу) и распознавания моментов ударов (обозначены синим цветом): ссылка.

Система по видео тренировочной падел-игры формирует отчёт и показывает характеристики по игре каждого спортсмена. Пример отчёта:

Пример отчёта по игре: характеристики по одному из игроков
Пример отчёта по игре: характеристики по одному из игроков

Подводные камни на пути

  • если используется только одна камера, то в дальней половине корта всё плохо видно

  • даже если закрепить камеру на верхней части стенки корта, есть слепые зоны по углам, куда забегают спортсмены в моменты подач:

    Пример ракурса со слепыми зонами, куда во время подач забегают спортсмены
    Пример ракурса со слепыми зонами, куда во время подач забегают спортсмены
  • внутри падел-центра может быть много кортов рядом и в ракурс камеры неизбежно будут попадать мячи и игроки с других кортов: в таком случае помогает предварительно задать маску целевого корта, внутри которой будут детектироваться игроки и мячи:

    Падел-центр со множеством кортов рядом (источник)
    Падел-центр со множеством кортов рядом (источник)
  • мяч быстрый и небольшой, детектору и трекеру бывает сложно его отследить

  • игроки могут использовать одновременно очень много мячей вместо 1 активного: при промахе доставать из кармана следующий мяч и делать новую подачу. Из-за этого не всегда очевидно, за каким мячом следить

  • игроки могут прийти в одинаковой одежде — это путает ReID внутри трекера:

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

    Тяжёлый случай: корт в неоновых цветах в темноте
    Тяжёлый случай: корт в неоновых цветах в темноте

Идеи на будущее

В завершение несколько идей по дальнейшему развитию системы:

  • распознавать сложных типов ударов (смэш, бандеха, чикита и т.п.) с помощью подходов к распознаванию действий на видео (Action Recognition);

  • выделять для каждого игрока клипы с лучшими и худшими моментами их игры;

  • формировать общий рейтинг по игрокам для возможности сравнить результаты в играх с другими спортсменами.

Концовка

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

Комментарии (4)


  1. Gosha04ye
    16.08.2025 11:46

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


    1. invasion_of_the_racoons Автор
      16.08.2025 11:46

      Спасибо большое)


  1. athmath
    16.08.2025 11:46

    Вы объединили две моих самых больших страсти в жизни - падел и компьютерное зрение. Это очень круто.


    1. invasion_of_the_racoons Автор
      16.08.2025 11:46

      Спасибо)