New in CGAL: Wrappers for Registration Libraries

New in CGAL: Wrappers for Registration Libraries


Necip Fazil Yildiran, Nicolas Mellado and Simon Giraudot

STORM, IRIT and GeometryFactory


Digitizing large objects or scenes often is often performed by scanning from several points of view and merging the scans together afterwards. If the sensors used for acquisition do not have a way to spatially organize these scans, a registration algorithm should be applied in order to produce a unified point cloud that is spatially consistent; even if the sensors used do produce localization and orientation information, these might still suffer from noise and imprecision and require a registration processing.

CGAL now offers wrappers for two registration libraries: OpenGR and Pointmatcher, enabling the combination of these tools with the diverse algorithms of CGAL (Point set processing, Shape Reconstruction, Shape Detection, Classification, ...) in a seamless and efficient manner.


OpenGR

OpenGR is a collection of C++ libraries for 3D Global Registration released under the terms of the APACHE V2 licence. The algorithm used is Super4PCS.

From two arbitrarily located and arbitrarily oriented point clouds, OpenGR computes a global registration transformation: applying this transformation to the second point cloud makes it coarsely registered with the first one.


Pointmatcher

Pointmatcher is a modular library implementing the Iterative Closest Point (ICP) algorithm for aligning point clouds, released under the terms of the BSD license.

From point clouds roughly registered (for example, using the output of OpenGR), Pointmatcher computes a fine registration transformation: applying this transformation to the second point cloud makes it finely registered with the first one.



Registration pipeline. From left to right: input point cloud, output of coarse registration with OpenGR, output of fine registration using Pointmatcher.


Both wrappers are part of the Point set processing package; two new examples (one for OpenGR, and one for Pointmatcher) have been added to get you quickly started.

Documentation of the package Point_set_processing_3

CGAL master branch on GitHub