• Stars
    star
    2,566
  • Rank 17,868 (Top 0.4 %)
  • Language
    C++
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Udacity Self-Driving Car Engineer Nanodegree projects.

self-driving-car

In this repository I will share the source code of all the projects of Udacity Self-Driving Car Engineer Nanodegree.

Hope this might be useful to someone! :-)

Overview

Projects

Overview
P1: Basic Lane Finding
(code)

Overview
P2: Traffic Signs
(code)

Overview
P3: Behavioral Cloning
(code)

Overview
P4: Adv. Lane Finding
(code)

Overview
P5: Vehicle Detection
(code)

Overview
P6: Ext. Kalman Filter
(code)

Overview
P7: Unsc. Kalman Filter
(code)

Overview
P8: Kidnapped Vehicle
(code)

Overview
P9: PID Controller
(code)

Overview
P10: MPC Controller
(code)

Overview
P11: Path Planning
(code)

Overview
P12: Road Segmentation
(code)

Capstone


Table of Contents

P1 - Detecting Lane Lines (basic)

  • Summary: Detected highway lane lines on a video stream. Used OpencV image analysis techniques to identify lines, including Hough Transforms and Canny edge detection.
  • Keywords: Computer Vision

P2 - Traffic Sign Classification

  • Summary: Built and trained a deep neural network to classify traffic signs, using TensorFlow. Experimented with different network architectures. Performed image pre-processing and validation to guard against overfitting.
  • Keywords: Deep Learning, TensorFlow, Computer Vision

P3 - Behavioral Cloning

  • Summary: Built and trained a convolutional neural network for end-to-end driving in a simulator, using TensorFlow and Keras. Used optimization techniques such as regularization and dropout to generalize the network for driving on multiple tracks.
  • Keywords: Deep Learning, Keras, Convolutional Neural Networks

P4 - Advanced Lane Finding

  • Summary: Built an advanced lane-finding algorithm using distortion correction, image rectification, color transforms, and gradient thresholding. Identified lane curvature and vehicle displacement. Overcame environmental challenges such as shadows and pavement changes.
  • Keywords: Computer Vision, OpenCV

P5 - Vehicle Detection and Tracking

  • Summary: Created a vehicle detection and tracking pipeline with OpenCV, histogram of oriented gradients (HOG), and support vector machines (SVM). Implemented the same pipeline using a deep network to perform detection. Optimized and evaluated the model on video data from a automotive camera taken during highway driving.
  • Keywords: Computer Vision, Deep Learning, OpenCV

P6 - Extended Kalman Filter

  • Summary: Implement the extended Kalman filter in C++. Simulated lidar and radar measurements are used to detect a bicycle that travels around your vehicle. Kalman filter, lidar measurements and radar measurements are used to track the bicycle's position and velocity.
  • Keywords: C++, Kalman Filter

P7 - Unscented Kalman Filter

  • Summary: Utilize an Unscented Kalman Filter to estimate the state of a moving object of interest with noisy lidar and radar measurements. Kalman filter, lidar measurements and radar measurements are used to track the bicycle's position and velocity.
  • Keywords: C++, Kalman Filter

P8 - Kidnapped Vehicle

  • Summary: Your robot has been kidnapped and transported to a new location! Luckily it has a map of this location, a (noisy) GPS estimate of its initial location, and lots of (noisy) sensor and control data. In this project you will implement a 2 dimensional particle filter in C++. Your particle filter will be given a map and some initial localization information (analogous to what a GPS would provide). At each time step your filter will also get observation and control data.
  • Keywords: C++, Particle Filter

P9 - PID Control

  • Summary: Implement a PID controller for keeping the car on track by appropriately adjusting the steering angle.
  • Keywords: C++, PID Controller

P10 - MPC Control

  • Summary: Implement an MPC controller for keeping the car on track by appropriately adjusting the steering angle. Differently from previously implemented PID controller, MPC controller has the ability to anticipate future events and can take control actions accordingly. Indeed, future time steps are taking into account while optimizing current time slot.
  • Keywords: C++, MPC Controller

P11 - Path Planning

  • Summary: The goal in this project is to build a path planner that is able to create smooth, safe trajectories for the car to follow. The highway track has other vehicles, all going different speeds, but approximately obeying the 50 MPH speed limit. The car transmits its location, along with its sensor fusion data, which estimates the location of all the vehicles on the same side of the road.
  • Keywords: C++, Path Planning

P12 - Road Segmentation

  • Summary: Implement the road segmentation using a fully-convolutional network.
  • Keywords: Python, TensorFlow, Semantic Segmentation

More Repositories

1

ConvLSTM_pytorch

Implementation of Convolutional LSTM in PyTorch.
Python
1,827
star
2

google-drive-downloader

Minimal class to download shared files from Google Drive.
Python
267
star
3

surround_vehicles_awareness

Learn to map surrounding vehicles onto a bird's eye view of the scene.
Python
177
star
4

machine_learning_lectures

Collection of lectures and lab lectures on machine learning and deep learning. Lab practices in Python and TensorFlow.
TeX
143
star
5

dilation-tensorflow

A native Tensorflow implementation of semantic segmentation according to Multi-Scale Context Aggregation by Dilated Convolutions (2016). Optionally uses the pretrained weights by the authors.
Python
136
star
6

dreyeve

[TPAMI 2018] Predicting the Driver’s Focus of Attention: the DR(eye)VE Project. A deep neural network learnt to reproduce the human driver focus of attention (FoA) in a variety of real-world driving scenarios.
C
98
star
7

differentiable-renderer

Rastering algorithm to approximate the rendering of a 3D model silhouette in a fully differentiable way.
Python
79
star
8

small_norb

Python wrapper to small NORB dataset
Python
50
star
9

semiparametric

[TPAMI 2020] Generating Novel Views of Vehicles via Semi-parametric Guidance. A semi-parametric approach for synthesizing novel views of a rigid object from a single monocular image.
Python
49
star
10

planar-distance-estimation

This repository accompanies the laboratory practice on Planar Distance Estimation for the AI4Automotive course at University of Modena and Reggio Emilia.
Python
28
star
11

transforming-autoencoders

Transforming Autoencoder (Hinton et al.) implementation in TensorFlow. A way to get hands dirty with Hinton's capsules.
Python
27
star
12

computer_vision_utils

Everything that I code more than twice during my PhD will end up here.
Python
15
star
13

CIFAR-10

Python plug-and-play wrapper to CIFAR-10 dataset.
Python
8
star
14

eurlex-toolbox

Python toolbox to load, parse and process Official Journals of the European Union (EU).
Python
8
star
15

haralick-labeling-visualized

Visual explanation and python implementation of Haralick algorithm for connected component labeling
Python
6
star
16

lesser-known-python

Collection of lesser-known python features that you will love (and use).
Jupyter Notebook
5
star
17

micromachine

toy example of q-learning algorithm
MATLAB
3
star
18

dotfiles

just my dotfiles
Shell
3
star
19

pong_motion

Pong game based on motion tracking of the two players.
1
star