Skip to content

Beginner-Mon/bird-specification

Repository files navigation

Birds Classification Project

Overview

This project is a comprehensive bird species identification system that utilizes the CUB-200-2011 dataset for both classification and detection tasks. The system implements multiple EfficientNet model variants including EfficientNet-B4, EfficientNet-B5, EfficientNetV2-B3, EfficientNetV2-S, and EfficientNetV2-M to provide accurate bird species recognition.

The project features two distinct model types:

  • Classification Model: Identifies bird species from images
  • Detection Model: Locates and classifies birds within images

Development and Training Process

The complete machine learning pipeline including data preprocessing, model building, model training, model testing, prediction, and metrics evaluation are documented in Jupyter notebooks. These notebooks were developed and executed on Kaggle using the CUB-200-2011 dataset along with additional given datasets.

Note: The provided notebooks serve as a preview of the development process. When using these notebooks in different environments, modifications and setup adjustments will be required to accommodate different data paths, and system configurations.

Frameworks and Technologies

Backend

Python FastAPI TensorFlow Keras Pandas NumPy Matplotlib Albumentations PIL

Frontend

React TypeScript Vite

Installation

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • npm or yarn

Backend Setup

  1. Download Training and Testing Dataset: https://drive.google.com/drive/folders/1t-S8xIUp9pRJTXv3Atj40ncM2ACJapKk?usp=sharing
  2. Download the trained models from Google Drive: https://drive.google.com/file/d/1iT_SAwgP4pIFgSLrY9-4rEdkFEhWpPea/view?usp=sharing
  3. Go to /backend/, place the Model, Training, and Testing folders in the /backend/ directory
  4. Install Python dependencies:
    cd backend
    pip install -r requirements.txt

Frontend Setup

  1. Navigate to the frontend directory:
    cd frontend/model-UI/
  2. Install npm dependencies:
    npm install

Running the Application

Start Backend Server

cd backend/src
uvicorn server:app --reload

Start Frontend Development Server

cd frontend/model-UI/
npm run dev

Dataset Information

This project utilizes the CUB-200-2011 dataset (Caltech-UCSD Birds-200-2011), which contains:

  • 11,788 images across 200 bird species
  • Detailed annotations including bounding boxes, part locations, and attribute labels
  • High-quality images suitable for both classification and detection tasks

Model Architecture

The system implements multiple EfficientNet variants:

  • EfficientNet-B4: First Model training, unstable training process
  • EfficientNet-B5: Higher accuracy with increased computational cost
  • EfficientNetV2-B3: Improved training efficiency, but unstable learning process
  • EfficientNetV2-S: Small variant optimized for speed
  • EfficientNetV2-M: Medium variant balancing accuracy and efficiency, highest accuracy so far

About

this is an application of object detection model applying in Birds Specification. Using CUB-200-2011 dataset,

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages