Date post: | 22-Jan-2018 |
Category: |
Data & Analytics |
Upload: | aist |
View: | 169 times |
Download: | 4 times |
Dmitrii Tihonkih
Department of Mathematics, Chelyabinsk State University, Russian Federation
Artyom Makovetskii
Department of Mathematics, Chelyabinsk State University, Russian Federation
Vladislav Kuznetsov
Department of Mathematics, Chelyabinsk State University, Russian Federation
E-mails: [email protected], [email protected], [email protected]
The iterative closest points algorithm and affine
transformations
AIST'2016
IntroductionThe standard ICP starts with two point clouds fortheir relative rigid-body transform, anditeratively refines the transform by repeatedlygenerating pairs of corresponding points in theclouds and minimizing an error metric.
The ICP stages:
1. Selection of some set of points in oneclouds.
2. Matching these points to samples inthe other cloud.
3. Rejecting certain pairs based onlooking at each pair individually orconsidering the entire set of pairs.
4. Assigning an error metric based onthe point pairs.
5. Minimizing the error metric(variational subproblem of the ICP).
Our main focus is on the accuracy of the finalanswer and the ability of ICP to reach thecorrect solution for a given difficult geometry.We consider transformation that hold theangles between lines in the cloud of points.Also we consider the ICP minimizing the errormetric subproblem for the case of an arbitraryaffine transformation.
The matching procedure for sets πand π
Let π = {π₯0, β¦ , π₯πβ1} be an set consist of πpoints in β3 and π = {π¦0, β¦ , π¦πβ1} be an set consist of π points in β3. Denote by (π₯π , π¦π),
π₯π β π, π¦π β π the pair of corresponding
points. Note, that each point from π and π can be included to the set of pairs just one time.
At the beginning the set of pairs is empty. Let π β β be a number such that:
3 β€ π β€ min(π, π).
1. Consider the following subset ππ of the π: ππ = {π₯πβ πβ1 , β¦ , π₯πβ πβ1 +πβ1}.
2. Let πΆ be a closed piecewise linear curve in β3
that consist of π line segments. The π-th segment connects points π₯πβ πβ1 +π and π₯πβ πβ1 +π+1.
Denote by πΌπ a minimal flat angle that is
constructed by π-th and (π + 1)-th segments.Let ππ be a vector
ππ = {πΌ0, β¦ , πΌπβ1},
where elements Ξ±j, j = 0, β¦ ,m β 1 are
respective angles.
3. Consider all possible combinations of mpoints in the set Y besides the points that already included to the set of pairs. For an each combination we construct the vector π by the same way as in step 2.
4. We choose a vector from the set of vectors of the step 3 such that distance between them and ππ is minimal relatively the norm πΏ1. Denote this vector as ππ.
5. We construct π pairs of the points by ππ and ππ. Add this m pairs to the set of pairs.
6. If the number of remaining points in π or π less that π then procedure terminates. Else π β π + 1and go to step 1.
We use this procedure only as first iteration on the ICP algorithm. Obtained after the first iteration the transformation matrix and the translation vector are used for a second iteration. In the next iterations we use the standard nearest neighbor approach.
The described above approach can good work not for rigid transformation only but for sufficiently wide subset of the affine transformations.
The ICP variational subproblem for
an arbitrary affine transformation
Suppose that the relationship between points in π and π is done by such a way that for each point π₯π is calculated corresponding point π¦π.
The ICP algorithm is offten considered as a geometrical transformation for rigid objects mapping π to π:
π π₯π + π‘,
where π is a rotation matrix, π is a translation vector, π = 0,β¦ , π β 1.
The S-ICP algorithm is given by
π ππ₯π + π‘,
where π is a scaling matrix.
ICP variational problem for the case of an arbitrary affine transformation.Let π½(π΄, π) be the following function:
π½ π΄, π = π=0πβ1 β₯ π΄ π₯π + π‘ β π¦π β₯2.
The ICP variational problem can be stated as follows:
argπππ π½ π΄, π‘ ,
π΄, π‘
where
π΄ =
π11 π12 π13
π21 π22 π23
π31 π32 π33
, π‘ =
π‘1π‘2π‘3
,
π₯π =
π₯1π
π₯2π
π₯3π
, π¦π =
π¦1π
π¦2π
π¦3π
.
The elements of the first row of the matrix π΄β
that minimizes π½ are computed as
π11 = π=0
πβ1 π¦1πβ π12π₯2πβ π13π₯3π π₯1π
π=0πβ1 π₯1π
2 ,
π12 = π=0
πβ1 πΎπ πΌπβπ13 π=0πβ1 π½π πΌπ
π=0πβ1 πΌπ
2 ,
π13 = π=0
πβ1 ππ ππ
π=0πβ1 ππ
2 .
Computer simulation
Let π be the set consists of 80 points. The coordinates of points are randomly generated (by the uniform distribution). The values of all coordinates belong to the range [0, . . . , 100]. The set π is obtained from the set π by the geometrical transformation π = π β π + π‘, where π and π‘ are described below:
π =1 0 00 0.5 β0.8660250 0.866025 0.5
,
π‘T = 5 6 7 .
The standard approach based on nearest neighbor method gives the following results(open source, C++):
π =0.45 0.64 0.610.89 β0.36 β0.27β0.05 β0.67 0.73
,
π‘T = β7.56 11.22 β11.42 .
Estimated matrix π and vector π‘ (our algorithm):
π =0.99 9.78eβ06 9.41eβ05
β0.000100597 0.499911 β0.866098β2.66211eβ05 0.865921 0.499979
,
π‘T = 5.0028 6.0127 7.00388 .