-
The aim of this project is to focus on the first fundamental features of the decision making ability of an autonomous vehicle, i.e., to develop a deep learning model that reads traffic signs and classifies them correctly using Convolutional Neural Networks(CNNs).
-
The traffic sign classifier uses a German traffic dataset. The German traffic dataset consists of 34,799 32*32 pixels colored images that is used for the training dataset, 12,630 images are used for the testing dataset and 4410 images are used in the validation dataset where each images is a photo of a traffic sign belonging to one of the 43 classes i.e., traffic sign types.
Train Data: https://drive.google.com/open?id=1ZrJJvIbZ5vUHjyzUGNXGl4sRS7zlU5Db
Validation Data: https://drive.google.com/open?id=1bLWaYJZHroOyfPVscVdBjh9atjvHDdFj
Test Data: https://drive.google.com/open?id=127Usik6jjD_oBhr5hDojgLARW9XYxWdr
- Load the Pickled dataset
- Use Seaborn to visualise the data.
- Preprocess the images using OpenCV.
- Use ImageDataGenerator for image augmentation and help the model generalise it's results.
- build_model() function takes hyperparameter(hp) as input and we start building our CNN model using KerasTuner and then compile our model.
- KerasTuner gives us the best hyperparameter combinations using RandomSearch method.
- We now create a model checkpoint and then fit the model and run it for 40 epochs.
- Now Load the model's weights and biases and evaluate it on our test dataset.
- Save our model in Keras HDF5 format.
- Use the saved model to test on random images.
- This contains images from the internet. A total of 43 images belonging to each class.
- Our model will be tested using this unseen data
- Contains the App's final output
- Contains the signnames.csv file
- Conatins a exccel sheet having the results of our test results on random images from the internet
- Also contains the accuracy of our model on unseen data
- Accuracy on unseen data : 79.06%
Contains the saved keras model named
- get_model(): Loads the saved model into cache using streamlit's "@st.cache" feature.
- predict(): Takes an image as input from the function parameter, preprocesses it and feeds it to the model for results.
- Contains the front-end code for the streamlit app.
- Imports the predict() function fetches the result and displays it.
A Procfile is a file which describes how to run your application.
This has all the dependencies required to deploy our application on Heroku
- Python 3.6+
- NumPy
- Pillow
- TensorFlow 2.x
- Streamlit
- Install all the dependencies
- Clone this repository
- You need the Streamlit App folder to run this application.
- In your Command line/Terminal go to the directory where you have upload.py file then type