All Projects → fverdoja → Fast 3d Pointcloud Segmentation

fverdoja / Fast 3d Pointcloud Segmentation

Licence: bsd-3-clause
Fast 3D point cloud segmentation using supervoxels with geometry and color for 3D scene understanding

Projects that are alternatives of or similar to Fast 3d Pointcloud Segmentation

costmap depth camera
This is a costmap plugin for costmap_2d pkg. This plugin supports multiple depth cameras and run in real time.
Stars: ✭ 26 (-78.69%)
Mutual labels:  ros, pointcloud
Apc Vision Toolbox
MIT-Princeton Vision Toolbox for the Amazon Picking Challenge 2016 - RGB-D ConvNet-based object segmentation and 6D object pose estimation.
Stars: ✭ 277 (+127.05%)
Mutual labels:  ros, segmentation
ROS-Object-Detection-2Dto3D-RealsenseD435
Use the Intel D435 real-sensing camera to realize object detection based on the Yolov3-5 framework under the Opencv DNN(old version)/TersorRT(now) by ROS-melodic.Real-time display of the Pointcloud in the camera coordinate system.
Stars: ✭ 45 (-63.11%)
Mutual labels:  ros, pointcloud
Mcl 3dl
A ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.
Stars: ✭ 221 (+81.15%)
Mutual labels:  ros, pointcloud
Carla
Open-source simulator for autonomous driving research.
Stars: ✭ 7,012 (+5647.54%)
Mutual labels:  ros, research
Cvpods
All-in-one Toolbox for Computer Vision Research.
Stars: ✭ 277 (+127.05%)
Mutual labels:  research, segmentation
GuidedLabelling
Exploiting Saliency for Object Segmentation from Image Level Labels, CVPR'17
Stars: ✭ 35 (-71.31%)
Mutual labels:  research, segmentation
Pointcnn
PointCNN: Convolution On X-Transformed Points (NeurIPS 2018)
Stars: ✭ 1,120 (+818.03%)
Mutual labels:  pointcloud, segmentation
Gibsonenv
Gibson Environments: Real-World Perception for Embodied Agents
Stars: ✭ 666 (+445.9%)
Mutual labels:  ros, research
Depth clustering
🚕 Fast and robust clustering of point clouds generated with a Velodyne sensor.
Stars: ✭ 657 (+438.52%)
Mutual labels:  ros, segmentation
Pointnet pointnet2 pytorch
PointNet and PointNet++ implemented by pytorch (pure python) and on ModelNet, ShapeNet and S3DIS.
Stars: ✭ 714 (+485.25%)
Mutual labels:  pointcloud, segmentation
Loam velodyne
Laser Odometry and Mapping (Loam) is a realtime method for state estimation and mapping using a 3D lidar.
Stars: ✭ 1,135 (+830.33%)
Mutual labels:  ros, pointcloud
Metal Point Cloud
A point-cloud made from 3d data with Metal.
Stars: ✭ 116 (-4.92%)
Mutual labels:  pointcloud
Nucleisegmentation
cGAN-based Multi Organ Nuclei Segmentation
Stars: ✭ 120 (-1.64%)
Mutual labels:  segmentation
Fusionseg
Video Object Segmentation
Stars: ✭ 116 (-4.92%)
Mutual labels:  segmentation
Robot blockly
A simple way to program ROS robots using blockly.
Stars: ✭ 115 (-5.74%)
Mutual labels:  ros
Deeplab V3 Plus Cityscapes
mIOU=80.02 on cityscapes. My implementation of deeplabv3+ (also know as 'Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation' based on the dataset of cityscapes).
Stars: ✭ 121 (-0.82%)
Mutual labels:  segmentation
Ros2learn
ROS 2 enabled Machine Learning algorithms
Stars: ✭ 119 (-2.46%)
Mutual labels:  ros
Arm Vo
Efficient monocular visual odometry for ground vehicles on ARM processors
Stars: ✭ 115 (-5.74%)
Mutual labels:  ros
Ros seminar
Lecture and Reference Material
Stars: ✭ 114 (-6.56%)
Mutual labels:  ros

Fast 3D Pointcloud Segmentation

This is the code used in the article:

F. Verdoja, D. Thomas, and A. Sugimoto, “Fast 3D point cloud segmentation using supervoxels with geometry and color for 3D scene understanding,” in IEEE International Conference on Multimedia and Expo (ICME 2017), Hong Kong, 2017, pp. 1285–1290.

Article versions: [preprint] [published]

Paper abstract

Segmentation of 3D colored point clouds is a research field with renewed interest thanks to recent availability of inexpensive consumer RGB-D cameras and its importance as an unavoidable low-level step in many robotic applications. However, 3D data’s nature makes the task challenging and, thus, many different techniques are being proposed, all of which require expensive computational costs. This paper presents a novel fast method for 3D colored point cloud segmentation. It starts with supervoxel partitioning of the cloud, i.e., an oversegmentation of the points in the cloud. Then it leverages on a novel metric exploiting both geometry and color to iteratively merge the supervoxels to obtain a 3D segmentation where the hierarchical structure of partitions is maintained. The algorithm also presents computational complexity linear to the size of the input. Experimental results over two publicly available datasets demonstrate that our proposed method outperforms state-of-the-art techniques.

Dependencies

The code is based on C++ and requires PCL 1.8+ and OpenCV4 to work.

Optionally, the code supports ROS integration. If ROS support is required, Catkin is required.

Compilation

With ROS support

The default option for this code is to compile with ROS support enabled. In this case, placing this package inside a Catkin workspace should work.

Be mindful that git clone by default will put this package in a folder called Fast-3D-Pointcloud-Segmentation, might be necessary to rename that folder to supervoxel_clustering.

Then, the workspace can be compiled like usual with Catkin.

Without ROS support

To use this package without ROS the option -DUSE_CATKIN=OFF must be used while calling cmake, like this:

mkdir build
cd build
cmake -DUSE_CATKIN=OFF ..
make

Use

Syntax is: ./supervoxel_clustering {-d <direcory-of-pcd-files> OR -p <pcd-file>} [arguments] 

        SUPERVOXEL optional arguments: 
         -v <voxel-resolution>          (default: 0.008) 
         -s <seed-resolution>           (default: 0.08) 
         -c <color-weight>              (default: 0.2) 
         -z <spatial-weight>            (default: 0.4) 
         -n <normal-weight>             (default: 1.0) 

        SEGMENTATION optional arguments: 
         -t <threshold>                 (default: auto)
         --RGB                          (uses the RGB color space for measuring the color distance; if not given, L*A*B* color space is used) 
         --CVX                          (uses the convexity criterion to weigh the geometric distance; if not given, convexity is not considered) 
         --ML [manual-lambda] *         (uses Manual Lambda as merging criterion; if no parameter is given, lambda=0.5 is used) 
         --AL                 *         (uses Adaptive lambda as merging criterion) 
         --EQ [bins-number]   *         (uses Equalization as merging criterion; if no parameter is given, 200 bins are used) 
          * please note that only one of these arguments can be passed at the same time 

        OTHER optional arguments: 
         -r <label-to-be-removed>       (if ground-truth is provided, removes all points with the given label from the ground-truth)
         -f <test-results-filename>     (uses the given name as filename for all test results files; if not given, 'test' is going to be used)
         --NT                           (disables use of single camera transform) 
         --V                            (verbose)

From ROS

If used with ROS support enabled, the executable can be called from launch files. One example launch file is provided in the launch folder.

For a more complete ROS node implementation, please have a look at this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].