scispace - formally typeset
Search or ask a question
Proceedings ArticleDOI

3D is here: Point Cloud Library (PCL)

09 May 2011-pp 1-4
TL;DR: PCL (Point Cloud Library) is presented, an advanced and extensive approach to the subject of 3D perception that contains state-of-the art algorithms for: filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation.
Abstract: With the advent of new, low-cost 3D sensing hardware such as the Kinect, and continued efforts in advanced point cloud processing, 3D perception gains more and more importance in robotics, as well as other fields. In this paper we present one of our most recent initiatives in the areas of point cloud perception: PCL (Point Cloud Library - http://pointclouds.org). PCL presents an advanced and extensive approach to the subject of 3D perception, and it's meant to provide support for all the common 3D building blocks that applications need. The library contains state-of-the art algorithms for: filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation. PCL is supported by an international community of robotics and perception researchers. We provide a brief walkthrough of PCL including its algorithmic capabilities and implementation strategies.

Summary (2 min read)

Introduction

  • In the past few years, sensors like the Velodyne spinning LIDAR used in the DARPA Urban Challenge and the tilting laser scanner used on the PR2 have given us high-quality 3D representations of the world - point clouds.
  • The Kinect sensor for the Microsoft XBox 360 game system, based on underlying technology from PrimeSense, can be purchased for under $150, and provides real time point clouds as well as 2D images.
  • Figure 1 presents the logo of the project.

II. ARCHITECTURE AND IMPLEMENTATION

  • PCL is a fully templated, modern C++ library for 3D point cloud processing.
  • In addition, PCL provides support for OpenMP (see http://openmp.org) and Intel Threading Building Blocks (TBB) library [2] for multi-core parallelization.
  • The backbone for fast k-nearest neighbor search operations is provided by FLANN (Fast Library for Approximate Nearest Neighbors) [3].
  • From an algorithmic perspective, PCL is meant to incorporate a multitude of 3D processing algorithms that operate on point cloud data, including: filtering, feature estimation, surface reconstruction, model fitting, segmentation, registration, etc.
  • To ensure the correctness of operations in PCL, the methods and classes in each of the above mentioned libraries contain unit and regression tests.

III. PCL AND ROS

  • One of the corner stones in the PCL design philosophy is represented by Perception Processing Graphs (PPG).
  • The rationality behind PPGs are that most applications that deal with point cloud processing can be formulated as a concrete set of building blocks that are parameterized to achieve different results.
  • For this the authors created nodelets, which are dynamically loadable plugins that look and operate like ROS nodes, but in a single process (as single or multiple threads).
  • The PCL Visualization library is meant to integrate PCL with VTK, by providing a comprehensive visualization layer for n-D point cloud structures.
  • They are designed with simplicity in mind, and are easily extendable.

V. USAGE EXAMPLES

  • Followed by three application examples that make use of PCL for solving the perception problem: i) navigation and mapping, ii) object recognition, and iii) manipulation and grasping.the authors.
  • The filter is based on estimating a set of statistics for the points in a given neighborhood (k = 50 here), and using them to select all points within 1.0·σ distance from the mean distance µ, as inliers (see [6] for more information).
  • The second example constitutes a segmentation operation for planar surfaces, using a RANSAC [7] model, as shown in Algorithm 3.
  • The input and output results are shown in Figure 8.
  • Here, a set of complex 3D keypoints and feature descriptors are used in a segmentation and registration framework, that aims to identify previously seen objects in the world.

VI. COMMUNITY AND FUTURE PLANS

  • PCL is a large collaborative effort, and it would not exist without the contributions of several people.
  • The authors current plan for PCL is to improve the documentation, unit tests, and tutorials and release a 1.0 version.
  • The authors will continue to add functionality and make the system available on other platforms such as Android, and they plan to add support for GPUs using CUDA and OpenCL.
  • The authors welcome any new contributors to the project, and they hope to emphasize the importance of code sharing for 3D processing, which is becoming crucial for advancing the robotics field.

Did you find this useful? Give us your feedback

Figures (10)

Content maybe subject to copyright    Report

3D is here: Point Cloud Library (PCL)
Radu Bogdan Rusu and Steve Cousins
Willow Garage
68 Willow Rd., Menlo Park, CA 94025, USA
{rusu,cousins}@willowgarage.com
Abstract With the advent of new, low-cost 3D sensing
hardware such as the Kinect, and continued efforts in advanced
point cloud processing, 3D perception gains more and more
importance in robotics, as well as other fields.
In this paper we present one of our most recent initiatives in
the areas of point cloud perception: PCL (Point Cloud Library
http://pointclouds.org). PCL presents an advanced
and extensive approach to the subject of 3D perception, and
it’s meant to provide support for all the common 3D building
blocks that applications need. The library contains state-of-
the art algorithms for: filtering, feature estimation, surface
reconstruction, registration, model fitting and segmentation.
PCL is supported by an international community of robotics
and perception researchers. We provide a brief walkthrough of
PCL including its algorithmic capabilities and implementation
strategies.
I. INTRODUCTION
For robots to work in unstructured environments, they need
to be able to perceive the world. Over the past 20 years,
we’ve come a long way, from simple range sensors based
on sonar or IR providing a few bytes of information about
the world, to ubiquitous cameras to laser scanners. In the
past few years, sensors like the Velodyne spinning LIDAR
used in the DARPA Urban Challenge and the tilting laser
scanner used on the PR2 have given us high-quality 3D
representations of the world - point clouds. Unfortunately,
these systems are expensive, costing thousands or tens of
thousands of dollars, and therefore out of the reach of many
robotics projects.
Very recently, however, 3D sensors have become available
that change the game. For example, the Kinect sensor for
the Microsoft XBox 360 game system, based on underlying
technology from PrimeSense, can be purchased for under
$150, and provides real time point clouds as well as 2D
images. As a result, we can expect that most robots in the
future will be able to ”see” the world in 3D. All that’s
needed is a mechanism for handling point clouds efficiently,
and that’s where the open source Point Cloud Library, PCL,
comes in. Figure 1 presents the logo of the project.
PCL is a comprehensive free, BSD licensed, library for
n-D Point Clouds and 3D geometry processing. PCL is
fully integrated with ROS, the Robot Operating System (see
http://ros.org), and has been already used in a variety
of projects in the robotics community.
II. ARCHITECTURE AND IMPLEMENTATION
PCL is a fully templated, modern C++ library for 3D
point cloud processing. Written with efficiency and per-
Fig. 1. The Point Cloud Library logo.
formance in mind on modern CPUs, the underlying data
structures in PCL make use of SSE optimizations heavily.
Most mathematical operations are implemented with and
based on Eigen, an open-source template library for linear
algebra [1]. In addition, PCL provides support for OpenMP
(see http://openmp.org) and Intel Threading Building
Blocks (TBB) library [2] for multi-core parallelization. The
backbone for fast k-nearest neighbor search operations is
provided by FLANN (Fast Library for Approximate Nearest
Neighbors) [3]. All the modules and algorithms in PCL pass
data around using Boost shared pointers (see Figure 2), thus
avoiding the need to re-copy data that is already present
in the system. As of version 0.6, PCL has been ported to
Windows, MacOS, and Linux, and Android ports are in the
works.
From an algorithmic perspective, PCL is meant to incor-
porate a multitude of 3D processing algorithms that operate
on point cloud data, including: filtering, feature estimation,
surface reconstruction, model fitting, segmentation, registra-
tion, etc. Each set of algorithms is defined via base classes
that attempt to integrate all the common functionality used
throughout the entire pipeline, thus keeping the implementa-
tions of the actual algorithms compact and clean. The basic
interface for such a processing pipeline in PCL is:
create the processing object (e.g., filter, feature estima-
tor, segmentation);
use setInputCloud to pass the input point cloud dataset
to the processing module;
set some parameters;
call compute (or filter, segment, etc) to get the output.
The sequence of pseudo-code presented in Figure 2 shows
a standard feature estimation process in two steps, where a
NormalEstimation object is first created and passed an input
dataset, and the results together with the original input are
then passed together to an FPFH [4] estimation object.
To further simplify development, PCL is split into a series
of smaller code libraries, that can be compiled separately:
libpcl filters: implements data filters such as downsam-

NormalEstimation
PointCloudConstSharedPtr &cloud
[PointCloud &normals]
PointCloudConstSharedPtr &normals
FPFHEstimation
[PointCloud &fpfh]
Fig. 2. An example of the PCL implementation pipeline for Fast Point
Feature Histogram (FPFH) [4] estimation.
pling, outlier removal, indices extraction, projections,
etc;
libpcl features: implements many 3D features such as
surface normals and curvatures, boundary point estima-
tion, moment invariants, principal curvatures, PFH and
FPFH descriptors, spin images, integral images, NARF
descriptors, RIFT, RSD, VFH, SIFT on intensity data,
etc;
libpcl io: implements I/O operations such as writing
to/reading from PCD (Point Cloud Data) files;
libpcl segmentation: implements cluster extraction,
model fitting via sample consensus methods for a va-
riety of parametric models (planes, cylinders, spheres,
lines, etc), polygonal prism extraction, etc’
libpcl surface: implements surface reconstruction tech-
niques, meshing, convex hulls, Moving Least Squares,
etc;
libpcl registration: implements point cloud registration
methods such as ICP, etc;
libpcl keypoints: implements different keypoint extrac-
tion methods, that can be used as a preprocessing step
to decide where to extract feature descriptors;
libpcl range image: implements support for range im-
ages created from point cloud datasets.
To ensure the correctness of operations in PCL, the
methods and classes in each of the above mentioned libraries
contain unit and regression tests. The suite of unit tests is
compiled on demand and verified frequently by a dedicated
build farm, and the respective authors of a specific compo-
nent are being informed immediately when that component
fails to test. This ensures that any changes in the code are
tested throughly and any new functionality or modification
will not break already existing code that depends on PCL.
In addition, a large number of examples and tutorials
are available either as C++ source files, or as step-by-step
instructions on the PCL wiki web pages.
III. PCL AND ROS
One of the corner stones in the PCL design philosophy
is represented by Perception Processing Graphs (PPG). The
rationality behind PPGs are that most applications that deal
with point cloud processing can be formulated as a concrete
set of building blocks that are parameterized to achieve dif-
ferent results. For example, there is no algorithmic difference
between a wall detection algorithm, or a door detection, or a
table detection all of them share the same building block,
which is in this case, a constrained planar segmentation
algorithm. What changes in the above mentioned cases is
a subset of the parameters used to run the algorithm.
With this in mind, and based on the previous experience of
designing other 3D processing libraries, and most recently,
ROS, we decided to make each algorithm from PCL available
as a standalone building block, that can be easily connected
with other blocks, thus creating processing graphs, in the
same way that nodes connect together in a ROS ecosystem.
Furthermore, because point clouds are extremely large in
nature, we wanted to guarantee that there would be no
unnecessary data copying or serialization/deserialization for
critical applications that can afford to run in the same
process. For this we created nodelets, which are dynamically
loadable plugins that look and operate like ROS nodes, but
in a single process (as single or multiple threads).
A concrete nodelet PPG example for the problem of
identifying a set of point clusters supported by horizontal
planar areas is shown in Figure 3.
Fig. 3. A ROS nodelet graph for the problem of object clustering on planar
surfaces.
IV. VISUALIZATION
PCL comes with its own visualization library, based on
VTK [5]. VTK offers great multi-platform support for ren-
dering 3D point cloud and surface data, including visualiza-
tion support for tensors, texturing, and volumetric methods.
The PCL Visualization library is meant to integrate PCL
with VTK, by providing a comprehensive visualization layer
for n-D point cloud structures. Its purpose is to be able
to quickly prototype and visualize the results of algorithms
operating on such hyper-dimensional data. As of version 0.2,
the visualization library offers:
methods for rendering and setting visual properties
(colors, point sizes, opacity, etc) for any n-D point cloud
dataset;
methods for drawing basic 3D shapes on screen (e.g.,
cylinders, spheres, lines, polygons, etc) either from sets
of points or from parametric equations;

a histogram visualization module (PCLHistogramVisu-
alizer) for 2D plots;
a multitude of geometry and color handlers. Here, the
user can specify what dimensions are to be used for the
point positions in a 3D Cartesian space (see Figure 4),
or what colors should be used to render the points (see
Figure 5);
RangeImage visualization modules (see Figure 6).
The handler interactors are modules that describe how
colors and the 3D geometry at each point in space are
computed, displayed on screen, and how the user interacts
with the data. They are designed with simplicity in mind,
and are easily extendable. A code snippet that produces
results similar to the ones shown in Figure 4 is presented
in Algorithm 1.
Algorithm 1 Code example for the results shown in Figure 4.
using namespace pcl visualization;
PCLVisualizer p (“Test”);
PointCloudColorHandlerRandom handler (cloud);
p.addPointCloud (cloud, handler, ”cloud random”);
p.spin ();
p.removePointCloud (”cloud random”);
PointCloudGeometryHandlerSurfaceNormal handler2 (cloud);
p.addPointCloud (cloud, handler2, ”cloud random”);
p.spin ();
The library also offers a few general purpose tools for
visualizing PCD files, as well as for visualizing streams of
data from a sensor in real-time in ROS.
Fig. 4. An example of two different geometry handers applied to the same
dataset. Left: the 3D Cartesian space represents XYZ data, with the arrows
representing surface normals estimated at each point in the cloud, right: the
Cartesian space represents the 3 dimensions of the normal vector at each
point for the same dataset.
Fig. 5. An example of two different color handers applied to the
same dataset. Left: the colors represent the distance from the acquisition
viewpoint, right: the color represent the RGB texture acquired at each point.
Fig. 6. An example of a RangeImage display using PCL Visualization
(bottom) for a given 3D point cloud dataset (top).
V. USAGE EXAMPLES
In this section we present two code snippets that exhibit
the flexibility and simplicity of using PCL for filtering
and segmentation operations, followed by three application
examples that make use of PCL for solving the perception
problem: i) navigation and mapping, ii) object recognition,
and iii) manipulation and grasping.
Filtering constitutes one of the most important operations
that any raw point cloud dataset usually goes through, before
any higher level operations are applied to it. Algorithm 2 and
Figure 7 present a code snippet and the results obtained after
running it on the point cloud dataset from the left part of the
figure. The filter is based on estimating a set of statistics for
the points in a given neighborhood (k = 50 here), and using
them to select all points within 1.0· σ distance from the mean
distance µ, as inliers (see [6] for more information).
Algorithm 2 Code example for the results shown in Figure 7.
pcl::StatisticalOutlierRemoval<pcl::PointXYZ> f;
f.setInputCloud (input cloud);
f.setMeanK (50);
f.setStddevMulThresh (1.0);
f.filter (output cloud);
Fig. 7. Left: a raw point cloud acquired using a tilting laser scanner,
middle: the resultant filtered point cloud (i.e., inliers) after a StatisticalOut-
lierRemoval operator was applied, right: the rejected points (i.e., outliers).
The second example constitutes a segmentation operation
for planar surfaces, using a RANSAC [7] model, as shown
in Algorithm 3. The input and output results are shown in
Figure 8. In this example, we are using a robust RANSAC
estimator to randomly select 3 non-collinear points and
calculate the best possible model in terms of the overall

number of inliers. The inlier thresholding criterion is set to a
maximum distance of 1cm of each point to the plane model.
Algorithm 3 Code example for the results shown in Figure 8.
pcl::SACSegmentation<pcl::PointXYZ> s;
f.setInputCloud (input cloud);
f.setModelType (pcl::SACMODEL PLANE);
f.setMethodType (pcl::SAC RANSAC);
f.setDistanceThreshold (0.01);
f.segment (output cloud);
Fig. 8. Left: the input point cloud, right: the segmented plane represented
by the inliers of the model marked with purple color.
An example of a more complex navigation and mapping
application is shown in the left part of Figure 9, where the
PR2 robot had to autonomously identify doors and their
handles [8], in order to explore rooms and find power
sockets [9]. Here, the modules used included constrained
planar segmentation, region growing methods, convex hull
estimation, and polygonal prism extractions. The results of
these methods were then used to extract certain statistics
about the shape and size of the door and the handle, in order
to uniquely identify them and to reject false positives.
The right part of Figure 9 shows an experiment with
real-time object identification from complex 3D scenes [10].
Here, a set of complex 3D keypoints and feature descriptors
are used in a segmentation and registration framework, that
aims to identify previously seen objects in the world.
Figure 10 presents a grasping and manipulation applica-
tion [11], where objects are first segmented from horizontal
planar tables, clustered into individual units, and a registra-
tion operation is applied that attaches semantic information
to each cluster found.
VI. COMMUNITY AND FUTURE PLANS
PCL is a large collaborative effort, and it would not
exist without the contributions of several people. Though
the community is larger, and we accept patches and im-
provements from many users, we would like to acknowledge
the following institutions for their core contributions to the
development of the library: AIST, UC Berkeley, University of
Handle
Door
Fig. 9. Left: example of door and handle identification [8] during a
navigation and mapping experiment [9] with the PR2 robot. Right: object
recognition experiments (chair, person sitting down, cart) using Normal
Aligned Radial Features (NARF) [10] with the PR2 robot.
Fig. 10. Experiments with PCL in grasping applications [11], from
left to right: a visualization of the collision environment including points
associated with unrecognized objects (blue), and obstacles with semantic
information (green); detail showing 3D point cloud data (grey) with 3D
meshes superimposed for recognized objects; successful grasping showing
the bounding box associated with an unrecognized object (brown) attached
to the gripper.
Bonn, University of British Columbia, ETH Zurich, Univer-
sity of Freiburg, Intel Reseach Seattle, LAAS/CNRS, MIT,
University of Osnabr
¨
uck, Stanford University, University of
Tokyo, TUM, Vienna University of Technolog, and Wash-
ington University in St. Louis.
Our current plan for PCL is to improve the documentation,
unit tests, and tutorials and release a 1.0 version. We will
continue to add functionality and make the system available
on other platforms such as Android, and we plan to add
support for GPUs using CUDA and OpenCL.
We welcome any new contributors to the project, and
we hope to emphasize the importance of code sharing for
3D processing, which is becoming crucial for advancing the
robotics field.
REFERENCES
[1] G. Guennebaud, B. Jacob, et al., “Eigen v3, http://eigen.tuxfamily.org,
2010.
[2] J. Reinders, Intel threading building blocks : outfitting C++ for multi-
core processor parallelism. O’Reilly, 2007.
[3] M. Muja and D. G. Lowe, “Fast approximate nearest neighbors with
automatic algorithm configuration, in International Conference on
Computer Vision Theory and Application VISSAPP’09). INSTICC
Press, 2009, pp. 331–340.
[4] R. B. Rusu, N. Blodow, and M. Beetz, “Fast Point Feature Histograms
(FPFH) for 3D Registration, in Proceedings of the IEEE International
Conference on Robotics and Automation (ICRA), Kobe, Japan, May
12-17 2009.
[5] W. Schroeder, K. Martin, and B. Lorensen, Visualization Toolkit: An
Object-Oriented Approach to 3D Graphics, 4th Edition. Kitware,
December 2006.
[6] R. B. Rusu, Z. C. Marton, N. Blodow, M. Dolha, and M. Beetz,
“Towards 3D Point Cloud Based Object Maps for Household Envi-
ronments, Robotics and Autonomous Systems Journal (Special Issue
on Semantic Knowledge), 2008.
[7] A. M. Fischler and C. R. Bolles, “Random sample consensus: a
paradigm for model fitting with applications to image analysis and
automated cartography, Communications of the ACM, vol. 24, no. 6,
pp. 381–395, June 1981.
[8] R. B. Rusu, W. Meeussen, S. Chitta, and M. Beetz, “Laser-based
Perception for Door and Handle Identification, in International Con-
ference on Advanced Robotics (ICAR), June 22-26 2009.
[9] W. Meeussen, M. Wise, S. Glaser, S. Chitta, C. McGann, P. Mihelich,
E. Marder-Eppstein, M. Muja, V. Eruhimov, T. Foote, J. Hsu, R. Rusu,
B. Marthi, G. Bradski, K. Konolige, B. Gerkey, and E. Berger,
Autonomous Door Opening and Plugging In with a Personal Robot,
in Proceedings of the IEEE International Conference on Robotics and
Automation (ICRA), Anchorage, Alaska, May 3-8 2010.
[10] B. Steder, R. B. Rusu, K. Konolige, and W. Burgard, “Point Feature
Extraction on 3D Range Scans Taking into Account Object Bound-
aries, in Submitted to the IEEE International Conference on Robotics
and Automation (ICRA), Shanghai, China, May 9-13 2010.
[11] M. Ciocarlie, K. Hsiao, E. G. Jones, S. Chitta, R. B. Rusu, and
I. A. Sucan, “Towards reliable grasping and manipulation in household
environments, New Delhi, India, 12/2010 2010.
Citations
More filters
Proceedings ArticleDOI
12 Jul 2014
TL;DR: The method achieves both low-drift and low-computational complexity without the need for high accuracy ranging or inertial measurements and can achieve accuracy at the level of state of the art offline batch methods.
Abstract: We propose a real-time method for odometry and mapping using range measurements from a 2-axis lidar moving in 6-DOF. The problem is hard because the range measurements are received at different times, and errors in motion estimation can cause mis-registration of the resulting point cloud. To date, coherent 3D maps can be built by off-line batch methods, often using loop closure to correct for drift over time. Our method achieves both low-drift and low-computational complexity without the need for high accuracy ranging or inertial measurements. The key idea in obtaining this level of performance is the division of the complex problem of simultaneous localization and mapping, which seeks to optimize a large number of variables simultaneously, by two algorithms. One algorithm performs odometry at a high frequency but low fidelity to estimate velocity of the lidar. Another algorithm runs at a frequency of an order of magnitude lower for fine matching and registration of the point cloud. Combination of the two algorithms allows the method to map in real-time. The method has been evaluated by a large set of experiments as well as on the KITTI odometry benchmark. The results indicate that the method can achieve accuracy at the level of state of the art offline batch methods.

1,879 citations

Posted Content
TL;DR: The main theorem characterizes the permutation invariant objective functions and provides a family of functions to which any permutation covariant objective function must belong, which enables the design of a deep network architecture that can operate on sets and which can be deployed on a variety of scenarios including both unsupervised and supervised learning tasks.
Abstract: We study the problem of designing models for machine learning tasks defined on \emph{sets}. In contrast to traditional approach of operating on fixed dimensional vectors, we consider objective functions defined on sets that are invariant to permutations. Such problems are widespread, ranging from estimation of population statistics \cite{poczos13aistats}, to anomaly detection in piezometer data of embankment dams \cite{Jung15Exploration}, to cosmology \cite{Ntampaka16Dynamical,Ravanbakhsh16ICML1}. Our main theorem characterizes the permutation invariant functions and provides a family of functions to which any permutation invariant objective function must belong. This family of functions has a special structure which enables us to design a deep network architecture that can operate on sets and which can be deployed on a variety of scenarios including both unsupervised and supervised learning tasks. We also derive the necessary and sufficient conditions for permutation equivariance in deep models. We demonstrate the applicability of our method on population statistic estimation, point cloud classification, set expansion, and outlier detection.

1,329 citations

Journal ArticleDOI
TL;DR: This paper presents a comprehensive review of recent progress in deep learning methods for point clouds, covering three major tasks, including 3D shape classification, 3D object detection and tracking, and 3D point cloud segmentation.
Abstract: Point cloud learning has lately attracted increasing attention due to its wide applications in many areas, such as computer vision, autonomous driving, and robotics As a dominating technique in AI, deep learning has been successfully used to solve various 2D vision problems However, deep learning on point clouds is still in its infancy due to the unique challenges faced by the processing of point clouds with deep neural networks Recently, deep learning on point clouds has become even thriving, with numerous methods being proposed to address different problems in this area To stimulate future research, this paper presents a comprehensive review of recent progress in deep learning methods for point clouds It covers three major tasks, including 3D shape classification, 3D object detection and tracking, and 3D point cloud segmentation It also presents comparative results on several publicly available datasets, together with insightful observations and inspiring future research directions

1,021 citations


Cites methods from "3D is here: Point Cloud Library (PC..."

  • ...Max pooling is adopted to aggregate neighborhood information and graph coarsening is implemented based on VoxelGrid [86]....

    [...]

Proceedings ArticleDOI
21 Jul 2017
TL;DR: This work generalizes the convolution operator from regular grids to arbitrary graphs while avoiding the spectral domain, which allows us to handle graphs of varying size and connectivity.
Abstract: A number of problems can be formulated as prediction on graph-structured data. In this work, we generalize the convolution operator from regular grids to arbitrary graphs while avoiding the spectral domain, which allows us to handle graphs of varying size and connectivity. To move beyond a simple diffusion, filter weights are conditioned on the specific edge labels in the neighborhood of a vertex. Together with the proper choice of graph coarsening, we explore constructing deep neural networks for graph classification. In particular, we demonstrate the generality of our formulation in point cloud classification, where we set the new state of the art, and on a graph classification dataset, where we outperform other deep learning approaches.

957 citations


Cites methods from "3D is here: Point Cloud Library (PC..."

  • ...For a single input point cloud P , a pyramid of downsampled point clouds P (h) is obtained by the VoxelGrid algorithm [30], which overlays a grid of resolution r over the point cloud and replaces all points within a voxel with their centroid (and thus maintains subvoxel accuracy)....

    [...]

Proceedings ArticleDOI
15 Jun 2019
TL;DR: Argoverse includes sensor data collected by a fleet of autonomous vehicles in Pittsburgh and Miami as well as 3D tracking annotations, 300k extracted interesting vehicle trajectories, and rich semantic maps, which contain rich geometric and semantic metadata which are not currently available in any public dataset.
Abstract: We present Argoverse, a dataset designed to support autonomous vehicle perception tasks including 3D tracking and motion forecasting. Argoverse includes sensor data collected by a fleet of autonomous vehicles in Pittsburgh and Miami as well as 3D tracking annotations, 300k extracted interesting vehicle trajectories, and rich semantic maps. The sensor data consists of 360 degree images from 7 cameras with overlapping fields of view, forward-facing stereo imagery, 3D point clouds from long range LiDAR, and 6-DOF pose. Our 290km of mapped lanes contain rich geometric and semantic metadata which are not currently available in any public dataset. All data is released under a Creative Commons license at Argoverse.org. In baseline experiments, we use map information such as lane direction, driveable area, and ground height to improve the accuracy of 3D object tracking. We use 3D object tracking to mine for more than 300k interesting vehicle trajectories to create a trajectory forecasting benchmark. Motion forecasting experiments ranging in complexity from classical methods (k-NN) to LSTMs demonstrate that using detailed vector maps with lane-level information substantially reduces prediction error. Our tracking and forecasting experiments represent only a superficial exploration of the potential of rich maps in robotic perception. We hope that Argoverse will enable the research community to explore these problems in greater depth.

950 citations


Cites methods from "3D is here: Point Cloud Library (PC..."

  • ...We use ICP (Iterative Closest Point) from the Point Cloud Library [53] to estimate a relative transformation between corresponding point segments for each track....

    [...]

  • ...[53] R....

    [...]

References
More filters
Journal ArticleDOI
TL;DR: New results are derived on the minimum number of landmarks needed to obtain a solution, and algorithms are presented for computing these minimum-landmark solutions in closed form that provide the basis for an automatic system that can solve the Location Determination Problem under difficult viewing.
Abstract: A new paradigm, Random Sample Consensus (RANSAC), for fitting a model to experimental data is introduced. RANSAC is capable of interpreting/smoothing data containing a significant percentage of gross errors, and is thus ideally suited for applications in automated image analysis where interpretation is based on the data provided by error-prone feature detectors. A major portion of this paper describes the application of RANSAC to the Location Determination Problem (LDP): Given an image depicting a set of landmarks with known locations, determine that point in space from which the image was obtained. In response to a RANSAC requirement, new results are derived on the minimum number of landmarks needed to obtain a solution, and algorithms are presented for computing these minimum-landmark solutions in closed form. These results provide the basis for an automatic system that can solve the LDP under difficult viewing

23,396 citations


"3D is here: Point Cloud Library (PC..." refers methods in this paper

  • ...Algorithm 2 Code example for the results shown in Figure 7. pcl::StatisticalOutlierRemoval<pcl::PointXYZ> f; f.setInputCloud (input cloud); f.setMeanK (50); f.setStddevMulThresh (1.0); f.filter (output cloud); The second example constitutes a segmentation operation for planar surfaces, using a RANSAC [7] model, as shown in Algorithm 3....

    [...]

  • ...In this example, we are using a robust RANSAC estimator to randomly select 3 non-collinear points and calculate the best possible model in terms of the overall number of inliers....

    [...]

  • ...Algorithm 3 Code example for the results shown in Figure 8. pcl::SACSegmentation<pcl::PointXYZ> s; f.setInputCloud (input cloud); f.setModelType (pcl::SACMODEL PLANE); f.setMethodType (pcl::SAC RANSAC); f.setDistanceThreshold (0.01); f.segment (output cloud); An example of a more complex navigation and mapping application is shown in the left part of Figure 9, where the PR2 robot had to autonomously identify doors and their handles [8], in order to explore rooms and find power sockets [9]....

    [...]

  • ...The second example constitutes a segmentation operation for planar surfaces, using a RANSAC [7] model, as shown in Algorithm 3....

    [...]

Proceedings ArticleDOI
12 May 2009
TL;DR: This paper modifications their mathematical expressions and performs a rigorous analysis on their robustness and complexity for the problem of 3D registration for overlapping point cloud views, and proposes an algorithm for the online computation of FPFH features for realtime applications.
Abstract: In our recent work [1], [2], we proposed Point Feature Histograms (PFH) as robust multi-dimensional features which describe the local geometry around a point p for 3D point cloud datasets. In this paper, we modify their mathematical expressions and perform a rigorous analysis on their robustness and complexity for the problem of 3D registration for overlapping point cloud views. More concretely, we present several optimizations that reduce their computation times drastically by either caching previously computed values or by revising their theoretical formulations. The latter results in a new type of local features, called Fast Point Feature Histograms (FPFH), which retain most of the discriminative power of the PFH. Moreover, we propose an algorithm for the online computation of FPFH features for realtime applications. To validate our results we demonstrate their efficiency for 3D registration and propose a new sample consensus based method for bringing two datasets into the convergence basin of a local non-linear optimizer: SAC-IA (SAmple Consensus Initial Alignment).

3,138 citations


"3D is here: Point Cloud Library (PC..." refers methods in this paper

  • ...PCL is fully integrated with ROS, the Robot Operating System (see http://ros.org), and has been already used in a variety of projects in the robotics community....

    [...]

Proceedings Article
01 Jan 2009
TL;DR: A system that answers the question, “What is the fastest approximate nearest-neighbor algorithm for my data?” and a new algorithm that applies priority search on hierarchical k-means trees, which is found to provide the best known performance on many datasets.
Abstract: For many computer vision problems, the most time consuming component consists of nearest neighbor matching in high-dimensional spaces. There are no known exact algorithms for solving these high-dimensional problems that are faster than linear search. Approximate algorithms are known to provide large speedups with only minor loss in accuracy, but many such algorithms have been published with only minimal guidance on selecting an algorithm and its parameters for any given problem. In this paper, we describe a system that answers the question, “What is the fastest approximate nearest-neighbor algorithm for my data?” Our system will take any given dataset and desired degree of precision and use these to automatically determine the best algorithm and parameter values. We also describe a new algorithm that applies priority search on hierarchical k-means trees, which we have found to provide the best known performance on many datasets. After testing a range of alternatives, we have found that multiple randomized k-d trees provide the best performance for other datasets. We are releasing public domain code that implements these approaches. This library provides about one order of magnitude improvement in query time over the best previously available software and provides fully automated parameter selection.

2,934 citations


"3D is here: Point Cloud Library (PC..." refers methods in this paper

  • ...PCL is fully integrated with ROS, the Robot Operating System (see http://ros.org), and has been already used in a variety of projects in the robotics community....

    [...]

Book
01 Nov 1997
TL;DR: The book/CD package offers readers the opportunity to practice visualization using a complete C++ programming environment developed by the authors.
Abstract: From the Publisher: Visualization is a part of every day life. From weather map generation of financial modelling to MRI technology in medicine to 3D graphics used in movies like Jurassic Park, examples of visualization abound. The book/CD package offers readers the opportunity to practice visualization using a complete C++ programming environment developed by the authors.

1,973 citations

Journal ArticleDOI
TL;DR: The novel techniques include statistical analysis, persistent histogram features estimation that allows for a consistent registration, resampling with additional robust fitting techniques, and segmentation of the environment into meaningful regions.

950 citations


"3D is here: Point Cloud Library (PC..." refers methods in this paper

  • ...…of designing other 3D processing libraries, and most recently, ROS, we decided to make each algorithm from PCL available as a standalone building block, that can be easily connected with other blocks, thus creating processing graphs, in the same way that nodes connect together in a ROS ecosystem....

    [...]

Frequently Asked Questions (12)
Q1. What contributions have the authors mentioned in the paper "3d is here: point cloud library (pcl)" ?

In this paper the authors present one of their most recent initiatives in the areas of point cloud perception: PCL ( Point Cloud Library – http: //pointclouds. org ). PCL presents an advanced and extensive approach to the subject of 3D perception, and it ’ s meant to provide support for all the common 3D building blocks that applications need. The authors provide a brief walkthrough of PCL including its algorithmic capabilities and implementation strategies. 

The authors will continue to add functionality and make the system available on other platforms such as Android, and they plan to add support for GPUs using CUDA and OpenCL. 

The PCL Visualization library is meant to integrate PCL with VTK, by providing a comprehensive visualization layer for n-D point cloud structures. 

To ensure the correctness of operations in PCL, the methods and classes in each of the above mentioned libraries contain unit and regression tests. 

The basic interface for such a processing pipeline in PCL is:• create the processing object (e.g., filter, feature estimator, segmentation); • use setInputCloud to pass the input point cloud dataset to the processing module; • set some parameters; • call compute (or filter, segment, etc) to get the output. 

Written with efficiency and per-formance in mind on modern CPUs, the underlying data structures in PCL make use of SSE optimizations heavily. 

As of version 0.2, the visualization library offers:• methods for rendering and setting visual properties (colors, point sizes, opacity, etc) for any n-D point cloud dataset; • methods for drawing basic 3D shapes on screen (e.g., cylinders, spheres, lines, polygons, etc) either from sets of points or from parametric equations;• a histogram visualization module (PCLHistogramVisualizer) for 2D plots; • a multitude of geometry and color handlers. 

The authors welcome any new contributors to the project, and the authors hope to emphasize the importance of code sharing for 3D processing, which is becoming crucial for advancing the robotics field. 

Figure 10 presents a grasping and manipulation application [11], where objects are first segmented from horizontal planar tables, clustered into individual units, and a registration operation is applied that attaches semantic information to each cluster found. 

The results of these methods were then used to extract certain statistics about the shape and size of the door and the handle, in order to uniquely identify them and to reject false positives. 

Code example for the results shown in Figure 7. pcl::StatisticalOutlierRemoval<pcl::PointXYZ> f; f.setInputCloud (input cloud); f.setMeanK (50); f.setStddevMulThresh (1.0); f.filter (output cloud);The second example constitutes a segmentation operation for planar surfaces, using a RANSAC [7] model, as shown in Algorithm 3. 

Though the community is larger, and the authors accept patches and improvements from many users, the authors would like to acknowledge the following institutions for their core contributions to the development of the library: AIST, UC Berkeley, University ofBonn, University of British Columbia, ETH Zurich, University of Freiburg, Intel Reseach Seattle, LAAS/CNRS, MIT, University of Osnabrück, Stanford University, University of Tokyo, TUM, Vienna University of Technolog, and Washington University in St. Louis.