Skip to content

SHRbharat/AnimalClassificationCNN

Repository files navigation

Animal Classifier with Convolutional Neural Networks

Dataset : https://www.kaggle.com/datasets/hitanshuintern/animal151

A machine learning project to classify 150 animal species using transfer learning with EfficientNetB0 in TensorFlow/Keras.

About EfficientNetB0

This project uses EfficientNetB0, the baseline model in the EfficientNet family.
EfficientNet models are designed with a compound scaling method that balances depth, width, and input resolution for optimal accuracy and efficiency.

  • Lightweight: ~5M parameters, making it fast and memory‑friendly.
  • Pretrained: Initialized with ImageNet weights for strong transfer learning.
  • Architecture: Built with MBConv blocks and squeeze‑and‑excitation layers to capture rich features.
  • Input Size: 224×224 pixels.

In this project, EfficientNetB0 is used as a frozen feature extractor, with a custom classification head (Global Average Pooling + Dense Softmax) added for 150 animal classes.


Project Overview

  • Dataset: Custom animal dataset (train / val / test) stored in Google Drive.
  • Model: EfficientNetB0 (pretrained on ImageNet) + Global Average Pooling + Dense Softmax (150 classes).
  • Augmentation: Random flips, rotations, zoom, and translations.
  • Callbacks:
    • ModelCheckpoint -> save best model
    • EarlyStopping -> prevent overfitting
    • ReduceLROnPlateau -> adaptive learning rate

Training Insights

  • Rapid accuracy gain from transfer learning.
  • Training accuracy ~95%, validation accuracy ~93–94% after 10 epochs.
  • Validation loss steadily decreased → good generalization.

Evaluation

  • Validation Accuracy: ~85.7% (on held‑out validation set).
  • Metrics: Accuracy/Loss curves, Confusion Matrix, Classification Report.
  • Error Analysis: Top misclassified classes and sample mispredictions visualized.

Releases

No releases published

Packages

No packages published