I used machine learning for game piece detection instead of standard computer vision techniques. It’s accuracy is incredible, as it is not nearly as easily confused as many other forms of CV are. Color filtering, for example, can easily be confused by other yellow object. A machine learning model is not so easily fooled. If anyone is interested in trying it out for themselves I have documentation on my github for the project.
According to the description, 216 photos taken from the team’s workspace.
OP: It sounds like your test accuracy is surprisingly acceptable given such a small training dataset. Did you separate the 216-image dataset for training and testing, or use a different method for testing? How big are the hidden layers? Are you worried about overfitting?
When I was working with the API I was being lazy and did not separate the data into a training and evaluation set. However, I combatted overfitting by using very diverse images with different backgrounds and angles. I have found that this has worked without issues so far.
If anyone is interested in the dataset and the training process, you can find that in another repository. I trained it for an hour or two on my personal pc with a GTX 1060. I finetuned an existing model, MobileNet, which is why I was able to be successful with such a small dataset and train for such a short period of time.
Did you fine tune the whole network? An up and coming trend is to only update the full connected weights and keep the spatial features untouched, for smaller datasets that is. The precedent from that is Harvard’s skin cancer detector which was pretrained on imagenet.
I do not believe that I finetuned the whole network. Unless you are going for extreme accuracy, e.g. in a kaggle competition, it is usually enough to only finetuned the dense layers.