Point Pattern Matching: Pattern Recognition 2017/2018 Marc Van Kreveld
Point Pattern Matching: Pattern Recognition 2017/2018 Marc Van Kreveld
yes no no
The rectangle problem
• It appears that about 30% of the facets to be seen
in a LiDAR point cloud of an urban scene can be
considered a rectangle
The rectangle problem
• Two conditions:
– It should not have extra stuff (outside)
– It should not have missing stuff (inside)
The rectangle problem
• Formalization of the two conditions:
– no extra stuff outside no point outside at all
– no missing stuff inside take the union of radius-r disks
centered on the points, and require that this union
contains the rectangle completely
intercept
1 1
1 1
1 1
1
slope
Hough transform
• The middle of the cell with the highest number
gives slope and intercept of a line with many points
close by
intercept
1 1
1 1
1 1
1
slope
Hough transform
• In 3D, the grid for representing all planes is 3-
dimensional (and may take up a lot of storage space)
(with z-axis)
intercept
Matching two point patterns, exact
• Matching point sets A and B exactly
– under translation
– under translation and scaling
– under translation and rotation
– under translation, scaling and rotation
Matching two point patterns, exact
• If two point sets match exactly, then their centers of
mass coincide
translate A so that its center of mass lies at the
origin, and do the same for B
• For the translation-only case, we just need to check
whether all points of A and B lie at the same
locations
• Translate A and B so that their centers of mass
lie at the origin
• Scale B so that the point furthest from
the origin lies as far away as in A
O(n log n) time
• Check if the point sets coincide
Matching two point patterns, exact
• The case translation, scaling, and rotation in the plane:
– After the translation and scaling parts, if the furthest point
from the origin in A and in B are unique, then rotate to make
them coincide, and then test the point sets
– If the furthest points are not unique, there may be more
rotations to test (if there are different numbers of furthest
points in A and B, then no exact match can exist)
o o
Matching two point patterns, exact
• The case translation, scaling, and rotation in 3D:
– After the translation and scaling parts, if the furthest
point from the origin in A and in B are unique, then make
them coincide
– Assume b is the furthest point in B. Then we can still
rotate in 3D around the axis ob to make the point sets
coincide. Choose the point furthest from ob in B and the
one furthest from the
corresponding axis in A,
and make them coincide
Matching two point patterns, exact
• The case translation, scaling, and rotation:
In practice, the two point sets will never coincide
exactly when rotation is involved, due to rounding in
storage and computation when rotating
Matching two point patterns
• When there is imprecision (noise, geometric
deviations), we want to match each point of A to
within a neighborhood (-disk) of a unique point
in B with a transformation
A B
Matching two point patterns
• Note that this is not the same as finding a
transformation so that the Hausdorff distance
from A to B is at most the imprecision value
A B
Matching two point patterns
• Within this class of problems, deciding whether a
transformation T exists that maps A close to B:
– The properties for the exact case no longer hold
– Translation-only is easier than the rest (obviously)
– Using squares for an -neighborhood is easier than
using -disks
– Hausdorff (many-to-one) or one-to-one-matching may
be computationally easier, depending on the precise
problem setting
Example application: grid maps