View Code? Open in Web Editor
NEW
This project forked from vladislavsoren/exercise_classifier
Exercise classifier by video
Python 99.32%
Dockerfile 0.68%
exercise_classifier's Introduction
Сервис по классификации физических упражнений по видео
- Классификация физических упражнений по видео (подтягивания, приседания, отжимания на брусьях)
- Подсчет количества повторений
- Модуль обработки входного видео - нарезка, форматирование и т.п.
- Yolo3 (Object Detection Net) - получение координат Bounding box
- ResNet (Pose Estimation Net) - получение координат суставных узлов человека
- Модуль предобработки данных на выходе Yolo3 и ResNet
- Классификатор (отдельно обучен на собранной базе) - классификация на основе обработанных данных из моделей
- Модуль подсчёта количества повторений упражнения на видео
- Реализовано API на базе FastAPI
- Продуктовый сервер - uvicorn
- Сервис запущен в Docker
- Контролируется формат входного json (pydantic)
- *Функционал будет расширяться
Циклограмма работы проекта:
- В выпадющем окне пользователь выбирает файл классификатора
- В выпадющем окне пользователь выбирает директорию с видео упражнений
- Видео нарезаются на кадры и кадры сохраняются в автоматически созданную директорию
- Выбирается режим (при вводе "1" выбирается "классификация + подсчет", в других случаях "классификация")
- Yolo3 и ResNet формируют массивы координат
- По массивам координат классификатор делает предсказания
- Появляется таблица, где указан порядковые номера видео и соответствующие им распознанные типы упражнений
- Теперь данная таблица так же содержит количество повторений на видео
*Всего возможны два режима работы (классификация) / (классификация + подсчет)
PipeLine создания проекта:
- сбор базы (210 видео) + написание ТЗ
- аугментация базы (размер базы увеличился в 2 раза)
- парсинг базы в DataSet с помощью предобученных НС
- предобработка данных (нормализация)
- создание прототипа классификатора (НС)
- создание финального классификатора с высокой точностью распознавания (более 95%)
- проверка работы классификатора в тандеме с предобученными НС
- разворачивание проекта в PyCharm (все предыдущие этапы производились в Colab)
- создание графического интерфейса с помощью Tkinter.
- Добавление режима подсчета количества повторений упражнения на видео