1.2 Limitations
The main limitation of the algorithm is that since PCA
is applied to a subset of the nodes of a relatively
coarse grid, the method is less accurate than the usual
PCA on mesh vertices when the two meshes are iden-
tical or almost identical. In a sense, this larger error
is a trade-off for the increased robustness and our ex-
periments show that it is in a range that in most appli-
cations would be considered tolerable.
Since the method is underpinned by PCA, it is not
particularly well suited for inputs that have high levels
of rotational symmetry. Finally, since the algorithm is
highly geometric in nature, it could be challenging to
adapt to incorporate non-geometric primitives such as
colour (Roy et al., 2004).
2 RELATED WORK
Most of the work on mesh alignment focuses on and
enhances the Iterative Closest Point (ICP) algorithm,
which takes a set of points common to both input
meshes and iteratively rotates the mesh until the com-
mon points are aligned as closely as possible. A va-
riety of modifications and enhancements to the orig-
inal ICP algorithm have been developed and stud-
ied; to make it geometrically stable (Gelfand and
Rusinkiewicz, 2003), and to make it work with ap-
proximate nearest neighbouring points or with added
noise (Maier-Hein et al., 2010). Other ICP based
methods require an explicitly defined initial guess,
which prevents the method being used in a completely
automated manner (Besl and McKay, 1992).
Due to the variants of the ICP algorithms requiring
subset inputs, and possibly some manual intervention,
they are not directly comparable to the algorithm pre-
sented here. In reality, many practitioners use PCA
directly on the vertices of the input meshes in order
to provide an alignment that is good enough to work
with. PCA is a robust statistical method that is used
extensively for non-geometric problems requiring di-
mensionality reduction. It is also efficient, since it is
essentially a quadratic optimisation problem based on
variance maximisation. A technique that is similar in
spirit, called Independent Component Analysis (ICA)
(Hyv
¨
arinen et al., 2001), is based on quartic optimi-
sation and has been used for 3D object recognition
(Sahambi and Khorasani, 2003).
Despite its popularity, PCA has been reported to
perform poorly when aligning meshes for 3D model
recognition and this has been cited as motivation
for developing rotationally invariant mesh descrip-
tors (Kazhdan et al., 2003). Nevertheless, several
important shape descriptors, such as (Cantoni et al.,
2013), shape histograms (Ankerst et al., 1999) and de-
scriptors based on higher order moments (Elad et al.,
2002), are not rotationally invariant and thus require
alignment. Extensions to PCA to overcome its short-
comings include PCA performed on the normals of
a surface (Papadakis et al., 2007), and a continuous
version of PCA applied to whole mesh triangles rather
than just their vertices (Vranic et al., 2001). The latter
is independent from the distribution of vertices within
the mesh and thus, overcomes some of the limitations
of PCA the same way the method proposed here does.
However, it requires a triangle mesh as input and has
no obvious extensions to point clouds.
In our implementation, we used the Point Cloud
Library (Rusu and Cousins, 2011) for PCA and Mesh-
Lab (Cignoni et al., 2008) for the various geomet-
ric operations we performed as part of our testing;
smoothing, simplification, adding noise and remesh-
ing.
3 ALIGNMENT ALGORITHM
We begin with two meshes (A and B), assuming that
mesh B has been obtained from mesh A after a rota-
tion by an unknown angle around an unknown axis
and that some mesh processing operation may have
been applied to B. Each mesh is centred on the origin
as a preprocessing step. The translation can be stored
and the reverse operation applied at the end of the pro-
cedure. The basic alignment algorithm first creates
a regular grid around each mesh, then computes the
subset of the grid nodes that are near to the mesh, and
finally applies PCA to this subset of nodes.
3.1 The Basic Algorithm
For each mesh M, we first create a regular 3D lattice,
L
M
, around the mesh M. The dimension of the grid
is given by the user and trades-off the speed of the
algorithm against the accuracy of the alignment. We
then cycle through all the faces in M, and perform the
following for each face f ∈ M:
• Calculate the smallest rectangular subgrid, P
f
in
L
M
that completely contains f .
• To increase robustness, P
f
is expanded by one
node in each direction along each axis, for exam-
ple, a 2 × 2 × 3 subgrid becomes 4 × 4 × 5.
• For each lattice node, n ∈ P
f
, determine the short-
est distance from n to f .
• If the distance from n to f is less than 2 times the
edge of a grid cell, export the node to list I
M
(the
MeshAlignmentusingGridbasedPCA
175