Image-Based Bird Species Identification Using Machine Learning

Buy Source Code ₹1501

This project contains code and resources for building a web application that utilizes Convolutional Neural Networks (CNN) to predict bird images. The application allows users to upload an image of a bird, and the trained CNN model will predict the species of the bird.

Introduction

With the advancement of deep learning techniques, building image classifiers has become more accessible than ever. This project demonstrates how to leverage CNNs to create a web application for predicting bird species from images.

Features

  1. Upload bird images to get predictions on their species.
  2. User-friendly interface for easy interaction.
  3. Utilizes a CNN model trained on bird image datasets for accurate predictions.

Model Training

The CNN model used for predicting bird species is trained on a bird image dataset. If you wish to retrain the model or use a different dataset, you can modify the training script (train.py) and replace the dataset accordingly.

To train the model:

python train.py

Dataset

This version of the dataset adds 10 new species to the previous version. In addition using a dataset analysis tool I was able to clean the dataset so that there are no duplicate or near-duplicate images in the dataset. This ensures no leakage between the train, test and validation datasets. Also so defective low information images were also removed. So now you are using a clean dataset.
Data set of 525 bird species. 84635 training images, 2625 test images(5 images per species) and 2625 validation images(5 images per species. This is a very high quality dataset where there is only one bird in each image and the bird typically takes up at least 50% of the pixels in the image. As a result even a moderately complex model will achieve training and test accuracies in the mid 90% range. Note: all images are original and not created by augmentation
All images are 224 X 224 X 3 color images in jpg format. Data set includes a train set, test set and validation set. Each set contains 525 sub directories, one for each bird species. The data structure is convenient if you use the Keras ImageDataGenerator.flow_from_directory to create the train, test and valid data generators. The data set also include a file birds.csv. This cvs file contains 5 columns. The filepaths column contains the relative file path to an image file. The labels column contains the bird species class name associated with the image file. The scientific label column contains the latin scientific name for the image. The data set column denotes which dataset (train, test or valid) the filepath resides in. The class_id column contains the class index value associated with the image file's class.
NOTE: The test and validation images in the data set were hand selected to be the "best" images so your model will probably get the highest accuracy score using those data sets versus creating your own test and validation sets. However the latter case is more accurate in terms of model performance on unseen images.

Link :- https://www.kaggle.com/datasets/gpiosenka/100-bird-species