This Jupyter notebook is a Deep Learning transfer learning project that can be run on Google colab. The resulting model can differentiate between bees, wasps and humble bees. It was trained with about 60 images per class. See some random samples below.
I’m using the trained ResNet-50 Convolutional Neural network as the basis. The Convolutional Layers are freezed while the BatchNorm Layers are not as they shall work on the new image dataset. The classification block consists of 3 fully connected layers and finally a softmax function to calculate the class probabilities. The notebook can be run on Google where all models, optimizer params and a log is stored. After training the classifier has an accuracy of approx. 95% on the unseen validation set.
The following images visualize the trained filters of the convolutional network.