The Linear Dynamic System and its application in moction capture

Lei Li
Computer Science Department
Carnegie Mellon University
 Given a sequence of motion capture data, to estimate
the velocity and acceleration of each joint at every time
stamp
 Scenario:
 observation with noise
 Application:
 Computer vision: object tracking
 Control: estimate missile trajectory
 Motion capture data:
 Other time series: economics data
 Developed by Rudolf Kalman in 1961
 Also called linear dynamic system
 Could be easily interpreted using probabilistic
graphical model
 Similar to Hidden Markov Model
 A bit probability, esp. Gaussian Distribution
 A bit linear algebra and matrix computation
 A bit about Expectation Maximization
N(u0, V0)
N(A∙z1, Γ)
z1
N(C∙z1, Σ)
x1
z2
N(C∙z2, Σ)
x2
zn
N(A∙zn, Γ)
zn+1
N(C∙zn, Σ)
xn
xn+1
 xn : observed position(e.g. x coordinate of left
hand), one dimensional
 zn : hidden variable(e.g. actual pos, velocity,
acceleration), three dimensional
N(u0, V0)
N(A∙z1, Γ)
z1
N(C∙z1, Σ)
x1
z2
N(C∙z2, Σ)
x2
zn
N(A∙zn, Γ)
zn+1
N(C∙zn, Σ)
xn
xn+1
 A : transition matrix
 Γ: transition variance, noises among transition
N(u0, V0)
N(A∙z1, Γ)
z1
N(C∙z1, Σ)
x1
z2
N(C∙z2, Σ)
x2
zn
N(A∙zn, Γ)
zn+1
N(C∙zn, Σ)
xn
xn+1
 C : transmission matrix
 Σ: transmission variance, observation noises
z n  ( p n , vn , a n ) T
 pn 1   1 1 1 / 2  pn 

 
 
 vn 1    1 1  vn    n
a  



1  an 
 n 1  
 pn 
 
xn  1 0 0 vn    n
a 
 n
 Given the parameters and the observation, estimate
the posterior P(zi|x1, … xN;u0,V0,A, Γ,C,Σ )
 Solution: forward-backward algorithm(sum-product)
 The posterior given the sequence up to current
observation
 Define: alpha(zn) = P(zn|x1, … xn) = assume N(un, Vn)
N(u0, V0)
N(A∙z1, Γ)
z1
N(C∙z1, Σ)
x1
z2
N(C∙z2, Σ)
x2
zn
N(A∙zn, Γ)
zn+1
N(C∙zn, Σ)
xn
xn+1
 Define: cn+1 = P(xn+1|x1, … xn)
N(u0, V0)
N(A∙z1, Γ)
z1
N(C∙z1, Σ)
x1
z2
N(C∙z2, Σ)
x2
zn
N(A∙zn, Γ)
zn+1
N(C∙zn, Σ)
xn
xn+1
 Cn ∙ alpha(zn) = P(xn,zn|x1, … xn-1 )



= P(xn|zn) ∫ alpha(zn-1) ∙P(zn|zn-1) dzn-1
= N(C∙zn,Σ) ∫alpha(zn-1)∙N(A∙zn-1,Γ) dzn-1
N(un, Vn)
N(un, Vn)
 Could get the close solution for the forward recursion:
 There is a similar backward recursion:
 The posterior given the whole observation sequence
 Gamma(zn) = P(zn|x1, … xN)



= ∫P(zn+1|x1, … xN) ∙ P(zn|zn+1 , x1, … xn) dzn+1
=∫ Gamma(zn+1) ∙ P(zn|zn+1 , x1, … xn) dzn+1
N(wn, Wn)
N(wn+1, Wn+1)
 Given the observation, estimate the most likely
parameters
 Maximize Expected Log-likehood
 J = E[ log P(z1, … zN , x1, … xN|u0,V0,A, Γ,C,Σ )]
 J is a convex function, could get close solution
 Problem:
 Given two motion-capture sequences that are to be
stitched together, how can we assess the goodness of the
stitching?
 Idea:
 Naive solution: Euclidean distance
 Dynamics based: compute the effort by approximating
the work of making the intended transition
 Review the Kalman filter
 Review the forward-backward algorithm
 Application to motion capture data
Thank you