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

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

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

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

Ключевые слова: подсчет повторений, компьютерное зрение, оценка позы.

Оглавление

  • RepNet: подсчет представителей независимо от класса
  • Подсчет повторений в упражнениях на основе правил с использованием оценки позы
  • Упражнение на подсчет повторений с использованием идей из Signal Processing
  • Спортивная камера
  • Подсчет повторений с использованием подхода Optical Flow на основе глубокого обучения

Большинство техник, которые мы обсуждаем в блоге, не будут общими, а скорее предназначены для конкретной проблемы (например, тренировок). Кроме того, для более глубокого понимания техники, пожалуйста, обратитесь к предоставленным ссылкам.

1. RepNet: независимый от класса подсчет представителей в дикой природе

бумага:Отсчет времени: не зависящий от класса подсчет повторов видео в дикой природе [1]

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

Модель RepNet принимает видеопоток в качестве входных данных и прогнозирует два выхода:

Продолжительность периода для каждого кадра.Для каждого кадра, который является частью повторяющегося действия, мы хотим знать продолжительность периода (в единицах времени) этого действия.

Периодичность каждого кадра: оценка, показывающая, является ли текущий кадр частью повторения или нет.

Некоторые из основных особенностей модели RepNet включают: Матрица временного самоподобия (TSM):

  1. TSM является изюминкой этой техники подсчета повторений. Это информационное узкое место архитектуры RepNet. Эта матрица помогает связать кадры друг с другом, вычисляя функцию попарного подобия между двумя вложениями.
  2. Можно также вывести (используя эвристику) количество повторений из этих TSM, что делает прогнозы модели RepNet интерпретируемыми.
  3. Разнообразные видеоролики с повторениями в реальном мире гарантируют, что эти TSM весьма разнообразны, и, следовательно, у RepNet есть пул приложений, помимо простого подсчета повторений.

Одна из самых впечатляющих особенностей этого метода подсчета повторений заключается в том, что он независим от класса (общий) и полезен для широкого спектра повторяющихся движений. Модель RepNet — это классическое применение популярных Transformers в Computer Vision.

Однако модель имеет ограничения в том смысле, что количество кадров во входном видео должно быть ограничено. Это можно объяснить тем, что размер TSM равен количеству входных кадров.

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

2. Подсчет повторений на основе правил с использованием оценки позы

блог: Победа в интерактивности с помощью компьютерного зрения [2]

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

Основные этапы:

  • Учитывая конкретное упражнение, вы сначала придумываете определения (правила) для состояний в этом упражнении. В упражнении может быть несколько состояний. Упражнение приседания, например, можно разбить на два состояния, скажем, нижнее и верхнее. В процессе движения человек, выполняющий упражнение, будет переходить из одного состояния в другое. Эти правила состояния можно рассматривать как представляющие области активации во время движения.
  • Например, для приседания эти правила могут быть следующими (th относится к пороговым значениям):
down: (left_knee_hip_dist_y < th1 and right_knee_hip_dist_y < th2)
up: (left_knee_hip_dist_y > th3 and right_knee_hip_dist_y > th4)
  • Во время логического вывода мы начинаем с вычисления метрик (углов, нормированных расстояний) с использованием ключевых точек позы из модели в режиме реального времени и проверяем, активировано ли конкретное правило или нет, и выполняем подсчет повторений с использованием флага.

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

  • Это не обычный подсчет повторений.
  • Модель оценки позы очень чувствительна к фоновому шуму и, следовательно, к подсчету повторений.
  • Проблемы с масштабируемостью. Написание правил вручную — это трудоемкий процесс. Нам также нужно протестировать правила с различными вариациями угла, ориентации, позы и т. д. Представьте, что вы пишете правила для сотен упражнений в корпусе.

3. Подсчет повторений с использованием идей из Signal Processing

блог:Создание счетчика повторений упражнений с использованием идей обработки сигналов [3]

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

Этот подход очень похож на подсчет повторений на основе правил, за исключением хлопот, связанных с написанием правил вручную для разных состояний во время повторения. Этот подход полуавтоматизирует подход к расчету состояния путем вывода контрольной линии (которую можно рассматривать как границу состояния) для конкретного движения/упражнения с использованием видео тренера и затем используйте контрольную линию для подсчета повторений любого видео этого упражнения.

Здесь мы рассматриваем упражнение как набор волн метрик ключевых точек. Эти метрики включают углы и расстояния между комбинацией различных ключевых точек тела, а ключевые точки вычисляются с использованием модели оценки позы (модель оценки позы Movenet от Tensorflow).

Основные этапы:

  1. Сначала мы вычисляем метрики (расстояния и углы) между комбинацией ключевых точек, используя эталонное видео тренера (в качестве входных данных). Эти показатели представляют сигнал во времени.
  2. Мы отфильтровываем все стационарные сигналы и создаем объединенный сигнал нестационарных. Затем мы вычисляем опорную линию, используя среднее значение суммированного сигнала.
  3. Во время логического вывода мы снова начинаем вычислять метрики тестового видео, введенного пользователем, и вычисляем общий комбинированный сигнал в режиме реального времени.
  4. Создаем скользящее окно фиксированного размера и проверяем пересечение общего сигнала (из 3) с опорной линией (из 2). Это пересечение указывает на то, что повторение завершено.

Этот подход быстр, прост в реализации и достаточно точен. Тем не менее, некоторые основные недостатки включают следующее:

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

4. Спортивная камера

бумага: Обнаружение, распознавание и отслеживание одновременных упражнений в неограниченных сценах[4]

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

Краткое изложение предпринятых шагов

  1. Обнаружение всех потенциальных траекторий движения в видео с помощью плотного алгоритма оптический поток. Траектория движения может быть результатом деятельности, не связанной с физическими упражнениями, например разминки, походки пользователя, перемещения туда-сюда и т. д.
  2. Обнаружение всех траекторий движения упражнения в сцене. Как они это делают?Во-первых, они выполняют этап извлечения функций, который включает в себя извлечение созданных вручную функций из 5-секундного окна любой траектории. Они используют модель бинарного классификатора на основе MLP, которая принимает входной признак и выводит вероятность того, является ли эта входная траектория (признак) деятельностью, связанной с упражнениями, или нет.
  3. Кластеризация траекторий движения упражнений в пространстве и времени. После кластеризации создается средняя траектория движения путем объединения всех траекторий, принадлежащих данному кластеру. Обратите внимание, что количество кластеров задано заранее. Эти средние траектории затем используются для подсчета и отслеживания повторений упражнений.
  4. Подсчет повторений и распознавание упражнений.Средние траектории затем преобразуются в векторы признаков, которые затем передаются регрессору MLP и модели классификатора MLP для вывести количество повторений и метки упражнений соответственно.

Некоторые из заслуживающих внимания особенностей этой системы: Это сквозная система, которая выполняет подсчет повторений в реальных условиях. Optical Flow идентифицирует все движения, поэтому этого достаточно для отслеживания упражнения и выполнения подсчета повторений, даже если пользователь еле виден.

Проблемы с этой системой:

  • Несколько пользователей пересекаются в видео во время выполнения упражнения. И, следовательно, становится очень сложно определить точные границы этих пользователей и сделать вывод о количестве повторений.
  • Чувствительность к шуму.шумное поведение человека, такое как разминка, отдых, походка пользователя и т. д., может иметь периодичность и, следовательно, может иметь нежелательный вклад в подсчет повторений.
  • Подсчет повторений не является общим: система ограничена только подсчетом повторений в упражнениях.

5. Подход к оптическому потоку на основе глубокого обучения

блог:Приложение для подсчета движений на тренировке с использованием алгоритма глубокого обучения и оптического потока [5]

Еще одна интересная идея использования зрения для решения задачи подсчета повторений — это метод оптического потока.

Основные этапы

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

Подробнее об алгоритме оптического потока см. в документе opencv здесь (вместе с реализацией).

2. Создание набора данных. Следующим шагом является создание набора данных изображений и видео с цветовой кодировкой и маркировка их различными состояниями движения (скажем, вверх или вниз).

3. Обучение модели.Следующий шаг включает в себя обучение простой модели CNN для выполнения мультиклассовой классификации кадров. Во время тестирования цветные кадры из оптического потока затем передаются в модель, которая предсказывает одно из состояний движения, а также фиксирует метку класса. В основном это проблема сопоставления цветов, но через модель, поскольку модель более надежна.

Подход точен и легко внедряется в производство. Однако минусы легко перевешивают плюсы подхода:

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

Рекомендации

[1]. Двибеди, Дебидатта и Айтар, Юсуф и Томпсон, Джонатан и Серманет, Пьер и Зиссерман, Эндрю. Подсчет времени: не зависящий от класса подсчет повторений видео в дикой природе . Конференция IEEE/CVF по компьютерному зрению и распознаванию образов (CVPR). DOI: https://doi.org/10.48550/arxiv.1902.09868

[2]. Аакаш Агравал. Победа в интерактивности с помощью компьютерного зрения. Правильный путь.

[3]. Аакаш Агравал. Создание счетчика повторений упражнений с использованием идей обработки сигналов. На пути к науке о данных.

[4]. Рушил Хурана, Каран Ахуджа, Зак Ю, Дженнифер Манкофф, Крис Харрисон и Маянк Гоэл. 2019. GymCam: обнаружение, распознавание и отслеживание одновременных упражнений в неограниченных сценах. проц. АКМ Взаимодействие. Моб. Носимая вездесущая технология. 2, 4, статья 185. DOI: https://doi.org/10.1145/3287063

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

Надеюсь, вам понравилось изучать несколько техник подсчета повторений на основе зрения. Большинство идей также легко реализовать и развернуть. Я хотел бы знать отзывы тех, кто читает этот блог. Я был бы рад ответить на любые сомнения/вопросы по любой из концепций, упомянутых выше. Обратная связь очень приветствуется. Вы можете связаться со мной через Linkedin.

Спасибо за прочтение!