Inspiration

We took inspiration from our class project of "Evil Hangman" but decided to switch it up and add a computer vision aspect to it. In addition, we each have a love for making things a lot more complicated than they need to be so this was right up our alley!

What it does

We play rock paper scissors with the computer, but the computer, based on if the computer recognizes them within its database, generates a result that will either result in the player always winning or losing.

How we built it

We implemented and trained a computer vision model using OpenCV and python to build facial recognition software that would identify our friends and the different members in our group. In addition, we used MediaPipe and TensorFlow to recognize different hand symbols in various positions as either "rock", "paper", "scissors". Finally, we used an assortment of front-end technologies (Javascript, HTML, CSS) to build the web application to host our computer vision models.

Challenges we ran into

The biggest challenges we ran into were in connecting the data from the visual-recognition software and hand-tracking program to our web application and implementing the visual-recognition software. We also found that training the computer-vision model was fairly challenging as data collection was a major obstacle.

Accomplishments that we're proud of

We are especially proud of the fact that we were able to implement a computer vision model capable of both hand gesture and facial recognition. In addition, it was tough to create a fully functional web app with an interactive user interface, so we were happy we got this to work as well.

What we learned

We learned how to implement the python library called OpenCV and how to use it in conjunction with MediaPipe and TensorFlow. In addition, we learned how to interact with the DOM and make a static website interactive.

What's next for Evil Rock Paper Scissors

We want to be able to let the user add different hand gestures and labels so that they can play the game with a different variation. In addition, we want to make different games such as "Sticks" and "Higher Or Lower" more customizable so that people can play these games using their video instead of input.

Built With

Share this project:

Updates