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

С вами на связи чемпионы мира по практической стрельбе: Алёна Карелина и Роман Халитов. Мы далеки от мира разработки, но сегодня хотим рассказать, как создали профессиональный инструмент для нашего вида спорта в виде мобильного приложения.

Алёна Карелина и Роман Халитов
Алёна Карелина и Роман Халитов

Что такое практическая стрельба

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

Результат соревнования — хитфактор.

Хитфактор — количество набранных очков, делённое на время прохождения.

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

Неудобства тренировочного процесса

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

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

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

Как современные технологии могут нам помочь

У нас появилась идея сделать инструмент в виде мобильного приложения, который бы мог:

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

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

Алёна Карелина, Роман Халитов и Doubletapp
Алёна Карелина, Роман Халитов и Doubletapp

Разработка

Разработка состояла из двух основных частей:

  1. Разработка алгоритма нахождения стартового сигнала и выстрелов.
  2. Разработка мобильного приложения под iOS.

Как распознавать выстрелы

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

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

Распознавание выстрелов по громкости звука не работает должным образом.

Поэтому мы решили задействовать нейронные сети. Алёна и Роман передали нам больше тысячи записей со стрельб, но они никак не были размечены.

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

​Вспомогательный инструмент для разметки видео
​Вспомогательный инструмент для разметки видео

После мы сгенерировали аудиодорожки, в которых звуки выстрелов и стартовых сигналов были положены поверх самых разных аудиорядов: рёв мотоцикла, дыхание при беге, музыка Ивана Дорна, блог Артемия Лебедева и прочее. Для обучения использовались как оригинальные аудиодорожки, так и сгенерированные.

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

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

Каждый момент времени она относит к одному из четырёх классов:

  • Стартовый сигнал.
  • Начало выстрела.
  • Продолжение выстрела.
  • Фон.

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

Итоговое качество распознавания

Метрики распознавания выстрелов считались с учётом того, что начало выстрела, определённое нейросетью, не должно отличаться от реального начала выстрела больше, чем на 50 миллисекунд: для клиента были важны доли секунды.

  • Точность распознавания составила 99,1%.
  • Полнота распознавания 97,8%.

Точность — вероятность того, что найденный выстрел — действительно выстрел.

Полнота — вероятность того, что существующий выстрел будет найден.

Приложение под iOS

Было разработано нативное приложение на Swift. Полученная нейронная сеть была интегрирована в него с помощью CoreML.

Приложение HitFactor:

  • Распознаёт и отображает звуки выстрелов и стартовых сигналов на временной шкале.
  • Показывает время между выстрелами в таблице.
  • Сравнивает два видео, имея для анализа на одном экране результаты обоих стрелков.
  • Работает полностью в офлайне.
  • Сохраняет итоговое видео анализа стрельбы в Full HD.

Приложение можно скачать в AppStore.

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

Стоимость и сроки разработки

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

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

Потрачено: 670 тысяч рублей.

Бизнес-модель

Приложение работает по фримиум-модели и позволяет бесплатно проанализировать и сравнить до пяти пар видео в месяц. Сейчас конверсия в платного пользователя из установки составляет 8%.

Наша потенциальная аудитория — все любители и профессионалы в практический стрельбе. Как минимум в России этим видом спорта занимаются более 25 тысяч человек.

Также практическая стрельба популярна во многих странах мира, в том числе и в США. Именно поэтому наше приложение на старте работает на английском языке.

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

Продвижение

Мы продвигаем приложение в наших соцсетях, показываем его на соревнованиях другим спортсменам. Сегодня добрались и до vc.ru.

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

Что дальше

Нас много спрашивают про Android- и веб-версии нашего продукта.

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

Очень хочется услышать ваше мнение и немного повысить DAU :)

4646
25 комментариев

Doubletapp — отличные ребята. Тоже с ними работаем по приложению Практика : )

8
Ответить

Спасибо, рады стараться ;)

2
Ответить

Почему начали с ios, а не с андроида?

3
Ответить

Потому что мы делали это приложение для себя в первую очередь. А у нас айфоны :)

4
Ответить

очевидно же
1) рынок США
2) платежеспособность аудитории
3) качество айфона\айпада как продукта - железо без сюрпризов + софт(API) без сюрпризов

2
Ответить

Теперь в новостях можно писать: задержанный тренировался стрелять в нейросетях.

3
Ответить

Как решаете кейс при стрельбе с глушителем?)

Ответить