Spaces:
Configuration error
Configuration error
<div id="top"></div> | |
<!-- PROJECT LOGO --> | |
<br /> | |
<div align="center"> | |
<a href="https://github.com/NgoQuocBao1010/Exercise-Correction"> | |
<img src="./images/logo.png" alt="Logo" width="60%"> | |
</a> | |
<h2 align="center">Exercise Pose Correction</h2> | |
<p align="center"> | |
Make use of the power of Mediapipe’s pose detection, this project is built in order to analyze, detect and classifying the forms of fitness exercises. | |
</p> | |
</div> | |
<!-- ABOUT THE PROJECT --> | |
## About The Project | |
This project goal is to develop 4 machine learning models for 4 of the most home exercises **(Bicep Curl, Plank, Squat and Lunge)** which each model can detect any form of incorrect movement while a person is performing a correspond exercise. In addition, a web application that utilize the trained models, will be built in other to analyze and provide feedbacks on workout videos. | |
Here are some detections of the exercises: | |
- Bicep Curl | |
<p align="center"><img src="images/bicep_curl.gif" alt="Logo" width="70%"></p> | |
- Basic Plank | |
<p align="center"><img src="images/plank.gif" alt="Logo" width="70%"></p> | |
- Basic Squat | |
<p align="center"><img src="images/squat.gif" alt="Logo" width="70%"></p> | |
- Lunge | |
<p align="center"><img src="images/lunge.gif" alt="Logo" width="70%"></p> | |
- Models' evaluation results and website screenshots [here](#usage) | |
<p align="right">(<a href="#top">back to top</a>)</p> | |
### Built With | |
1. For data processing and model training | |
- [Numpy](https://numpy.org/) | |
- [Pandas](https://pandas.pydata.org/) | |
- [Sklearn](https://scikit-learn.org/stable/) | |
- [Keras](https://keras.io/) | |
1. For building website | |
- [Vue.js v3](https://vuejs.org/) | |
- [Django](https://www.djangoproject.com/) | |
<p align="right">(<a href="#top">back to top</a>)</p> | |
## Dataset | |
Due to the lack of videos or dataset online that recorded human doing exercises both in a proper or improper way, the majority of self-collected videos were either recorded by myself, my friends or my family. The majority of the collected videos were removed due to privacy purpose. | |
With an exercise such as Plank, as there is not much movement during the exercise, I’m able to find a dataset from an open database from [Kaggle](https://www.kaggle.com/datasets/niharika41298/yoga-poses-dataset). The found dataset is about many yoga poses but the very well-known ones are the downward dog pose, goddess pose, tree pose, plank pose and the warrior pose. The dataset contains 5 folders for 5 poses, each folder contains images of people correctly doing the correspond pose. | |
For the purpose of this thesis, only the folder contains the images of people properly doing plank is chosen. There are 266 image files in that folder, I handpicked all the images that represent a basic plank and discard the reset. In conclusion, there are 30 images which are arranged to the proper form class for basic plank. | |
## Getting Started | |
This is an example of how you may give instructions on setting up the project locally. | |
#### Setting Up Environment | |
``` | |
Python 3.8.13 | |
Node 17.8.0 | |
NPM 8.5.5 | |
OS: Linux or MacOS | |
``` | |
```markdown | |
NOTES | |
⚠️ Commands/Scripts for this project are wrote for Linux-based OS. They may not work on Windows machines. | |
``` | |
### Installation | |
_If you only want to try the website, look [here](./web/README.md)._ | |
1. Clone the repo and change directory to that folder | |
```sh | |
git clone https://github.com/NgoQuocBao1010/Exercise-Correction.git | |
``` | |
1. Install all project dependencies | |
```bash | |
pip install -r requirements.txt | |
``` | |
1. Folder **_[core](./core/README.md)_** is the code for data processing and model training. | |
1. Folder **_[web](./web/README.md)_** is the code for website. | |
<p align="right">(<a href="#top">back to top</a>)</p> | |
<!-- USAGE EXAMPLES --> | |
<div id="Usage"></div> | |
<br/> | |
## Usage | |
As the introduction indicated, there are 2 purposes for this project. | |
1. Model training **(describe in depth [here](core/README.md))**. Below are the evaluation results for each models. | |
- [Bicep Curl](core/bicep_model/README.md) - _lean back error_: Confusion Matrix - ROC curve | |
| <img align="center" alt="Bicep Curl evaluation" src="images/bicep_curl_eval.png" /> | <img align="center" alt="NgoQuocBao's Top Languages" src="images/bicep_curl_eval_2.png" /> | | |
| ------------- | ------------- | | |
- [Plank](core/plank_model/README.md) - _all errors_: Confusion Matrix - ROC curve | |
| <img align="center" alt="Plank evaluation" src="images/plank_eval.png" /> | <img align="center" alt="NgoQuocBao's Top Languages" src="images/plank_eval_2.png" /> | | |
| ------------- | ------------- | | |
- [Basic Squat](core/squat_model/README.md) - _stage_: Confusion Matrix - ROC curve | |
| <img align="center" alt="Squat evaluation" src="images/squat_eval.png" /> | <img align="center" alt="NgoQuocBao's Top Languages" src="images/squat_eval_2.png" /> | | |
| ------------- | ------------- | | |
- [Lunge](core/lunge_model/README.md) - _knee over toe error_: Confusion Matrix - ROC curve | |
| <img align="center" alt="Lunge evaluation" src="images/lunge_eval.png" /> | <img align="center" alt="NgoQuocBao's Top Languages" src="images/lunge_eval_2.png" /> | | |
| ------------- | ------------- | | |
1. Website for exercise detection. This web is for demonstration purpose of all the trained models, therefore, at the moment there are only 1 main features: Analyzing and giving feedbacks on user's exercise video. | |
<p align="center"><img src="images/web_1.png" alt="Logo" width="70%"></p> | |
<p align="center"><img src="images/web_2.png" alt="Logo" width="70%"></p> | |
<p align="center"><img src="images/web_3.png" alt="Logo" width="70%"></p> | |
<p align="center"><img src="images/web_4.png" alt="Logo" width="70%"></p> | |
<p align="right">(<a href="#top">back to top</a>)</p> | |
<!-- CONTRIBUTING --> | |
## Contributing | |
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. | |
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". | |
Don't forget to give the project a star! Thanks again! | |
1. Fork the Project | |
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) | |
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) | |
4. Push to the Branch (`git push origin feature/AmazingFeature`) | |
5. Open a Pull Request | |
<p align="right">(<a href="#top">back to top</a>)</p> | |
<!-- LICENSE --> | |
## License | |
Distributed under the MIT License. | |
<p align="right">(<a href="#top">back to top</a>)</p> | |
<!-- ACKNOWLEDGMENTS --> | |
## Acknowledgments | |
- Here are some other projects which I get inspired from: [Pose Trainer](https://github.com/stevenzchen/pose-trainer), [Deep Learning Fitness Exercise Correction Keras](https://github.com/Vollkorn01/Deep-Learning-Fitness-Exercise-Correction-Keras) and [Posture](https://github.com/twixupmysleeve/Posture). | |
- [Logo marker](https://www4.flamingtext.com/) for this project. | |
- This awesome README template is from [Best README Template](https://github.com/othneildrew/Best-README-Template). ♥ | |
<p align="right">(<a href="#top">back to top</a>)</p> | |