Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
Digital-кейс дня

Приложение HitFactor. Проект для спортсменов по спортивной стрельбе.

Вхождение в кейс дня

Мобильное приложение HitFactor Shots Analysis — профессиональный инструмент, который помогает спортсмену найти слабые места в своей технике прохождения упражнения и позволяет сравнивать себя с другими стрелками.

Агентство-исполнитель кейса

Doubletapp

Превращаем идеи в работающий продукт. Оптимизируем процессы вашего бизнеса с помощью методов машинного обучения. Красивые лендинги и высоконагруженные сервисы. Как Frontend, так и Backend. Нативные и кроссплатформенные решения под Android и iOS.

1. Вводная задача от заказчика, проблематика, цели

ПРОБЛЕМА

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

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

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

На видео Алёна Карелина демонстрирует что такое практическая стрельба.

2. Описание реализации кейса и творческого пути по поиску оптимального решения

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

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

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

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

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

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

Поэтому мы задействовали нейронные сети.

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

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

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

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

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

— Стартовый сигнал.

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

— Продолжение выстрела.

— Фон.

ПРИЛОЖЕНИЕ НА IOS

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

— Распознавание звуков выстрелов и стартовых сигналов из видео полностью оффлайн;

— Отображение распознанных звуков на временной шкале;

— Удобный интерфейс для сравнения двух видео с визуализацией времени каждого выстрела и интервала между выстрелами;

— Возможность сохранить итоговое видео анализа стрельбы.

Статья на vc.ru

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

3. Результаты сотрудничества

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

В ИТОГЕ:

— Точность распознавания составила 99.1%;

— Полнота распознавания 97.8%.

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

4. Заключение

Мы сделали интересный и сложный проект на основе нейронной сети. Это определённо полезный проект, который поможет спортсменам развить свои навыки.

Приложение получило бронзу Tagline awards 2019 как Лучшая мобильная утилита. https://tagline.ru/cases/mobiljnoe-prilozhenie-hitfactor/

Агентство-исполнитель кейса

Doubletapp

Превращаем идеи в работающий продукт. Оптимизируем процессы вашего бизнеса с помощью методов машинного обучения. Красивые лендинги и высоконагруженные сервисы. Как Frontend, так и Backend. Нативные и кроссплатформенные решения под Android и iOS.