Example-Based Skeleton Extraction Scott Schaefer Can Yuksel - - PowerPoint PPT Presentation

example based skeleton extraction
SMART_READER_LITE
LIVE PREVIEW

Example-Based Skeleton Extraction Scott Schaefer Can Yuksel - - PowerPoint PPT Presentation

Example-Based Skeleton Extraction Scott Schaefer Can Yuksel Example-Based Deformation Examples Previous Work Mesh-based Inverse Kinematics [Sumner et al. 2005], [Der et al. 2006] Example-based deformation method Non-linear


slide-1
SLIDE 1

Scott Schaefer Can Yuksel

Example-Based Skeleton Extraction

slide-2
SLIDE 2

Example-Based Deformation

Examples

slide-3
SLIDE 3

Previous Work

Mesh-based Inverse Kinematics [Sumner et al.

2005], [Der et al. 2006]

Example-based deformation method Non-linear minimization Not real-time

Image taken from [Sumner et al. 2005]

slide-4
SLIDE 4

Objective

Determine parameters for skeletal animation

from set of examples

Bone transformations Vertex weights Bone connectivity Joint locations Root node

Examples

slide-5
SLIDE 5

Previous Work

Skeleton from shape decomposition

[Katz, Tal 2003] [de Aguilar et al. 2004] [Theobalt et al. 2004] [Katz et al. 2005] [Lien et al. 2006]

Image taken from [Lien et al. 2006]

slide-6
SLIDE 6

Previous Work

Skeleton from shape decomposition

[Katz, Tal 2003] [de Aguilar et al. 2004] [Theobalt et al. 2004] [Katz et al. 2005] [Lien et al. 2006]

Image taken from [Lien et al. 2006]

slide-7
SLIDE 7

Previous Work

Example-based skinning

[Wang et al. 2002] [Mohr, Gleicher 2003]

Image taken from [Wang et al. 2002]

slide-8
SLIDE 8

Previous Work

Skinning Mesh Animations [James, Twigg

2005]

Robust face clustering for bone estimation Non-negative least squares for weights Compresses animations for display on GPU No connectivity/hierarchy/joint positions

Image taken from [James, Twigg 2005]

slide-9
SLIDE 9

Previous Work

Skeletons from real world data

[Kurihara, Miyata 2004] [Anguelov et al. 2004] [Kirk et al. 2005]

Image taken from [Kirk et al. 2005] Image taken from [Kurihara, Miyata 2004]

slide-10
SLIDE 10

Outline

Bone estimation Skinning Finding bone connectivity Estimating joint locations

slide-11
SLIDE 11

Outline

Bone estimation Skinning Finding bone connectivity Estimating joint locations

slide-12
SLIDE 12

Outline

Bone estimation Skinning Finding bone connectivity Estimating joint locations

slide-13
SLIDE 13

Outline

Bone estimation Skinning Finding bone connectivity Estimating joint locations

slide-14
SLIDE 14

Outline

Bone estimation Skinning Finding bone connectivity Estimating joint locations

slide-15
SLIDE 15

Bone Estimation

Cluster faces that transform in the same rigid

manner

slide-16
SLIDE 16

Rigid Error Functions

∑∫

− +

= i t k i i T I R R

dt t p T t Rp

T

2 ,

) ( ) ( min T t Rpi + ) (

slide-17
SLIDE 17

Rigid Error Functions

T t Rpi + ) ( p R p T

k −

= ∑∫ ∑∫ =

i t i t k i

dt dt t p k

p

) (

where

slide-18
SLIDE 18

Rigid Error Functions

T t Rpi + ) (

k i k i k i t T k i i

p t p t p dt t p t p M − = ∫ = ) ( ) ( ˆ where ) ( ˆ ) ( ˆ 0

slide-19
SLIDE 19

Rigid Error Functions

T t Rpi + ) (

I R R S S RS M

T T

= = = and where

[Shoemake et al. 1992], [Alexa et al. 2000], [Müller et al. 2005]

slide-20
SLIDE 20

Rigid Error Functions

Eigen decomposition of 4x4 matrix [Horn 1987] T t Rpi + ) (

slide-21
SLIDE 21

Rigid Error Functions

Compact representation (17 floats) T t Rpi + ) (

slide-22
SLIDE 22

Skin Weights

Weight properties:

Match the motion of the example poses Translation invariant Four or less bone

weights per vertex

Positive weights

+ =

i i i i

T p R p ) ( ˆ α

slide-23
SLIDE 23

Skin Weights

slide-24
SLIDE 24

Skin Weights

slide-25
SLIDE 25

Skin Weights

slide-26
SLIDE 26

Skin Weight Validation

slide-27
SLIDE 27

Bone Connectivity

Vertex weights indicate information about

bone connectivity!!!

5 . 4 . 1 .

slide-28
SLIDE 28

Bone Connectivity

Vertex weights indicate information about

bone connectivity!!!

5 . 4 . 1 .

STRONG!!!

slide-29
SLIDE 29

Bone Connectivity

Vertex weights indicate information about

bone connectivity!!!

5 . 4 . 1 .

weak…

slide-30
SLIDE 30

Bone Connectivity

Extract maximal spanning tree to determine

connectivity

For each vertex

For each bone weight Let be the

maximum weight

Add weight to edge

between (max, j)

j

α max j,

max

α

slide-31
SLIDE 31

Joint Locations

slide-32
SLIDE 32

Joint Locations

Joint has same position with respect to both

bone transformations

slide-33
SLIDE 33

Joint Locations

Many joints act as hinges and bend along an

axis

Yields infinite number of solutions to

minimization!!!

slide-34
SLIDE 34

Joint Locations

Vertex weights indicate information about

joint locations!!!

5 . 5 .

slide-35
SLIDE 35

Joint Locations

Vertex weights indicate information about

joint locations!!!

5 . 5 .

Joint close to this vertex

slide-36
SLIDE 36

Joint Locations

Vertex weights indicate information about

joint locations!!!

1 . 9 .

Joint not close to this vertex

slide-37
SLIDE 37

Joint Locations

Vertex weights indicate information about

joint locations!!!

1 . 9 .

Joint not close to this vertex

Minimize distance to estimated joint location

slide-38
SLIDE 38

Root of Skeleton

Very arbitrary… We choose bone closest to center of mass Center of mass important

in physical calculations so makes sense to set root there

slide-39
SLIDE 39

Results

Examples

slide-40
SLIDE 40

Results

Examples

slide-41
SLIDE 41

Results

Examples

slide-42
SLIDE 42

Results

slide-43
SLIDE 43

Results

Examples

slide-44
SLIDE 44

Results

Examples

slide-45
SLIDE 45

Results

Examples

slide-46
SLIDE 46

Results

slide-47
SLIDE 47

Results

Examples

slide-48
SLIDE 48

Results

Examples

slide-49
SLIDE 49

Results

Examples

slide-50
SLIDE 50

Results

slide-51
SLIDE 51

Results

Examples

slide-52
SLIDE 52

Results

Examples

slide-53
SLIDE 53

Results

Examples

slide-54
SLIDE 54

Results

slide-55
SLIDE 55

Results

29 bones 19 bones 9 bones

slide-56
SLIDE 56

Performance

0.00s 1.85s 1.57s 19 9 9996 Lion 0.02s 32.23s 32.29s 22 23 84638 Elephant 0.00s 2.53s 5.21s 12 9 30000 Armadillo 0.00s 4.01s 2.11s 24 9 14410 Cat 0.00s 11.14s 5.53s 29 23 16843 Horse 0.00s 6.46s 9.96s 19 46 15789 Hand Skeleton Extraction Skinning Face Clustering Bones Example Poses Faces Model

slide-57
SLIDE 57

Performance

0.00s 1.85s 1.57s 19 9 9996 Lion 0.02s 32.23s 32.29s 22 23 84638 Elephant 0.00s 2.53s 5.21s 12 9 30000 Armadillo 0.00s 4.01s 2.11s 24 9 14410 Cat 0.00s 11.14s 5.53s 29 23 16843 Horse 0.00s 6.46s 9.96s 19 46 15789 Hand Skeleton Extraction Skinning Face Clustering Bones Example Poses Faces Model

Face Clustering 10x-50x faster than Mean Shift Clustering [James, Twigg 2005]

slide-58
SLIDE 58

Importing Skeletons

Maya-script importer Manipulate directly in Maya No plugins/special software needed Works with existing

production pipelines

slide-59
SLIDE 59

Future Work

Skeletons are good but not perfect Improve weight fitting Add user feedback to create an

intelligent system