Anidex Image Classifier is a Convolutional Neural Network model built using TensorFlow, Keras, NumPy, and Matplotlib libraries in Python. It classifies images of 90 different species from the animal kingdom.
The Anidex Image Classifier project aims to classify images of various animal species using deep learning techniques. Inspired by the concept of the Pokédex from Pokémon, this model can predict the species of an animal from an input image.
- Inspiration: Inspired by the concept of Pokédex from Pokémon.
- Validation Accuracy: The model achieves a validation accuracy of 37.04%.
- Animal Classes: It can predict among 90 different animal species, including antelope, badger, bat, bear, and many others.
- Architecture
- Convolutional layers (relu activation)
- 2D-Maxpooling layers
- Dropout layers (Dropout rate: 0.2)
- Flattening layer
- Dense layers for output
The model is implemented using the following Python libraries:
-
TensorFlow: An open-source machine learning framework developed by Google that is used for building and training neural networks. Used to provide core functionalities for defining and training the Convolutional Neural Network model used in the project.
-
Keras: An open-source neural network library written in Python, designed to enable fast experimentation with deep neural networks. Used as a high-level API running on top of TensorFlow, simplifying the process of building and training the deep learning model.
-
NumPy: A fundamental package for scientific computing in Python, providing support for arrays, matrices, and many mathematical functions. Used in the project for handling image data and performing various numerical operations required during data preprocessing and augmentation.
-
Matplotlib: Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. It has been used in the project to visualize the training process, such as plotting training and validation accuracy, and displaying images during prediction.
- Data Augmentation: Utilizes data augmentation techniques to increase the diversity of training data and improve model generalization.
- Callbacks: Implements callbacks such as Learning Rate Scheduler and Early Stopping to optimize model training and prevent overfitting.
- Optimizer: Adam optimizer is used for optimizing model parameters.
- Loss Function: Sparse Categorical Crossentropy is employed as the loss function for multi-class classification.
To modify this project:
- Clone this repository:
git clone "https://github.com/ISHOOO/Anidex-Image-Classifier.git"
- Ensure Python dependencies are installed
pip install numpy matplotlib tensorflow
data_split.py
: Python script to split the 'animals data' directory into 'train' and 'valid' directories by 75% and 25% respectively.anidex.keras
: Pre-trained model weights file.predict.py
: Python script to perform predictions on new images.unseen test data
: unseen images taken from an external source to test the generalizability of the modelAnimal_recognition.ipynb
: Jupyter notebook containing script for model training
The dataset used for training and validation can be found on Kaggle:
- antelope
- badger
- bat
- bear
- bee
- beetle
- bison
- boar
- butterfly
- cat
- caterpillar
- chimpanzee
- cockroach
- cow
- coyote
- crab
- crow
- deer
- dog
- dolphin
- donkey
- dragonfly
- duck
- eagle
- elephant
- flamingo
- fly
- fox
- goat
- goldfish
- goose
- gorilla
- grasshopper
- hamster
- hare
- hedgehog
- hippopotamus
- hornbill
- horse
- hummingbird
- hyena
- jellyfish
- kangaroo
- koala
- ladybugs
- leopard
- lion
- lizard
- lobster
- mosquito
- moth
- mouse
- octopus
- okapi
- orangutan
- otter
- owl
- ox
- oyster
- panda
- parrot
- pelecaniformes
- penguin
- pig
- pigeon
- porcupine
- possum
- raccoon
- rat
- reindeer
- rhinoceros
- sandpiper
- seahorse
- seal
- shark
- sheep
- snake
- sparrow
- squid
- squirrel
- starfish
- swan
- tiger
- turkey
- turtle
- whale
- wolf
- wombat
- woodpecker
- zebra
Feel free to explore and contribute to the Anidex Image Classifier project!