This project is part of the lecture Applied Artificial Intelligence at the University of Applied Sciences Esslingen. The aim of this project is the automatic recognition of automobiles with machine learning, and the pricing of the vehicle based on them.
StoryThe ProblemIn 2019 there is a vast amount of different car models and even for car enthusiasts it can be hard to determine every single model correctly. Imagine walking down the street discovering a new car that you are very intrested in. You want to know it's price because you are considering to buy it. You don't know the exact car model and as you don't have any time and motivation to gather all the information, you leave...
Our IdeaTo support this process of gathering the right information, we thought about creating an application which can be used to take photos or use existing photos to recognise car models and display an approximated price. We started building our application upon a pre-trained neural network which is capable of recognising 196 different car models. To improve usability we decided to move the application in a web-based environment. Furthermore we focussed on creating an even better dataset to recognise much more car models.
ImplementationTo move the application into a web-based environment we used HTML, CSS and JavaScript to create a simple UI. Take a live photo or upload an already saved image. Pressing 'predict' will give an text output consisting of the car model, the probability of detection and the approximated price.
We calculated the average manufacturer's suggested retail price based on a dataset which was originally created by using Edmunds car API. We downloaded over 85.000 google pictures of the car models based on this price list and cropped them into fitting size. This new dataset to distinguishes 930 different car models. For our model we used the ResNet-152 neural network as a base. Our current model is trained on 16,185 images, based on a stanford paper dataset. This model is running with a Top-5 percentage of around 88%. Fun Fact! It would have taken us about 5 days to train the current model on a CPU(i7-8700k)! Luckily with the power of a gaming GPU(GTX 1070) it took us just under 11 hours.
How to use1. Open the app folder and copy path (...Applied-AI-Technologies\app)
2. Open cmd and type "cd ...Applied-AI-Technologies\app"
3. Run server.py
Things for the futureThe enhanced dataset needs some data cleansing to get rid of inaccurate images. After that the a new powerful model can be trained. Feel free to so!
Further implementations could be an enhanced approximation of the car price by substracting the value loss based on km/miles.
Dependenciessource of inspiration: https://github.com/foamliu/Car-Recognition
car price dataset: https://www.kaggle.com/jshih7/car-price-prediction/data
google image downloader: https://github.com/hardikvasa/google-images-download
car dataset: http://ai.stanford.edu/~jkrause/cars/car_dataset.html
ContributorsSven Habrock, David Le Duy, Marvin Gygas, Sebastian Späth, Sascha Lindner
Comments