[PPT file - 2 MB]
Download
Report
Transcript [PPT file - 2 MB]
Recovering Articulated Object Models
from 3D Range Data
Dragomir Anguelov
Daphne Koller
Hoi-Cheung Pang Praveen Srinivasan
Sebastian Thrun
Computer Science Dept.
Stanford University
Problem overview
Data:
Task: Recover the articulated
object model
1.
2.
3.
Articulated object observed in
different configurations
3D range surfaces (meshes)
obtained by a scanner
Register all surfaces
Cluster the object surface into
rigid parts
Recover joints linking the parts
Applications of articulated
models
Animation, object detection,
scene segmentation
Surface registration
Algorithm input: meshes Z0, Z1, … ZN
3
Correlated Correspondences algorithm [Anguelov et al ‘04]
Pick template mesh X = Z0
Need to recover point-to-point correspondences
between X and instance meshes Zi , i={1, …, N}
Any registration algorithm providing can be used
2
1
Unsupervised nonrigid registration algorithm
Handles large deformations, occlusion (but not clutter)
Algorithm Overview
Computes embedding of mesh Z into mesh X
defined as a joint assignment to correspondences
Encodes correspondence correlations (minimizing
deformation, preserving geodesic distances) as pairwise
potentials
in a Markov network over
Uses Loopy-BP to obtain a good joint assignment
to all variables
Clustering into rigid parts:
Generative model
1. Rigid part points share the same
rigid transformaition in each instance
Part labels a1
aM
…
Transformations
T
Template X
Points
…
x1
Transformed
Model
Instance Z
xM
y1
Point labels
Points
j = Part (xj)
b1
…
yM
…
translation
2. Each part is a connected region of
the template mesh surface
a) Soft contiguity constraints:
bk
z1
rotation
If
and
are connected in X
zk
k = ModelPoint (zk)
Assume values provided by a
nonrigid registration algorithm
for
b) Hard contiguity constraints:
Each part consists of a single
connected component of the
surface of X
Clustering into rigid parts: Optimization
Model Summary:
Ignoring hard contiguity constraints, generative model defines a
Markov Network over the part labels :
Objective
Iterative Optimization
Point in mesh Zi , generated
by template point xj
E-step: Given transformations , compute the part labels
maximizing Eq. (1) and satisfying the hard contiguity constraints
M-step: Given part labels , compute transformations
Clustering into rigid parts: E-Step
The problem of finding a MAP assignment to
given
which
maximizes Eq. (1) can be expressed as an integer program (IP). A
relaxation of the IP produces a linear program (LP) [Kleinberg et al ’99].
For 2-part models, the optimal LP solution is also the optimal IP solution.
For n-part models, n>2:
In case of a fractional LP solution, a rounding procedure produces an IP solution
within a factor of 2 of the optimal.
The LP can be solved very efficiently by using multiway min-cuts
[Kolmogorov et al ’04]
The LP solution may not satisfy hard contiguity constraints.
A part consisting of m connected components is split into m separate parts
which doesn’t change the objective in Eq. (1).
Clustering into rigid parts: LP formulation
Introduce variables
Log-cost associated with potential
s.t.
becomes
where
Define separation cost of an edge as
Putting everything together:
Relax binary constraints
to obtain LP
where
Clustering into rigid parts:
M-step and Annealing
M-step: find rigid part transformations
Optimization function decomposes into a separate equation for
each
given part labels
:
Eq. (2) is isomorphic to the ICP problem [Besl’ 92]. Close form
estimate of
is obtained by solving a simple LP.
Annealing
Number of parts in solution depends on the tradeoff
where large values of result in fewer parts
When estimate of
is poor and is large, solving E-step LP is
hard, because multiple plausible solutions with similar scores exist
Starting with low values of and gradually increasing performs
best in practice
Clustering into Rigid Parts: Initialization
Need good initial values for the transformations
Method 1: Cluster local rigid transformations [Cheung et al ’03]
• Associate a vector of transformations
with each point
(estimate
using the known correspondences for all instance meshes)
• Cluster points into k parts using adaptive PCA [Archer et al ’02]
• Slow: >10 mins for 2000 point models
Template X
a)
b)
Method 2: Break surface into k arbitrary fragments of
approximately equal size
• Fast: <1s for 2000 point models
• Same final results!
a) Rigid parts after initialization
b) Rigid parts after EM
Optimizing the Joint Positions
A joint is a point belonging to two parts simultaneously: [Cheung et al ’03]
Joint between parts p and q
To solve for the joint, must optimize
Sometimes, the solution can be an entire
space of points
Example: a joint with one degree of freedom
Introduce an additional regularization term,
enforcing that the joint is close to the boundary
between two parts in X
a)
b)
a) Rigid parts after EM
b) Estimated joints
Results: Puppet Dataset
Correctly identifies all 15 puppet parts and the skeleton
Results: Initialization
Testing EM Initialization
Initialize with a different number of parts k
If k > 15, the algorithm consistently finds the correct number of
parts (15)
Results: Arm Dataset
Correctly identifies 4 arm parts and the skeleton
in the presence of non-rigid deformation
Results: Annealing
Results of annealing with increasing value of
Increasing decreases the number of parts (A – D)
Increasing too much results in a partition which tries to reduce
the number of links between parts (E)
Conclusions and Future Work
Algorithm for recovering articulate object models from 3D data
Algorithm properties
Clusters the object surface into rigid parts
Recovers the articulated object skeleton
Probabilistic formulation
Efficient global inference
Robustness to local maxima
Algorithm recovers complex models consisting of a large
number of parts in real world datasets
Future work
Extend the algorithm to allow and explicitly model (small) deformations
of the articulated parts