nripstein / What-Bird-is-That

Computer vision website which recognizes and provides information about birds in user-uploaded photos.

Home Page:https://what-bird-is-that.streamlit.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What Bird is That? 🦜 📸

Sample Usage

Embed.Demo.1.0.0.mp4

Summary

This project aims to classify bird species using deep learning techniques. It can identify over 500 species of bird with 97+% accuracy. The Bird Classifier leverages feature extraction and fine-tuning of the EfficientNetB4 model, pre-trained on the ImageNet dataset, to accurately identify and provide information about various bird species.

Deep learning model design

  1. Data augmentation: Data augmentation is a powerful technique employed to increase the diversity and variability of the training dataset. The augmentation techniques employed include random horizontal flipping, random height and width shifting, random zooming, random rotation, and random contrast adjustment. By randomly applying these operations to each image during training, the model becomes more resilient to variations in bird pose, lighting conditions, and other factors. This augmentation process enhances the model's ability to generalize well and accurately classify bird species under different circumstances.

  2. Feature extraction with EfficientNet: Transfer learning is employed to leverage the knowledge gained from the extensive training on the large-scale ImageNet dataset. The EfficientNet architecture, renowned for its excellent performance and low training time in image classification tasks, serves as the backbone of the model. Feature extraction uses the backbone model architecture and weights, but adds a few layers which are trained on the bird image dataset.

  3. Fine-tuning the model: After training the new layers during feature extraction, the weights of the last 10 layers of the EfficientNet model are unfrozen and trained on the bird images for an additional 5 epochs (with a reduced learning rate). This keeps most of learned features within those layers the same, but slightly adjusts them to be better at classifying birds specifically.

Performance on unseen test data:

Accuracy 97.83%
Precision 98.19%
Recall 97.82%
F1 Score 97.79%

Streamlit Website

To provide a user-friendly interface for bird classification, I developed a Streamlit web application. Users can easily upload their bird photos and obtain predictions from the trained Bird Classifier model. The website presents a bar plot of the probability of the top 3 species (with their labels serving as Wikipedia links). After identifying the top prediction the website presents a photo of the bird from the test data set, and provides details about the recognized species (from the Wikipedia API).

Example of Post-Classification Description

classified bird demo

Data

The bird dataset used in this project comprises a wide range of bird species, offering a comprehensive coverage of avian biodiversity. It includes 525 different species, enabling the model to accurately identify and classify a diverse range of birds.

Sample images from data set

scarlet macaw bald eagle blue dacnis
Scarlet Macaw Bald Eagle Blue Dacnis

About

Computer vision website which recognizes and provides information about birds in user-uploaded photos.

https://what-bird-is-that.streamlit.app/

License:MIT License


Languages

Language:Jupyter Notebook 93.1%Language:Python 6.9%