GSoC/GCI Archive
Google Summer of Code 2014

Point Cloud Library (PCL)

License: New and Simplified BSD licenses

Web Page:

Mailing List:

The Point Cloud Library (PCL) is an open source framework for point cloud capturing, processing and visualization. A point cloud is a data structure used to represent a collection of three-dimensional points, which may contain additional fields such as color, normals etc. This is usually collected from stereo cameras, 3D laser scanners, time-of-flight cameras, or RGB-D cameras such as the Microsoft Kinect. The library contains numerous state-of-the art algorithms for filtering, feature estimation, surface reconstruction, object recognition, registration, model fitting, segmentation, people and object tracking, and even machine learning techniques. These algorithms can be used, for example, 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---to name a few. PCL is released under the terms of the BSD license and is open source software. It is free for commercial and research use, and is being actively used by numerous research institutions and commercial companies. Currently PCL is being maintained by Open Perception, a non-profit public organization located in California, USA. Open Perception researchers and scientists are managing contributions from more than 600 developers from our international community. These developers are affiliated or have been sponsored by top research institutions and companies from across the world: Australian National University, Universitaet Bielefeld, Brown University, Carnegie Mellon Univeristy, EPFL, ETHZ, itseez, Honda Research Institute, Intel, NVIDIA, Ocular Robotics, Sandia National Laboratories, Toyota, Velodyne etc. The applications that PCL is used in vary from pure computer vision research, robotics, to computer games, entertainment, and medical applications. The delivery of the API allows both experienced engineers and scientists to leverage the customizability and the performance of the library, but it is also accessible to hobbyists or students to user their RGB-D cameras in a plug-and-play fashion. The library is entirely written in C++, using GPU enabled structures for algorithms that are highly parallelizable. The design of the internal structures are such that PCL takes advantage of SSE instructions when available.


  • "Object Discovery in Kinfu Data" The goal of this project is to add new functionalities to PCL. Specifically, I would like to add a new class to PCL. This class has a base into the new automatic object discovery approach which is able to recognize known objects in an unknown environment. This automatic object discovery will be useful for robotics or autonomous vehicles and it will be able to find different class of objects. This new approach compares different parameters of an object to classify it into a type of object.
  • Automated benchmark generation for object-part segmentation This project consists of two parts: First, implementation of the paper [Stein et al. accepted for CVPR 2014]. The focus of this segmentation is getting parts of objects for robot actions (e.g. get the handle of a hammer to pick it up). Second, automated generation of artificial scenes to create a unit-test/benchmarking functionality for 3D segmentation. I will implement a shape generator to dynamically assemble these scenes.
  • Bayesian Approach for fitting Geometric Models in 3D Point Clouds A proposal for a Bayesian approach to localize and fit geometric models of objects in 3D point clouds is made. The algorithm would allow the modelling of abitrary shaped objects through the usage of a B-Spline representation. We propose the usage of a likelihood function similar to MSAC to score individual models. Being fully Bayesian, object searching and fitting would provide a complete statistics. This renders inference making easy.
  • Detecting People in Unconventional Poses This document is a proposal for Google Summer of Code. The topic in question is implementing a PCL module for detecting unconventional human silhouettes.
  • Fitting superquadrics for simple and complex objects Shape approximation is important for many robotics applications, such as grasp planning, in which the primitive approximation of a detected object is tremendously useful in order to plan candidate grasps for a manipulation task. I'd like to participate in this project since my main research interest is grasp planning for sequential manipulation tasks, hence fitting superquadrics is an important tool I'd like to see in PCL in order to transfer my work from simulation to real-world data! :).
  • Human action recognition from skeleton information Recognizing actions is crucial for intuitive human-computer-interaction. In a setting where a robot and a human and a robot are intended to communicate, natural body gestures is a much efficient and time-saving commnication interface. The core of this project is to apply machine learning algorithms on skeletal data obtained from an RGB-D sensor to automatically detect current activity of the user and to develope a program that would recognize human activities in real-time.
  • Human action recognition from skeleton information Skeleton models have been widely used to represent the human shape, due to its simple but informative nature. One of the main applications of skeleton models corresponds to human action recognition, performed in a sequence of skeletal configurations. Ofli et al. proposed a novel and robust method to perform action recognition, which is highly intuitive and interpretable, in comparison with previous approaches. For this reason, the aim of this project is to implement the approach in (PCL).
  • OpenCL Module for PCL OpenCL Module for PCL is one of the attempts to increase the user productivity by increasing real time performance of algorithms. Over the years, computers/machines are expected to perform fast for computationally intensive application need. Use of Many-Core (GPU, MIC) and multi core CPU can satisfy high performance need of scientific and engineering applications. By using OpenCL, we can run PCL algorithms on heterogeneous platforms and can achieve higher throughput.
  • RGB-D Object Segmentation in Cluttered Indoor Environments Object segmentation is a prominent computer vision problem, and with the advent of RGBD sensors like Kinect this problem is solved much better than just using the color information.The objective is to develop framework, by integrating existing methods to do effective RGB-D object segmentation in clutter indoor environments. Overall approach is to divide the scene into segments and then group them to form an object using machine learning techniques.