The problem we were trying to solve was, given an image of a bird, to identify what species it belongs to. We needed to distinguish between 555 different species of birds ranging from hawks, eagles, owls, ducks, geese, and many more. We also needed to ensure that we had a reasonable accuracy (~80%) in our predictions of bird species. We trained and tested our model through a Kaggle competition.
Our approach was to utilize Convolutional Neural Networks (CNNs), Transfer learning, Data Augmentation, and Parameter Fine tuning. This involved initializing our network with a pretrained model as a feature extractor, and then training it on our transformed/augmented birds dataset. Our initial code layout was from Professor Joseph Redmon’s tutorial on transfer learning applied to bird classification, which can be found here.
Test accuracy: 67.9%
Test accuracy: 77.6%
Test accuracy: 74.9%
Test accuracy: 85.2% (Top 5 on leaderboards)
The datasets we used were the ones provided by the Kaggle competition and can be found here.
What problems did you encounter?
Are there next steps you would take if you kept working on the project?
How does your approach differ from others? Was that beneficial?