Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, - - PowerPoint PPT Presentation

mesh based inverse kinematics
SMART_READER_LITE
LIVE PREVIEW

Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, - - PowerPoint PPT Presentation

CS468, Wed Nov 9th 2005 Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi c SIGGRAPH 2005 The problem 1 Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi c General approach


slide-1
SLIDE 1

Mesh-Based Inverse Kinematics

  • R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´

c

CS468, Wed Nov 9th 2005

SIGGRAPH 2005

slide-2
SLIDE 2

The problem

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

1

slide-3
SLIDE 3

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

General approach

2 Learn from experience...

slide-4
SLIDE 4

3

As-rigid-as-possible shape interpolation

[ACL00]

slide-5
SLIDE 5

Outline

4

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

  • Related work
  • Overview of the method
  • The method step by step
  • Numerics
  • Experiments
slide-6
SLIDE 6

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

5

Related work

Subdivision

[ZSS97, KCVS98, KBS00, GSS99]

slide-7
SLIDE 7

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

6

Skeleton-based kinematics

Related work

[JT05, ASKTR05]

slide-8
SLIDE 8

7

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

Relation to mesh editing

Inverse kinematics coating transfer mesh transplanting

slide-9
SLIDE 9

8

Intrinsic mesh editing methods

Related work

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

Laplacian (or differential) coordinates

[SLCARS04]

slide-10
SLIDE 10

Overview of the method

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

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 of

the {fi}i≥1

  • 3. given a set of specified vertex positions v1, · · · , vl, find a feature

vector f close to Σ that maps each constrained vertex ¯ vj to a point close to its specified position vj

9

slide-11
SLIDE 11

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi

10

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

For the jth triangle of M0, let φj be the affine transformation that maps the 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, along

the normal direction

¯ v1 ¯ v2 ¯ v3 ¯ v4 v1 v2 v3 v4

φj

from [SP04]

slide-12
SLIDE 12

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi

10

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

For the jth triangle of M0, let φj be the affine transformation that maps the 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, along

the normal direction Tj = [v1 − v4, v2 − v4, v3 − v4] · [¯ v1 − ¯ v4, ¯ v2 − ¯ v4, ¯ v3 − ¯ v4]−1 tj = v4 − Tj ¯ v4

slide-13
SLIDE 13

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi

10

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

For the jth triangle of M0, let φj be the affine transformation that maps the 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, along

the normal direction Tj = [v1 − v4, v2 − v4, v3 − v4] · [¯ v1 − ¯ v4, ¯ v2 − ¯ v4, ¯ v3 − ¯ v4]−1 tj = v4 − Tj ¯ v4

slide-14
SLIDE 14

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map 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. Popovi´ c

linear in v1, v2, v3, v4 (3 × 3)

slide-15
SLIDE 15

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map 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. Popovi´ c

linear in v1, v2, v3, v4 (3 × 3) fi

j :=

  Tjx

T

Tjy

T

Tjz

T

  = Gj                  v1x . . . v4x v1y . . . v4y v1z . . . v4z                  Tj :=   Tjx Tjy Tjz   Gj :=   Gjx Gjy Gjz   ∈ R9 ∈ R12 (9 × 12)

slide-16
SLIDE 16

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map 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. Popovi´ c

linear in v1, v2, v3, v4 (3 × 3) fi

j :=

  Tjx

T

Tjy

T

Tjz

T

  = Gj                  v1x . . . v4x v1y . . . v4y v1z . . . v4z                  ∈ R9 ∈ R12 (9 × 12) fi :=    f i

1

. . . f i

m

   = G v G :=   Gx Gy Gz  

slide-17
SLIDE 17

Feature vectors

Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map 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. Popovi´ c

linear in v1, v2, v3, v4 (3 × 3) fi

j :=

  Tjx

T

Tjy

T

Tjz

T

  = Gj                  v1x . . . v4x v1y . . . v4y v1z . . . v4z                  ∈ R9 ∈ R12 (9 × 12) fi :=    f i

1

. . . f i

m

   = G v ∈ R9m (9m × 3(n + m)) ∈ R3(n+m) G :=   Gx Gy Gz   (3m × (n + m))

slide-18
SLIDE 18

Feature vectors

12

f = G v

∈ R9m ∈ R3(n+m)

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

Inverse transformation

(9m × 3(n + m))

”v = G−1 f ”

slide-19
SLIDE 19

Feature vectors

12

f = G v

∈ R9m ∈ R3(n+m)

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

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 ≤ 1 tranformed mesh (up to translation)

slide-20
SLIDE 20

Feature vectors

12

f = G v

∈ R9m ∈ R3(n+m)

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

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 min

v

G v − f

most ”plausible” positions

To a feature vector f ∈ R9m corresponds ≤ 1 tranformed mesh (up to translation) If too many constraints (or imprecisions), the set of solutions can be empty

slide-21
SLIDE 21

Linear feature space

Σ := Span(f 1, · · · , f k) 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 min

v,w

  • G v − (f1, · · · , fk) w
  • 13

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

slide-22
SLIDE 22

Linear feature space

Σ := Span(f 1, · · · , f k) 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 min

v,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 ¯

f

i

and compute: v∗, w∗ = arg min

v,w

  • G v −¯

f − (¯ f

1, · · · ,¯

f

k) w

  • + α w

13

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

slide-23
SLIDE 23

Linear feature space

14

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

slide-24
SLIDE 24

Linear feature space

14

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

f1 f2 f( 1

3 , 2 3 )

slide-25
SLIDE 25

Nonlinear feature space

15

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

For each triangle j of M0, separate the rotational component from the scale and shear components of Tj by polar decomposition: Tj := Rj Sj Interpolate the Si

j linearly, but the T i j by composition:

”T i

j(w) := k

  • i=1

Ri

j wi · k

  • i=1

wi Si

j ”

R2

θ = R2θ

slide-26
SLIDE 26

Nonlinear feature space

15

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

For each triangle j of M0, separate the rotational component from the scale and shear components of Tj by polar decomposition: Tj := Rj Sj Interpolate the Si

j linearly, but the T i j by composition:

”T i

j(w) := k

  • i=1

Ri

j wi · k

  • i=1

wi Si

j ”

R2

θ = R2θ

For non-integer wi, use the exponential map: T i

j(w) := exp

k

  • i=1

wi log Ri

j

  • ·

k

  • i=1

wi Si

j

slide-27
SLIDE 27

Nonlinear feature space

15

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

For each triangle j of M0, separate the rotational component from the scale and shear components of Tj by polar decomposition: Tj := Rj Sj Interpolate the Si

j linearly, but the T i j by composition:

”T i

j(w) := k

  • i=1

Ri

j wi · k

  • i=1

wi Si

j ”

R2

θ = R2θ

(∗)

non-linear

To retrieve v∗, w∗, solve the following least squares problem: v∗, w∗ = arg min

v,w G v − fw

For non-integer wi, use the exponential map: T i

j(w) := exp

k

  • i=1

wi log Ri

j

  • ·

k

  • i=1

wi Si

j

slide-28
SLIDE 28

Nonlinear feature space

16

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

linear interpolation exponential map scale/shear rotational

slide-29
SLIDE 29

Numerics

17

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

  • To solve (∗), use Gauss-Newton algorithm
  • To accelerate the resolution of the linear least squares problem, use

Cholesky decomposition see details in the paper reduces (∗) to solving a linear least squares problem at each iteration of the algorithm (∼ 6 iterations in practice)

slide-30
SLIDE 30

Experimental results

18

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

Pentium IV @ 3.4 GHz 2GB RAM Cholesky

  • ne iteration
slide-31
SLIDE 31

Conclusion

19

Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c

  • 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