Обновить

Комментарии 6

Очень круто, серьезный инженерный подход. Я решал подобную задачу для трекинга тенниса, но через пару месяцев потерял интерес из-за сложности проекта, для пет-проекта это черезчур. Задача была запустить детекцию мяча, игроков, их действий, ключевых точек корта, в 30 fps на мобильнике.

Вопросы:
1. каким образом тут используется TAPe — Theory of Active Perception, и их ключевой слоган " Recognition without convolution"? Упоминание только в начале статьи один раз, и все. Этот подход как-то отличает вашу модель от классических U-net, YOLO? У вас все же обычная CNN судя по дальнейшему тексту.
2. Для распознавания людей, по моему YOLO подходит идеально, точность там очень высокая, зачем что-то придумывать? И там не нужно 9 кадров на входе, досточно одного.

Насчет распознавания действий, напрямую через серию картинок решать это очень сложно, сети нужно будет выводить слишком много связей. Простое решение "из коробки" - YOLO pose и небольшая LSTM-модель по ключевым точкам. Ну и в теории YOLO pose может находить людей и ключевые точки, два-в-одном, но разрешение входа нужно побольше. Для точности конечно лучше запускать ее отдельно на кадом кропе.

TAPe — Theory of Active Perception — скорее стало катализатором моего интереса к этой задаче и отправной точкой для поиска новых архитектурных решений. Однако в процессе экспериментов реализация действительно сместилась в сторону CNN, как вы верно заметили. Основной целью было сначала получить рабочую модель, а затем, решая возникающие проблемы, глубже разобраться в устройстве подобных систем.

В итоге я остановился на идее усиливать признаки игроков и мяча за счёт информации из соседних кадров. Поэтому модель получает на вход последовательность кадров, а не одно изображение.

Что касается YOLO: в сравнительной таблице есть результаты замеров, и YOLO действительно отлично справляется с детекцией игроков. Основная проблема возникает с мячом. Её выраженность сильно зависит от камеры, выдержки и качества видео: на некоторых кадрах мяч выглядит не как круглый объект, а как размытый овал, короткая полоса или вообще почти не виден.

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

И главный ответ на вопрос «зачем создавать свою модель, если уже есть YOLO?» — мне хотелось собрать систему по кирпичикам с нуля и глубже понять, как работают детекция, временные признаки, выбор областей внимания и оптимизация инференса на CPU.

Да, я также мотивировался, попробовать создать что-то свое с нуля, а не использовать YOLO. Для теннисного мяча задача еще сложнее, YOLO там с трудом применим, так как мяч может занимать пару смазанных пикселей. А TrackNet и его вариации слишком тяжелые для мобильного инференса, я на CPU с 16GB памяти его даже запустить не смог.

Ранее я писал статью об облегчённых вариантах TrackNet/GridTackNet для запуска на CPU:
https://github.com/asigatchov/fast-volleyball-tracking-inference

Код для обучения моделей находится в отдельном репозитории:
https://github.com/asigatchov/vball-net-pytorch

Реализация основана на идеях из GridTrackNet и TrackNetV4.

На мобильных устройствах я эти модели пока не запускал. Один из возможных вариантов оптимизации — обучить модель обрабатывать каждый второй кадр при частоте видео 30 FPS, фактически выполняя детекцию на 15 FPS, а положение мяча на промежуточных кадрах интерполировать по соседним результатам.

Отличная работа! Особенно понравилось, что вы не просто обучили модель, а сделали акцент на прикладной задаче и показали результат на реальных игровых данных. Мне кажется, подобные модели могут стать хорошей основой не только для аналитики матчей, но и для автоматического сбора спортивной статистики, анализа тактики и даже помощи тренерскому штабу в разборе игр. Интересно, планируете ли вы развивать проект дальше - например, добавить трекинг игроков между кадрами (ByteTrack, BoT-SORT и т.п.) или перейти к распознаванию игровых событий и действий отдельных игроков?

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации