diff --git a/README.md b/README.md index 0bb806e..bbe63e3 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,35 @@ # Traffic Sign Recognition This is my first project about training a deep learning algorithm for road traffic signs recognition and was mostly inspired by the Traffic Signs detection competition in Kaggle : https://www.kaggle.com/c/traffic-sign-recognition/overview +![plot](german_roads_signs/road_sign_road_work.jpg) + For this project, I used the German Traffic Sign dataset from the Institut Fur Neuroinformatik : https://benchmark.ini.rub.de/ _J. Stallkamp, M. Schlipsing, J. Salmen and C. Igel, "The German Traffic Sign Recognition Benchmark: A multi-class classification competition," The 2011 International Joint Conference on Neural Networks, San Jose, CA, 2011, pp. 1453-1460, doi: 10.1109/IJCNN.2011.6033395._ +## Notebooks + +For this work, you can find utilies functions in this [file](https://github.com/fredotran/traffic-sign-recognition/blob/main/utils.py) and the notebooks are commented steps by steps from preprocessing data to model architecture and training the model, then predictions on new images. +1. The [Road_Signs_Detection_Model notebook](https://github.com/fredotran/traffic-sign-recognition/blob/main/Road_Signs_Detection_Model.ipynb) is using for preprocessing data, defining model architecture and train the model. +2. The [Testing_Notebook-RSD_Model](https://github.com/fredotran/traffic-sign-recognition/blob/main/Testing_Notebook-RSD_Model.ipynb) as its name suggests, is using for testing the model on test sets and never-seen-before images. + ## Dataset structure -This dataset consists in 43 classes of more than 50 000 images using for training, validation and test. The datasets are divided as follow : +This dataset consists in 43 classes of more than 50 000 images using for training, validation and test. The labels are stored in the [signnames.csv](https://github.com/fredotran/traffic-sign-recognition/blob/main/signnames.csv) file. + +The datasets are divided as follow : -- 34799 images for the training set. -- 4410 images for the validation set. -- 12630 images for the test set.* +- 34799 images for **the training set**. +- 4410 images for **the validation set**. +- 12630 images for **the test set**. -The images' shapes are (32, 32, 3). +The images' shapes are **(32, 32, 3)** (RGB). The training set archive is structured as follows : * One directoy per class * Each directory contains one **Comma Separated Value (CSV)** file with annotations (GT-ClassID.csv), as well as the training images. * Training images are grouped by tracks. -* Each tracks contains 30 images of one single physical traffic sign.* +* Each tracks contains 30 images of one single physical traffic sign. ## Image format @@ -27,53 +37,53 @@ The image format is structured as follows: * The images contain one traffic sign each. * Images contain a border of 10% around the actual traffic sign (cropped to at least 5 pixels) to allow for edge-based approaches. -* They are stored in Picle format. (PPM format). +* They are stored in **Pickle5 format** (PPM format). * Images sizes vary from 15x15 to 250x250 and aren't necessarily squared. -* Some of the traffic sign are not necessarily centered within the image. This is only valid for images that were close to the image border in the before-cropped image.* +* Some of the traffic sign are not necessarily centered within the image. This is only valid for images that were close to the image border in the before-cropped image. The 43 different classes are : -* 0,Speed limit (20km/h) -* 1,Speed limit (30km/h) -* 2,Speed limit (50km/h) -* 3,Speed limit (60km/h) -* 4,Speed limit (70km/h) -* 5,Speed limit (80km/h) -* 6,End of speed limit (80km/h) -* 7,Speed limit (100km/h) -* 8,Speed limit (120km/h) -* 9,No passing -* 10,No passing for vehicles over 3.5 metric tons -* 11,Right-of-way at the next intersection -* 12,Priority road -* 13,Yield -* 14,Stop -* 15,No vehicles -* 16,Vehicles over 3.5 metric tons prohibited -* 17,No entry -* 18,General caution -* 19,Dangerous curve to the left -* 20,Dangerous curve to the right -* 21,Double curve -* 22,Bumpy road -* 23,Slippery road -* 24,Road narrows on the right -* 25,Road work -* 26,Traffic signals -* 27,Pedestrians -* 28,Children crossing -* 29,Bicycles crossing -* 30,Beware of ice/snow -* 31,Wild animals crossing -* 32,End of all speed and passing limits -* 33,Turn right ahead -* 34,Turn left ahead -* 35,Ahead only -* 36,Go straight or right -* 37,Go straight or left -* 38,Keep right -* 39,Keep left -* 40,Roundabout mandatory -* 41,End of no passing -* 42,End of no passing by vehicles over 3.5 metric tons +* 0, Speed limit (20km/h) +* 1, Speed limit (30km/h) +* 2, Speed limit (50km/h) +* 3, Speed limit (60km/h) +* 4, Speed limit (70km/h) +* 5, Speed limit (80km/h) +* 6, End of speed limit (80km/h) +* 7, Speed limit (100km/h) +* 8, Speed limit (120km/h) +* 9, No passing +* 10, No passing for vehicles over 3.5 metric tons +* 11, Right-of-way at the next intersection +* 12, Priority road +* 13, Yield +* 14, Stop +* 15, No vehicles +* 16, Vehicles over 3.5 metric tons prohibited +* 17, No entry +* 18, General caution +* 19, Dangerous curve to the left +* 20, Dangerous curve to the right +* 21, Double curve +* 22, Bumpy road +* 23, Slippery road +* 24, Road narrows on the right +* 25, Road work +* 26, Traffic signals +* 27, Pedestrians +* 28, Children crossing +* 29, Bicycles crossing +* 30, Beware of ice/snow +* 31, Wild animals crossing +* 32, End of all speed and passing limits +* 33, Turn right ahead +* 34, Turn left ahead +* 35, Ahead only +* 36, Go straight or right +* 37, Go straight or left +* 38, Keep right +* 39, Keep left +* 40, Roundabout mandatory +* 41, End of no passing +* 42, End of no passing by vehicles over 3.5 metric tons