https://github.com/aakaash06/exploring-svm---based-traffic-sign-recognition-an-investigation-using-the-gtsrb-dataset
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: aakaash06
- Language: Jupyter Notebook
- Default Branch: main
- Size: 0 Bytes
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Exploring-SVM---Based-Traffic-Sign-Recognition-An-Investigation-Using-the-GTSRB-Dataset
This project explores traffic sign recognition using Support Vector Machines (SVM) and Convolutional Neural Networks (CNN), applying the German Traffic Sign Recognition Benchmark (GTSRB) dataset and testing on the German Traffic Sign Detection Benchmark (GTSDB) dataset to demonstrate real-world applicability.
Project Structure
- Project.ipynb: Main notebook for SVM-based traffic sign recognition using the GTSRB dataset.
- project vid.ipynb: Notebook for testing the trained SVM model on the GTSDB dataset, to assess its performance in real-world scenarios.
- DL part project.ipynb: Implementation of a CNN model for comparison with SVM.
- pythonproject/: Contains the website implementation; run
server.pyto start the server. - saved_model.pkl and feature_selector.pkl: Pre-trained SVM model and feature selector, saved for quick deployment in the website.
Steps Followed in the Project
Dataset Exploration:
- Analyzed GTSRB dataset structure and class distribution.
Data Preprocessing:
- Resizing, normalization, and noise reduction (excluded after results analysis).
Data Splitting:
- Employed stratified splitting for robust training and testing.
Feature Extraction:
- Used Histogram of Oriented Gradients (HOG) and wavelet transforms.
Feature Selection:
- Selected top 500 features (using Chi-squared method), which provided the best results.
Model Training and Hyperparameter Tuning:
- Tuned hyperparameters (C, Kernel, Gamma, and Degree).
- Optimal SVM model: C=1, Kernel=Linear, Gamma=Scale, achieving validation accuracy of 97.7% and test accuracy of 88.82%.
- For CNN, optimal configuration: SGD optimizer, Sparse Categorical Cross Entropy as loss function, achieving train accuracy of 97.88% and test accuracy of 85.83%.
Deployment:
- SVM model deployed on a webpage using JavaScript and HTML. For implementation, the saved model and feature selector files (
saved_model.pklandfeature_selector.pkl) can be loaded directly.
- SVM model deployed on a webpage using JavaScript and HTML. For implementation, the saved model and feature selector files (
Testing on GTSDB:
- Tested model on GTSDB to verify if it can recognize traffic signs in entire scenes, validating its real-world use.
Key Findings
SVM provided better test accuracy in this case, suggesting it can be more effective and cost-efficient for deployment compared to a deep learning model in similar scenarios.
Running the Project
- Data: Download the GTSRB dataset here and GTSDB dataset here.
- Server: To run the web interface, navigate to the
pythonproject/folder and runserver.py.
Acknowledgments
NOTE: The pkl file of the model is too big to upload, you can download it by running the project.ipynb
Owner
- Login: aakaash06
- Kind: user
- Repositories: 1
- Profile: https://github.com/aakaash06
GitHub Events
Total
- Push event: 5
- Create event: 2
Last Year
- Push event: 5
- Create event: 2