All Projects → galenballew → Traffic-Sign-CNN

galenballew / Traffic-Sign-CNN

Licence: other
Deep learning network for traffic sign image classification

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to Traffic-Sign-CNN

self-driving-car
Udacity自动驾驶课程第一期
Stars: ✭ 57 (+280%)
Mutual labels:  self-driving-car
Autonomous-Parking-System
Automatic Parking is an autonomous car maneuvering system (part of ADAS) that moves a vehicle from a traffic lane into a parking spot to perform parallel parking. The automatic parking system aims to enhance the comfort and safety of driving in constrained environments where much attention and experience is required to steer the car. The parking…
Stars: ✭ 39 (+160%)
Mutual labels:  self-driving-car
Algorithms-for-Automated-Driving
Each chapter of this (mini-)book guides you in programming one important software component for automated driving.
Stars: ✭ 153 (+920%)
Mutual labels:  self-driving-car
Awesome-Self-Driving
an awesome list of self-driving algorithms, software, tools
Stars: ✭ 74 (+393.33%)
Mutual labels:  self-driving-car
RCNN-Vehicle-Tracking-Lane-Detection
Vehicle Detection using Mask R-CNN and Computer Vision based Lane Detection
Stars: ✭ 116 (+673.33%)
Mutual labels:  self-driving-car
end2end-self-driving-car
End-to-end Self-driving Car (Behavioral Cloning)
Stars: ✭ 19 (+26.67%)
Mutual labels:  self-driving-car
Awesome Carla
👉 CARLA resources such as tutorial, blog, code and etc https://github.com/carla-simulator/carla
Stars: ✭ 246 (+1540%)
Mutual labels:  self-driving-car
LiDAR-GTA-V
A plugin for Grand Theft Auto V that generates a labeled LiDAR point cloud from the game environment.
Stars: ✭ 127 (+746.67%)
Mutual labels:  self-driving-car
vehicle-detection
Detect vehicles in a video
Stars: ✭ 88 (+486.67%)
Mutual labels:  self-driving-car
Advanced-Lane-Lines
Udacity Self-Driving Car Engineer Nanodegree. Project: Advanced Lane Finding
Stars: ✭ 52 (+246.67%)
Mutual labels:  self-driving-car
tf-semantic-segmentation-FCN-VGG16
Semantic segmentation for classifying road. "Fully Convolutional Networks for Semantic Segmentation (2015)" implemented using TF
Stars: ✭ 30 (+100%)
Mutual labels:  self-driving-car
noahcar
Autonomous Remote Controlled (toy) car using deep learning. Raspberry Pi, PiCar, Python
Stars: ✭ 28 (+86.67%)
Mutual labels:  self-driving-car
SelfDrivingCarsControlDesign
Self Driving Cars Longitudinal and Lateral Control Design
Stars: ✭ 96 (+540%)
Mutual labels:  self-driving-car
socialways
Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs (CVPR 2019)
Stars: ✭ 113 (+653.33%)
Mutual labels:  self-driving-car
Model-Predictive-Control
C++ implementation of Model Predictive Control(MPC)
Stars: ✭ 51 (+240%)
Mutual labels:  self-driving-car
Drl based selfdrivingcarcontrol
Deep Reinforcement Learning (DQN) based Self Driving Car Control with Vehicle Simulator
Stars: ✭ 249 (+1560%)
Mutual labels:  self-driving-car
.oh-my-comma
The idea of a 'workbench for developers' - Shell utilities, tooling, and dotfiles for comma.ai's open-source self-driving car technology stack
Stars: ✭ 110 (+633.33%)
Mutual labels:  self-driving-car
DonkeyDrift
Open-source self-driving car based on DonkeyCar and programmable chassis
Stars: ✭ 15 (+0%)
Mutual labels:  self-driving-car
dig-into-apollo
Apollo notes (Apollo学习笔记) - Apollo learning notes for beginners.
Stars: ✭ 1,786 (+11806.67%)
Mutual labels:  self-driving-car
GTAV-Self-driving-car
Self driving car in GTAV with Deep Learning
Stars: ✭ 15 (+0%)
Mutual labels:  self-driving-car

Convolutional Neural Networks for Traffic Sign Classification

Galen Ballew, 2017


This repository contains the code and data necessary to train a CNN to classify 43 different categories of traffic signs. I wrote an article about the process on Medium.


The Data

The training data for this project comes from the German Traffic Sign Dataset. The notebook will automatically fetch this data and it is not directly included in the repository.

Sample signs

Fig1. - Example traffic signs.

The images are 32x32 and depict one of 43 different classes of signs. The images come split into 34,799 training images and 12,630 test images. There is some class imbalance. The training/validation split is stratified to help with this.

Distribution of signs

Fig2. - Distribution of sign classes.

Preprocessing

This network is aimed at simplicity. As such, the only preprocessing involved is the normalization of pixel values to a range [0,1].


Architecture

The architecture used in this CNN is extremely similar to Yann LeCunn's original LeNet architecture. A difference between the original LeNet architecture from 1989 and the one provided is that a max pooling function has been applied rather than Yann LeCun's original subsampling function.

In addition, two additional functions/parameters to the network to help combat overfitting. The first is a dropout layer (thanks Professor Hinton!). Dropout applies a Bernoulli distribution to activations (i.e. the values being passed) during the feed-forward phase - essentially zeroing values randomly by p, where p is the probability the activation will be passed forward successfully. By applying dropout, the network is forced to confirm the values it produces again and again, so that anything that persists is a very generalized signal and not "training-sample-specific" noise.

During training, p was set to 0.5. There is an ample amount of training data to make up for the low probability of successfully passing the activation.

Lastly, I applied L2 regularization to my Cross Entropy error when updating my weights. L2 regularization is used to penalize large errors. By doing this, we prevent our weights from changing too much, too quickly and overfitting our training sample. I used a L2 "strength" of 1E−6.


Parameters

Epochs: 150
Batch size: 128
Learning rate: 0.001
Truncated normal mean: 0.0
Truncated normal standard deviation: 0.1
Dropout keep rate: 0.5
L2 regularization strength: 1E-6
Loss optimization algorithm: Adam


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].