This is a project that demonstrates how to use Convolutional Neural Networks (CNNs) for classifying images of sneakers into their respective brands.
The dataset used for this project is the Nike, Adidas and Converse Shoes Images dataset from Kaggle. It consists of 825 images of sneakers belonging to 3 different categories (Nike, Adidas and Converse) The images are in JPEG format and have varying dimensions.
Python 3.x TensorFlow 2.x NumPy Matplotlib scikit-learn Jupyter Notebook (optional:skip below steps and run it in collab) You can install all the required Python packages by running the following command:
Copy code
pip install tensorflow numpy matplotlib scikit-learn jupyter
Usage Clone the repository: bash Copy code
git clone https://github.com/adijams01/Sneakers_CNN.git
Download the dataset from Kaggle and extract it into the data folder or you can get it from the repository itself.
Open the Sneakers_CNN.ipynb Jupyter Notebook. (for CNN model)
Run the cells in the notebook to train and evaluate the CNN model. You can modify the hyperparameters of the model and experiment with different settings. You can also Classify with your images or you can get samples from here
The trained CNN model achieves an accuracy of around 53.51% on the test set, which is an average performance .You can also visualize the training and validation loss and accuracy curves using the Matplotlib library.
The curves states that the model is Overfitting
The trained CNN model achieves an accuracy of around 82.46% on the test set, which is a good performance considering the complexity and variability of the sneaker images. You can also visualize the training and validation loss and accuracy curves using the Matplotlib library.
The curves states that the model is fitting properly
Convolutional Neural Networks are a powerful tool for image classification tasks, and this project demonstrates how to use them for classifying sneakers into their respective categories.
With further with Transfer Learning or getting more data, you can improve the performance of the model and apply it to other image.
By Using Transfer Learning we used state-of-the-art models which got us a better validation accuracy than before, where EfficientNetB0 model outperformed others