This module covered 3 topics: Environment perception, Stereo depth and Visual odometry.
! Accesses each folder here to find relevant Jupyter Notebook with detailed explanations and visualizations.
-> Certificate
The main goal of this submodule is the extraction of useful information to allow self-driving cars to safely and reliably traverse their environment.
Python 3.7, Numpy, OpenCV, Metplotlib, Jupyter Notebook, matrices.
Given a colormap, a segmentation map, a category table do the following:
- Estimate (x, y, z) coordinates of every pixel using formulas and a camera calibration matrix.
- Estimate the ground plane (estimate the parameters) using RANSAC for outlier rejection.
- Estimate lane boundary proposals with OpenCV and Canny edge detection together with Hough transform.
- Merge and filter lane lines to leave just horizontal lines bounded to the road lanes.
- Compute minimum distance to impact (how far or close an obstacle is).
- Filter out bad detections and estimate the distance
Source file: Jupyter Notebook
The main goal of this submodule is the estimation of distance to an obstacle on a stereo input (left and right images).
Python 3.7, Numpy, OpenCV, Metplotlib, Jupyter Notebook, matrices.
- Compute the disparity by using OpenCV's StereoSGBM
- Decompose projection matrices to get translation and rotation parameter as well as the camera calibration matrix.
- Get the depth map from the above parameters using formulas.
- Find the distance to the collision with OpenCV's minMaxLoc and draw a bounding box.
Source file: Jupyter Notebook
The main goal of this submodule is the estimation of trajectory based on an input from a monocular camera.
Python 3.7, Numpy, OpenCV, Metplotlib, Jupyter Notebook, matrices.
- Extract features from an image that will be tracked for trajectory estimation. I used OpenCVs SURF, but FAST, SIFT, ORB can also be used.
- Repeat the extraction for all the images in a dataset.
- Match the features for subsequent images to define the change for each move by using OpenCV's Flann Based Matcher and KNN Match.
- Draw the matches for the dataset.
- Estimate the motion by using Essential Matrix Decomposition.
- Visualize.
Source file: Jupyter Notebook.