Mesh-Based Inverse Kinematics - TobW.net

doutfanaticalΜηχανική

14 Νοε 2013 (πριν από 3 χρόνια και 11 μήνες)

62 εμφανίσεις

Computer Graphics Group


Tobias Weyand

Mesh
-
Based Inverse
Kinematics

Sumner et al 2005


presented by Tobias Weyand

Computer Graphics Group


Tobias Weyand

2

What is Inverse Kinematics?


Articulated body


Which angles for a certain
configuration?


Forward kinematics


Specify angles


Inverse kinematics


Specify limb position

a
1

a
2

a
3

a
1

a
2

a
3

Computer Graphics Group


Tobias Weyand

3

IK in Computer Graphics

© NVidia



Modelling



Meaningful deformations



Animation



Realistic movement

Problems:



Skinning time consuming



Not everything has bones

Computer Graphics Group


Tobias Weyand

4

Mesh
-
based Inverse Kinematics

Idea: Learn deformations from examples

Computer Graphics Group


Tobias Weyand

5

Overview


Introduction


Related work


MeshIK


Feature Vectors


Linear Feature Space


Nonlinear Feature Space


Accelerations


Results and Conclusion


Computer Graphics Group


Tobias Weyand

6

Related work: Deformation Transfer

Deformation Transfer for Triangle Meshes


Transfer source deformations to target

Sumner et al 2004

Computer Graphics Group


Tobias Weyand

7

Related work: Deformation Transfer

Triangle deformations:





Least squares problem:



i
i
i
s
S
s

~
i
i
i
t
T
t

~
min
||
||
|
|
1
2




M
i
F
i
i
T
S
But: Limited to example poses

Computer Graphics Group


Tobias Weyand

8

Related work: Shape Interpolation

As
-
rigid
-
as
-
possible Shape Interpolation



Morphing of 2D and 3D meshes


Considers mesh interior as rigid

Alexa et al. 2000

Computer Graphics Group


Tobias Weyand

9

Related work: Shape Interpolation


Triangulate source and target shapes


Find locally optimal triangle interpolations

But:



Limited to 2 meshes



Expensive:



Compatible dissection



Computations on interior and exterior

Better:



Use only surface

Computer Graphics Group


Tobias Weyand

10

Mesh
-
based Inverse Kinematics

Goal:


Provide a set of example meshes.


MeshIK learns meaningful deformations.


Directly move a subset of the mesh
vertices.


MeshIK finds a suitable deformation
according to the example meshes.


Computer Graphics Group


Tobias Weyand

11

Feature Vectors

Given: Base mesh P
0
, deformed mesh P

Deformation: set of affine mappings

}
{
j

j
j
j
t
p
T
p



)
(
Deformation gradient: Jacobian of





Discard translation

)
(
p
j

j
j
j
p
j
p
T
t
p
T
D
p
D




)
(
)
(
Computer Graphics Group


Tobias Weyand

12

Feature Vectors

Feature vector: concatentaion of
deformation gradients












3
2
1
3
2
1
3
2
1
z
j
z
j
z
j
y
j
y
j
y
j
x
j
x
j
x
j
j
t
t
t
t
t
t
t
t
t
T


3
1
3
1
3
1
3
2
1
1
1
2
1
1
1
f
z
m
z
y
m
y
x
m
x
x
x
x
t
t
t
t
t
t
t
t
t




Computer Graphics Group


Tobias Weyand

13

Feature Vectors

Calculation of f for mesh P


)
,
(
P
p
p
E
V

T
1
1
1
))
,
,
(
,
),
,
,
((
m
m
m
p
z
y
x
z
y
x
V


P

mesh
-
vector x:

T
n
1
n
1
n
3
2
1
)
z
z
y
y
x
x
x
x
(
x




Construct G such that:

Gx
f

Computer Graphics Group


Tobias Weyand

14

Feature Vectors

Properties of G:












g
g
g
G
-

Block
-
diagonal structure

-

Sparse

-

Only depends on P
0

Computer Graphics Group


Tobias Weyand

15

Feature Vectors

Extracting a mesh from a feature vector:

Fix one vertex in x:


Set corresponding rows in G to 0.


Add product of these rows with x.

c
G


x
~
f
Computer Graphics Group


Tobias Weyand

16

Multiple Vertex Constraints

Transform to least squares problem:

c
G


x
~
f
2
x
f
x
~
min
arg
x





c
G


Properties of x:



Close relation to the feature vector



Fulfills the vertex constraints

Computer Graphics Group


Tobias Weyand

17

Linear Feature Space

Linear combination of features:

l
l
w
w
w
w
f
f
f
f
2
2
1
1




Vector notation:

w
w
M
f



l
1
f
f
M




T
1
l
w
w
w


Mw
c
Gx
w
x
w
x



,
*
*
min
arg
,


Least squares problem



Minimize for optimal weights and mesh

Computer Graphics Group


Tobias Weyand

18

Linear Feature Space: Problems

Unnatural interpolation of rotations

Goal: Correctly capture rotations

Computer Graphics Group


Tobias Weyand

19

Transformation Interpolation

Linear Combinations of Transformations


Scalar product:



Addition:



Combination:

T

a
B
A

a
T
n
n
n
n
B
A










1
1
lim
T
e
log
a
B
A
e
log
log

n
n
A
A




a
a

1
1
n
n
A
A
e
log
log
1
1
a
a




ˆ

ˆ

ˆ

ˆ

ˆ
Alexa 2002

)
log(
a
T
e

ˆ
Computer Graphics Group


Tobias Weyand

20

Possible Nonlinear Feature Space




l
i
ij
i
T
w
j
e
T
1
log
But:



Practically produces singularities



Linear scales and shears suffice

MeshIK interpolation:



Scales and skews: linear



Rotations: above formula

Computer Graphics Group


Tobias Weyand

21

Extracting Rotations

Matrix Animation and Polar Decomposition


Method for factoring a transformation T





T=RS



New transformation combination

Shoemake and Duff 1992







l
i
ij
i
R
w
j
S
w
e
w
T
l
i
ij
i
1
)
log(
1
)
(
Computer Graphics Group


Tobias Weyand

22

Nonlinear Feature Space

)
(
x
min
arg
,
x
,
x
*
*
w
M
c
G
w
w



New nonlinear least squares problem:




Properties:



Fulfills vertex constraints



Close to nonlinear feature space



Natural rotation interpolation

Efficient solver required!

Computer Graphics Group


Tobias Weyand

23

Gauss
-
Newton in MeshIK

Goal: minimize

)
(
x
min
arg
,
x
,
x
*
*
w
M
c
G
w
w



Approach with Gauss
-
Newton:



Transform into locally linear equation



Solve linear least squares problem

Computer Graphics Group


Tobias Weyand

24

Gauss
-
Newton in MeshIK

Linearize M(w) with Taylor expansion



)
(
)
(
)
(
w
M
D
w
M
w
M
w



||
)
(
)
(
||
min
arg
x
,
x
,
c
w
M
w
M
D
Gx
k
k
w
k
k









Linear least squares problem











x
A
w
M
D
G
k
w
)
(
x
Reduce to one variable:

2
x
,
)
(
min
arg
x
,
c
w
M
x
A
k
k
k
















)
(
k
w
w
M
D
G
A


Computer Graphics Group


Tobias Weyand

25

Gauss
-
Newton in MeshIK

Set

)
)
(
(
2
x
2
x
'
T
T
c
w
M
A
A
A
F
k























= 0

!

)
)
(
(
x
T
T
c
w
M
A
A
A
k











Iteration steps:



Solve the normal equation for



Update








x




k
k
w
w
1
But: Far too slow! Optimization needed!

Computer Graphics Group


Tobias Weyand

26

Cholesky Factorization

Linear system:

)
)
(
(
x
T
T
c
w
M
A
A
A
k









)
)
(
(
x
T
T
c
w
M
A
C
C
k










)
)
(
(
T
T
c
w
M
A
y
C
k


y
C








x
C
C
A
A
T
T

Decompose:

Method:

y









x
Computer Graphics Group


Tobias Weyand

27

Cholesky Factorization

Further acceleration:

Exploit structure of A
T
A and C
T
C:
























3
1
T
T
3
T
3
3
T
T
3
T
T
2
T
T
1
T
T
i
i
i
J
J
g
J
g
J
J
g
g
J
g
g
g
J
g
g
g
J
g
g
A
A
























3
1
T
T
T
3
T
2
T
1
3
T
T
2
T
T
1
T
T
T
i
i
i
S
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
C
C
Note: R
T
R=g
T
g



Precompute R
T
R



Only calculate R
1
, R
2
, R
3
, R
S






Interactive speed

Computer Graphics Group


Tobias Weyand

28

Performance

Mesh

Tris

Examples

Preprocess

Solve

Flag

932

14

0.016

0.020

Lion

9,996

10

0.0475

0.210

Horse

16,846

4

0.610

0.160

Elephant

84,638

4

13.249

0.906

Computer Graphics Group


Tobias Weyand

29

Results

Computer Graphics Group


Tobias Weyand

30

Video

Computer Graphics Group


Tobias Weyand

31

Comparison: Shape Interpolation

Arap.

MeshIK

2 meshes

n meshes

Needs compatible
dissection of meshes



expensive

Needs meshes with
same topology


Operates on exterior
and interior

Operates only on
surface

Computer Graphics Group


Tobias Weyand

32

Comparison: Shape Interpolation

Computer Graphics Group


Tobias Weyand

33

Future work


Different mesh representation


like subdivision surfaces


multiresolution hierarchies


Different feature vectors


Capture mesh properties better


Accelerate system solving


Better feature space for many examples


Simulate physical effects like inertia

Computer Graphics Group


Tobias Weyand

34

Conclusion

MeshIK


provides IK without skeleton


more direct and dynamic


runs at interactive speeds


compares well to other approaches


eg As
-
Rigid
-
As
-
Possible shape interpolation

Computer Graphics Group


Tobias Weyand

35




Thank you for your attention!