Point Cloud Library
The Point Cloud Library (PCL) is an open-source library of algorithms for point cloud processing tasks and 3D geometry processing, such as occur in three-dimensional computer vision. The library contains algorithms for filtering, feature estimation, surface reconstruction, 3D registration, model fitting, object recognition, and segmentation. Each module is implemented as a smaller library that can be compiled separately (for example, libpcl_filters, libpcl_features, libpcl_surface, ...). PCL has its own data format for storing point clouds - PCD (Point Cloud Data), but also allows datasets to be loaded and saved in many other formats. It is written in C++ and released under the BSD license.

These algorithms have been used, for example, for perception in robotics to filter outliers from noisy data, stitch 3D point clouds together, segment relevant parts of a scene, extract keypoints and compute descriptors to recognize objects in the world based on their geometric appearance, and create surfaces from point clouds and visualize them.

PCL requires several third-party libraries to function, which must be installed. Most mathematical operations are implemented using the Eigen library. The visualization module for 3D point clouds is based on VTK. Boost is used for shared pointers and the FLANN library for quick k-nearest neighbor search. Additional libraries such as QHULL, OpenNI, or Qt are optional and extend PCL with additional features.

PCL is cross-platform software that runs on the most commonly used operating systems: Linux, Windows, macOS and Android. The library is fully integrated with the Robot Operating System (ROS) and provides support for OpenMP and Intel Threading Building Blocks (TBB) libraries for multi-core parallelism.

The library is constantly updated and expanded, and its use in various industries is constantly growing. For example, PCL participated in the Google Summer of Code 2020 initiative with three projects. One was the extension of PCL for use with Python using Pybind11.

A large number of examples and tutorials are available on the PCL website, either as C++ source files or as tutorials with a detailed description and explanation of the individual steps.
Q1130645
open-source
Concept
Q188860
library
Concept
Q1899648
point cloud
UNK
Q5535529
geometry processing
Concept
Q844240
computer vision
Concept
Q15058706
3D registration
UNK
Q603159
model fitting
Concept
Q1971661
object recognition
Concept
Q56933
segmentation
Concept
Q2407
C++
MEDIA
Q191307
BSD license
Concept
Q160402
perception
Concept
Q170978
robotics
Concept
Q15058706
stitch 3D point clouds together
UNK
Q7784741
third-party
Concept
Q174666
cross-platform software
Concept
Q9135
operating system
Concept
Q388
Linux
MISC
Q1406
Windows
Concept
Q14116
macOS
MISC
Q94
Android
MISC
Q2160077
Robot Operating System
MISC
Q496579
OpenMP
MEDIA
Q248
Intel
ORG
Q1384104
Threading Building Blocks
MEDIA
Q232661
parallelism
Concept
Q1324301
Google Summer of Code
ORG
Q28865
Python
MEDIA
Q4817319
Point Cloud Library
MEDIA
2020-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
2020
DATE
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+11^^http://www.w3.org/2001/XMLSchema#decimal
11
NUMBER
programming language
instance of
instance of