Skip to content
  • Personal project
  • Runs locally
  • Sep–Dec 2022

Self-Driving Car

Behavioral cloning: a CNN based on NVIDIA's end-to-end architecture learns to steer a car from recorded driving in a simulator.

My role
Solo project.
Key result
98% lane-keeping accuracy and one-hour drives without a fault, in simulated environments.
Technologies
  • Python
  • CNN (NVIDIA end-to-end architecture)
  • Data augmentation

What I owned

  1. Data preparation
  2. Modeling
  3. Evaluation

In [1]:Problem and constraints

Learn steering straight from camera images, without hand-written lane rules.

In [2]:Data and preparation

Camera frames recorded while driving in the simulator, each paired with its steering angle, and augmented to cover more road conditions.

In [3]:Baseline and evaluation design

Driving in simulated environments: how well the car keeps its lane, and how long it drives without a fault.

In [4]:Architecture and modeling decisions

NVIDIA's end-to-end CNN maps one camera frame to a steering angle, a proven design for behavioral cloning.

In [5]:Implementation and integration

A preprocessing and augmentation pipeline, CNN training, and a script that sends the model's steering to the simulator.

Out[5]:Results and evidence

  • 98% lane-keeping accuracy and one-hour drives without a fault, in simulated environments.
  • In simulator testing, 5× testing throughput and 85% less manual intervention.

In [6]:Limitations, failures, and lessons

  • Simulator only, steering only. Real roads would need far more varied data and safety checks.