/CURL

CURL: Continuous, Ultra-compact Representation for LiDAR

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

CURL: Continuous, Ultra-compact Representation for LiDAR

This is a repository of CURL which can continuously improve the density of the LiDAR point cloud and reduce the storage size at the same time.

System Architecture

Architecture

We designed a framework that can compress and increase the LiDAR point cloud at the same time. It mainly contains three parts, meshing, upsampling, and encoding.

Example

When doing a reconstruction, the same encoded coefficients can be used for continuous reconstruction for different densities.

Complie and Run an Example

Dependencies

C++17

Matlab

  • Computer Vision Toolbox
  • Statistics and Machine Learning Toolbox

libigl, and Eigen>=3.4.0 (These libraries will be automatically downloaded and compiled in later procedures)

Install tools

sudo apt update
sudo apt install wget git libomp-dev
git clone https://github.com/perception-and-robotics-group/CURL.git

Compile mex files (Ubuntu)

cd CURL
chmod +x mex_compilation.sh
sudo ./mex_compilation.sh

If compilation failed with the error ‘Eigen::all’ is predetermined ‘shared’ for ‘shared’, then delete Eigen::all from CURL_Extraction_mex.h line 361 and 648, and CURL_Reconstruction_mex.h line 71. This error is related to the version of gcc.

Run an example

cd matlab
matlab .

Execute KITTI_example.mlx to start a quick tutorial.

Datasets

The official KITTI dataset is in binary, but we provide the pcd format to download which can use directly.

This dataset provides 64-channel LiDAR point clouds using an Ouster OS-1 (Gen 1) 64, and a ground truth point cloud got from Leica BLK360 which can be used for continuous reconstruction evaluation. And we used ICP to correct further the transformation between Ouster-Scans and the ground truth point cloud.

Because this dataset only has dense point clouds collected using FARO Focus 3D X330 HDR scanner, therefore, we sampled 64-channel points from the dense point cloud using the parameter of Ouster OS-1 (Gen 1) 64 as the input to test CURL.

Please save these files under folder example_data.

Example Results

1. KITTI

FirstFigure

Left to Right: original point cloud (red), point clouds reconstructed using the same CURL with 2 times (blue) and 7 times (green) density increases. The CURL of this point cloud is only 16% of the original point cloud size.

2. Newer College

1:1 Reconstruction

1:1 Newer College

We have specific parameters for the 1:1 reconstruction task if very high precision is required (Continuous reconstruction results would be terrible).

CURL Map

NewerCollege Map

Using the CURL method by increasing the density of the point cloud and merging them together can produce denser points while less storage space for the map.

3. Indoor

Indoor Map

Paper

For more information, please read our paper.

Citation

@INPROCEEDINGS{Zhang-RSS-22, 
    AUTHOR    = {Kaicheng Zhang AND Ziyang Hong AND Shida Xu AND Sen Wang}, 
    TITLE     = {{CURL: Continuous, Ultra-compact Representation for LiDAR}}, 
    BOOKTITLE = {Proceedings of Robotics: Science and Systems}, 
    YEAR      = {2022}, 
    ADDRESS   = {New York City, NY, USA}, 
    MONTH     = {June}, 
    DOI       = {10.15607/RSS.2022.XVIII.005} 
}

Acknowledgments

This work was supported in part by EU H2020 Programme under DeepField project (grant ID 857339) and SOLITUDE project.