Авторизация
Сброс пароля
Приложение HitFactor. Проект для спортсменов по спортивной стрельбе.
Вхождение в кейс дня
Заказчик: Чемпионы мира по практической стрельбе: Алёна Карелина и Роман Халитов.
Страница кейса/результат: https://itunes.apple.com/us/app/hitfactor-shots-analysis/id1442813271
Мобильное приложение HitFactor Shots Analysis — профессиональный инструмент, который помогает спортсмену найти слабые места в своей технике прохождения упражнения и позволяет сравнивать себя с другими стрелками.
1. Вводная задача от заказчика, проблематика, цели
ПРОБЛЕМА
Высокая скорость прохождения упражнения по практической стрельбе имеет – главная цель профессиональных спортсменов по практической стрельбе.
Имеют значение даже десятые доли секунды. Необходим инструмент, который позволит записывать прохождение одного упражнения на видео, а потом сравнивать его с чужими или другими своими попытками пройти его. Анализировать каждое движение и отмечать время между выстрелами.
Раньше для этого использовали два планшета, на которых пытались одновременно запустить два видео. Но этот подход неудобен: невозможно замедлить и перемотать оба видео одновременно, их сложно синхронизировать, и весь процесс занимает много времени.
На видео Алёна Карелина демонстрирует что такое практическая стрельба.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Разработка состояла из двух основных частей:
1 Разработка алгоритма нахождения стартового сигнала и выстрелов.
2 Разработка мобильного приложения под iOS.
Как распознавать выстрелы
Можно попробовать находить выстрелы на видео через обработку изображения. Однако, посмотрев видео со стрельб, стало ясно, что такой подход не будет работать: очень часто действия стрелка почти не видны на камеру, иногда он целиком скрывается за препятствием. К тому же этот подход не помог бы с распознаванием стартовых сигналов. Поэтому мы решили искать звуки выстрелов на аудиодорожке, взятой из видео.
Распознавание выстрелов по звуку может показаться простой задачей, которую с некоторой точностью можно решить с помощью определения выстрела по громкости. Такое решение было получено в качестве базового и оказалось очень неточным: больше половины звуков не были выстрелами. Среди громких звуков на стрельбище часто встречается речь возле камеры и лязг оружия.
Поэтому мы задействовали нейронные сети.
Клиент предоставил нам более тысячи видео со стрельб, и мы разработали инструмент, который позволил нам быстро разметить в видео места выстрелов и стартовые сигналы. Разработанная нейронная сеть состоит из сверточных и рекуррентных слоев и работает поверх спектрограммы. Сеть была интегрирована в приложение с помощью CoreML и работает полностью в оффлайн режиме.
После мы сгенерировали аудиодорожки, в которых звуки выстрелов и стартовых сигналов были положены поверх самых разных аудиорядов: рёв мотоцикла, дыхание при беге, музыка Ивана Дорна, блог Артемия Лебедева и прочее. Для обучения использовались как оригинальные аудиодорожки, так и сгенерированные.
По ходу разметки мы постепенно обучали нейросеть, чтобы она сама начинала подсказывать нам, как разметить данные.
На размеченных данных была обучена окончательная версия нейронной сети. Сеть состоит из свёрточных и рекуррентных слоёв. Она работает поверх спектрограммы.
Каждый момент времени она относит к одному из четырёх классов:
— Стартовый сигнал.
— Начало выстрела. (Отдельный класс для начала выстрела нужен, чтобы сеть умела разделять идущие подряд выстрелы.)
— Продолжение выстрела.
— Фон.
ПРИЛОЖЕНИЕ НА IOS
Было разработано нативное приложение на Swift. Полученная нейронная сеть была интегрирована в него с помощью CoreML.
— Распознавание звуков выстрелов и стартовых сигналов из видео полностью оффлайн;
— Отображение распознанных звуков на временной шкале;
— Удобный интерфейс для сравнения двух видео с визуализацией времени каждого выстрела и интервала между выстрелами;
— Возможность сохранить итоговое видео анализа стрельбы.
Вспомогательный инструмент для разметки видео
3. Результаты сотрудничества
Метрики распознавания выстрелов считались с учетом того, что начало выстрела, определенное нейросетью, не должно отличаться от реального начала выстрела больше, чем на 50 миллисекунд: для клиента были важны доли секунды.
В ИТОГЕ:
— Точность распознавания составила 99.1%;
— Полнота распознавания 97.8%.
Где точность — это вероятность того, что найденный выстрел является выстрелом, полнота — вероятность того, что существующий выстрел будет найден.
4. Заключение
Мы сделали интересный и сложный проект на основе нейронной сети. Это определённо полезный проект, который поможет спортсменам развить свои навыки.
Приложение получило бронзу Tagline awards 2019 как Лучшая мобильная утилита. https://tagline.ru/cases/mobiljnoe-prilozhenie-hitfactor/