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.
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.
When doing a reconstruction, the same encoded coefficients can be used for continuous reconstruction for different densities.
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)
sudo apt update
sudo apt install wget git libomp-dev
git clone https://github.com/perception-and-robotics-group/CURL.git
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.
cd matlab
matlab .
Execute KITTI_example.mlx to start a quick tutorial.
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.
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. We have specific parameters for the 1:1 reconstruction task if very high precision is required (Continuous reconstruction results would be terrible).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.
For more information, please read our paper.
@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}
}
This work was supported in part by EU H2020 Programme under DeepField project (grant ID 857339) and SOLITUDE project.