В прошлой статье я рассказал о своих подходах по распознаванию волейбольного мяча в игре. Задача сама по себе интересная и развивать ее можно в нескольких направлениях.
Исследования от меня никуда не денутся, а вот выпуск на публику ставит совсем другие челленджи.
Волейбольная видеоналитика — вполне себе зрелая отрасль, но ориентирована исключительно на профи, ибо не дешево и трудоемко.
У любителей обычно выкладывается запись куда-нибудь вконтакт/ютюб, как правило в сыром виде, без всякого монтажа. Как следствие, в запись попадают перерывы, разминки, споры и прочая тягомотина.
Статистика ведется очень редко и там абсолютный ноль в плане автоматизации.
В идеале хочется, чтобы система:
Список можно продолжать и усложнять, но начать надо с малого.
Например, вырезать из всей записи только активные розыгрыши. Этими розыгрышами можно делиться в социальных сетях, использовать при монтаже других роликов, или собрать все вместе, чтобы получить сжатый дайджест всей игры.
В техническом плане есть алгоритм треккинга мяча, на основании которого и будем эти розыгрыши выделять.
Алгоритм который пришлось изрядно доработать (уже несколько раз), так как начальная версия пропускала слишком много шума.
Логика разбиения на розыгрыши максимально простая — 5 секунд мяча не видно, значит сыграли.
Для теста я взял игру со страницы Московской волейбольной лиги.
Розыгрышей оказалось многовато, в этой игре алгоритм насчитал 197 розыгрышей, хотя их на самом деле 28.
Вот это считается за розыгрыш:
И не придраться — мяч есть, летит по параболе. А то что короткий — бывает, подача тоже бывает быстрой, особенно если в сетку. Без дополнительного слоя логики здесь не обойтись, запишем на будущее.
Нормальные розыгрыши распознаются корректно, это внушает оптимизм.
Алгоритм генерит страничку с разбором игры, дайджестом и розыгрышами (все можно скачать), у каждого розыгрыша есть gif-превью с треккингом мяча, сразу видно, что распознается, а что нет.
Время обработки видео превышает в три раза длительность игры, все таки opencv+python — не самый производительный вариант, тоже есть куда улучшаться.
Стартапное движение сейчас в тренде, благодаря одной известной в узких кругах волне, и меня, как видно, тоже зацепило.
Поэтому записался на известный курс по стартапам (тоже не буду конкретизировать), и стало понятно, что делаю все неправильно.
Не могу удержаться, чтобы не процитировать, это прямо про меня.
Там еще было, что-то про плохих стартаперов, которые пилят для себя, вместо того, чтобы чутко реагировать на потребности аудитории, это тоже в точку.
Так что по чеклисту полный провал.
Один из важных пунктов цели и миссии, о которых не принято говорить — это возможность (для автора) неограниченно поиграться с технологиями.
На работе приходится в основном таскать рояль, а где еще развернуться с ML, CV и облаками?
Поэтому система работает на Kubernetes, в основном для того, чтобы быстро ее масштабировать (ну так, на случай взрывного роста).
Платформ для Кубернетеса не так мало, понятно, что в лидерах GKE, AWS и Azure, но многие авторы мелких проектов жалуются на их дороговизну. Я обратил внимание на второй эшелон — Digital Ocean и Linode, ценообразование там более гуманное и прозрачное, а решающим фактором в выборе было начилие у Digital Ocean управляемой базы данных — ставить постгрес в кубернетес конечно модно, но с точки зрения надежности выглядит не очень.
Еще один большой плюс Digital Ocean — бесплатный CDN.
Я развернул сервис в амстердамском датацентре — ближе к России ничего не нашлось.
Если задуматься, автоматизация «волейбола» — весьма широкая задача.
Волейболов только в официальной версии — два варианта (6x6 и 2x2), плюс к этому возможны разные форматы типа 4x4, 3x3, на траве, на снегу.
Одни люди привержены только одному формату, другие играют во все, где мяч летает.
С точки зрения видео — ракурс камеры добавляет разнородности, так как логика разбора записи камер сбоку и сзади будет заметно различаться.
В целом, вполне очевидно, что наиболее перспективным выглядит анализ пляжного волейбола.
- Вариант 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, на траве, на снегу.
Одни люди привержены только одному формату, другие играют во все, где мяч летает.
С точки зрения видео — ракурс камеры добавляет разнородности, так как логика разбора записи камер сбоку и сзади будет заметно различаться.
В целом, вполне очевидно, что наиболее перспективным выглядит анализ пляжного волейбола.
Ссылки
- vball.io — главная страница сервиса
- Паблик вконтакте, куда я выкладываю разборы и все, что относится к теме
- Игра МВЛ на которой проводилось тестирование
- Еще одна игра с МВЛ, теперь женский вариант
- Интересная статья про аналитику в волейболе