/SelfDrivingCar

Computer vision and machine learning projects for self-driving car technologies

Primary LanguageFortran

Self-Driving Car Projects

1. Finding lanes in a video stream using OpenCV

  • Use openCV, Canny edge detector, Hough transform and region of interest masks to build a simple lane detection pipeline

2. Identifying traffic signs using Tensorflow

  • Use Tensor-flow and Convolutional neural-networks (CNNs) to classify different types of traffic signs.

3. Behavioral Cloning using Keras

  • Use a car simulator to collect data of good driving behavior
  • Build, a convolution neural network in Keras that predicts steering angles from images
  • Train and validate the model with a training and validation set
  • Test that the model successfully drives around track one without leaving the road

4. Advanced lane detection pipeline

  • Compute the camera calibration matrix and distortion coefficients given a set of chessboard images.
  • Apply a distortion correction to raw images.
  • Use color transforms, gradients, etc., to create a thresholded binary image.
  • Apply a perspective transform to rectify binary image ("birds-eye view").
  • Detect lane pixels and fit to find the lane boundary.
  • Determine the curvature of the lane and vehicle position with respect to center.
  • Warp the detected lane boundaries back onto the original image.
  • Output visual display of the lane boundaries and numerical estimation of lane curvature and vehicle position.

5. Vehicle Detection pipeline

  • Perform a Histogram of Oriented Gradients (HOG) feature extraction on a labeled training set of images and train a classifier Linear SVM classifier
  • Also apply a color transform and append binned color features, as well as histograms of color, to your HOG feature vector.
  • Note: for those first two steps don't forget to normalize your features and randomize a selection for training and testing.
  • Implement a sliding-window technique and use your trained classifier to search for vehicles in images.
  • Run the pipeline on a video stream and create a heat map of recurring detections frame by frame to reject outliers and follow detected vehicles.
  • Estimate a bounding box for vehicles detected.

6. Extended Kalman filter

  • Use an extended Kalman filter to predict the path of a moving object based on LIDAR and RADAR data

7. Unscented Kalman filter

  • Use an unscented Kalman filter to predict the path of a moving object nbased on LIDAR and RADAR data

8. Particle Filters

  • Use Particle filters to localize an object moving within a known map

9. PID controller

  • Use a PID controller to control the steering of a vehicle within the lane

10. Model predictive control

  • Use a Kinematic model to more accurately control the steering of the vehicle even at high speeds