Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Mesh-Based Inverse Kinematics
R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
CS468, Wed Nov 9th 2005
SIGGRAPH 2005
The problem
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic 1
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
General approach
2
Learn from experience...
3
As-rigid-as-possible shape interpolation [ACL00]
Outline
4Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
• Related work
• Overview of the method
• The method step by step
• Numerics
• Experiments
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic 5
Related workSubdivision
[ZSS97, KCVS98, KBS00, GSS99]
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic 6
Skeleton-based kinematics
Related work
[JT05, ASKTR05]
7Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Relation to mesh editing
Inverse kinematics
coating transfer mesh transplanting
8
Intrinsic mesh editing methodsRelated work
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Laplacian (or differential) coordinates [SLCARS04]
Overview of the method
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Let M0, · · · ,Mk be the input meshes (M0 is the reference mesh).
1. map each transformation T i (i ≥ 1) to a feature vector fi ∈ R9m,where m is the number of triangles of the base mesh
2. define the space Σ of admissible transformations as the span ofthe {fi}i≥1
3. given a set of specified vertex positions v1, · · · , vl, find a featurevector f close to Σ that maps each constrained vertex vj to a pointclose to its specified position vj
9
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
10Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
For the jth triangle of M0, let φj be the affine transformation that mapsthe triangle onto its image in Mi:
∀p ∈ R3, φj := Tj p + tj
linear (3x3 matrix)
translation vector
• only the gradient of φj is encoded: Dφj(p) = Tj
• to make Tj unique, a 4th vertex is added to the jth triangle, alongthe normal direction
v1
v2v3
v4
v1
v2
v3
v4
φj
from [SP04]
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
10Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
For the jth triangle of M0, let φj be the affine transformation that mapsthe triangle onto its image in Mi:
∀p ∈ R3, φj := Tj p + tj
linear (3x3 matrix)
translation vector
• only the gradient of φj is encoded: Dφj(p) = Tj
• to make Tj unique, a 4th vertex is added to the jth triangle, alongthe normal direction
Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1
tj = v4 − Tj v4
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
10Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
For the jth triangle of M0, let φj be the affine transformation that mapsthe triangle onto its image in Mi:
∀p ∈ R3, φj := Tj p + tj
linear (3x3 matrix)
translation vector
• only the gradient of φj is encoded: Dφj(p) = Tj
• to make Tj unique, a 4th vertex is added to the jth triangle, alongthe normal direction
Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1
tj = v4 − Tj v4
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
11
Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
linear in v1, v2, v3, v4
(3× 3)
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
11
Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
linear in v1, v2, v3, v4
(3× 3)
fij :=
TjxT
TjyT
TjzT
= Gj
v1x...
v4x
v1y...
v4y
v1z...
v4z
Tj :=
TjxTjy
Tjz
Gj :=
GjxGjy
Gjz
∈ R9
∈ R12
(9× 12)
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
11
Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
linear in v1, v2, v3, v4
(3× 3)
fij :=
TjxT
TjyT
TjzT
= Gj
v1x...
v4x
v1y...
v4y
v1z...
v4z
∈ R9
∈ R12
(9× 12)
fi :=
f i1...
f im
= G v
G :=
Gx
Gy
Gz
Feature vectors
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affinemap from M0 to Mi
11
Tj = [v1 − v4, v2 − v4, v3 − v4] · [v1 − v4, v2 − v4, v3 − v4]−1
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
linear in v1, v2, v3, v4
(3× 3)
fij :=
TjxT
TjyT
TjzT
= Gj
v1x...
v4x
v1y...
v4y
v1z...
v4z
∈ R9
∈ R12
(9× 12)
fi :=
f i1...
f im
= G v∈ R9m
(9m× 3(n + m))
∈ R3(n+m)
G :=
Gx
Gy
Gz
(3m× (n + m))
Feature vectors
12
f = G v∈ R9m
∈ R3(n+m)
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Inverse transformation
(9m× 3(n + m))
”v = G−1 f ”
Feature vectors
12
f = G v∈ R9m
∈ R3(n+m)
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Inverse transformation
(9m× 3(n + m))
”v = G−1 f ”
9m > 3(n + m) ⇒ G is not a square matrix
By fixing one vertex, one reduces the dim. to zero
To a feature vector f ∈ R9m corresponds ≤ 1tranformed mesh (up to translation)
Feature vectors
12
f = G v∈ R9m
∈ R3(n+m)
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Inverse transformation
(9m× 3(n + m))
”v = G−1 f ”
9m > 3(n + m) ⇒ G is not a square matrix
By fixing one vertex, one reduces the dim. to zero
least squares problem:
v∗ = arg minv‖G v− f‖ most ”plausible” positions
To a feature vector f ∈ R9m corresponds ≤ 1tranformed mesh (up to translation)
If too many constraints (or imprecisions), theset of solutions can be empty
Linear feature space
Σ := Span(f1, · · · , fk)
To every vector w of coordinates in the basis(f1, · · · , fk
)corresponds
a feature vector fw =∑
i wi fi ∈ R9m
Once one or more vertex positions are set, compute
v∗,w∗ = arg minv,w
∥∥∥G v− (f1, · · · , fk) w∥∥∥
13Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Linear feature space
Σ := Span(f1, · · · , fk)
To every vector w of coordinates in the basis(f1, · · · , fk
)corresponds
a feature vector fw =∑
i wi fi ∈ R9m
Once one or more vertex positions are set, compute
v∗,w∗ = arg minv,w
∥∥∥G v− (f1, · · · , fk) w∥∥∥
To penalize solutions that are far from the fi, take the mean f of the fi
as the origin: fw = f +∑k
i=1 wi fi
and compute:
v∗,w∗ = arg minv,w
∥∥∥G v− f− (f1, · · · , fk) w
∥∥∥+ α ‖w‖
13Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Linear feature space
14Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Linear feature space
14Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
f1
f2
f( 13 , 2
3 )
Nonlinear feature space
15Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
For each triangle j of M0, separate the rotational component from thescale and shear components of Tj by polar decomposition: Tj := Rj Sj
Interpolate the Sij linearly, but the T i
j by composition:
”T ij (w) :=
k∏i=1
Rij
wi ·k∑
i=1
wi Sij ” R2
θ = R2θ
Nonlinear feature space
15Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
For each triangle j of M0, separate the rotational component from thescale and shear components of Tj by polar decomposition: Tj := Rj Sj
Interpolate the Sij linearly, but the T i
j by composition:
”T ij (w) :=
k∏i=1
Rij
wi ·k∑
i=1
wi Sij ” R2
θ = R2θ
For non-integer wi, use the exponential map:
T ij (w) := exp
(k∑
i=1
wi log Rij
)·
k∑i=1
wi Sij
Nonlinear feature space
15Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
For each triangle j of M0, separate the rotational component from thescale and shear components of Tj by polar decomposition: Tj := Rj Sj
Interpolate the Sij linearly, but the T i
j by composition:
”T ij (w) :=
k∏i=1
Rij
wi ·k∑
i=1
wi Sij ” R2
θ = R2θ
(∗)non-linear
To retrieve v∗,w∗, solve the following least squares problem:
v∗,w∗ = arg minv,w
‖G v− fw‖
For non-integer wi, use the exponential map:
T ij (w) := exp
(k∑
i=1
wi log Rij
)·
k∑i=1
wi Sij
Nonlinear feature space
16Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
linearinterpolation
exponential map
scale/shear
rotational
Numerics
17Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
• To solve (∗), use Gauss-Newton algorithm
• To accelerate the resolution of the linear least squares problem, useCholesky decomposition
see details in the paper
reduces (∗) to solving a linear least squares problem at eachiteration of the algorithm (∼ 6 iterations in practice)
Experimental results
18Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
Pentium IV @ 3.4 GHz2GB RAM
Cholesky
one iteration
Conclusion
19Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovic
• MeshIK is an easy-to-use mesh manipulation tool, based on an in-tuitive interface
• the algorithm adapts to each model by learning from example meshes
• the method is effective in practice and provides interactive timings
• What about meshes of genus > 0?
• Try other feature spaces, to enhance the feature interpolation
• Try other numerical techniques, to enhance speed