Berry van Someren
Software Engineer

Feature Based Point Cloud Registration

2016

During my first internship at Cyclomedia I explored many methods for point cloud registration based on different features. I developed an innovative method that encodes point clouds as images, improving both computation time and accuracy, while retaining equal precision.

After this internship the method became a standard component in Cyclomedia’s positioning pipeline.


Cyclomedia is a company that records the publlic space with full 360 degree spherical panoramic images and Lidar laser scanners, mounted on top of driving cars. That data can be used to create 3D reconstructions of the real world that are so accurate, that they can be used for measurements, inspection and inventorisation, without the need for someone else to visit the place in person.

When data is recorded at different times, the positioning might deviate a little bit. We want to consistently align many point clouds, covering entire countries. The process for doing so is called point cloud registration.

(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
a) The source point cloud. b) The target point cloud. c) Detected keypoints for the source. d) Detected keypoints for the target. e) Correspondences between keypoints. The lines connect features from the source to features from the target. f) The unaligned configuration. g) Coarse alignment. h) Refined alignment.

Point clouds can be registered based on different features such as; targets, key points, lines and planes. The transformation between the feature sets can then be found using for example RANSAC. During this internship I experimented with Harris keypoints, SIFT keypoints, ISS keypoints, Planes, Normals and a custom solution based on density histograms.

A point cloud and its estimated normals, encoded as colors.

We saw that commonly our point clouds were only a little off in their height, but needed more finegrained registration in the xy-plane. I came up with a custom method where we create two histograms; one along the z-axis, and an image representation capturing the xy-plane. For the xy-histogram we basically project a grid over our point cloud and count the number of points per cell. These histograms are then simply used as images in a template-matching approach.

(a)
(b)
(c)
(d)
a) The density histogram of the source point cloud. b) The density histogram of the target point cloud. c) Overlapping histograms before registration. d) Overlapping histograms after registration. - note that the brighter areas in the histograms look a lighting affect, but are actually differences in point cloud density caused by variations in the recording vehicle's velocity.

Experiments illustrated that the new method improves both computation time and accuracy, while retaining equal precision.