This project is being done as a competition by many students and the best accuracy achieved is 70%. We were able to achieve 63% accuracy for 101 classes. This falls in the top 5 for the competition. For 10 classes we were able to achieve an accuracy of 95%
The dataset is obtained from an opensource platform. It is available on CalTech website as CalTech 101 Image classification dataset. It can be accessed from the link - http://www.vision.caltech.edu/Image_Datasets/Caltech101
Image Classification using CNN in Keras and Tensorflow for CalTech 101 dataset.
We have used classic Neural Networks(CNN) to perform image classification. Using Keras and TensorFlow in Python, different maxpooling and concolutional layers were added to the neural network. The labels were pre-defined as the class names and the model was trained on this neural network.
- Read the images
- Pre-process and rescale the images
- Use different types of activation functions like tanh and Relu
- Apply the Convolutional Neural Networks in Keras and TensorFlow
- Train the model on training dataset
- Evaluate the model on Test set of images
- Relu performs better for image classification as compared to tanh activation function
- The convolutional network gives an accuracy of 95% for the 10 classes with maximum number of images
- While training the images using CNN the number of training samples in important. For example, if there are less samples to train on then the model won't perform accurately.