Этот проект представляет собой веб-приложение, которое использует MediaPipe для подсчета отжиманий в реальном времени с помощью веб-камеры. В настоящее время ведется исследовательская работа по интеграции модели на основе PyTorch Transformer для более точной классификации упражнений и подсчета подходов.
- Подсчет отжиманий: Приложение определяет и подсчитывает количество выполненных отжиманий.
- Обратная связь в реальном времени: Предоставляет обратную связь о форме выполнения упражнения, помогая пользователю поддерживать правильную технику. Сообщения "Go Up", "Go Down", "Keep Going" и "Bad Form. Correct Posture" помогают корректировать движения.
- Визуализация ключевых точек: Отображает ключевые точки тела, обнаруженные MediaPipe, на видеопотоке.
- Прогресс-бар: Показывает процент выполнения текущего отжимания.
- Простая установка и использование: Приложение легко настроить и запустить.
- Кроссплатформенность: Работает в любом современном веб-браузере, поддерживающем WebSockets и доступ к веб-камере.
- Python: Бэкенд на Python с использованием Flask и Flask-SocketIO.
- MediaPipe: Обнаружение поз и ключевых точек тела.
- PyTorch Transformer (в разработке): Планируется использовать для классификации упражнений и подсчета подходов. В данный момент проводится исследование и разработка этой функциональности.
- JavaScript, HTML, CSS: Фронтенд приложения.
- WebSockets (Socket.IO): Двусторонняя связь между клиентом и сервером.
- ngrok: Для создания туннеля к локальному серверу.
-
Клонируйте репозиторий:
git clone https://github.com/ваш_репозиторий/pushup-counter.git
-
Перейдите в директорию проекта:
cd pushup-counter/backend -
Создайте виртуальное окружение (рекомендуется):
python3 -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
-
Установите зависимости:
pip install -r requirements.txt
-
Запустите сервер:
python main.py
- Вам понадобится токен ngrok. Замените плейсхолдер
"..."вmain.pyна ваш актуальный токен. - Сервер запустится на порту 5000. ngrok создаст публичный URL, который вы сможете использовать для доступа к приложению.
- Вам понадобится токен ngrok. Замените плейсхолдер
- Откройте публичный URL, предоставленный ngrok, в вашем веб-браузере.
- Нажмите кнопку "Activate Camera", чтобы разрешить доступ к вашей веб-камере.
- Примите правильную позу для отжиманий.
- Начните выполнять отжимания, следуя инструкциям на экране.
В настоящее время ведется активное исследование возможностей использования архитектуры Transformer (PyTorch) для улучшения точности и функциональности приложения. Цель исследования — создать модель, способную:
- Классифицировать различные типы упражнений: Автоматически определять, какое упражнение выполняет пользователь (отжимания, приседания, выпады и т.д.).
- Точно подсчитывать подходы: Определять начало и конец каждого подхода для различных упражнений.
- Улучшить распознавание формы: Более точно анализировать форму выполнения упражнений и предоставлять более детальную обратную связь.
Эта функциональность находится в стадии разработки и будет добавлена в будущих версиях приложения.