supervised learning for autonomous drivingcs229.stanford.edu/proj2017/final-posters/5147607.pdf ·...

1
Supervised Learning for Autonomous Driving Greg 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 raw images generated in a real-time simulation environment. We demonstrate the capability of 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 1 Normalized Steering Input 0 1000 2000 3000 4000 # of occurences Augmented training data -1 -0.5 0 0.5 1 Normalized Steering Input 0 2000 4000 6000 8000 10000 12000 # of occurences 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 being used for training. The dataset was augmented by flipping the images horizontally and reversing the steering angles. Moreover, the simulator provides additional left and right camera views, which we used with a tunable steering correction factor. Finally, we experimented 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 and judging 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 errors Figure: Training and Validation Error & Cross track errors for all models (a) NVIDIA (b) LSTM Figure: Network Structures Model Training (a) NVIDIA model (b) LSTM model Figure: 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 error loss, using the Adam optimization method. Results 0 200 400 600 800 1000 1200 1400 1600 1800 2000 training example -0.6 -0.4 -0.2 0 0.2 0.4 steering NVIDIA 10 mph, RMSE = 0.059 Label Model Prediction 0 200 400 600 800 1000 1200 1400 1600 1800 2000 training example -0.6 -0.4 -0.2 0 0.2 0.4 steering NVIDIA 30 mph smoothed, RMSE = 0.073 Label Model Prediction 0 0.2 0.4 0.6 0.8 1 percentile -0.6 -0.4 -0.2 0 0.2 0.4 0.6 steering NVIDIA 10mph Label Model Prediction 0 0.2 0.4 0.6 0.8 1 percentile -0.6 -0.4 -0.2 0 0.2 0.4 0.6 steering NVIDIA 30 mph smoothed Label Model Prediction Figure: Steering angle Predictions on center camera test data Model Forward Track Reverse Track NVIDIA 20 15 LSTM 22 25 Table: Max stable speed (mph) 0 200 400 600 800 1000 1200 Down Range -0.5 0 0.5 steering NVIDIA driving autonomously at 20 mph Training Autonomous 0 200 400 600 800 1000 1200 Down Range 0 1 2 3 Cross Range NVIDIA driving autonomously at 20 mph Training Autonomous 0 200 400 600 800 1000 1200 Down Range -0.6 -0.4 -0.2 0 0.2 0.4 0.6 steering LSTM Autonomous Training Autonomous 0 200 400 600 800 1000 1200 Down Range 0 10 20 30 40 50 speed LSTM Autonomous Training Autonomous 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 noisy perhaps because of the use of left and right camera images Difficult to determine exact relationship between validation error and on-track performance Future Work Creating custom tracks/scenarios which thoroughly test driving capability and analyze failures effectively Preprocessing images to remove unnecessary background textures should allow us to generalize better Learning to drive is inherently suited to an RL framework, which gives us a new approach 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.

Upload: others

Post on 23-Jan-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Supervised Learning for Autonomous Drivingcs229.stanford.edu/proj2017/final-posters/5147607.pdf · Supervised Learning for Autonomous Driving Greg Katz, Abhishek Roushan and Abhijeet

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.