55
Motion Editing and Signal Processing Motion Editing and Signal Processing Michael Gleicher Department of Computer Sciences University of Wisconsin- Madison http://www.cs.wisc.edu/~gleicher Michael Gleicher Department of Computer Sciences University of Wisconsin- Madison http://www.cs.wisc.edu/~gleicher

Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Motion EditingandSignal Processing

Motion EditingandSignal Processing

Michael GleicherDepartment of Computer Sciences

University of Wisconsin- Madisonhttp://www.cs.wisc.edu/~gleicher

Michael GleicherDepartment of Computer Sciences

University of Wisconsin- Madisonhttp://www.cs.wisc.edu/~gleicher

Page 2: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Motion Editing and Signal ProcessingMotion Editing and Signal Processing

• Motion– What is motion really?– How do we represent it?

• Editing– How do we change it?

• Signal Processing– A science that provides a useful analytical

framework and tools for motion

• Motion– What is motion really?– How do we represent it?

• Editing– How do we change it?

• Signal Processing– A science that provides a useful analytical

framework and tools for motion

Page 3: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

OutlineOutline

Goal: Basic Intuitions for Motion Editing• “The” motion problem• Properties in motions• Signal processing basics• Applications to motion editing

– sampling and temporal control– filtering and other tools– adding, blending and warping

Goal: Basic Intuitions for Motion EditingGoal: Basic Intuitions for Motion Editing•• “The” motion problem“The” motion problem•• Properties in motionsProperties in motions•• Signal processing basicsSignal processing basics•• Applications to motion editingApplications to motion editing

–– sampling and temporal controlsampling and temporal control–– filtering and other toolsfiltering and other tools–– adding, blending and warpingadding, blending and warping

Page 4: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

What do we mean by motion?What do we mean by motion?

• Animated Character• Pose or Configuration

– parameters in a vector

• Examples are articulated figures (humans)

– trees of rigid links– center + joint angles– nothing specific about

methods

• Animated Character• Pose or Configuration

– parameters in a vector

• Examples are articulated figures (humans)

– trees of rigid links– center + joint angles– nothing specific about

methods

p ∈ℜn

(x,y)θ

θ

θ

p = {x,y,θ1,θ2,θ3,...}

θ θ

θ

θ

Page 5: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

What do we mean by motion? (2)What do we mean by motion? (2)

• A motion maps times to configurations

• Vector-valued, time-varying signal

• Representation comes from creation

– typically interpolation– may not be convenient

for editing

• A motion maps times to configurations

• Vector-valued, time-varying signal

• Representation comes from creation

– typically interpolation– may not be convenient

for editing

m(t) ∈ℜ ⇒ ℜn

Time (t)sig

nal

(p

)

Page 6: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

RepresentationRepresentation

• Many ways to represent a motion• Different creation methods yield

different representations• Equivalent (in terms of output)

• Many ways to represent a motion• Different creation methods yield

different representations• Equivalent (in terms of output)

h-(t-x)2

Page 7: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Representation MattersRepresentation Matters

• Different representations respond differently to change

• Different changes are convenient with different representations

• Different representations respond differently to change

• Different changes are convenient with different representations

h-(t-x)2

Page 8: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

From poses to motions...From poses to motions...

• We have good tools for controlling what happens at a given instant (pose)

• Motions add another level of difficulty

• Lots of poses to change (tedious)• Changes must be coordinated (hard)

• How to leverage our skill with poses?

• We have good tools for controlling what happens at a given instant (pose)

• Motions add another level of difficulty

• Lots of poses to change (tedious)• Changes must be coordinated (hard)

• How to leverage our skill with poses?

Page 9: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Properties of MotionProperties of Motion

Describe motion in abstract termsMake it angrier!But keep the graceful dignity.

Describe motion in abstract termsMake it angrier!But keep the graceful dignity.

High LevelPropertiesHigh LevelProperties

Low LevelPropertiesLow LevelProperties

What do we change? What do we preserve?What do we change? What do we preserve?

Have to control small detailsPoses, joint angles, timing, ...Not how we talk about motions.

Have to control small detailsPoses, joint angles, timing, ...Not how we talk about motions.

The art of motion editingThe art of motion editingis crossing this chasm.is crossing this chasm.

Page 10: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

What makes this walk this walk?

Page 11: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Quiz: Name That Motion!Quiz: Name That Motion!

-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

time (frames)

An

gle

(ra

dia

ns)

-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

time (frames)

An

gle

(ra

dia

ns)

Page 12: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

A Motion CurveA Motion Curve

• Where’s the “Mike”?• Where’s the sad? • Where’s the walk?• Where’s the no skate?

How can we preserve (or alter) these properties if we can’t see them?

• Where’s the “Mike”?• Where’s the sad? • Where’s the walk?• Where’s the no skate?

How can we preserve (or alter) these properties if we can’t see them?

Motion Curve:Left Knee from Walk

-1.5

-1

-0.5

0

time (frames)

An

gle

(ra

dia

ns)

Motion Curve:Left Knee from Walk

-1.5

-1

-0.5

0

time (frames)

An

gle

(ra

dia

ns)

Page 13: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Easy to destroy motionsEasy to destroy motions

• Hard to identify properties

• Easy to destroy them

• How can we know what kinds of changes to make?

• Hard to identify properties

• Easy to destroy them

• How can we know what kinds of changes to make?

Motion Curve:Left Knee from Walk

-1.5

-1

-0.5

0

time (frames)

An

gle

(rad

ian

s)

Motion Curve:Left Knee from Walk

-1.5

-1

-0.5

0

time (frames)

An

gle

(rad

ian

s)

Page 14: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Maybe we’re looking the wrong way...Maybe we’re looking the wrong way...

• Spatial Analysis– Need to consider several

curves together

• Temporal Analysis– How things change– Frequency Domain

Analysis

• Signal Processing!– A set of tools for looking

at data

• Spatial Analysis– Need to consider several

curves together

• Temporal Analysis– How things change– Frequency Domain

Analysis

• Signal Processing!– A set of tools for looking

at data

Motion Curve:Left Knee from Walk

-1.5

-1

-0.5

0

time (frames)

An

gle

(rad

ian

s)

Motion Curve:Left Knee from Walk

-1.5

-1

-0.5

0

time (frames)

An

gle

(rad

ian

s)

Page 15: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Signal Processing ReviewSignal Processing Review

• A signal is a value that changes– Voltage, current, sound pressure, angles, ...– Something that carries information

• Signal theory doesn’t care what the value is

• A signal is a value that changes– Voltage, current, sound pressure, angles, ...– Something that carries information

• Signal theory doesn’t care what the value is

Page 16: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Time Domain AnalysisTime Domain Analysis

• What is the value at a particular instant?

v = f(t)

• Signal source is a black box

• This “view” lets us answer some questions easily

• What is the value at a particular instant?

v = f(t)

• Signal source is a black box

• This “view” lets us answer some questions easily

-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

time (frames)

-1.4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

time (frames)

“Waveform” view

Page 17: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Frequency Domain AnalysisFrequency Domain Analysis• A different way to look at signals• New representation, same information• Different set of questions easy

• Decompose signals into simpler “building blocks”

• A different way to look at signals• New representation, same information• Different set of questions easy

• Decompose signals into simpler “building blocks”

Page 18: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Fourier AnalysisFourier Analysis

• Simple Form:Fourier Series

• Analyze periodic signals with sine waves

• More complex extensions for non-periodic signals

• Simple Form:Fourier Series

• Analyze periodic signals with sine waves

• More complex extensions for non-periodic signals

Page 19: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Fourier AnalysisFourier Analysis

• Decompose ANY periodic signal into sine signals(with some caveats)

• Possibly an infinite number of sine signals

• Decompose ANY periodic signal into sine signals(with some caveats)

• Possibly an infinite number of sine signals

=

1

+1/3

+

1/5

+1/7, 1/9, 1/11, 1/13, ...

Page 20: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Frequency Domain RepresentationFrequency Domain Representation• Represent a signal by the amount of

each “basis signal”• A signal has high frequencies if its

decomposition has these terms• Allows us to see some general

properties of the signal easily• Fourier Transform converts between

time and frequency representations– Inverse Fourier Transform converts back

• Represent a signal by the amount of each “basis signal”

• A signal has high frequencies if its decomposition has these terms

• Allows us to see some general properties of the signal easily

• Fourier Transform converts between time and frequency representations

– Inverse Fourier Transform converts back

Page 21: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Band-Limited ApproximationsBand-Limited Approximations

• Limited frequencies approximate signals

• More frequencies = better approximations

• Gives intuition for what high frequencies “mean”

• Limited frequencies approximate signals

• More frequencies = better approximations

• Gives intuition for what high frequencies “mean”

1

1+3

1+3+5

1+3+5+7+9+11

Page 22: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Intuitions ofFrequency AnalysisIntuitions ofFrequency Analysis• Sharp edges require high frequencies to

get good approximations• “Smooth” signals = no high frequencies

Frequency Analysis says what kinds of things happen in a signal

Existence of properties, without specific details

• Sharp edges require high frequencies to get good approximations

• “Smooth” signals = no high frequencies

Frequency Analysis says what kinds of things happen in a signal

Existence of properties, without specific details

Page 23: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

SamplingSampling

• Sample the value of a signal at certain instants

• Can’t know what happened in betweenwithout additional information

• Frequency limit on signal insures we don’t miss anything

• Sample the value of a signal at certain instants

• Can’t know what happened in betweenwithout additional information

• Frequency limit on signal insures we don’t miss anything

Page 24: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

What’s does this have to do with Motion Editing?What’s does this have to do with Motion Editing?• A Motion is a signal

– use the same tools as for everything else

• Vocabulary for discussing motions– frequency analysis

• Tools for manipulating signals– can be applied to our problems

• A Motion is a signal– use the same tools as for everything else

• Vocabulary for discussing motions– frequency analysis

• Tools for manipulating signals– can be applied to our problems

Page 25: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

An Important ObservationAn Important Observation

• Frequency content is an important concept for motions

• High frequencies in a motion are a noticeable thing

– Our perceptual system is tuned to them– Almost always have “meaning”

impact, sudden moves, ...

• Care must be taken with high frequencies

• Frequency content is an important concept for motions

• High frequencies in a motion are a noticeable thing

– Our perceptual system is tuned to them– Almost always have “meaning”

impact, sudden moves, ...

• Care must be taken with high frequencies

Page 26: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Motion is toughMotion is tough

Motion CaptureSample every frame

– No structure.– No intent.– lots of data!

Dense samples can represent rich frequency content

Noise, sensor errors

Motion CaptureSample every frame

– No structure.– No intent.– lots of data!

Dense samples can represent rich frequency content

Noise, sensor errors

Hand AnimationData at Keyframes

– Structured? – Remember why?– Maybe lots of data.

Good animators create complex frequency content

Quality takes work

Hand AnimationData at Keyframes

– Structured? – Remember why?– Maybe lots of data.

Good animators create complex frequency content

Quality takes work

And it’s not just motion capture’s problemAnd it’s not just motion capture’s problem

Page 27: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Approach 1: Key ReductionApproach 1: Key Reduction• Create “Keyframe” data from samples• Find splines that fit through data• Pro:

– less data to deal with– use standard keyframe editing tools

• Con:– difficult to get exact fit, accuracy tradeoffs– doesn’t recreate structure

• Create “Keyframe” data from samples• Find splines that fit through data• Pro:

– less data to deal with– use standard keyframe editing tools

• Con:– difficult to get exact fit, accuracy tradeoffs– doesn’t recreate structure

Page 28: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Approach 2:Motion Signal ProcessingApproach 2:Motion Signal Processing• Apply signal processing techniques to

motion• The motion is just a signal after all

– signal processing can be independent of representation

• Look to other fields for ideas of things to do to motions

• Apply signal processing techniques to motion

• The motion is just a signal after all– signal processing can be independent of

representation

• Look to other fields for ideas of things to do to motions

Page 29: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Example 1:Time ManipulationsExample 1:Time Manipulations• Change time, not values

v = m ( w(t) ) where w maps time->time– Notice - we don’t say much about m

• Simple, obvious things to do– shift time– scale time– stretch time– warp time

• Change time, not valuesv = m ( w(t) ) where w maps time->time

– Notice - we don’t say much about m

• Simple, obvious things to do– shift time– scale time– stretch time– warp time

Page 30: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Speeding Up a MotionSpeeding Up a Motion• Easy - just scale time: m(t) = m (2 * t)• Easy - just scale time: m(t) = m (2 * t)

Start with a signal

Start with a signal

Take every 2nd sample

Take every 2nd sample

Now twice as fast!

Now twice as fast!

Page 31: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Faster!Faster!• That was easy! Let’s try 3 times speed!• That was easy! Let’s try 3 times speed!

Start with a signal

Start with a signal

Take every 3rd sample

Take every 3rd sample

Now thrice as fast?

Now thrice as fast?

Page 32: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Even Faster?Even Faster?• Hmmm. How about 3 1/2 times speed?• Hmmm. How about 3 1/2 times speed?

Start with a signal

Start with a signal

Take every 3.5 samples

Take every 3.5 samples

This look slower!

This look slower!

Page 33: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Aliasing!Aliasing!

• Frequencies that are too high appear as lower frequencies

• Solution: pre-filter– make sure signal has no frequencies that

are too high before sampling

• Signal processing tells us how to do resampling correctly

• Frequencies that are too high appear as lower frequencies

• Solution: pre-filter– make sure signal has no frequencies that

are too high before sampling

• Signal processing tells us how to do resampling correctly

Graphics 101 applies to motion editing!

Graphics 101 applies to motion editing!

Page 34: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Time WarpingTime Warping

• Interpolate corresponding time values• Different regions scaled differently

• Interpolate corresponding time values• Different regions scaled differently

Page 35: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Example 2:Frequency FilteringExample 2:Frequency Filtering• Attenuate different frequencies

– Low Pass: cut out high frequencies– Band Pass: allow a certain range through– High Pass: cut out low frequencies

• Ideal filters hard to implement– Real filters are far from ideal!

• Easy: linear filters– FIR: finite impulse response

• Attenuate different frequencies– Low Pass: cut out high frequencies– Band Pass: allow a certain range through– High Pass: cut out low frequencies

• Ideal filters hard to implement– Real filters are far from ideal!

• Easy: linear filters– FIR: finite impulse response

Page 36: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

FIR FiltersFIR Filters

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)

in1234567

out1234567

o(2) = k0*i(1)+k1*i(2)+k2*i(3)o(2) = k0*i(1)+k1*i(2)+k2*i(3)

Page 37: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

FIR FiltersFIR Filters

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)

in1234567

out1234567

o(3) = k0*i(2)+k1*i(3)+k2*i(4)o(3) = k0*i(2)+k1*i(3)+k2*i(4)

Page 38: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

FIR FiltersFIR Filters

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)

in1234567

out1234567

o(4) = k0*i(3)+k1*i(4)+k2*i(5)o(4) = k0*i(3)+k1*i(4)+k2*i(5)

Page 39: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

FIR FiltersFIR Filters

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

• Take a weighted average of nearby samples

• Discrete Convolution• The weights are called

the “kernel”

• Choice of kernel determines function of filter

o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)

in1234567

out1234567

o(5) = k0*i(4)+k1*i(5)+k2*i(6)o(5) = k0*i(4)+k1*i(5)+k2*i(6)

Page 40: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

FIR FiltersFIR Filters

• This example had a kernel size of 3

• Ends require special care

• Trick is to pick the kernels correctly

• This example had a kernel size of 3

• Ends require special care

• Trick is to pick the kernels correctly

o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)o(t) = k0*i(t-1)+k1*i(t)+k2*i(t+1)

in1234567

out1234567

o(6) = k0*i(5)+k1*i(6)+k2*i(7)o(6) = k0*i(5)+k1*i(6)+k2*i(7)

Page 41: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

A Simple “Low Pass” FilterA Simple “Low Pass” Filter• Very common kernel is B-Spline

(approximation to a Gaussian)• k = [ 1/4, 1/2, 1/4 ]

• Soft low-pass filter• Affects a range of frequencies

– apply repeatedly to dull lower frequencies

• Very common kernel is B-Spline (approximation to a Gaussian)

• k = [ 1/4, 1/2, 1/4 ]

• Soft low-pass filter• Affects a range of frequencies

– apply repeatedly to dull lower frequencies

Page 42: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Cascades of filtersCascades of filters

• A filter breaks a signal in two

• Chain them together to break a signal into pieces

• Alter each piece, and add them back together

• A filter breaks a signal in two

• Chain them together to break a signal into pieces

• Alter each piece, and add them back together

inF

F

F

x

x

+

x

+

x

+

out

Page 43: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Motion Misconception 1Motion Misconception 1

• Low pass filters do not necessarily remove noise!

– They remove high frequencies!

• A heuristic for identifying noise– Real motions usually don’t have much high

frequencies, so if they’re there...

• High frequencies give motions their “snap”

• Low pass filters do not necessarily remove noise!

– They remove high frequencies!

• A heuristic for identifying noise– Real motions usually don’t have much high

frequencies, so if they’re there...

• High frequencies give motions their “snap”

Page 44: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Example 3:Adding / BlendingExample 3:Adding / Blending• Mix two (or more) signals together• Interpolate between motions

– Interpolate the character between its pose in the motions

• Get poses in between two originals– may or may not be meaningful

• Must do interpolation between poses– some kinds of signals (quaternions) don’t

really add

• Mix two (or more) signals together• Interpolate between motions

– Interpolate the character between its pose in the motions

• Get poses in between two originals– may or may not be meaningful

• Must do interpolation between poses– some kinds of signals (quaternions) don’t

really add

Page 45: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Time AlignmentTime Alignment

• Poses must correspond for blends to make any sense

– Halfway between lying and standing?– Halfway between foot up and down in walk?

• Warp time to make things work out– Manually specify correspondences– Automatic dynamic time warping

• Poses must correspond for blends to make any sense

– Halfway between lying and standing?– Halfway between foot up and down in walk?

• Warp time to make things work out– Manually specify correspondences– Automatic dynamic time warping

Page 46: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Uses of BlendingUses of Blending

• Blends work if they are quick– What’s halfway between a walk and a run?– Who cares if its really brief!

• Transitions– Make sure the poses meet up

• Looping– Transition between the beginning and end

• Blends work if they are quick– What’s halfway between a walk and a run?– Who cares if its really brief!

• Transitions– Make sure the poses meet up

• Looping– Transition between the beginning and end

Page 47: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Does this work?Does this work?

Yes!• Easy to do!• Use for short

overlaps• Reprsentation

Independent!

Yes!• Easy to do!• Use for short

overlaps• Reprsentation

Independent!

No!• No guarantees• Unprincipled• Need Time

Alignment• Need Corresponding

Motions• Must deal with

angles

No!• No guarantees• Unprincipled• Need Time

Alignment• Need Corresponding

Motions• Must deal with

angles

Page 48: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

How about adding something else?How about adding something else?• Create a “special motion” just for

adding into a motion• Pick a special motion with desired

properties– if you want to preserve the pose at certain

times, the motion has zero value– if you don’t want to add certain

frequencies, pick a motion without those frequencies

• Create a “special motion” just for adding into a motion

• Pick a special motion with desired properties

– if you want to preserve the pose at certain times, the motion has zero value

– if you don’t want to add certain frequencies, pick a motion without those frequencies

Page 49: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

• Keyframe the displacement maps– zero where you don’t want to change– interpolate the changes to make

• Compute changes at key frames– subtract from original

• Intepolate to propagate changes

• Keyframe the displacement maps– zero where you don’t want to change– interpolate the changes to make

• Compute changes at key frames– subtract from original

• Intepolate to propagate changes

Motion Displacement Maps (aka Motion Warps)Motion Displacement Maps (aka Motion Warps)

Page 50: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Motion WarpsMotion Warps

• Choose how to interpolate the changes• Choose how to interpolate the changes

Interpolating Cubic linear

Page 51: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Control of ScaleControl of Scale

• Key spacing sets the size of changes• Representation of original motion

doesn’t matter• Can make any size change you want

• Key spacing sets the size of changes• Representation of original motion

doesn’t matter• Can make any size change you want

Page 52: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Control of ScaleControl of Scale

• We specify as much (or little) as we want - not how much representation says!

• We specify as much (or little) as we want - not how much representation says!

Page 53: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Motion WarpingMotion Warping

It Works!• Easy to do• Independent of

initial motions form• Use existing tools• Propagate changes• Control of range• Preserve frequency

content of original

It Works!• Easy to do• Independent of

initial motions form• Use existing tools• Propagate changes• Control of range• Preserve frequency

content of original

It has problems• No control over non-

key frames• Addition may not be

meaningful• Can’t preserve

constraints• Need interpolating

displacement curve

It has problems• No control over non-

key frames• Addition may not be

meaningful• Can’t preserve

constraints• Need interpolating

displacement curve

Page 54: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Other Motion Signal Processing TricksOther Motion Signal Processing Tricks• Apply any signal processing operation

to a motion– you may (or may not) get a useful result

• Motion concepts and signal concepts may not map

• There are lots of methods for signal processing to try

– wave shaping, non-linear filtering,noise reduction, ...

• Apply any signal processing operation to a motion

– you may (or may not) get a useful result

• Motion concepts and signal concepts may not map

• There are lots of methods for signal processing to try

– wave shaping, non-linear filtering,noise reduction, ...

Page 55: Motion Editing and Signal Processinggleicher/talks/1999_07_sigcourse/e2_sign… · Not how we talk about motions. Have to control small details Poses, joint angles, timing, ... Not

Some other resourcesSome other resources

• Course Materials on-line (coming soon!)

http://www.cs.wisc.edu/graphics/MotionEditing

• Motion Editing Mailing List– [email protected]– subscribe moedit

• Course Materials on-line (coming soon!)

http://www.cs.wisc.edu/graphics/MotionEditing

• Motion Editing Mailing List– [email protected]– subscribe moedit