IEEE Robotics & Automation Magazine - December 2015 - 123

earlier, in the PCL we refer to these image-like 3-D representations as organized point clouds.
It is assumed that consecutive clouds acquired from the
sensor are temporally (and, thus, spatially) close to each
other. For this to hold, not only must the device have a sufficiently high frame rate, but the pipeline must also process
frames at a comparable speed. This is the working assumption of cloud registration algorithms deployed within
SLAM and Kinect Fusion-like frameworks [29]. Under
these conditions the point clouds are close enough to allow
ICP to reach a good local minimum in most cases, without
the need for the initial alignment procedure, and with just
a few iterations. We will briefly walk through the steps of
the pipeline.
Preprocessing-Filtering and Fast Feature Estimation
This type of camera exhibits various forms of noise. Hence,
initial filtering becomes necessary when the cameras are used
to acquire accurate 3-D models. There are multiple ways in
which noise can be efficiently eliminated from generic point
clouds, but none of them consider the difficult quantization
effects seen in this new type of data. An edge-preserving filtering method, the bilateral filter, has been adapted from the
field of 2-D image processing (" FastBilateralFilter). It smoothes more when neighboring pixels are similar
(flat regions), and less when there are jumps, therefore, it does
not affect the edges. Listing 13 provides a usage example.
Accelerating the computation of normals can also be
done by using the grid structure of the RGB-D data. The rasterized depth images can be used to speed up the normal estimation process using integral images [30]. The advantage
of this method is that it requires only a linear preprocessing
stage while allowing for computing mean vectors and normals within a rectangular area of the image in constant time
(" IntegralImageNormalEstimation).
Registration Pipeline
For aligning a sequence of RGB-D images, we present a hybrid
registration pipeline. Because of the high data rate of these sensors (640 # 480 = 307, 200 points at 30 Hz), the measurements need to be sampled so that the registered point clouds
contain only 10% of the original data. As described in the "Selection-Sampling Representative Subsets" section, there are
many approaches available for sampling the point cloud.
Normal Space Subsampling
A particularly robust way to register RGB-D point clouds
is to perform normal space sampling (" NormalSpaceSampling). This method consists of binning each point
into M 3 bins based on the normal angle around each of
the x, y, and z-axis, respectively. Next, a fixed number of
samples is extracted randomly from each bin. This ensures
that the resulting point cloud has samples at locations from
all the differently oriented surfaces in the scene, increasing
the probability that the registration will converge to the
global minimum.

Correspondence Estimation and Filtering
Having only a fraction of the points left, using a complex
search data structure is not that prohibitively slow anymore.
Consequently, we apply the correspondence estimation
based on kd-trees (discussed in the "Matching-Closest Points
Correspondence Estimation" section) rather than the projection-based estimation.
To reject misleading correspondences, we employ a combination of two correspondence filters (discussed in the "Rejecting and Filtering Correspondences" section): a filter
based on normal compatibility (" CorrespondenceRejectorSurfaceNormal) to reject point pairs with
mismatched normals, and a distance filter using the median
distance between correspondence pairs (" CorrespondenceRejectorMedianDistance) to eliminate the
pairs with outlying distances.
Transformation Estimation and Weighting
Using the resulting small set of robust correspondences, the
transformation between the two point clouds is computed
using the weighted point-to-plane distance metric
(" TransformationEstimationPointToPlaneWeighted). Because our normals have been computed on
the original point clouds, they approximate the underlying
surface well. As a result, the point-to-plane error metric is
preferred as a better estimation of the distance between the
source and target surfaces, as opposed to point-to-point measurements. The weighting of the correspondences can be
done using a sensor noise model. One such example was proposed by [13] and considers the standard deviation of the
depth to increase quadratically with the distance of the
scanned surfaces from the image plane. As such, the weight
for the correspondence between points p and q is taken as
the maximum of the standard deviation of the two points
under the noise model
w ^ p, qh = max ^v z ^ p z h, vz ^q z hh,

with v z ^ z h = 0.0012 + 0.0019 ) ^z - 0.4h .
2

(5)
(6)

As convergence criteria for the ICP algorithm (discussed
in the "Termination Criteria" section), a good configuration
is to use the number of iterations (chosen based on the time
we have allocated for registration) and the length of the incremental translation and rotation from the last iteration
(chosen to be lower than the expected camera movement between frames).
Typical Registration Results
For the purpose of the experiment, we recorded sequences of
RGB-D frames at 30 Hz. Each frame is registered in a pairwise fashion against the previous one. Results are shown in
Figures 1 and 10. Note that if a large number of frames is registered pairwise, individual alignment errors accumulate.
There are numerous techniques in the literature to solve this
issue, such as loop closing via graph optimization or forms of
global registration.
DECEMBER 2015

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

123



Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - December 2015

IEEE Robotics & Automation Magazine - December 2015 - Cover1
IEEE Robotics & Automation Magazine - December 2015 - Cover2
IEEE Robotics & Automation Magazine - December 2015 - 1
IEEE Robotics & Automation Magazine - December 2015 - 2
IEEE Robotics & Automation Magazine - December 2015 - 3
IEEE Robotics & Automation Magazine - December 2015 - 4
IEEE Robotics & Automation Magazine - December 2015 - 5
IEEE Robotics & Automation Magazine - December 2015 - 6
IEEE Robotics & Automation Magazine - December 2015 - 7
IEEE Robotics & Automation Magazine - December 2015 - 8
IEEE Robotics & Automation Magazine - December 2015 - 9
IEEE Robotics & Automation Magazine - December 2015 - 10
IEEE Robotics & Automation Magazine - December 2015 - 11
IEEE Robotics & Automation Magazine - December 2015 - 12
IEEE Robotics & Automation Magazine - December 2015 - 13
IEEE Robotics & Automation Magazine - December 2015 - 14
IEEE Robotics & Automation Magazine - December 2015 - 15
IEEE Robotics & Automation Magazine - December 2015 - 16
IEEE Robotics & Automation Magazine - December 2015 - 17
IEEE Robotics & Automation Magazine - December 2015 - 18
IEEE Robotics & Automation Magazine - December 2015 - 19
IEEE Robotics & Automation Magazine - December 2015 - 20
IEEE Robotics & Automation Magazine - December 2015 - 21
IEEE Robotics & Automation Magazine - December 2015 - 22
IEEE Robotics & Automation Magazine - December 2015 - 23
IEEE Robotics & Automation Magazine - December 2015 - 24
IEEE Robotics & Automation Magazine - December 2015 - 25
IEEE Robotics & Automation Magazine - December 2015 - 26
IEEE Robotics & Automation Magazine - December 2015 - 27
IEEE Robotics & Automation Magazine - December 2015 - 28
IEEE Robotics & Automation Magazine - December 2015 - 29
IEEE Robotics & Automation Magazine - December 2015 - 30
IEEE Robotics & Automation Magazine - December 2015 - 31
IEEE Robotics & Automation Magazine - December 2015 - 32
IEEE Robotics & Automation Magazine - December 2015 - 33
IEEE Robotics & Automation Magazine - December 2015 - 34
IEEE Robotics & Automation Magazine - December 2015 - 35
IEEE Robotics & Automation Magazine - December 2015 - 36
IEEE Robotics & Automation Magazine - December 2015 - 37
IEEE Robotics & Automation Magazine - December 2015 - 38
IEEE Robotics & Automation Magazine - December 2015 - 39
IEEE Robotics & Automation Magazine - December 2015 - 40
IEEE Robotics & Automation Magazine - December 2015 - 41
IEEE Robotics & Automation Magazine - December 2015 - 42
IEEE Robotics & Automation Magazine - December 2015 - 43
IEEE Robotics & Automation Magazine - December 2015 - 44
IEEE Robotics & Automation Magazine - December 2015 - 45
IEEE Robotics & Automation Magazine - December 2015 - 46
IEEE Robotics & Automation Magazine - December 2015 - 47
IEEE Robotics & Automation Magazine - December 2015 - 48
IEEE Robotics & Automation Magazine - December 2015 - 49
IEEE Robotics & Automation Magazine - December 2015 - 50
IEEE Robotics & Automation Magazine - December 2015 - 51
IEEE Robotics & Automation Magazine - December 2015 - 52
IEEE Robotics & Automation Magazine - December 2015 - 53
IEEE Robotics & Automation Magazine - December 2015 - 54
IEEE Robotics & Automation Magazine - December 2015 - 55
IEEE Robotics & Automation Magazine - December 2015 - 56
IEEE Robotics & Automation Magazine - December 2015 - 57
IEEE Robotics & Automation Magazine - December 2015 - 58
IEEE Robotics & Automation Magazine - December 2015 - 59
IEEE Robotics & Automation Magazine - December 2015 - 60
IEEE Robotics & Automation Magazine - December 2015 - 61
IEEE Robotics & Automation Magazine - December 2015 - 62
IEEE Robotics & Automation Magazine - December 2015 - 63
IEEE Robotics & Automation Magazine - December 2015 - 64
IEEE Robotics & Automation Magazine - December 2015 - 65
IEEE Robotics & Automation Magazine - December 2015 - 66
IEEE Robotics & Automation Magazine - December 2015 - 67
IEEE Robotics & Automation Magazine - December 2015 - 68
IEEE Robotics & Automation Magazine - December 2015 - 69
IEEE Robotics & Automation Magazine - December 2015 - 70
IEEE Robotics & Automation Magazine - December 2015 - 71
IEEE Robotics & Automation Magazine - December 2015 - 72
IEEE Robotics & Automation Magazine - December 2015 - 73
IEEE Robotics & Automation Magazine - December 2015 - 74
IEEE Robotics & Automation Magazine - December 2015 - 75
IEEE Robotics & Automation Magazine - December 2015 - 76
IEEE Robotics & Automation Magazine - December 2015 - 77
IEEE Robotics & Automation Magazine - December 2015 - 78
IEEE Robotics & Automation Magazine - December 2015 - 79
IEEE Robotics & Automation Magazine - December 2015 - 80
IEEE Robotics & Automation Magazine - December 2015 - 81
IEEE Robotics & Automation Magazine - December 2015 - 82
IEEE Robotics & Automation Magazine - December 2015 - 83
IEEE Robotics & Automation Magazine - December 2015 - 84
IEEE Robotics & Automation Magazine - December 2015 - 85
IEEE Robotics & Automation Magazine - December 2015 - 86
IEEE Robotics & Automation Magazine - December 2015 - 87
IEEE Robotics & Automation Magazine - December 2015 - 88
IEEE Robotics & Automation Magazine - December 2015 - 89
IEEE Robotics & Automation Magazine - December 2015 - 90
IEEE Robotics & Automation Magazine - December 2015 - 91
IEEE Robotics & Automation Magazine - December 2015 - 92
IEEE Robotics & Automation Magazine - December 2015 - 93
IEEE Robotics & Automation Magazine - December 2015 - 94
IEEE Robotics & Automation Magazine - December 2015 - 95
IEEE Robotics & Automation Magazine - December 2015 - 96
IEEE Robotics & Automation Magazine - December 2015 - 97
IEEE Robotics & Automation Magazine - December 2015 - 98
IEEE Robotics & Automation Magazine - December 2015 - 99
IEEE Robotics & Automation Magazine - December 2015 - 100
IEEE Robotics & Automation Magazine - December 2015 - 101
IEEE Robotics & Automation Magazine - December 2015 - 102
IEEE Robotics & Automation Magazine - December 2015 - 103
IEEE Robotics & Automation Magazine - December 2015 - 104
IEEE Robotics & Automation Magazine - December 2015 - 105
IEEE Robotics & Automation Magazine - December 2015 - 106
IEEE Robotics & Automation Magazine - December 2015 - 107
IEEE Robotics & Automation Magazine - December 2015 - 108
IEEE Robotics & Automation Magazine - December 2015 - 109
IEEE Robotics & Automation Magazine - December 2015 - 110
IEEE Robotics & Automation Magazine - December 2015 - 111
IEEE Robotics & Automation Magazine - December 2015 - 112
IEEE Robotics & Automation Magazine - December 2015 - 113
IEEE Robotics & Automation Magazine - December 2015 - 114
IEEE Robotics & Automation Magazine - December 2015 - 115
IEEE Robotics & Automation Magazine - December 2015 - 116
IEEE Robotics & Automation Magazine - December 2015 - 117
IEEE Robotics & Automation Magazine - December 2015 - 118
IEEE Robotics & Automation Magazine - December 2015 - 119
IEEE Robotics & Automation Magazine - December 2015 - 120
IEEE Robotics & Automation Magazine - December 2015 - 121
IEEE Robotics & Automation Magazine - December 2015 - 122
IEEE Robotics & Automation Magazine - December 2015 - 123
IEEE Robotics & Automation Magazine - December 2015 - 124
IEEE Robotics & Automation Magazine - December 2015 - 125
IEEE Robotics & Automation Magazine - December 2015 - 126
IEEE Robotics & Automation Magazine - December 2015 - 127
IEEE Robotics & Automation Magazine - December 2015 - 128
IEEE Robotics & Automation Magazine - December 2015 - 129
IEEE Robotics & Automation Magazine - December 2015 - 130
IEEE Robotics & Automation Magazine - December 2015 - 131
IEEE Robotics & Automation Magazine - December 2015 - 132
IEEE Robotics & Automation Magazine - December 2015 - 133
IEEE Robotics & Automation Magazine - December 2015 - 134
IEEE Robotics & Automation Magazine - December 2015 - 135
IEEE Robotics & Automation Magazine - December 2015 - 136
IEEE Robotics & Automation Magazine - December 2015 - 137
IEEE Robotics & Automation Magazine - December 2015 - 138
IEEE Robotics & Automation Magazine - December 2015 - 139
IEEE Robotics & Automation Magazine - December 2015 - 140
IEEE Robotics & Automation Magazine - December 2015 - 141
IEEE Robotics & Automation Magazine - December 2015 - 142
IEEE Robotics & Automation Magazine - December 2015 - 143
IEEE Robotics & Automation Magazine - December 2015 - 144
IEEE Robotics & Automation Magazine - December 2015 - 145
IEEE Robotics & Automation Magazine - December 2015 - 146
IEEE Robotics & Automation Magazine - December 2015 - 147
IEEE Robotics & Automation Magazine - December 2015 - 148
IEEE Robotics & Automation Magazine - December 2015 - 149
IEEE Robotics & Automation Magazine - December 2015 - 150
IEEE Robotics & Automation Magazine - December 2015 - 151
IEEE Robotics & Automation Magazine - December 2015 - 152
IEEE Robotics & Automation Magazine - December 2015 - 153
IEEE Robotics & Automation Magazine - December 2015 - 154
IEEE Robotics & Automation Magazine - December 2015 - 155
IEEE Robotics & Automation Magazine - December 2015 - 156
IEEE Robotics & Automation Magazine - December 2015 - 157
IEEE Robotics & Automation Magazine - December 2015 - 158
IEEE Robotics & Automation Magazine - December 2015 - 159
IEEE Robotics & Automation Magazine - December 2015 - 160
IEEE Robotics & Automation Magazine - December 2015 - 161
IEEE Robotics & Automation Magazine - December 2015 - 162
IEEE Robotics & Automation Magazine - December 2015 - 163
IEEE Robotics & Automation Magazine - December 2015 - 164
IEEE Robotics & Automation Magazine - December 2015 - 165
IEEE Robotics & Automation Magazine - December 2015 - 166
IEEE Robotics & Automation Magazine - December 2015 - 167
IEEE Robotics & Automation Magazine - December 2015 - 168
IEEE Robotics & Automation Magazine - December 2015 - Cover3
IEEE Robotics & Automation Magazine - December 2015 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com