Vehicle MMY Image Classification via Deep Learning
A web application utilizing deep learning to predict vehicle make, model, and year based on images. The backend leverages the ResNet50 pre-trained convolutional neural network (CNN) model, combined with OpenAI's GPT-4 Vision capability as fallback, and eBay's API. This project not only predicts vehicle details but provides real-time price listings, delivering a complete user-focused application.
Artificial Intelligence Techniques
A+
Development Time
4 Weeks
Report & Citation
Video Demo
Challenge
Classifying vehicle make, model, and year with deep learning models, such as Convolutional Neural Networks (CNNs), presents unique challenges. Cars from different makes and years might look strikingly similar, and factors like angles, lighting conditions, and logos further complicate the decision-making process for any model. Building a resilient solution required overcoming these challenges using both the PyTorch and TensorFlow frameworks (mainly to learn different frameworks), advanced transfer learning models, and optimising performance through careful hyperparameter tuning.
Results
I developed two image classification models using PyTorch and TensorFlow, leveraging pre-trained models like ResNet50, VGG16, and VGG19. After extensive testing and evaluation, the ResNet50 with TensorFlow offered the highest generalizability, with 80% training and 85% validation accuracy. The prediction process incorporates advanced class-weight balancing and image augmentation techniques to handle class imbalances and increase prediction reliability during model training.
The ResNet50 model is integrated into a custom Next.js web application deployed on Vercel. If the model struggles to identify a vehicle, the system smartly falls back on OpenAI GPT-4 Vision API, ensuring that users always receive a prediction. Once a make, model, and year are identified, eBay’s API is triggered to display vehicle listings and provide pricing insights based on real-time data.
Process
Research & Data Collection: I manually collected a large dataset (over 7,000 images) from sources like eBay and other automotive websites. This robust dataset represented various car classes, including Audi A3 (2021), Nissan Qashqai (2021), BMW M3 (2018), and others. Extensive preprocessing was applied to resize images, clean up noise, normalise pixel values, and remove duplicate entries.
Model Selection & Training: The best results were achieved using ResNet50 with strategic transfer learning, where the final layers were retrained for specific car classes. Testing included training on balanced classes and involving diverse augmentation techniques to ensure validation robustness.
I also experimented with VGG16 and VGG19 but found overfitting issues with those models, especially without proper class balancing.
Web Application & User Interface: The web application (available at NeuroCar.net) is fully responsive, developed with a seamless drag-and-drop interface for users to input vehicle images and observe predictions in real-time. OpenAI GPT-4 functionality acts as a reliable fallback when prediction confidence is low, ensuring that users always receive useful vehicle-related insights.
Live Demo: Feel free to check the live project at https://neurocar.net or watch the demo video here: https://www.youtube.com/watch?v=ZUQtlkNNMFQ
Conclusion
Developing this vehicle image classification system has significantly expanded my expertise in deep learning, machine learning, and web development integration. Working with advanced CNN architectures and building a fully functional web app in Next.js allowed me to showcase how cutting-edge AI can have practical, consumer-driven applications. Transforming this technical work into a polished, accessible product was one of the most challenging but rewarding projects I’ve undertaken.