Skip to content

Akshat-Rastogi-6/DIY-ComputerVision-Architecture-CNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DIY-Deep-Learning-NN-PyTorch

This is the Indian Bird Classification branch.

Indian Bird Classification

Business Case

Birdwatching is a popular hobby in India, with a growing community of enthusiasts, researchers, and environmentalists. Identifying bird species in the field is essential for both casual birdwatchers and serious ornithologists. However, with the immense diversity of bird species in India—over 1,300 recognized species—accurate identification can be challenging, especially for beginners who may not have immediate access to reference materials.

The aim of this project is to develop a deep learning model that can accurately classify bird species from images, allowing birdwatchers to enhance their experience, engage more deeply with their hobby, and contribute to citizen science initiatives. By making bird identification more accessible, we can foster a greater appreciation for biodiversity and conservation efforts.

Industry

Environmental Conservation / Wildlife Management / Ecotourism

Problem Statement

Many individuals, especially novice birdwatchers, struggle to accurately identify bird species in the field. This challenge can lead to frustration and discourage participation in birdwatching, a valuable activity that promotes environmental awareness and conservation. Additionally, misidentifications can skew data collected for scientific research and conservation efforts.

To address this issue, there is a need for a user-friendly solution that utilizes technology to assist birdwatchers in identifying species quickly and accurately. Developing a machine learning model to classify bird species based on images will provide an immediate resource for enthusiasts and contribute valuable data to the field of ornithology.

Objective

The aim is to build a predictive model that can accurately classify bird species based on images of their physical characteristics. The model will focus on features such as:

  • Color patterns
  • Size and shape of the bird
  • Unique markings or features
  • Habitat and behavior indicators

By employing this classification model, birdwatchers can:

  • Quickly identify birds in their natural habitat
  • Enhance their birdwatching experience
  • Contribute to citizen science and conservation efforts by accurately reporting sightings

Directory Structure

code/
├── __pycache__/                   (directory for compiled Python files)
├── saved_model/                   (directory for saved model files and training scripts)
│   ├── bird_classification_cnn.pth                   (saved model for the Convolutional Neural Network)
│   ├── pretrained_resnet.pth                   (saved model for the ResNet architecture)
│   ├── app.py                     (main application file for the Streamlit web app)
│   ├── classification.py          (script for classification-related functions and utilities)
│   ├── evaluate.py                (script to evaluate model performance on test data)
│   ├── ingest_transform_couchdb.py (script for ingesting and transforming data into CouchDB)
│   ├── ingest_transform.py        (script for general data ingestion and transformation)
│   ├── load.py                    (script for loading and preprocessing data)
│   └── train.py                   (script for training the classification model)
└── Data/
    └── Master/
        └── Dataset                (directory containing bird image datasets)
.gitattributes                       (file for managing Git attributes)
.gitignore                          (specifies files and directories to be ignored by Git)
readme.md                           (documentation for the project)
requirements.txt                   (lists the dependencies required for the project)


## Data Definition

The dataset contains features related to various bird species, including:
- **Species Information**: Common name and scientific name of the bird species.
- **Physical Characteristics**: Features like color patterns, size, shape, and unique markings.
- **Habitat Information**: Common habitats where the bird species are found.
- **Behavioral Traits**: Information about feeding habits, nesting behaviors, and migratory patterns.
- **Image Data**: Images of the bird species for classification.

**Training and Testing Data:**
- **Training Samples:** Approximately 10,000 images across various bird species.
- **Testing Samples:** Approximately 2,000 images for evaluation purposes.

Program Flow

  1. Data Ingestion: Load bird images and their corresponding metadata from the Data directory (e.g., image files and CSV containing species information) and ingest it into a suitable format for processing. [ingest_transform.py]

  2. Data Transformation: Preprocess the images and metadata, including resizing images, normalizing pixel values, and augmenting data to improve model robustness. The data is then split into training and validation sets. [ingest_transform.py]

  3. Model Training: Train a deep learning model (e.g., using TensorFlow or PyTorch) to classify bird species based on image data. This includes techniques like transfer learning with pre-trained models for improved accuracy. [train.py]

  4. Model Evaluation: Evaluate the model's performance on the test set by generating classification reports, confusion matrices, and other relevant metrics to assess accuracy and identify areas for improvement. [evaluate.py]

  5. Manual Prediction: Allow users to upload images of birds for classification, providing real-time predictions on the species based on the trained model. This can be done via a command line interface (CLI) or through an API. [classification.py]

  6. Web Application: A Streamlit app that integrates the entire classification pipeline, allowing users to interactively upload images and receive predictions on bird species, complete with additional information and resources. [app.py]


Steps to Run

  1. Install the necessary packages: pip install -r requirements.txt
  2. Run app.py to launch the Streamlit web application and utilize the GUI for bird classification.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages