An Image classification Model from Data collection, cleaning, model training as well as deployment and API integration
The final app can classify 20 different types of Supercars of different regions of the world.
The types of cars are,
- McLaren F1
- Ferrari Enzo
- Ferrari LaFerrari
- McLaren P1
- Porsche 918 Spyder
- Ferrari SF90 Stradale
- Aston Martin Valkyrie
- Rimac Nevera
- Mercedes-AMG One
- Koenigsegg Jesko
- Ferrari Daytona SP3
- Hennessey Venom F5 Roadster
- Koenigsegg Gemera
- Lamborghini Revuelto
- Porsche 911 GT3 RS
- Zenvo Aurora
- Pagani Zonda
- Ford GT
- Bugatti Chiron
- Lamborghini Aventador
Click Here to Visit Web aplication
The data was collected by downloading from DuckDuckGo search using their term name
Used fastai DataBlock API to set up the DataLoader where Resnet34 was used and was fine-tuned multiple times.
fastai provides default data augmentation which operates in GPU. Details can be found in 'notebooks/Data_prep.ipynb'
Fine-tuned a resnet50 model for 5 epochs initially and then with 3 and then 2 epochs and got up to 98.4% accuracy.
This part took the highest time. Since the collected data were from the browser, there were many noises. Also, there were images that contained Animations, adds as well as there were garbage data that contains irrelevant subjects. The was cleaned and
updated by using fastai library ImageClassifierCleaner
. The data were cleaned each time after training and finetuning till the last time which was the final iteration of the model.
The final model was deployed in HuggingFace Spaces using Gradio App. The implementation can be found in deployment
folder or here.
The deployed model API is integrated here in GitHub Pages Website. Implementation and other details can be found in docs
folder.