Inspiration
When we are hanging out with our friends, we often like to dance, and since not many people have Just Dance or access to a video game console, it has been a struggle to find a fun activity that involves dancing. For our project, we wanted to create a dancing game that would allow users to download and play for free while also having the ability to choose any song instead of being restricted to a limited selection.
What it Does
OpenDance allows users to dance to any local video and earn a score based on the accuracy of their dancing.
How We Built It
OpenDance runs on the OpenPose technology developed at the Carnegie Mellon Perceptual Computing Lab. We decided to use an OpenPose model that was trained on the MPI dataset, consisting of 25k images and pose annotations. Using this machine learning model, we evaluate frames from a reference video (i.e. youtube video or just dance video), and frames from a webcam simultaneously. Once the model has output predictions for locations of different body parts, we compute the angle of each recognized body part. Our accuracy metric is computed by comparing the observed angle error to the maximum possible error.
Challenges We Ran Into
Some challenges we faced while developing this program was figuring out the correct dependencies required for the open pose repository. Another challenge we faced was getting the machine learning model to run closer to framerate. Finally, we considered many different methods of computing the accuracy for OpenDance, but ultimately decided that average angle error would be most accurate and scale most effectively.
Accomplishments That We're Proud Of
Getting OpenPose and the actual program to work was an accomplishment we are proud of.
What we learned
We learned about video processing, pose detection, computer vision, the Linux terminal, CMake, and Homebrew.
What's next for Open Dance
What’s next is creating an intuitive user interface and computation in real time.
Built With
- openpose
- python
Log in or sign up for Devpost to join the conversation.