225 kinds of Birds Classification Using Deep Learning

In this article, I will talk about a small project that I did this year, which is a Kaggle competition about how to classify 225 kinds of birds using a deep learning model.

Mohammed El Amine Mokhtari
Analytics Vidhya
3 min readApr 15, 2021

--

The original article on my blog website here.

Abstract

The aim of this project is to classify 225 kinds of birds using a deep learning model for image classification. So for this work, we applied machine learning techniques to do the image recognition and the classification. We first addressed a classification problem by developing a pipeline. The solution we proposed for classification tasks was to use better features that were extracted by passing an image through a pre-trained convolutional neural network. We used Inception network to do this. Using these features we obtained very high accuracies

We also made use of data augmentation techniques to generate more images from a small set of images by applying different transformations such as zooming and shearing. We obtained some very promising results in both classifications and object detection tasks.

Introduction

In some European countries, they have noticed the accidental death of an important number of rare bird species by wind turbines, which led to the creation of startups that propose solutions to this problem. one of the solutions is based on image acquisition and processing systems. This system includes cameras for the detection part and a classifier to differentiate the different races. Our project consists of building a system that can classify at least 225 kinds of birds. To do that, there are a lot of approaches in computer vision science. Each method has its advantages and disadvantages. We decided to show you some of the methods that you can use for these kinds of problems and at the end, we will tell you which method we decided to use for our case.

Methods and Approaches

In this section, we will give you some methods that are used for image recognition, and after that, we will tell you why we chose deep learning as a method for our project.

SVM

Support Vector Machines (SVM) have been recently developed in the framework of statistical learning theory. It works well on smaller data sets, it has a high accuracy of prediction. But it is not suitable for larger datasets, as the training time with SVMs can be long and less effective on datasets containing noise.

Boosting

This method is also a machine learning method. It is more flexible with the choice of cost functions, adaptable to the specificities of the problems studied. But it is a Non-explicit model, numerous parameters are lost (tree size, number of iterations, regularization parameter, …).

KNN

For the KNN (K Nearest Neighbor) this method consists of finding the most common features or we can say the neighbors and put them in one group. Its algorithm is simple and easy to implement. The algorithm is versatile. It can be used for classification, regression. But the algorithm becomes much slower as the number of learning examples increases. The choice of the distance calculation method, as well as the number of neighbors K, may not be obvious.

Deep Learning

Allows real-time optimization. Allows avoiding manual forecasting at each data modification. Saves time when setting up the network. New input variables can be introduced to improve forecasts. But the neural networks do not provide explanations concerning their results which therefore limits the analysis of the existing phenomena. There is not yet a way to define the optimal neural network architecture. And needs a lot of data for the training to give the best results.

Read more

--

--

Mohammed El Amine Mokhtari
Analytics Vidhya

I'm a computer vision research assistant, YouTuber and online content creator. Co-founder at: https://pycad.co/