Project Requirements


Essential Requirements

  1. Successful reproduction of an object recognition tutorial. We will be following this guide that was shared with us by the customer.
  2. Creation of a library of annotated simple card images. This library of images will be used throughout the project to train the model. As we work to improve the model to recognize more advanced patterns, this library will be expanded as necessary for training. Annotation will likely be done using this tool.
  3. Creation of an initial model to identify 4 different cards. This will require using our library of annotated card images to create a model like was created in the tutorial. The goal here is to have the neural net successfully recognize and identify images of cards.
  4. Creation of a model to identify 24 different cards. This be a process that continues throughout the semester as we train our model to identify a greater number of different cards. Our current goal is to be able to identify all of the cards used in the game of Euchre.
  5. Integration of the model with a web-based user interface. This will be a very simple user interface that allows a user to upload an image of cards and will return the annotated image with a list of all of the cards in the picture.

Stretch Goals

  1. Ability to identify entire hands of cards. This would allow a user to submit an image of their hand and recieve an identification of the hand as a whole.
  2. Expansion of the web application to provide recommendations. This would allow a user to submit an image of their hand and be provided with the best possible play they can make in a given situation.

Schedule and Milestones

  • Week 1 (2/4-2/10):
    - Complete and successfully run tutorial on Google Cloud Platform (Requirement 1)
  • Week 2 (2/11-2/17):
    - Create simple dataset of four cards (Requirement 2)
  • Week 3 (2/18-2/24):
    - Train model to successfully recognize the four cards (Requirement 3)
  • Week 4 (2/25-3/3):
    - Add four more cards to the current dataset (Requirement 2)
    - Begin research for web app (Requirement 5)
  • Week 5 (3/4-3/10):
    - Continue to train and refine model (Requirement 3)
    - Add four more cards to be used next week (Requirement 2)
    - Freeze a smaller model to use temporarily for web app development (Requirement 4)
  • Week 6 (3/11-3/17):
    - Spring Break, add 8 additional cards (Requirement 2)
    - Concurrent web app development goals TBD (Requirement 5)
  • Week 7 (3/18-3/24):
    - Add remaining 4 cards to the dataset (Requirement 2)
    - Concurrent web app development, goals TBD (Requirement 5)
  • Week 8 (3/25-3/31):
    - Complete model of 24 cards and freeze it (Requirement 4)
    - Concurrent web app development, goals TBD (Requirement 5)
  • Week 9 (4/1-4/7):
    - Integrate model into web app (Requirement 5)
    - Work on stretch goals
  • Week 10 (4/8-4/14):
    - Work on stretch goals
    - Presentation preparation

Sizing Estimate

Story points are used to estimate the size and difficulty of the project.

These points range from 1, for the least difficult of tasks, to 100, for the most difficult tasks known to man (think np hard problems).

  1. Complete tutorial described here: tutorial

  2. Story Points: 1

  3. Create simple dataset, add it to the existing dataset, and begin training model

  4. Story Points: 1

  5. Creation of an initial model to identify 4 different cards.

  6. Story Points: 10

  7. Creation of a model to identify 24 different cards.

  8. Story Points: 12

  9. Integration of the model with a web-based user interface.

  10. Story Points: 10


Platforms, Tools, and Languages

  • TensorFlow: Google's open-source machine learning framework.
  • labelImg: An open-source image annotation tool.
  • Google Cloud Platform: Google's suite of cloud based computing services.
  • Python: The preferred programming language for working with TensorFlow.
  • Internal tools: It is very likely that we will find it helpful to build some of our own tools (for example, a script to rotate images in order to create more test images from a single picture). These will be added as we develop them. Stretch Goal 3 may be another tool that we find useful.