DipG-Seg is a fast and accurate ground segmentation algorithm based on double images including zz-image and dd-image. This method is pixel-wise, which could be regarded as the counterpart of point-wise on the 3D point cloud. Despite this, our method is very efficient, meanwhile, accurate.
If you find our repo helpful for your research, please cite our paper. Thank you!
Author: Hao Wen and Chunhua Liu from EEPT Lab at CityU.
Paper: DipG-Seg: Fast and Accurate Double Image-Based Pixel-Wise Ground Segmentation, Hao Wen, Senyi Liu, Yuxin Liu, and Chunhua Liu, T-ITS, Regular Paper
@ARTICLE{10359455,
author={Wen, Hao and Liu, Senyi and Liu, Yuxin and Liu, Chunhua},
journal={IEEE Transactions on Intelligent Transportation Systems},
title={DipG-Seg: Fast and Accurate Double Image-Based Pixel-Wise Ground Segmentation},
year={2023},
volume={},
number={},
pages={1-12},
keywords={Image segmentation;Fitting;Three-dimensional displays;Point cloud compression;Sensors;Laser radar;Image sensors;Ground segmentation;autonomous driving;mobile robots;LiDAR-based perception},
doi={10.1109/TITS.2023.3339334}}
Explore more demos in Video
Ubuntu18.04 + ROS Melodic
ROS can be installed by following this tutorial.
OpenCV can be installed from this link.
PCL can be installed by runing this in the terminal:sudo apt install libpcl-dev
#install python lib -- numpy, pandas -- for python script of evaluation.
pip2 install numpy pandas
mkdir -p ~/catkin_ws/src/
cd ~/catkin_ws/src/
git clone https://github.com/EEPT-LAB/DipG-Seg.git
cd .. && catkin_make
# remember to source devel/setup.bash before you run the nodes in the dipgseg
Also, you can build with catkin tools:
mkdir -p ~/catkin_ws/src/
cd ~/catkin_ws
catkin init
cd ~/catkin_ws/src/
git clone https://github.com/EEPT-LAB/DipG-Seg.git
cd .. && catkin build dipgseg
# remember to source devel/setup.bash before you run the nodes in the dipgseg
- If you want to validate DipG-Seg on SemanticKITTI. Please download it and place it on your
~/your_dataset_path/
.- If you want to validate DipG-Seg on nuScenes. Please download it and place it on your
~/your_dataset_path/
. NOTE THAT we do not provide the complete program for the evaluation on nuScenes, BUT we provide the projection parameter for nuScenes LIDAR. Remember to modify the projection_parameter when you validate on nuScenes.- You can also validate on your own mobile platform, and please ensure your LiDAR can publish
sensor_msgs::PointCloud2
to the topic/pointcloud
. Otherwise, you can remap the topic/pointcloud
toyour_point_cloud_topic_name
in the launch file. Last but not least, you should modify the projection_parameter for your LiDAR. Some tool scripts are provided in the scripts folder.
Modify the parameters dataset_path and the seq_num in the launch file as:
<rosparam param="dataset_path">"/path_to_your_downloaded_dataset/sequences/"</rosparam>
<node pkg="dipgseg" type="offline_kitti_node" name="dipgseg_node" output="screen" args="seq_num">
Then, run the following command in the terminal:
roslaunch dipgseg visualization_offline_kitti.launch
<rosparam param="dataset_path">"/path_to_your_downloaded_dataset/sequences/"</rosparam>
cd ~/catkin_ws/src/DipG-Seg/scripts/
python2 eval_on_kitti.py
When the evaluation is finished, you can find the evaluation results in the result folder.
NOTE: If you want to generate the projection parameters of LIDARs except for the above two datasets, instructions are explained in detail in our paper.
Remap the topic /pointcloud
to your_point_cloud_topic_name
in the launch file if necessary.
<remap from="/pointcloud" to="your_point_cloud_topic_name" />
Start your LiDAR sensor node at first, then run the following command in the terminal:
roslaunch dipgseg demo.launch
Finished
-[x] eval_on_kitti.py: Evaluation on the SemanticKITTI dataset.
-[x] kitti_ros_publisher.py: Publish the SemanticKITTI dataset as ros bag file.
To be finished
-[ ] projection_param_generator.py: Generate the projection parameters of LIDARs that have even vertical angle resolution.
Maintainer: Hao Wen
Email: hao.wen@my.cityu.edu.hk
To achieve a nice code style and good performance, the following works give us a lot of help and inspiration. Thanks to the authors for their great works!
depth_clustering: File loader and image-based segmentation.
Patchwork and Patchwork++ and Ground-Segmentation-Benchmark: Ground segmentation evaluation.