Sportform offers AI-assisted Form Analysis that uses Computer Vision and Pose Estimation to evaluate videos uploaded by users.
Explore the docs »
View Video Demo
·
Try Demo deployed on Vercel
·
Report Bug
Covid-19 has presented society with many challenges, some of which include how education can be conducted in a socially-distanced world. Sportform was created to provide a solution to this challenge, primarily in physical education, by allowing technology to assist educators in providing the level of instruction required of them while embracing digital alternatives to physical classes. Sportform addresses key concerns of online physical education classes using web-conferencing, such that lack of accountability and supervision by using AI-powered tools to augment educators.
Sportform is a Multimedia Forum-based Web Application for users to upload and review fitness videos with a keen focus on improving one's form and competency in their respective exercises/sports. Sportform offers AI-assisted Form Analysis that uses Computer Vision and Pose Estimation to evaluate videos uploaded by users.
This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.
This is an example of how to list things you need to use the software and how to install them.
- npm
npm install npm@latest -g
Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.
- Clone the repo
git clone [email protected]:JasonYapzx/sportform.git
cdtosportformfeand install NPM packagescd sportformfe npm install- Get your Firebase config and store it in an
.env.localfile in the root directory of the project. For example this should be how your.envfile looks like:NEXT_PUBLIC_FIREBASE_API_KEY={your_api_key} NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN={your_auth_domain} NEXT_PUBLIC_FIREBASE_PROJECT_ID={your_project_id} NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET={your_storage_bucket} NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID={your_messaging_sender_id} NEXT_PUBLIC_FIREBASE_APP_ID={your_app_id} NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID={your_measurement_id} - If you want to try our a dev deployment just run
npm run devto start this NextJS application. - If you need to build for production, just run
npm run buildto build a production ready application.
SportForm generates annotations on user-uploaded videos, providing counts of successful repetitions for various exercises and checking the form of those exercises. It achieves this by utilizing a state-of-the-art object detection and pose estimation model, YOLOv8l-pose, developed by ultralytics.This model accurately detects and generates 17 keypoints on the human body, including joints and facial features like ears.
SportForm takes in video uploads from users and utilizes the model to generate the coordinates of keypoints. By analyzing these keypoints, we calculate the necessary angles and distances to accurately evaluate exercise form and count repetitions.
In the future, there is a possibility of training deep neural networks for differnet catagories of exercises to accurately determine repetition count and evaluate form. However, at present, this endeavor is beyond our scope as it requires significant time and resources.
The implementation of our pose estimation scripts are in a Python>=3.7 environment with PyTorch>=1.7 (ensure CUDA is enabled).
Other requirements will be installed together with YOLO by ultralytics, refer to their documentation for more information.
pip install ultralyticsOur script to generate video with annotations can be used from the Command Line Interface (CLI).
-
Enter the directory
/path/to/sportform/pose_estimationcd /path/to/sportform/pose_estimation -
Try video generation with our example for pushups
python3 pushup_keypts.py -s=./pushup.mp4
-
Try video generation with our example for situps
python3 situp_keypts.py -s=./situp.mp4
The output video will be generated in the same directory with _kpt appended to the video name.
We hope to enhance the application further by adding a social media forum page whereby users can critique and comment on other's forms and help one another to improve. Another way where by people can learn from one another is to have a specialized video share feature for everyone to stay connected and work out with one another virtually. This creates a cohesive space for virtual workouts!
Eiffel Leo - LinkedIn | Github
Project Link: GitHub

