ECE497 Project Set Playing Beagle

Revision as of 17:40, 16 May 2011 by Allensj (Talk | contribs)

Jump to: navigation, search

Team members: Samuel Allen, Stephen Mayhew, Julian Ametsitsi

Executive Summary

The game Set uses a 3 x 4 grid of 12 cards that have different symbols on them. These symbols differ in shape, fill, and number. The goal is to find a set of three cards.

Using the BeagleBoard, we have developed a system that uses a webcam to take a picture of the cards in play and uses OpenCV and Python to find the sets from the picture.

Our system correctly identifies all of the sets in the hand that the image recognition provides.

It can run completely on the Beagleboard and processes aproximately 1 frame per second.

Currently, the image recognition is the downfall to our success. The image recognition does not find the correct symbols on the cards, and so the rest of the system does not find the correct sets.

The sets that are found are correct for the found cards, but not the actual cards in play.

Our system is almost functional, but there are still some problems that need to be overcome. The image recognition is the biggest hurdle that we need to overcome and after that is completed, the system will work correctly.

Installation Instructions

Give step by step instructions on how to install your project on the SPEd2 image.

  • First clone our github repository:
git clone 
  • Install python-opencv
 $ opkg install python-opencv 
  • You will also need a webcam and a way to mount it. We used a Sony Playstation Eye, but any webcam with at least 640x480 resolution should work. Our mount held the camera about 7 inches above the playing surface, and had it pointing straight down.

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.


Here is where you brag about what your project can do.

Consider including a YouTube demo.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.


Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.