AI-powered system that identifies a car model from a photograph and generates a detailed description of the detected vehicle.
Upload an image of a car and receive ranked predictions with confidence scores, along with an AI-generated description based on the detected model.
This project combines:
- Machine Learning — The general framework where models learn from data.
- Deep Learning — EfficientNetB3 (a deep neural network with millions of parameters) is used for image classification.
- Generative AI — A Large Language Model (LLM) generates original, detailed vehicle descriptions based on the predicted label from the classifier.
The system does not retrieve descriptions from a database. Instead, it uses Generative AI to create new, original content dynamically based on the classification result.
Powered by three EfficientNetB3 deep learning models trained on different datasets.
|
|
⚠️ Important Notice About Model LimitationsThis project is deployed using the Render Free Plan, which imposes strict limitations on RAM, disk space, and processing power. Because of these constraints, the trained Machine Learning models may occasionally present inaccuracies, slower inference times, or reduced robustness compared to a fully scaled production deployment.
Try the application here:
https://ml-cars-iota.vercel.app/
When a user uploads a car image:
- The image is preprocessed and resized.
- It is passed through three independently trained classifiers:
- Stanford Cars Model
- 196 classes
- Predicts: make + model + body type + year
- Includes vehicles manufactured between 1991 and 2012
- Custom Dataset Model
- 48 classes
- Dataset Brand Classifier
- 33 car brands
- Includes some more recent models (limited samples) such as Toyota, Ferrari, and other modern brands
- Stanford Cars Model
- Predictions are combined.
- Results are ranked by confidence.
- The Top 5 predictions are returned.
The Stanford Cars dataset mainly contains vehicles from 1991–2012, while the brand classifier helps detect more updated vehicles, although in smaller quantities per brand.
This ensemble-style architecture improves robustness and prediction reliability.
Due to using the Render Free Plan, deployment resources are limited (RAM and disk size).
Because of this:
- Some datasets had to be compressed.
- Model sizes were optimized.
- Larger architectures were avoided.
- Batch sizes were adjusted during inference.
These optimizations ensure the system runs reliably within free-tier constraints while maintaining strong prediction performance.
- PyTorch
- EfficientNetB3 (Transfer Learning & Fine-Tuning)
- Multi-model ensemble approach
- FastAPI
- Python 3.10
- React
- Vite
- Framer Motion
- Render (Backend - Free Plan)
- Vercel (Frontend)

