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

  • Вариант 1 — продолжать исследования (в комментах к прошлой статье мелькали страшные слова SORT, YOLO итд)
  • Вариант 2 — найти применение в реальном мире, сделать продукт и показать людям

Исследования от меня никуда не денутся, а вот выпуск на публику ставит совсем другие челленджи.

Проблема


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

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

Статистика ведется очень редко и там абсолютный ноль в плане автоматизации.

В идеале хочется, чтобы система:

  • Распознавала розыгрыши
  • Распознавала элементы игры (подача, первое касание, второе, третье, переход мяча)
  • Распознавала людей и собирала по ним статистику

Список можно продолжать и усложнять, но начать надо с малого.

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

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

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

Логика разбиения на розыгрыши максимально простая — 5 секунд мяча не видно, значит сыграли.

Проверка реальностью


Для теста я взял игру со страницы Московской волейбольной лиги.

Розыгрышей оказалось многовато, в этой игре алгоритм насчитал 197 розыгрышей, хотя их на самом деле 28.

Вот это считается за розыгрыш:



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

Нормальные розыгрыши распознаются корректно, это внушает оптимизм.



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



Время обработки видео превышает в три раза длительность игры, все таки opencv+python — не самый производительный вариант, тоже есть куда улучшаться.

Цели и миссия


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

Поэтому записался на известный курс по стартапам (тоже не буду конкретизировать), и стало понятно, что делаю все неправильно.

Не могу удержаться, чтобы не процитировать, это прямо про меня.



Там еще было, что-то про плохих стартаперов, которые пилят для себя, вместо того, чтобы чутко реагировать на потребности аудитории, это тоже в точку.

Так что по чеклисту полный провал.

Выпуск


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

На работе приходится в основном таскать рояль, а где еще развернуться с ML, CV и облаками?

Поэтому система работает на Kubernetes, в основном для того, чтобы быстро ее масштабировать (ну так, на случай взрывного роста).

Платформ для Кубернетеса не так мало, понятно, что в лидерах GKE, AWS и Azure, но многие авторы мелких проектов жалуются на их дороговизну. Я обратил внимание на второй эшелон — Digital Ocean и Linode, ценообразование там более гуманное и прозрачное, а решающим фактором в выборе было начилие у Digital Ocean управляемой базы данных — ставить постгрес в кубернетес конечно модно, но с точки зрения надежности выглядит не очень.

Еще один большой плюс Digital Ocean — бесплатный CDN.

Я развернул сервис в амстердамском датацентре — ближе к России ничего не нашлось.

Аудитория и сегментация


Если задуматься, автоматизация «волейбола» — весьма широкая задача.

Волейболов только в официальной версии — два варианта (6x6 и 2x2), плюс к этому возможны разные форматы типа 4x4, 3x3, на траве, на снегу.

Одни люди привержены только одному формату, другие играют во все, где мяч летает.

С точки зрения видео — ракурс камеры добавляет разнородности, так как логика разбора записи камер сбоку и сзади будет заметно различаться.

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



Ссылки