38
Rick Parent - CIS68 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Embed Size (px)

Citation preview

Page 1: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Capture

Use digitized motion to animate a character

Page 2: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Animation Techniques

Digitize motion

Procedural - simuleateModel or rulesSet initial conditions

KeyframeSurface model

Motion librariesStitch togethere.g., games

Page 3: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

TechnologiesPassive optical - reflective markers

Multiple camerasNeed non-reflective environ.

Active optical - LEDs pulse IDNeed power supplyMultiple cameras

Magnetic - Active sensors CheaperNeed magnetic-neutral environmentNeed power supplyTether or wireless comm.Smaller work area

Mechanical - RotaryOnly posesCheapest

Page 4: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Magnetic

Up to 144Hz

13-18 6 DoF sensors

Page 5: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Passive Optical Motion Capture

Page 6: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Active Optical Motion Capture

Page 7: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Optical Motion Capture

Instrument “talent”

Compute joint positions from 3D positions of multiple surface markers

Convert multiple 2D marker positions to 3D positionsEstablish correspondence of markers in imagesTriangulate 3D position using two or more images

Create synthetic character with those dimensions and animation

Determine limb lengths from joint coordinates

Capture 2D position of markers in multiple cameras

Page 8: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Hand Motion Capture

Movement too intricate for opticalTypes of sensors

MechanicalFiber optic

Page 9: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Facial Motion Capture

Motion too detailed for sensing at distance

Page 10: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Capture Procedure

1. Plan

2. Capture

3. Clean

4. Edit

5. Map

Page 11: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

ProblemsDimensions of instrumented talent has to match synthetic charcter

Motion captured is what you get - period

Limitations on spatial extent of motion

Restricted movement because of instrumentation (harness, power supply, physical attachments, etc.)

Limitation on complexity of motion because of sensors(e.g., severe occlusions, etc.)

Page 12: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

ResearchBlending

Blending from one motion to anotherSignal processingSpace-time constriants

RetargetingModify angles based on limb lengthsMaintain constraints (e.g. foot on floor)

AdaptingModify secondary DoFse.g. wave arm while walking

Page 13: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion WarpingMotion curves

Sparse keyframe-like constraintsKeep similar to originalWarp each curve independently

Constraints (i,ti)

Time warp constraints (t’j,tj)

’(t’) defined by ’(t) = f(,t)t= g(t’) g(t’): smooth, well-behaved

Page 14: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Warping

’(t) = a(t)(t) + b(t)

User specifies amounts of a(ti) and b(ti)

Use interpolating spline to define a(t) and b(t) over length of curve

t

(t)

Page 15: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Warping - time warp

t’

t

t

(t)

Stretch and compress to overlapUse interpolating spline

Linearly interpolate(t) = (t) + (1-) (t)

Page 16: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Warping

Page 17: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Warping

Page 18: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Warping

Page 19: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Warping

Page 20: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion EditingMultiresolution filteringCascade of lowpass filters

Convolve w/ B-spline 5x5 filter kernelSubsample image by factor of 2Until 1 pixel - DC component

Bandpass pyramidRepeatedly differencing 2 successive lowpass imagesExpand subtracted imagesImage reconstruction: add up all bandpass plus DC

Page 21: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion EditingMotion

Low frequency; general gross motionHigh frequency; detail, subtleties, noiseEach motion parameter => signalCalculate lowpass & bandpassOver # frames by expanding filter

LowpassG0: solidG3: dashed

BandpassL0: solidL2: dashed

Page 22: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

1. Calculate lowpass sequence

2. Calculate bandpass filter bands

3. Adjust gains and multiply Lk’s by gain values

4. Blend bands5. Reconstruct signal

Page 23: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

Adjusting gains of bands for joint positions

Page 24: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

Multitarget interpolation (like Motion Warping)

Page 25: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

Multitarget motion interpolation using frequency bands

Page 26: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

Blending between two walks without (top) and with (bottom) correspondence in time

Page 27: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

Blending two waves without (top) and with (bottom) corresponence in time

Page 28: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

1. Keyframes2. Interpolate3. Adjust4. Recalculate5. Apply

Page 29: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Motion Editing

Example of applying displacement curves

Page 30: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Retargeting

Assume identical structure

Use motion displacementsm(t) = m0(t) + d(t)

IK to enforce constraints can add High-frequence components

Use spacetime constraints

Page 31: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Retargeting

Minimize difference from original motion

Constraints (kinematic)Joint limitsFootplantsPoint at same placePoint on character follows another point2 points at specified distanceVector between points at specified orientation

Page 32: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Spacetime Constraints

Consider spacetime particlePosition: x(t)Jet-force: f(t)Motion equation: mx -f - mg = 0

Constraintsx(t0) = ax(t1) = b

Minimize

R =2

f (t) dtt0

t1

Find f such that x satisfies the boundary conditions andR is minimized

Numerical solution: sequential quadratic programming

Page 33: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Sequential Quadratic Programming

Compute second order Newton-Raphson step in RCompute first order Newton-Raphson step in the C’sCombine by projecting the first onto the null space of the second

Requires Jacobian of the constraint function and Hessian of the objective function

Final update = Sj + Tj

Until C’s = 0 and R at minimum

−∂R∂Si

= H ijS jj

−Ci = Jij (S j + Tj )∑

Page 34: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Linear System Solving

Use pseudo inverse

Use conjugate gradient to compute the pseudo inverse

Page 35: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Retargeting

Page 36: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Retargeting

Page 37: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Retargeting

Page 38: Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character

Rick Parent - CIS681

Retargeting