• Stars
    star
    167
  • Rank 226,635 (Top 5 %)
  • Language
    MATLAB
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated over 6 years ago

Reviews

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

Repository Details

Create Dense Depth Map Image for Known Poisitioned Camera from Lidar Point Cloud

Full Dense Depth Map Image for Known Positioned Camera from Lidar Point Cloud

Lidar sensors can supply us great information about circumferences and that information are very crucial for much automatic robotic application such as a self-driving car. Although Lidar sensor gives us 360 degrees of viewpoint cloud and it is quite dense, if we want to match any camera images within those point cloud, the depth map for certain camera become pretty sparse and it is far behind to use that matched depth information for any purpose.

In this project, we are focusing on reading point cloud, camera image and calibration parameters from sample Kitti dataset [1] and create dense depth image for certain camera whose translation and rotations are known. Here is a view of the point cloud.

Sample image

In the dataset, there are camera2 and camera3's RGB images and their projection's in the calibration file. We read that calibration and create 3x4 dimensioned projection matrix P which transform [X;Y;Z;1] vector into pixel location into camera2 frame. Here is the camera image in the following image.

Sample image

To do that projection, we use standard projection process which P,X,Y,Z are known but λ, x, y parameters are to be estimated.

λ.[x;y;1]=P.[X;Y;Z;1]

we can solve above equation and find each point's projection on to the image plane shown by (x,y). So we can set λ into (x,y)'s depth information. Basically, we can create a map whose element is Map(x,y)=λ.

But this Map become too sparse. According to our test, we can see only 6% of the Map's indexes have value. To get rid of that problem, we calculated not just depth info of (x,y) location but also ngird number of left and right bottom and up locations depth information too. For instance, if ngrid=4, it means we used 9x9 neighborhood and we calculated weighted depth information according to the distance of the neighborhood. Basically, we used the distance of the neighborhood as a weight of sum process. Here is the result of the initial depth map without any process, and depth map with 1,2,3,4 and 5 grid size.

Sample image

As you can see, the quality of depth map increases by grid size. But note that the larger grid size, the more computational time. In our tests, it needs almost 1 second for ngrid=4 with single CPU implementation. We tried to write Matlab code efficient to avoid using loops.

To evaluate depth and image matching by sight, you can see both the inverse of the depth map and camera image together in the following image.

Sample image

You can find c++ implementation of another method in reference[2].

You can basically launch the main script by following Matlab command.

> main

Reference

[1] Geiger, Andreas, et al. "Vision meets robotics: The KITTI dataset." The International Journal of Robotics Research 32.11 (2013): 1231-1237.

[2] Premebida, Cristiano, et al. "High-resolution LIDAR-based depth mapping using bilateral filter." arXiv preprint arXiv:1606.05614 (2016).

More Repositories

1

Multi-Robot-Path-Planning-on-Graphs

Multi-Robot Path Planning on Graphs Solution by A* algorithm
MATLAB
94
star
2

DRLSE-Image-Segmentation

Distance Regularized Level Set Evolution and Its Application to Image Segmentation
MATLAB
85
star
3

Comparison-of-Disparity-Estimation-Algorithms

Implementation of simple block matching, block matching with dynamic programming and Stereo Matching using Belief Propagation algorithm for stereo disparity estimation
MATLAB
56
star
4

Calibration-Under_Different-Resolution

Stereo Camera Calibration Under Different Resolution
MATLAB
54
star
5

Spectral-Designed-Graph-Convolutions

Codes for "Bridging the Gap Between Spectral and Spatial Domains in Graph Neural Networks" paper
Python
48
star
6

gnn-spectral-expressive-power

Code of "Analyzing the Expressive Power of Graph Neural Networks in a Spectral Perspective" paper published in ICLR2021
Python
45
star
7

RobotPathPlanning

Sampling-based Mobile Robot Path Planning Algorithm by Dijkstra, Astar and Dynamic Programming on Undirected Graph
MATLAB
44
star
8

gnn-matlang

Code of "Breaking the Limits of Message Passing Graph Neural Networks" paper published in ICML2021
Python
39
star
9

3D-CNN-Emotion-Recognition

Volumetric CNN for Emotion Recognition for iPhone face dataset
Python
29
star
10

VideoPlayer-PyQT

Video Player with observed signals during tests
Python
29
star
11

Graph_Signal_Processing

Signal Processing on non-euclidien domain signals
MATLAB
28
star
12

Audio-Captcha-Recognition

Recognition of Audio Captcha using SVM
Python
26
star
13

Color-Image-Segmentation-Using-Region-Growing-and-Region-Merging

Unsupervised color image segmentation using Region Growing and Region Merging
MATLAB
26
star
14

Stereo-Camera-Calibration-Orthogonal-Planes

Mono and Stereo Camera Calibration with 3 Orthogonal checkerboards
MATLAB
25
star
15

Anfis-from-scratch

Adaptive neuro fuzzy inference system from scratch. All codes inside, no dependency
MATLAB
25
star
16

TimeTabling-GeneticAlgorithm

A genetic Algorithm Solution for Weekly Course Timetabling Problem
MATLAB
19
star
17

3dFDCT

Fast Algorithm for the 3-D DCT and its video compression application
MATLAB
17
star
18

Deep-Scene-Classification

Comparison of Scene Classification accuracy between Histogram, SIFT and Deep Learning based features
C
9
star
19

Rolling-Shutter-Effect-Simulation

Rolling-Shutter Effect Simulation for CMOS camera by Matlab
MATLAB
7
star
20

GCNNCourseCodes

Graph Analysis Course Notes
Python
4
star
21

Orthonormal-Face-Recognition

L2 Orthonormal Face Recognition Performance under L2 Regularization Term
MATLAB
4
star
22

SemiSupervisedMarkovRandomWalk

Semi Supervised Classification with Markov Random Walks
Python
3
star
23

Sabertooth-Motor-Ros

Drive Sabertooth Motor by Arduino using ROS Twist Messages
C++
3
star
24

Predicting-electrophilicity

Code of Predicting experimental electrophilicities from quantum and topological descriptors: A machine learning approach
Java
3
star
25

Seam-Carving

Seam Carving for Content-Aware Image Resizing
MATLAB
2
star
26

Circle-Aerodrome-Detection

Red Aerodrome Detection For Drones
Python
2
star
27

GeomAttacks-NeuralNetwork-KeyExchange

Parallel geometric attacks on neural network key exchange protocol
C
1
star
28

Region-Growing-Perimeter-Smoothing

Recursive Region Growing and Perimeter Smoothing
C++
1
star
29

Spatial_Frequency_DOG

Demonstration of both spatial and frequency domain DoG filters work the same
MATLAB
1
star
30

BitFinexAPI

Pulling historical data from bitfinex by their API v1.1
MATLAB
1
star