Car Logos CNN - building my own car logos classifying neural network
citroen14537_small dacia16164_small daewoo18571_small dodge14346_small ferrari5408_small alfa romeo10942_small audi18063_small bmw18966_small
chevrolet3976_small saab3303_small seat7469_small skoda16785_small subaru20173_small suzuki8784_small tata20486_small tesla11746_small
toyota0157_small volkswagen17181_small volvo2931_small fiat0649_small ford2247_small honda1709_small hyundai6287_small jaguar13748_small
jeep9308_small kia6781_small lada12567_small lancia8005_small land rover10123_small lexus19649_small maserati13405_small mazda10525_small
mercedes8343_small mitsubishi5983_small nissan12950_small opel1225_small peugeot14973_small porsche4461_small renault15832_small rover3743_small
CarL-CNN was trained with 20,778 50x50px RGB images depicting logotypes of 40 different car brands. The dataset was handpicked from loosely scraped websites and contains images, photos, drawings, sketches at various color schemes (black/white, RGB, CMYK, one-color), different angles and can sometimes contain some noise (other logotypes, background, etc.)
It classifies a given image by attributing a predicted brand label:
The model got the below scores:
- Precision: 94.20%
- Recall: 94.03%
- F1 score: 94.04%
- Accuracy: 94.03%
The Jupyter Notebook file contains method definitions for showcasing, class probability prediction and new image recognition. Also, a closer examination of the wrongly predicted cases is done to analyze which car brands need some dataset enrichment.
I plan to make it into a web application and enable adding user-owned images for classification. Later on, using sl4a, I plan to make it into an Android application and enable car logo recognition by mobile camera -- a True computer vision!
(unzip to folder, where CarLogosCNN.ipynb resides)
- Model weights (1 file, 140 MB) - http://u.42.pl/GEt0_model_weights
- Images (20778 files, 54 MB - ZIP) for the train and test set - http://u.42.pl/GEt7_images
- New images (12 files, 677 kB) unseen during the training - http://u.42.pl/GEtf_new_images
- numpy
- matplotlib
- scikit-learn
- keras (tensorflow backend)
- pillow - for image processing