supervised learning for autonomous drivingcs229.stanford.edu/proj2017/final-posters/5147607.pdf ·...
TRANSCRIPT
Supervised Learning for Autonomous DrivingGreg Katz, Abhishek Roushan and Abhijeet Shenoi {gkatz,aroushan,ashenoi}@stanford.edu
Stanford University
Abstract
In this work, we use supervised learning to predict steering and throttle inputs from rawimages generated in a real-time simulation environment. We demonstrate the capabilityof the model by driving autonomously and comparing the behavior to the training data.
Data Collection and Processing
Raw training data
-1 -0.5 0 0.5 1Normalized Steering Input
0
1000
2000
3000
4000
# of
occ
uren
ces
Augmented training data
-1 -0.5 0 0.5 1Normalized Steering Input
0
2000
4000
6000
8000
10000
12000
# of
occ
uren
ces
Figure: Comparison of Raw and Augmented Steering Angles
Figure: Typical simulator images and inputs to the network
The images from the simulator were cropped, and converted to grayscale before beingused for training. The dataset was augmented by flipping the images horizontally andreversing the steering angles. Moreover, the simulator provides additional left and rightcamera views, which we used with a tunable steering correction factor. Finally, weexperimented with and without an exponential smoothing of the steering joystick input.
Model Selection
We selected from five different model types by training each on a single data set andjudging the following:•Error vs epoch (to check optimization convergence)•Learning curve (bias vs variance indicator)•Training and Validation error•Cross track error (Figure of merit: model driving well on track)
(a) Training and Validation Error (b) Cross track errorsFigure: Training and Validation Error & Cross track errors for all models
(a) NVIDIA (b) LSTMFigure: Network Structures
Model Training
(a) NVIDIA model (b) LSTM modelFigure: Training and Validation Errors
Once we selected NVIDIA and LSTM we tuned the training to minimize validation error.Over-fitting was combated by using dropout with a probability of 0.2 or by early stopping.Training was done with mini-batch stochastic gradient descent on a mean squared errorloss, using the Adam optimization method.
Results
0 200 400 600 800 1000 1200 1400 1600 1800 2000training example
-0.6
-0.4
-0.2
0
0.2
0.4
stee
ring
NVIDIA 10 mph, RMSE = 0.059
LabelModel Prediction
0 200 400 600 800 1000 1200 1400 1600 1800 2000training example
-0.6
-0.4
-0.2
0
0.2
0.4
stee
ring
NVIDIA 30 mph smoothed, RMSE = 0.073
LabelModel Prediction
0 0.2 0.4 0.6 0.8 1percentile
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
stee
ring
NVIDIA 10mph
LabelModel Prediction
0 0.2 0.4 0.6 0.8 1percentile
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
stee
ring
NVIDIA 30 mph smoothed
LabelModel Prediction
Figure: Steering angle Predictions on center camera test data
Model ForwardTrack
ReverseTrack
NVIDIA 20 15LSTM 22 25
Table: Max stable speed (mph)
0 200 400 600 800 1000 1200Down Range
-0.5
0
0.5
stee
ring
NVIDIA driving autonomously at 20 mph
TrainingAutonomous
0 200 400 600 800 1000 1200Down Range
0
1
2
3
Cro
ss R
ange
NVIDIA driving autonomously at 20 mph
TrainingAutonomous
0 200 400 600 800 1000 1200Down Range
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
stee
ring
LSTM Autonomous
TrainingAutonomous
0 200 400 600 800 1000 1200Down Range
0
10
20
30
40
50
spee
d
LSTM Autonomous
TrainingAutonomous
Figure: Autonomous Driving
Observations and Inferences
•Both models were able to complete the training and test (reverse) tracks•Although autonomous driving was a success, the steering behavior was quite noisyperhaps because of the use of left and right camera images
•Difficult to determine exact relationship between validation error and on-trackperformance
Future Work
•Creating custom tracks/scenarios which thoroughly test driving capability andanalyze failures effectively
•Preprocessing images to remove unnecessary background textures should allow us togeneralize better
•Learning to drive is inherently suited to an RL framework, which gives us a newapproach to this problem
References
[1] Bojarski et al.End to end learning for self-driving cars.arXiv preprint arXiv:1604.07316, 2016.
[2] Udacity-an open source self-driving car.https://github.com/udacity/self-driving-car-sim, 2017.
[3] François Chollet et al.Keras.https://github.com/fchollet/keras, 2015.