Difference between revisions of "ECE497 Project Set Playing Beagle"

From eLinux.org
Jump to: navigation, search
Line 3: Line 3:
 
== Executive Summary ==
 
== Executive Summary ==
  
The game Set uses a 3 x 4 grid of 12 cards that have different symbols on them.
+
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.  
They 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.  
 
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.
 
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.  
+
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.  
 
The sets that are found are correct for the found cards, but not the actual cards in play.  
  

Revision as of 18:40, 16 May 2011

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@github.com:mayhewsw/BeagleSetGame.git
git clone git@github.com:mayhewsw/BeagleSetGame.git 
  • 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.

Highlights

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.

Conclusions

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