introduction to data-driven animation

70
Introduction to Data-driven Animation Jinxiang Chai Computer Science and Engineering Texas A&M University

Upload: adrina

Post on 23-Feb-2016

67 views

Category:

Documents


0 download

DESCRIPTION

Introduction to Data-driven Animation. Jinxiang Chai Computer Science and Engineering Texas A&M University. Outline. Data-driven animation - Motion graphs - Motion interpolations - Statistical motion synthesis. Motivations for Data-driven Approaches. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction to Data-driven Animation

Introduction to Data-driven Animation

Jinxiang Chai Computer Science and Engineering

Texas A&M University

Page 2: Introduction to Data-driven Animation

Data-driven animation

- Motion graphs

- Motion interpolations

- Statistical motion synthesis

Outline

Page 3: Introduction to Data-driven Animation

Motion capture data are easy to capture

But we cannot capture all kinds of motion variations

- different subjects - different styles - different emotions

Key idea: reuse prerecorded motion data to achieve new goals!

Motivations for Data-driven Approaches

Page 4: Introduction to Data-driven Animation

Data-driven Animation

Goal: convert motion data into a usable form.

Can we automate this?– Must preserve realism and provide control

Motion model User specifications

MotionMotion

processing

Motion data

Page 5: Introduction to Data-driven Animation

Data-driven animation

- Motion graphs

- Motion interpolations

- Statistical motion synthesis

Outline

Page 6: Introduction to Data-driven Animation

Motion Graphs: Key Ideas

Given: lots of prerecorded motion clips

Concatenate them to create new motions!

Page 7: Introduction to Data-driven Animation

Motion Graphs: Key Ideas

Given: lots of prerecorded motion clips

Concatenate them to create new motions!

Page 8: Introduction to Data-driven Animation

Maze

Page 9: Introduction to Data-driven Animation

Motion ConcatenationMotion capture region Virtual environment

Obstacles

Sketched path

Page 10: Introduction to Data-driven Animation

Motion ConcatenationMotion capture region Virtual environment

Page 11: Introduction to Data-driven Animation

Unstructured Input Data

A number of motion clips • Each clip contains many frames• Each frame represents a pose

Page 12: Introduction to Data-driven Animation

Unstructured Input Data

Connecting transition • Between similar frames

Page 13: Introduction to Data-driven Animation

Graph Construction

Page 14: Introduction to Data-driven Animation

Building Motion Graphs

So how can we find transition points between motion clips?

Page 15: Introduction to Data-driven Animation

Building Motion Graphs

- Every pair of frames has a distance.

- Transitions are local minima below a threshold.

Motion 2 Frames

Mot

ion

1 Fr

ames

Page 16: Introduction to Data-driven Animation

Finding Similar Frames

• Need derivatives (velocity, acceleration, etc.)

• Compare motion in joint angle space or 3d point space?

• Must account for coordinate invariance

– Different camera ≠ different motion!

Page 17: Introduction to Data-driven Animation

Distance Metric

For more detail, refer to [Kovar and Gleicher, Lee et al]

Page 18: Introduction to Data-driven Animation

Finding Transition Points

Transition thresholds control quality vs. flexibility tradeoff.

Threshold = 0 cm Threshold = 8 cm Threshold = 16 cm

Page 19: Introduction to Data-driven Animation

Structures of Motion Graphs

Motion data structure: a graph of frames/poses

Avoid dead-ends: finding strongly connected components

Contact states: avoid transition to dissimilar contact state

Page 20: Introduction to Data-driven Animation

Interacting with Motion Graphs

So given a motion graph, how can we generate an animation sequence?

Page 21: Introduction to Data-driven Animation

Interacting with Motion Graphs

So given a motion graph, how can we generate an animation sequence?

- Random graph walk: Any sequence of edges is a motion!

Page 22: Introduction to Data-driven Animation

Using Motion Graphs

How can we control synthesized motions (e.g., moving from point A to point B, speeds, walking directions)?

- Graph search: Find graph walks that minimize a cost function.

Page 23: Introduction to Data-driven Animation

Path Synthesis

Goal: extract motion that follows a path.

User’s path ( )

Motion’s path ( )

Minimize

2)()( i

ii sPsP

P

P

Page 24: Introduction to Data-driven Animation

Motion Control

Goal: extract motion (M) that satisfied constraints (C) specified by the user

Minimize

),( CMG

Page 25: Introduction to Data-driven Animation

Results

See videos [click here]!

Page 26: Introduction to Data-driven Animation

Discussion

Pros: + Fully automatic: work on unstructured data + High-quality animation: motion concatenations + Easy to control: graph search

Cons - Poor generalization: cannot produce new poses - Control accuracy: cannot generalize new poses - Not compact: needs to retain original mocap data - Scalability

Page 27: Introduction to Data-driven Animation

Data-driven animation

- Motion graphs

- Motion interpolations

- Statistical motion synthesis

Outline

Page 28: Introduction to Data-driven Animation

Motion Interpolations: Key Ideas

Given: lots of prerecorded motion clips

Interpolating motions to achieve new goals!

Page 29: Introduction to Data-driven Animation

Motion Interpolations: Key Ideas

In research: more than decades [e.g., Rose et al. 98]In games for a long time

- Interpolating motions needs build correspondences between motion examples- Thus, motion interpolations require structurally similar motion examples!

Page 30: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 31: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Reference motion

Motion Decomposition

Page 32: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Contact Transitions

Motion Decomposition

Page 33: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

Motion 1

t

Motion Decomposition

Page 34: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 35: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 36: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Using dynamic time warping!

Page 37: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 38: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

Motion 2

t

Motion Decomposition

Page 39: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 40: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 41: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 42: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 43: Introduction to Data-driven Animation

Canonical timelinet

Time warping functions

w(t)

t

Motion Decomposition

Page 44: Introduction to Data-driven Animation

Motion Representation

Registered motions Time warping functions

Contact Transitions

Page 45: Introduction to Data-driven Animation

Motion Annotation

Preprocessed motions mi

Page 46: Introduction to Data-driven Animation

Motion Annotation

Preprocessed motions mi

For each motion mi, we annotate the motion with control parameters si

- such as walking speed, direction, step size, kicking directions and positions, etc.

Page 47: Introduction to Data-driven Animation

Motion Annotation

Preprocessed motions mi

Motion space: m

Control parameter space: s

Page 48: Introduction to Data-driven Animation

Motion Interpolations and Control

Preprocessed motions mi

Motion space: m

Control parameter space: s

How can we generate an animation that achieves the goals specified c* by the user?

Page 49: Introduction to Data-driven Animation

Motion Interpolations and Control

Preprocessed motions mi

Motion space: m

Control parameter space: s

How can we generate an animation that achieves the goals specified c* by the user? Scattered data interpolation

Page 50: Introduction to Data-driven Animation

Scatter Data Interpolations

Preprocessed motions mi

Motion space: m

Control parameter space: s

How can we generate an animation that achieves the goals specified c* by the user? Scattered data interpolation

Page 51: Introduction to Data-driven Animation

Scattered Data Interpolations

Motion space: m

Control parameter space: s

Many techniques for scattered data interp.:

- Local interpolation/regression [Kovar and Gleicher 04]- Radial basis functions [Rose et al 98]- Gaussian processes [Mukai and Kuriyama

05]

Page 52: Introduction to Data-driven Animation

Results

Geostatistical motion interpolation [Mukai and Kuriyama 05]

- check youtube video [click here]

Page 53: Introduction to Data-driven Animation

Discussions

Pros: + high-quality animation + good generalization: motion interpolation and

extrapolation + particularly suitable for high-level motion control

Cons - all examples must be structurally similar. - not compact: needs to retain original mocap data - not suitable for detailed kinematic motion control

such as such key frames - lack of planning schemes for task level control such

as moving from one point to another.

Page 54: Introduction to Data-driven Animation

Data-driven animation

- Motion graphs

- Motion interpolations

- Statistical motion synthesis

Outline

Page 55: Introduction to Data-driven Animation

Bayesian Motion Synthesis

Goal: Find the most likely motion x from control inputs c specified by the user

)|Pr(maxarg cxx

Page 56: Introduction to Data-driven Animation

Bayesian Motion Synthesis

Goal: Find the most likely motion x from control inputs c specified by the user

)|Pr(maxarg cxx

)Pr()Pr()|Pr(maxarg cxxc

x

Page 57: Introduction to Data-driven Animation

Bayesian Motion Synthesis

Goal: Find the most likely motion x from control inputs c specified by the user

)|Pr(maxarg cxx

)Pr()Pr()|Pr(maxarg cxxc

x

)Pr()|Pr(maxarg xxcx

Likelihood: How well motion matches control input? Motion priors: How

natural motion is?

Page 58: Introduction to Data-driven Animation

Human motiondatabase

Human motionanalysis

Motionoptimization

Human motion prior

User-defined constraints

Generate natural human motion from a small set of user-defined constraints

Statistical Motion Synthesis

Page 59: Introduction to Data-driven Animation

Statistical Dynamic Model

Character pose

Low-dimensional pose space

yt = C xt + D

Human motiondatabase

Human motionanalysis

Statistical dynamic model

xt = A1xt-1 +…+ Amxt-m+ B ut

Control input

Temporal prediction

Page 60: Introduction to Data-driven Animation

Complexity of Statistical Dynamic Model

Character pose

Low-dimensional pose space

yt = C xt + D

Human motiondatabase

Human motionanalysis

Statistical dynamic model

xt = A1xt-1 +…+ Amxt-m+ B ut

Control input

Temporal prediction

dim(ut)

dim(xt)

Page 61: Introduction to Data-driven Animation

Statistical Dynamic Model Learning

Human motiondatabase

Human motionanalysis

Character pose

Low-dimensional pose space

yt = C xt + D

xt = A1xt-1 +…+ Amxt-m+ B ut

Control input

Temporal prediction

Dynamic model matrices:

A1,…,Am, B, C, D

Page 62: Introduction to Data-driven Animation

Statistical Dynamic Model Learning

Human motiondatabase

Human motionanalysis

Dynamic model matrices:

A1,…,Am, B, C, D

Dynamic system order:

m, dimensionality of xt and ut

Character pose

Low-dimensional pose space

yt = C xt + D

xt = A1xt-1 +…+ Amxt-m+ B ut

Control input

Temporal prediction

Page 63: Introduction to Data-driven Animation

Reconstruction error

Full-body motion data

Xt = A1Xt-1+…+AmXt-m+B ut

Statistical linear dynamic model:

m = 3, dim(ut) = 4, error = 0.7 deg

Yt = C Xt + D

Page 64: Introduction to Data-driven Animation

Generate natural motion from a small set of user-defined constraints

Overview: Offline Animation Control

Human motiondatabase

Human motionanalysis

Motionoptimization

Human motion prior

User-defined constraints

Page 65: Introduction to Data-driven Animation

Constrained Motion Optimization

Human motiondatabase

Human motionanalysis

Motionoptimization

Human motion prior

User-defined constraints

Generate natural motion from a small set of user-defined constraints

Page 66: Introduction to Data-driven Animation

Constrained Motion Optimization

Motionoptimization

Human motion prior

User-defined constraints

Smoothness term

yyE Tsmoothness

),,....,()(ln 1 tmtttt uxxxpup

2212 ttt CxCxCx

Page 67: Introduction to Data-driven Animation

User-defined constraints:

Objective function:

Motion prior Motion smoothness

Sequential Quadratic Programming

t ttt

K

j

m

tiititjjtjux CxCxCxBuxAxuN 2

211

2

1, 2)),;(log(minarg

Constrained Motion Optimization

Mjcxf jj ,1)(

Page 69: Introduction to Data-driven Animation

Discussions

Pros: + good generalization and accurate motion control due

to the use of statistical models + compact: only needs to keep model parameters + suitable for kinematic motion control

Cons - often need to specify contact constraints across the

entire animation. - does not support task-level control (e.g., move from

one point to another) - better models are needed to match the synthesis

quality of motion graphs

Page 70: Introduction to Data-driven Animation

Summary

The use of prerecorded motion data allows us to create high-quality controllable animation for human characters

Ideal data-driven animation techniques - High-quality: realistic animation without noticeable

visual artifacts - control accuracy: often require strong generalizability

to achieve new tasks. - control flexibility: support motion control in both

kinematics and task/behavior level. - scalability: scale up well to huge and heterogeneous

datasets. - compact: demand small or moderate memory sizes.