This project utilises Convolutional Neural Networks (CNNs) to classify images of 450 different bird species. By leveraging pre-trained models and transfer learning techniques, we aim to achieve high accuracy in bird species identification. The dataset used contains over 75,000 images, split across training, validation, and testing sets.
The dataset, titled Bird Species 450, contains images of 450 bird species, formatted as 224x224 pixel images with three color channels. The dataset is organized into training, validation, and testing sets, with respective splits as follows:
- Training: 70,626 images
- Validation: 2,250 images
- Testing: 2,250 images
-
Data Preprocessing and Augmentation:
- Images were standardised, resized, and converted into tensors.
- Data augmentation included random horizontal and vertical flips to increase model robustness.
-
Model Training:
- Various CNN architectures were tested, including EfficientNet and ResNet variants.
- The best-performing model was ResNet-34 with an Adam optimiser, trained over 20 epochs.
- Transfer Learning was utilised, leveraging models pre-trained on the ImageNet dataset.
-
Evaluation:
- Model performance was evaluated using accuracy metrics on validation and testing sets.
- Achieved a validation accuracy of 95.9% and a testing accuracy of 97.32%.
- Python 3.x
- Pytorch
- Torchvision
- Numpy
- Pandas
- Google Colab (optional, for free GPU access)
-
Clone the repository:
git clone https://github.com/yourusername/bird-species-classification.git cd bird-species-classification -
Install dependencies:
pip install -r requirements.txt
-
Access the dataset using Kaggle API in your Google Colab environment:
!kaggle datasets download -d gpiosenka/100-bird-species
- Open the
bird_classification.ipynbnotebook in Google Colab. - Run each cell sequentially to preprocess the data, train the model, and evaluate its performance.
- Achieved 95.9% accuracy on the validation set.
- Achieved 97.32% accuracy on the test set, indicating strong generalization capabilities.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Kaggle for providing the Bird Species 450 dataset.
- Pytorch community for their valuable documentation and resources.