Point Set Matching
Goal is to compute a similarity measure for
a pair of attributed point sets
Registration of Point Sets
with Rigid Transformations
Thomas Funkhouser
Princeton University
A
B
CS526, Fall 2010
Distance(A,B) = ?
Point Set Matching
Point Set Matching
Challenge is to find corresponding points
• “Subset of points in A” may match “subset of points in B”
A
A
B
Point Set Matching
B
Point Set Matching
Calculating a superposition and distance measure
is easy if correspondences are known (proposed)
A
Calculating a superposition and distance measure
is easy if correspondences are known (proposed)
B
Calculating a superposition and distance measure
is easy if correspondences are known (proposed)
Ai
Bi
Least-squares optimal superposition of corresponding points
1
Point Set Matching
Outline
Calculating a superposition and distance measure
is easy if correspondences are known (proposed)
RMSD( A, B) =
N
∑(A − B )
i
2
i
i =1
Ai
Bi
Ai − Bi
Introduction
Point set matching
•
•
•
•
Brute force search
RANSAC
Geometric hashing
Assocation graphs
Iterative closest point
Discussion
Distance(A,B) = RMSD(A,B) + OtherTerms …
Brute Force Search
Brute Force Search
Simple method:
Simple method:
• Try all possible sets of point correspondences
• Score the alignment for each one
A
• Try all possible sets of point correspondences
• Score the alignment for each one
B
A
Problem:
B
Problem:
• O(nm) possible sets of m correspondences
among n points
• O(nm) possible sets of m correspondences
among n points
Brute Force Search
Outline
Simple method:
Introduction
• Try all possible sets of point correspondences
• Score the alignment for each one (e.g., RMSD)
A
8 Point aligned
RMSD = 3.1
B
Point set matching
• Brute force search
RANSAC
• Geometric hashing
• Assocation graphs
• Iterative closest point
Discussion
Problem:
All points aligned
RMSD = 0.2
• O(nm) possible sets of m correspondences
among n points
2
RANSAC
Outline
Randomly sample set of possible correspondences
• Randomly generate a small set of point correspondences
• Compute the aligning transformation for correspondences
Score how well other points align after that transformation
Introduction
Point set matching
• Brute force search
• RANSAC
Geometric hashing
• Assocation graphs
• Iterative closest point
Discussion
[Schmitt02]
Geometric Hashing
Geometric Hashing
Discretize transformations and scoring
Discretize transformations and scoring
3
3
2
y
2
1
Rotation &
Translation
for (4,1)
1
5
5
4
4
3
Point Set A
Point Set A
b
x
1
4
b
2
c
5
c
d
a
d
a
i
i
e
e
j
j
h
h
k
k
f
g
Point Set B
f
g
Point Set B
[Wolfson97]
Geometric Hashing
[Wolfson97]
Geometric Hashing
Discretize transformations and scoring
Discretize transformations and scoring
3
3
y
2
y
2
1
Rotation &
Translation
for (4,1)
1
5
5
4
4
Point Set A
i
j
Point Set A
x
b
x
b
c
c
d
a
d
a
i
j
h
k
g
i
Rotation &
Translation
for (i, j)
e
Rotation &
Translation
for (i, j)
e
j
h
k
f
Point Set B
g
f
Point Set B
[Wolfson97]
[Wolfson97]
3
Geometric Hashing
Geometric Hashing
Discretize transformations and scoring
Preprocessing
3
y
2
Rotation &
Translation
for (4,1)
1
5
4
3
2
Point Set A
Rotation &
translation
for all pairs
of points in
all molecules
1
x
5
4
b
c
d
a
i
h
k
g
Point Set
in Database
Rotation &
Translation
for (i, j)
e
j
f
Score correspondences
Store (molecule, ref. frame, properties, point)
for every transformed point in hash table
Point Set B
[Wolfson97]
Geometric Hashing
Preprocessing
Rotation &
translation
for one pair
of points
c
d
a
i
For each triple of points
Compute reference frame
For each point
Transform point into reference frame
Hash (molecule, ref. frame, properties, point)
e,3
Query processing
e
j
h
k
g
[Wolfson97]
Geometric Hashing
Query processing
b
Hash Table
f
Point Set
Query
h,5
g,2
[Wolfson97]
Geometric Hashing
Choose any triple of points
Compute reference frame
For each point
Transform point into reference frame
For each entry in hash bin for transformed point
Check point properties
Vote for (molecule, ref. frame)
Outline
Preprocessing complexity
Introduction
• O(n4) for n points per binding site
Point set matching
§ O(n3) possible triples * O(n) transformations per triple
• Brute force search
• RANSAC
• Geometric hashing
Association graphs
• Iterative closest point
Query complexity
• O(m) * binsize for m points in query binding site
§ 1 triple * O(m) transformations per triple *
binsize hash processing per transformation
Discussion
[Wolfson97]
4
Association Graphs
Association Graphs
G1
G2
G1
a
G2
a
b
b
2
1
f
c
3
d
2
1
f
c
3
d
4
e
6
4
e
5
6
5
Represent both points sets as complete graphs (G1 and G2).
(edges connect all pairs of vertices within each point set)
[Schmitt02, Brown82]
Association Graphs
G1
[Schmitt02, Brown82]
Association Graphs
Association Graph
G2
a
b
G1
f
4
d
6
a4
f6
b
3
c
Association Graph
a
2
1
f
c
G2
a5
c4
3
f1
4
c5
d
5
2
1
6
e
e
e6
b2
e1
•Depth
5
•Propensity
d3
d2
b3
•Conservation
Create vertices in the association graph for all
compatible pairs of vertices in the original graphs.
This can lead to a large number of vertices.
•Charge
•Hydrophobicity
•Secondary structure type
Create vertices in the association graph for all
compatible pairs of vertices in the original graphs.
Compatibility could refer to chemical properties.
•Destabilization
[Schmitt02, Brown82]
Association Graphs
G1
a4
b
f6
f
c
Association Graphs
Association Graph
a
G2
1
a5
G1
4
c5
e6
5
d3
d2
f6
f
c
b3
3
c4
f1
4
c5
6
e6
5
b2
e1
Create edges between (uv) and (wx) if the edges between
(u) and (w) as well as between (v) and (x) match.
G2
2
1
a5
d
e
b2
e1
a4
b
3
c4
6
Association Graph
a
2
f1
d
e
[Schmitt02, Brown82]
d3
d2
b3
Create edges between (uv) and (wx) if the edges between
(u) and (w) as well as between (v) and (x) match.
For this example, edge length is the only consideration
[Schmitt02, Brown82]
[Schmitt02, Brown82]
5
Association Graphs
G1
Association Graphs
Association Graph
a
a4
f6
b
a5
G1
1
c4
4
6
e
e6
d3
d2
f6
f
c
G2
a5
1
3
f1
4
c5
6
e
e6
5
b2
b3
e1
d3
d2
b3
Create edges between (uv) and (wx) if the edges between
(u) and (w) as well as between (v) and (x) match.
Create edges between (uv) and (wx) if the edges between
(u) and (w) as well as between (v) and (x) match.
For this example, edge length is the only consideration
For this example, edge length is the only consideration
[Schmitt02, Brown82]
Association Graphs
G1
a4
f6
b
Computational complexity:
G2
a5
1
c4
3
4
c5
d
6
e
• O(2n) for n points
• NP-complete
f1
• Branch and bound algorithms
2
f1
f
e6
5
b2
e1
d3
d2
[Schmitt02, Brown82]
Association Graphs
Association Graph
a
c
2
c4
d
5
b2
e1
a4
b
3
c5
d
Association Graph
a
f1
f
c
G2
2
b3
Finding correspondences: The the largest set of corresponding
nodes in the same configuration is the maximal clique in the
association graph
Find the Maximal Clique{
return Cliques(empty, all nodes)
}
Association Graph
a4
a5
f6
c5
e6
Cliques(X, Y){
if (no node in Y-X is connected to all of X){
return X;
}else{
y = node in Y connected to all of X;
return Largest(Cliques(X union y, Y},
Cliques{X, Y-y});
}
}
e1b2
d3
[Schmitt02, Brown82]
Outline
Introduction
c4
d2
b3
[Schmitt02, Brown82]
Iterative Closest Points
Given two point sets
Point set matching
•
•
•
•
Brute force
RANSAC
Geometric hashing
Assocation graphs
Iterative closest points
A
B
Discussion
[Besl92]
6
Iterative Closest Points
Iterative Closest Points
Given two point sets
A
Given two point sets and an initial guess for the
transformation that aligns them
B
[Besl92]
Iterative Closest Points
[Besl92]
Iterative Closest Points
Assume closest points correspond
Assume closest points correspond: A→B
Ai
Bi
[Besl92]
Iterative Closest Points
Iterative Closest Points
Assume closest points correspond: A→B and B→A
Ai
[Besl92]
Rejecting outliers
Bi
Outlier
[Besl92]
[Besl92]
7
Iterative Closest Points
Iterative Closest Points
Find the transformation that optimally aligns
proposed correspondences (superposition)
Iterate until convergence
1.
2.
3.
4.
5.
6.
Select source points (from one or both molecules)
Match to points in the other molecule
Weight the correspondences
Reject outlier point pairs
Compute an error metric for the current transform
Minimize the error metric w.r.t. transformation
Computational complexity
d ( A, B ) =
∑ A −B
i
Ai ∈A
2
+
∑ A −B
2
• O(k * nlogn) for n points per binding site and k iterations
i
Bi ∈B
§ k iterations * O(n) points * O(logn) to find closest point
[Besl92]
Iterative Closest Points
Slide courtesy of Szymon Rusinkiewicz
Summary
Brute force
• Accurate, slow
RANSAC
• Approximate
Geometric hashing
• Fast query, after slow preprocessing
• Distance threshold implicit in hash bucket sizes
Association graphs
• Expensive for large point sets
• Distance threshold for “associations”
Iterative closest points
Demo courtesy of Szymon Rusinkiewicz
• Fast, in practice
• Requires good initial guess
8
© Copyright 2026 Paperzz