View on GitHub

TrafficSigns..Classification

In this Project, I have prepared a Deep Convolutional Neural Network Model which can classify the 43 different classes of Traffic Signs Images with above 90% accuracy. You can get insights about the Implementation of Convolutional Neural Network in Image Classification and so on. Thank you !!

Traffic Signs Classification

Objective and Problem Statement

Convolutional Neural Network

Getting the Data

Index Traffic Signs
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 the Vehicles over 3.5 metric tons
11 Right of way at 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 Pedestrains
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 Round about Mandatory
41 End of no Passing
42 End of no Passing by vehicles over 3.5 metric tons.

Snapshot of the Input Images

Image

Convolutional Neural Network

model = tf.keras.models.Sequential([
                                    tf.keras.layers.Conv2D(16, (3, 3), activation="relu", input_shape=(32, 32, 1)),
                                    tf.keras.layers.MaxPooling2D(2, 2),
                                    tf.keras.layers.Conv2D(32, (3, 3), activation="relu"),
                                    tf.keras.layers.MaxPooling2D(2, 2),
                                    tf.keras.layers.Conv2D(64, (3, 3), activation="relu"),
                                    tf.keras.layers.MaxPooling2D(2, 2),
                                    tf.keras.layers.Dropout(0.2),
                                    tf.keras.layers.Flatten(),
                                    tf.keras.layers.Dense(512, activation="relu"),
                                    tf.keras.layers.Dense(120, activation="relu"),
                                    tf.keras.layers.Dense(84, activation="relu"),
                                    tf.keras.layers.Dense(43, activation="softmax")                                   
])

Model Evaluation

Image

Image

Snapshot of the Predicted Image

Image