This application is able to recognize the SET cards and to play the classic game. It is composed up from three parts:
Set is a real-time card game published by the Set Enterprises in 1991. The deck consist of 81 cards varying in four features:
A set consist of three cards satisfying all of the following conditions:
For example these three cards form a set:
<img src="https://github.com/szaza/set-detector/blob/master/samples/set-game-cards.png" title="sample set cards" alt="sample set cards" width="400"/>
This application is composed up by two main part:
Let's see how the android application works:
1) First you have to take a picture and send it to the server;
<img src="https://github.com/szaza/set-detector/blob/master/samples/set-detector-android-take-picture.png" alt="SET detector take a picture" title="SET detector take a picture" width="300" />
2) The server processes your image and sends back the response what will be presented by the client application;
<img src="https://github.com/szaza/set-detector/blob/master/samples/android-recognized-cards-1.png" alt="recognized SET cards" title="recognized SET cards" width="260"/> <img src="https://github.com/szaza/set-detector/blob/master/samples/android-recognized-cards-2.png" alt="SET detected" title="SET detected" width="260"/> <img src="https://github.com/szaza/set-detector/blob/master/samples/android-recognized-cards-3.png" alt="SET2 detected" title="SET2 detected" width="260"/>
Before compiling the server project, you have to do the following steps:
src/main/resources/application.yml
configuration file;
Change the host and port settings acccording to your server settings. If you run the server on localhost you can run the ifconfig
command on linux or ipconfig
command on windows in order to obtain your ip address.graph/YOLO
directory under the /server/
root and rename the yolo-voc_19500.pb file to yolo-setcards.pb./server/
root directory open a terminal window and type the following command:./gradlew clean build -xtest
./gradlew bootRun
<img src="https://github.com/szaza/set-detector/blob/master/samples/set-detector-web.png" alt="SET detector web application" title="SET detector web application" width="500"/>
ifconfig
command on linux or ipconfig
command on windows in order to obtain your ip address.I reused some parts of my previous project to create this one: