Skip to content

The LiDAR segmenters library, for segmentation-based detection.

Notifications You must be signed in to change notification settings

AutoLidarPerception/segmenters_lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

32090cb · Nov 12, 2020

History

18 Commits
Nov 12, 2020
Jun 14, 2018
Oct 5, 2019
Jun 19, 2018
Feb 5, 2019
Oct 5, 2019
Oct 5, 2019
Oct 5, 2019
Feb 5, 2019
Feb 5, 2019
Sep 8, 2019
Nov 12, 2020
Jun 14, 2018

Repository files navigation

segmenters_lib

CircleCI

  The LiDAR segmenters library, for segmentation-based detection.

How to use

  1. We name your ros workspace as CATKIN_WS and git clone as a ROS package, with common_lib and object_builders_lib as dependencies.
    $ cd $(CATKIN_WS)
    # we recommand you to organize your workspace as following
    $ mkdir -p src/common
    $ mkdir -p src/perception/libs
    
    # git clone basic libraries, like common_lib
    $ cd $(CATKIN_WS)/src/common
    $ git clone https://github.com/LidarPerception/common_lib.git libs
    
    # git clone perception libraries, segmenters_lib and its dependencies
    $ cd $(CATKIN_WS)/src/perception/libs
    $ git clone https://github.com/LidarPerception/roi_filters_lib.git roi_filters
    $ git clone https://github.com/LidarPerception/object_builders_lib.git object_builders
    $ git clone https://github.com/LidarPerception/segmenters_lib.git segmenters
    
    # build your ros workspace for our segmentation-based detection demo
    # uncomment add_subdirectory() in src/perception/libs/segmenters/CMakeLists.txt, git diff as following:
    -#add_subdirectory(example)
    +add_subdirectory(example)
    $ cd $(CATKIN_WS)
    $ catkin build -DCMAKE_BUILD_TYPE=Release
  2. Run demo under KiTTI raw dataset using kitti_ros's replayer.
    $ cd $(CATKIN_WS)/src
    $ git clone https://github.com/LidarPerception/kitti_ros.git
    # build your ros workspace for our segmentation-based detection demo
    $ cd ..
    $ catkin build -DCMAKE_BUILD_TYPE=Release
    • Terminal 1: KiTTI raw dataset replay, more tutorials.
      $ cd $(CATKIN_WS)
      $ source devel/setup.bash
      # change Mode for Keyboard Listening Device
      $ sudo chmod 777 /dev/input/event3
      # launch kitti_ros's kitti_player for frame-by-frame algorithm testing
      $ roslaunch kitti_ros kitti_player.launch
    • Terminal 2: launch Seg-based Detector demo.
      $ cd $(CATKIN_WS)
      $ source devel/setup.bash
      $ roslaunch segmenters_lib demo.launch
  3. Follow the demo example to use our LiDAR segmenters library.
    • Cascadingly use roi_filter, ground_remover and non_ground_segmenter for Point Cloud perception, like our Seg-based Detector: detection_node.
    • Refer to our CMakeLists.txt for building your own ros package using this library.

  • Demo parameters, defined in detection.yaml
    • Subscribe Point Cloud in topic sub_pc_topic, default is /kitti/points_raw (sensor_msgs/PointCloud2).
    • Publish Ground Point Cloud in topic pub_pc_ground_topic, default is /segmenter/points_ground (sensor_msgs/PointCloud2).
    • Publish Non-Ground Point Cloud in topic pub_pc_nonground_topic, default is /segmenter/points_nonground (sensor_msgs/PointCloud2).
    • Publish Candidate Objects Cloud, different objects with different intensity, in topic pub_pc_clusters_topic, default is /segmenter/points_clustered (sensor_msgs/PointCloud2).
  • Segmenters algorithm parameters, defined in segmenter.yaml.
    • Get these paramters using common::getSegmenterParams(const ros::NodeHandle& nh, const std::string& ns_prefix) in common_lib.
    • Adjust some paramters to your hardware installation.

TODO lists

Ground Segmenters

  • PCL RANSAC, ICCV2011 PCL-Segmentation

    Refer: PCL: Plane model segmentation

  • GPF (Ground Plane Fitting), ICRA 2017
    @inproceedings{zermas2017fast,
      title={Fast segmentation of 3d point clouds: A paradigm on lidar data for autonomous vehicle applications},
      author={Zermas, Dimitris and Izzat, Izzat and Papanikolopoulos, Nikolaos},
      booktitle={Robotics and Automation (ICRA), 2017 IEEE International Conference on},
      pages={5067--5073},
      year={2017},
      organization={IEEE}
    }
  • linefit_ground_segmentation, IV 2010
    @inproceedings{himmelsbach2010fast,
      title={Fast segmentation of 3d point clouds for ground vehicles},
      author={Himmelsbach, Michael and Hundelshausen, Felix V and Wuensche, H-J},
      booktitle={Intelligent Vehicles Symposium (IV), 2010 IEEE},
      pages={560--565},
      year={2010},
      organization={IEEE}
    }
  • depth_clustering, IROS 2016
    @inproceedings{bogoslavskyi2016fast,
      title={Fast range image-based segmentation of sparse 3D laser scans for online operation},
      author={Bogoslavskyi, Igor and Stachniss, Cyrill},
      booktitle={Intelligent Robots and Systems (IROS), 2016 IEEE/RSJ International Conference on},
      pages={163--169},
      year={2016},
      organization={IEEE}
    }
    
  • Scan Line Run, ICRA 2017, like Standford's Junior self-driving car.
    @inproceedings{zermas2017fast,
      title={Fast segmentation of 3d point clouds: A paradigm on lidar data for autonomous vehicle applications},
      author={Zermas, Dimitris and Izzat, Izzat and Papanikolopoulos, Nikolaos},
      booktitle={Robotics and Automation (ICRA), 2017 IEEE International Conference on},
      pages={5067--5073},
      year={2017},
      organization={IEEE}
    }
    @incollection{montemerlo2009junior,
      title={Junior: The stanford entry in the urban challenge},
      author={Montemerlo, Michael and Becker, Jan and Bhat, Suhrid and Dahlkamp, Hendrik and Dolgov, Dmitri and Ettinger, Scott and Haehnel, Dirk and Hilden, Tim and Hoffmann, Gabe and Huhnke, Burkhard and others},
      booktitle={The DARPA Urban Challenge},
      pages={91--123},
      year={2009},
      publisher={Springer}
    }
  • Deep-learning: FCN, IV 2017
    @inproceedings{caltagirone2017fast,
      title={Fast LIDAR-based road detection using fully convolutional neural networks},
      author={Caltagirone, Luca and Scheidegger, Samuel and Svensson, Lennart and Wahde, Mattias},
      booktitle={Intelligent Vehicles Symposium (IV), 2017 IEEE},
      pages={1019--1024},
      year={2017},
      organization={IEEE}
    }

Non-ground Segmenters

  • PCL Euclidean Cluster Extraction, ICCV2011 PCL-Segmentation

    Refer: PCL: Euclidean Cluster Extraction

  • Region-based Euclidean Cluster Extraction
    @inproceedings{yan2017online,
      title={Online learning for human classification in 3d lidar-based tracking},
      author={Yan, Zhi and Duckett, Tom and Bellotto, Nicola},
      booktitle={Intelligent Robots and Systems (IROS), 2017 IEEE/RSJ International Conference on},
      pages={864--871},
      year={2017},
      organization={IEEE}
    }
  • Model-based Segmentation, ITSC 2017
    @article{shin2017real,
      title={Real-time and accurate segmentation of 3-D point clouds based on Gaussian process regression},
      author={Shin, Myung-Ok and Oh, Gyu-Min and Kim, Seong-Woo and Seo, Seung-Woo},
      journal={IEEE Transactions on Intelligent Transportation Systems},
      volume={18},
      number={12},
      pages={3363--3377},
      year={2017},
      publisher={IEEE}
    }
  • Probabilistic Framework, RSS 2016
    @inproceedings{held2016probabilistic,
      title={A Probabilistic Framework for Real-time 3D Segmentation using Spatial, Temporal, and Semantic Cues.},
      author={Held, David and Guillory, Devin and Rebsamen, Brice and Thrun, Sebastian and Savarese, Silvio},
      booktitle={Robotics: Science and Systems},
      year={2016}
    }

  • Tracking-help Segmentation. IV, 2012. Implemented in our tracking_lib.
    @inproceedings{himmelsbach2012tracking,
      title={Tracking and classification of arbitrary objects with bottom-up/top-down detection},
      author={Himmelsbach, Michael and Wuensche, H-J},
      booktitle={Intelligent Vehicles Symposium (IV), 2012 IEEE},
      pages={577--582},
      year={2012},
      organization={IEEE}
    }

About

The LiDAR segmenters library, for segmentation-based detection.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published