Design Considerations / Implementation Issues


  • Multiple Object Recognition: We originally developed our model with the belief that training with only single object images would allow us to still recognize multiple objects in an image when testing. We found that this was not exactly the case once we began testing more thoroughly near the end of the project. Given a group of 6 cards, the model will typically only correctly identify 4-5 of the cards. This is not horrible but we believe expanding the training dataset to include more objects in images would potentially help with this.
  • Non Standard Card Images: The model does not perform well with card images that are not bicycle cards. This is likely due to the fact that the vast majority of the images we annotated were bicycle cards since we took most of the images ourselves. We made this decision since bicycle cards are a very popular card brand and are very prevalent in games. Expanding the dataset with more non-bicycle card images would likely help resolve this problem but we felt we did not have the time to accomplish this ourselves this semester.
  • Small Card Objects: We originally ran into a problem with identifying cards in high resolution photos. In order to remedy this, we decided to downsize all of our photos to a much more reasonable 320x240 image size. The biggest downside of this change is that now images where the card is far from the camera are very difficult for the model to identify since the features of the card are hard to discern. We feel that this isn't a huge problem however, since it can be resolved by cropping and then resizing or by moving closer before taking the image.
  • Limited Dataset: Initially, we intended to create a dataset consisting of all 52 cards since every card is used in poker. After realizing how monumental this task would be, however, we discussed it with our customer and decided to work with only the 24 cards of a standard Euchre deck instead.
  • Working With Windows: We quickly found that using the windows operating system to work with Tensorflow was a rather pointless endeavor. Future development on this project should definitely use Linux, MacOS, or some kind of shell to properly interface with Tensorflow and its various libraries.
  • Low Precision With Many Classifications: After expanding our dataset to include all 24 cards in a Euchre deck, we found that our original precision (when we tested with just 4 cards) took a significant hit. We didn't anticipate that expanding the number of classifications would have such a large effect and thus our dataset was likely too small to work for such a large number of cards. Our results are still good in general (achieving up to a 0.92 precision) but not quite where we were before.