Skip to content

bvgtomsk/CV_FinalProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Финальный проект курса CV инженер oнлайн-школы IT-профессий Skillfactory

Выполнил Бухаров В.Г.

Описание проекта

Бизнес цель: В последние годы мы наблюдаем интересную тенденцию: люди всё чаще тренируются у себя дома. Занятия с тренером в спортзале уходят в прошлое, и на смену им приходит новая реальность, в которой люди занимаются спортом, глядя в монитор.
Но если рядом нет тренера, кто же подскажет, правильно ли выполняется то или иное упражнение?
Специально для таких случаев мы хотим создать виртуального коуча, который поможет людям выполнять физические упражнения без вреда здоровью.
С помощью нашего приложения пользователь сможет удостовериться в правильности и эффективности действий, просто загрузив видео со своей тренировкой. Приложение сравнит его движения с движениями тренера и даст рекомендации.

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

Задачи:

  1. Построение каркаса позы через ключевые точки.
  2. Оценка сходства поз по фотографии.
  3. Валидация оценки позы на видео.
  4. Создание готовой к использованию в продакшене модели

Структура проекта

Проект выполнен в 3-х ноутбуках:

Структура репозитория

Репозиторий содержит следующие катологи:

  1. Result_images - содержит изображения, отражающие результаты на разных этапах работы
  2. Sample_images - содержит изображения использованные в процессе работы
  3. Modules - содержит файлы с кодом созданных модулей и скрипт main.py
  4. Notebooks - содержит ноутбуки с ходом выполнения работы

К сожалению в ноутбуках в гитхабе не отображаются видео, для просмотра можно открыть их в колабе:
ноутбук 1
ноутбук 2
ноутбук 3

Задача №1. Обработка фотографий и построение каркаса позы человека через ключевые точки

В качестве основы взятапредобученная модель KeypointRCNN на базе ResNet50 из пакета torchvision Подготовлено преобразование изображений Отрисованы ключевые точки и каркас тела человека по ключевым точкам

Результат выполнения задачи №1 ...

ЗАДАЧА 2 - сравнение сходства поз на изображениях

...

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

$$\begin{bmatrix} cos(a), -sin(a) \\\ -sin(a), cos(a) \end{bmatrix}$$

и масштабирования:

$$\begin{bmatrix} 1/scale, 0 \\\ 0, 1/scale \end{bmatrix}$$

где scale - коэффициент масштабирования ...

Было проведено преобразование векторов конечностей с транспонированием вектора каждой части конечности в начало координат. Также для оценки тела и головы были возведены в степень коэффициента для придания веса даже небольшим изменениям, и усреднены по точкам, чтобы при анализе было представлено только две оценки – одна для головы и одна для тела

...

Была произведена оценка схожести поз методами косинусной близости и взвешеного расстояния. Обе метриуи показали достаточные различия между оценками похожих и не похожих поз (коминусная близость - после дополнительного преобразования). В качестве основной метрики для дальнейшей работы была взята косинусная близость т.к. отличие от взвешенного расстояния - ее легко интерпретировать - так оценка в 1 - означает совпадение, оценка в 0 - вектора перпендикулярны друг другу, а оценка в -1 означает, что вектора ровно противоположны друг другу.

Задача 3. Сравнение позы на видео

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

Пример работы модели по сравнению видео: ...

Задача 4.

На 4 этапе создан модуль с моделью для продакшена, и протестирована его работа.

Заключение

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published