This project is part of a learning initiative aimed at understanding and implementing Convolutional Neural Networks (CNNs) for image classification. The objective is to classify animal images, such as distinguishing between "panda" and "dog," using CNN models. Through this project, participants will:
- Explore the factors that contribute to a "good" model.
- Analyze the impact of model depth and parameter efficiency.
- Understand the sensitivity of CNNs to data manipulations and improve their resilience.
The project consists of four main steps, as outlined below.
- Model Training and Testing:
- Build a CNN model.
- Train and test the model on a dataset of animal images.
- Testing with Manipulated Images:
- Evaluate the model on test images manipulated under different lighting conditions.
- Identify any performance degradation and analyze its causes.
- Color Constancy Algorithm Application:
- Apply a color constancy algorithm to correct manipulated images.
- Retest the model and compare the performance.
- Result Analysis and Reporting:
- Compare test results across the three scenarios.
- Suggest solutions for performance improvement if scores remain low.
The most effective model and proposed solution will have the opportunity for project presentation.
You can access the code and notebook files for this project via the links below:
- GitHub: github.com/erenyurtcu/Animal-Classification
- Kaggle: kaggle.com/code/erenyurtcu/animal-classification
animal_classification.ipynb: Contains all the steps of the project, including CNN implementation, testing, and analysis.
- Python
- TensorFlow/Keras
- NumPy
- Matplotlib
- OpenCV (for image manipulation and color constancy algorithms)
To run the project, the following components are required:
- Python 3.8 or higher
- Required Python libraries:
pip install tensorflow numpy matplotlib opencv-python
- Clone this repository:
git clone https://github.com/erenyurtcu/Animal-Classification
- Open the
animal_classification.ipynbnotebook in Jupyter Notebook or any compatible environment. - Run the cells in sequence to execute the steps of the project.
- Develop a CNN model for animal classification.
- Evaluate the modelβs sensitivity to manipulated input data.
- Apply image processing techniques to improve model robustness.
- Compare and analyze results to identify the best solution.
- GitHub Repository: github.com/erenyurtcu/Animal-Classification
- Kaggle Notebook: kaggle.com/code/erenyurtcu/animal-classification
- Accuracy of the CNN model on the original dataset.
- Robustness to manipulated data.
- Improvement in scores after applying color constancy.
- Depth vs. performance trade-offs in CNN design.
- The dataset and additional implementation details are described in the linked repositories.
- For any questions or issues, feel free to reach out via GitHub or Kaggle.