Card games are a passion in our group, and so we wanted to see how we could integrate machine learning with cards.

What it does

CardCV detects and identifies playing cards from a given image or video stream in real time.

How we built it

Initially, we tried to achieve the object recognition through opencv's built-in Haar cascade generation utilities, but they proved to be troublesome. After a talk with a Microsoft mentor, we agree it would be simpler and more streamlined to use their Custom Vision API. All backend for the app is written in python.

Challenges we ran into

Originally we wanted to create a card-playing robot, but after we ran into serious hardware limitations, we had to take another approach. After talking with a Microsoft mentor, we decided not to make a robot, but a python app that could detect cards by employing Microsoft's Custom Vision API.

Accomplishments that we're proud of

We're proud successfully using a machine learning object recognition framework to make our app work.

What we learned

We learned that if we want to build something hardware related, we should plan beforehand and bring the hardware we know we need because we didn't do that this time and we ended up with nowhere near enough hardware to make our original project (the card-playing robot) work.

What's next for CardCV

In the future, we'd like to implement the ability for the program to function as an AI and independently learn and play card games via machine learning. We also want to apply the concept of machine learning demonstrated in this project to other games.

Share this project: