structure from motion using kalman filter

79
SFM Kalman V5c2 1 3D computer vision Structure from motion using Kalman filter

Upload: rosamund-sanders

Post on 08-Jan-2018

226 views

Category:

Documents


3 download

DESCRIPTION

Aims To obtain structure and camera motion from an image sequence Utilize inter-picture dynamics of a sequence Such as constant speed, acceleration of the camera etc. SFM Kalman V5c2

TRANSCRIPT

Page 1: Structure from motion using Kalman filter

SFM Kalman V5c2 1

3D computer vision

Structure from motion using Kalman filter

Page 2: Structure from motion using Kalman filter

SFM Kalman V5c2 2

Aims

• To obtain structure and camera motion from an image sequence

• Utilize inter-picture dynamics of a sequence– Such as constant speed, acceleration of the

camera etc.

Page 3: Structure from motion using Kalman filter

SFM Kalman V5c2 3

Tracking methods

• Kalman filtering, suitable for systems with Gaussian noise

• Condensation (or called particle filter), suitable for systems with Non-Gaussian noise

Page 4: Structure from motion using Kalman filter

SFM Kalman V5c2 4

Part 0

Basic concept of Kalman filter

Page 5: Structure from motion using Kalman filter

Introduction

• A system (e.g. radar tracking a plane) can be modelled by a system transition dynamic function using the Newtons’ law (linear).

• Measurement may contain noise (assume Gaussian)

• Kalman filter predict and update the system to reduce the effect of noise.

SFM Kalman V5c2 5

Page 6: Structure from motion using Kalman filter

System state and dynamic

• xk is the state at time k – xk=A*xk-1

– A is the motion model– Q is system noise (by wind)

• Z is measurement on the radar screen, – R is measurement noise– Assume u>>h, so Zu

SFM Kalman V5c2 6

QAx

Quut

uu

x

tA

whereQAxxtuuu

velocity][position,

uudtduux

k

k

k

k

kk

kk

kk

T

TT

1

1

1

1

1

101

hence,10

1, So

:law Newtons'

],[,

positionu

zRadarscreen

velocitydtduu

h

Page 7: Structure from motion using Kalman filter

Can add acceleration if we want

SFM Kalman V5c2 7

QAx

uuu

ttt

uuu

x

ttt

A

whereQAxx

tutuuu

on]accelerati velocity[position,

uuux

k

k

k

k

k

k

k

k

kk

kk

T

T

1

1

1

12

2

1

21

10010

5.01

hence,100

105.01

, So21 :law Newtons'

,

],,[

Page 8: Structure from motion using Kalman filter

Kalman filter

SFM Kalman V5c28

xk-1(actual state at time k-1)xk

At time kxk+1

At time k+1

ek-1=error

• Always predict and update to find the state of the plane x

• Kalman filter offers optimum prediction by considering the system and measurement noise

ek=errorek+1=error

)1 at time predicted(ˆ 1 k-xk kx̂1ˆ kx

Page 9: Structure from motion using Kalman filter

SFM Kalman V5c2 9

Part 1

Introduction to Kalman filter (KF) and Extended Kalman filters (EKF)

Page 10: Structure from motion using Kalman filter

SFM Kalman V5c2 10

Kalman filter introduction

• Based on• An Introduction to the Kalman

FilterSourceTechnical Report: TR95-041 Year of Publication: 1995 Authors Greg Welch Gary Bishop Publisher University of North Carolina at Chapel Hill   Chapel Hill, NC, US (http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf)

Page 11: Structure from motion using Kalman filter

SFM Kalman V5c2 11

The process : state= position, velocity, acceleration

,R)N(prob(v)tmeasuremenv

tmeasuremenH

tsmeasuremenzwherevHxz

QNprob(w)w

u

B

A

kxwBuAxx

m

nm

mk

kkk

n

nk

nn

nn

nk

kkkk

0 noise,

relation & state

,)2(

**********************************

),0(noise, n transitiostate

input

gaininput

matrix sitionstate_tran

is at time state)1(

)1(size

)(size

)1(size

)1(size

)1(size

)(size

)(size

)1(size

11

Page 12: Structure from motion using Kalman filter

SFM Kalman V5c2 12

Noise

noise of covariance thecalled is

if,0 if,

Similarly and allfor ,0

so t,independen are, Becausenoise process of covariance thecalled is

if,0 if,

) wikipeida(see valueexpected theis ] [

noise v

noise process

1)size(

1)nsize(

tmeasuremenRkikiR

vvE

ikvwE

wwQ

kikiQ

wwE

E

tmeasuremen

w

k

kTik

Tik

ik

k

kTik

m

Page 13: Structure from motion using Kalman filter

SFM Kalman V5c2 13

Kalman Computation: Using the current information (a priori) to estimate the predicted future information (a posteriori)

• x is a state (e.g. position, velocity & acceleration, etc)• z is measurement (image position [u,v]T etc)• k is time step index

factor blendingor gain Kalman)4()ˆ(ˆˆ

)3( input state, realcurrent theis where, (2), from)prediction& between ( innovation called is )ˆ(

est.state) previous*-(current alman_gain K est.state previousest.stateCurrent :equ.(3) of Meaning

)3()ˆ(ˆˆas estimate prioria torelated is estimate state posteriori A

covarianceerror state estimate posterioria

covarianceerror state estimate prioria

ˆprioria estimate,ˆwhere,ˆ

)(

mnsizek

kkkkkk

kkkk

kkk

kkkkk

Tkkk

Tkkk

kkk

-kkk

KxHvHxKxx

xvHxzzdifferencetmeasuremenxHz

Htmeasuremen

xHzKxx

eeEP

eeEP

xxe xxe

kk

kk

kk

PP

xx

xx

cov. err. prioria | cov. err.posterior a

ˆ state est. prioria | ˆ state est.posterior a

state prioria | stateposterior a

Page 14: Structure from motion using Kalman filter

SFM Kalman V5c2 14

How good is the prediction? We judge it by looking at the error covariance: the smaller Pk the better.

ˆ ˆ (5)

Put (4) into (5)ˆ ˆ ˆ ˆ{[ ( )][ ( )] }

ˆ ˆ ˆ ˆ{[( ) ( ) ][( ) ( ) ] }

ˆ{[( )( ) ][(

Tk k k k k

Tk k k k k k k k k k k k k

Tk k k k k k k k k k k k k k k

k k k k k k

P E x x x x

P E x x K Hx v Hx x x K Hx v Hx

P E x x K Hx Hx K v x x K Hx Hx K v

P E I K H x x K v I

ˆ)( ) ] }

ˆ ˆ ˆ{( )( )( ) ( ) { () * ( ) * )}

( )for and are constant, so ( ) , ( )

ˆ ˆ( ) {( )( ) }( ) { () *

Tk k k k k

T Tk k k k k k k k k k

T Tk k k k

k k k k

T Tk k k k k k k

K H x x K v

P E I K H x x x x I K H E function x x v

K E v v KK H E K K E H H

P I K H E x x x x I K H E funtion

ˆ( ) * )}

( )

ˆ ˆ{( )( ) } , ( )

ˆ ˆ( ) and has no correlation, so { () * (( ) * )} 0

( ) ( ) (6)

k k k

T Tk k k k

T Tk k k k k k k K

k k k k k k

T Tk k k k k K k

x x v

K E v v K

E x x x x P E v v R

x x v E function x x v

P I K H P I K H K R K

kk

kk

kk

PP

xx

xx

cov. err. prioria | cov. err.posterior a

ˆ state est. prioria | ˆ state est.posterior a

state prioria | stateposterior a

Page 15: Structure from motion using Kalman filter

SFM Kalman V5c215

How to make Pk small?Find optimal gain Kk to make Pk small

From http://www.ee.ic.ac.uk/hp/staff/dmb/matrix/calculus.html

( ) ( ) ; ( { }) { }From http://en.wikipedia.org/wiki/Matrix_differentiation

( { }) / , must be sqaure

( { }) / 2 ,

T T T

T

T

dy d y dy d tr y tr dy

d tr AB dA B AB

d tr ACA dA AC

must be symmetricC

(6), and {} {}

( ) ( ) (6)

( )( ( ) )

( ) ( )

( )

(

T Tk k k k k K k

T Tk k k k k k K k

T T Tk k k k k k k k k k K k

T T T Tk k k k k k k k k k K k

k k k k k k

From tr trace

P I K H P I K H K R K

P P K HP I K H K R K

P P P K H K HP K HP K H K R K

P P P K H K HP K HP H K K R K

P P K HP P K

1

) ( ) (7)Since trace of a matrix = trace of its transpose

{ } { } 2 { } { ( ) }so

( { }) 2( ) 2 ( ) 0

( )( ) (

T T Tk k k k

T Tk k k k k k k k

T Tkk k k k

k

T Tk k k

H K HP H R K

tr P tr P tr K HP tr K HP H R K

d tr P HP K HP H RdK

result

K P H HP H R

8)This is called optimal gain.kK

Note: For Linear Kalman Filter, K(Kalman gain) and P (covariance) depend on Q (system noise setting) and R(measurement noise setting) only and not Z (measurement). So If Q ,R are given, K and P can be pre-calculated.

Page 16: Structure from motion using Kalman filter

SFM Kalman V5c2 16

Error covariance Pk for update estimate

1

1 1

Put (8) back to (7)

( )( ) (8)

[ ] ( ) (7)

( )

( )( ) [( )( ) ]

(

T Tk k k

T T Tk k k k k k k k k k

T T T Tk k k k k k k k k k

T T T T T Tk k k k k k k k

k

K P H HP H R

P P K HP P K H K HP H R K

P P K HP P H K K HP H R K

P P P H HP H R HP P H P H HP H R

P

1 1

1 1

1

1

)( ) ( )[( )( ) ] (9)The last term of (9)

( )( ) ( )[( )( ) ]

( )[( )( ) ]So (9) becomes

( )( )

T T T T T Tk k k k k

T T T T T Tk k k k k k

T T T Tk k k

T Tk k k k k

H HP H R HP H R P H HP H R

P H HP H R HP H R P H HP H R

P H P H HP H R

P P P H HP H R HP

1

1

1

[( )( ) ]

( )[( )( ) ]

( )( )

( ) (10)

T T T Tk k k

T T T Tk k k

T Tk k k k k

k k k

P H P H HP H R

P H P H HP H R

P P P H HP H R HP

P I K H P

Page 17: Structure from motion using Kalman filter

Error covariance prediction

SFM Kalman V5c2

17

)prediction covarianceerror (

so ,constant is Since)prediction covarianceerror (or

,

,0,0n,correlatio no have and Since

Since

,0 of value)(expected mean The

ˆ

, Becauseearlier described as definitionby , ˆ also , ˆ

1

111

111111111

111111111111

11111111

111111111111

111111

111111

111

11111

111

111

QAAPP

AQAPAP

QAPAwwEAeeEAP

wwAeeAEwweAeAEP

eAwweAew

wweAwweAeAeAEP

weAweAEP

weAweAEeeEP

wweAe

xAwxAe

wxAxxxexxe

Tkk

Tkkkk

Tkkk

Tkk

Tk

Tkkkk

Tkk

Tk

Tkkk

Tkk

Tkkkkk

Tkkk

Tkkkkk

Tkk

Tkkk

Tkkk

Tkkkkk

Tk

Tkkkkkk

Tkkkkkk

Tkkk

k

kkkk

kkkkkk

kkkk

kkkkkk

Page 18: Structure from motion using Kalman filter

SFM Kalman V5c2 18

Kalman filter (KF) recursive functions

kkk

kkkkk

Tk

Tkk

Tkk

kk

PHKIP

xHzKxx

RHHPHPK

QAAPP

xAx

)( Covariance Update

)ˆ(ˆˆ EstimateUpdate

))(( gain Kalman

equations Update)prediction covarianceerror (

)prediction state(ˆˆstatenext intoproject :equations Prediction

1

1

1

kk

kk

kk

PP

xx

xx

cov. err. prioria | cov. err.posterior a

ˆ state est. prioria | ˆ state est.posterior a

state prioria | stateposterior a

Page 19: Structure from motion using Kalman filter

SFM Kalman V5c2 19

Kalman Filter (KF) Iteration flow

kkk

kkkkk

Tk

Tkk

PHKIP

xHzKxx

RHHPHPK

)( Covariance Update

)ˆ(ˆˆ EstimateUpdate

))(( gain Kalman

equations Update1

)prediction covarianceerror (

)prediction state(ˆˆstatenext intoproject :equations Prediction

1

1

QAAPP

xAxT

kk

kk

11 andˆstates Initial

kk Px

Page 20: Structure from motion using Kalman filter

A simple example of Linear Kalman filter

• Measure a noisy accelerometer output L• H=1 (scalar) measurement is the stated • x=Hz, hence x=z• Linear dynamic motion model A=1 (scalar)• Define the problem:– By raw measurement z, we want to find L (the

true value of the accelerometer output)– Q is system noise– R is measurement noise

SFM Kalman V5c220

Page 21: Structure from motion using Kalman filter

Kalman filter for an accelerometer

SFM Kalman V5c2 21

Page 22: Structure from motion using Kalman filter

SFM Kalman V5c2 22

Kalman Filter (KF) Iteration flowAll terms are scalar here, A=1, H=1,

and set Q=0.0001, R=0.1

kkk

kkkkk

kkk

PKIP

xzKxx

RPPK

)( Covariance Update

)ˆ(ˆˆ EstimateUpdate

))(( gain Kalman

equations Update1

)prediction covarianceerror (

)prediction state(ˆˆstatenext intoproject :equations Prediction

1

1

QPP

xx

kk

kk

11 andˆstates Initial

kk Px

Page 23: Structure from motion using Kalman filter

Processingset Q=0.0001, R=0.1,Pk=0=1000 (random setting, but cannot be 0)xk=0=0 (it is unknown, so set an arbitrary value)• Predict:

• Update

SFM Kalman V5c2 23

)prediction covarianceerror (0001.0

)prediction state(ˆˆstatenext intoproject :equations Prediction

1

1

kk

kk

PP

xx

kkk

kkkkk

kkk

PKIP

xzKxx

PPK

)( Covariance Update

)ˆ(ˆˆ EstimateUpdate

)1.0)(( gain Kalman

equations Update1

Page 24: Structure from motion using Kalman filter

Time from K=1 to K=2• Predict using Q=0.0001– x_est_pos(k=2)= x_est_pos(k=1)= 0

(arbitury set)• Set p_pos(1)=1000, Q=0.0001

– p_est_pri(k=2)=p_pos(k=1)+Q– p_pri(2)=1000+0.0001=1000.0001

• Update using R=0.1,z=0.9– K(2)=p_pri(2)*/(p_pri(2)+R)

• K(2)=1000.0001/(1000.0001+0.1)=0.9999– x_est_pos(2)=x_est_pri(2)+K(2)*[z-

x_est_pri(2)]=• x_est(2)=0+0.9999*[0.9-0]=0.8999

– p_pos(2)=(1-K)*p_pri(2)• p_pos(2)=(1- 0.9999)*1000.0001=0.1

SFM Kalman V5c224

userby //set ,1.0)( Covariance Update

)ˆ(ˆˆ EstimateUpdate

))(( gain Kalman

equations Update1

RPKIP

xzKxx

RPPK

kkk

kkkkk

kkk

userby //set 0.0001Q)prediction covarianceerror (

)prediction state(ˆˆstatenext intoproject :equations Prediction

1

1

QPP

xx

kk

kk

Page 25: Structure from motion using Kalman filter

Kalman test• %Kalman test1• clear• 'testi g kalman'• %generate data• kmax=100 % max time• x_real=1 * (ones(kmax,1)) %max x1 dimentation , assume a contant value• z=x_real+randn(kmax,1) %rand std=1,mean=0• clf• plot(z,'+')• hold on• plot(x_real)• • %Init k=1• Q=0.0001• R=0.1• k=2• x_est_pos(1)= 0• p_pos(1)=1000;• % predict• x_est_pri(k)=x_est_pos(1);• p_pri(k)=p_pos(1)+Q;• % update;• Kgain(k)=p_pri(k)/(p_pri(2)+R);• x_est_pos(k)=x_est_pri(k)+ Kgain(k)*[z(k)-x_est_pri(k)];• p_pos(k)=(1-Kgain(k))*p_pri(k);• 'test--'• k• x_est_pri• x_est_pos• p_pri• p_pos• Kgain

• for k=2:kmax• x_est_pri(k)=x_est_pos(k-1);• % p_pos(k-1)=1000 ;• p_pri(k)=p_pos(k-1)+Q;• % update• • Kgain(k)=p_pri(k)/(p_pri(k)+R)• x_est_pos(k)=x_est_pri(k)+Kgain(k)*[z(k)-

x_est_pri(k)]• p_pos(k)=(1-Kgain(k))*p_pri(k)• 'test--'• k• x_est_pri• x_est_pos• p_pri• p_pos• Kgain• plot(x_est_pos,'o-')• % pause• end

SFM Kalman V5c2 25

Page 26: Structure from motion using Kalman filter

Test result• Test1

– Q = 0.00001, R= 0.1000– Measurment error is assumed to be

higher, trust the model more– x_est_pos fluctates less – circle line =x_est_pos– Solid line= True value

• Test2– Q = 0.00001, R= 0.001000– Measurment error is assumed to be

lower, trust the measurmnet more: x_est_pos fluctates more

– circle line =x_est_pos– Solid line= True value

SFM Kalman V5c2 26

Page 27: Structure from motion using Kalman filter

Time K=2

• Predict– x1=x0=0– P1=1000+0.0001

• Update– K1=1000.0001/

(1000.0001+0.1)=0.9999– X1=0+0.9999(0.9-

0)=0.8999– P1=(1-

0.9999)1000.0001=0.1

SFM Kalman V5c2 27

userby //set ,1.0)( Covariance Update

)ˆ(ˆˆ EstimateUpdate

))(( gain Kalman

equations Update1

RPKIP

xzKxx

RPPK

kkk

kkkkk

kkk

userby //set 0.0001Q)prediction covarianceerror (

)prediction state(ˆˆstatenext intoproject :equations Prediction

1

1

QPP

xx

kk

kk

Page 28: Structure from motion using Kalman filter

Numerical results• %display• fprintf('Q=%5.5f;R=%5.5f\n',Q,R)• fprintf('x_real(%2d)=%5.5f;\n',1,x_real(1))• for k=1:kmax• fprintf('k=%2d;',k)• fprintf('x_est_pri(%2d)=%5.5f;',k,x_est_pri(k))• fprintf('x_est_pos(%2d)=%5.5f;',k,x_est_pos(k))• fprintf('p_pri(%2d)=%5.5f;',k,p_pri(k))• fprintf('p_pos(%2d)=%5.5f;',k,p_pos(k))• fprintf('Kgain(%2d)=%5.5f;',k,Kgain(k))• fprintf('z(%2d)=%5.5f;',k,z(k))• % fprintf('x_real(%2d)=%5.5f;',k,x_real(k))• fprintf('\n');• end• fprintf('\n');• %%the resulst is • Q=0.00010;R=0.00100• x_real( 1)=1.00000;• k= 1;x_est_pri( 1)=0.00000;x_est_pos( 1)=0.00000;p_pri( 1)=0.00000;p_pos( 1)=1000.00000;Kgain( 1)=0.00000;z( 1)=-

0.36584;• k=

2;x_est_pri( 2)=0.00000;x_est_pos( 2)=1.45851;p_pri( 2)=1000.00010;p_pos( 2)=0.00100;Kgain( 2)=1.00000;z( 2)=1.45851;• k= 3;x_est_pri( 3)=1.45851;x_est_pos( 3)=1.89194;p_pri( 3)=0.00110;p_pos( 3)=0.00052;Kgain( 3)=0.52381;z( 3)=2.28598;• k= 4;x_est_pri( 4)=1.89194;x_est_pos( 4)=1.51447;p_pri( 4)=0.00062;p_pos( 4)=0.00038;Kgain( 4)=0.38416;z( 4)=0.90935;• k= 5;x_est_pri( 5)=1.51447;x_est_pos( 5)=1.09337;p_pri( 5)=0.00048;p_pos( 5)=0.00033;Kgain( 5)=0.32622;z( 5)=0.22363;• k= 6;x_est_pri( 6)=1.09337;x_est_pos( 6)=0.41734;p_pri( 6)=0.00043;p_pos( 6)=0.00030;Kgain( 6)=0.29885;z( 6)=-1.16877;• k= 7;x_est_pri( 7)=0.41734;x_est_pos( 7)=0.95893;p_pri( 7)=0.00040;p_pos( 7)=0.00029;Kgain( 7)=0.28512;z( 7)=2.31684;• k= 8;x_est_pri( 8)=0.95893;x_est_pos( 8)=1.14236;p_pri( 8)=0.00039;p_pos( 8)=0.00028;Kgain( 8)=0.27804;z( 8)=1.61863;• k= 9;x_est_pri( 9)=1.14236;x_est_pos( 9)=1.22263;p_pri( 9)=0.00038;p_pos( 9)=0.00027;Kgain( 9)=0.27433;z( 9)=1.43496;• k=10;x_est_pri(10)=1.22263;x_est_pos(10)=1.63283;p_pri(10)=0.00037;p_pos(10)=0.00027;Kgain(10)=0.27237;z(10)=2.7286

4;SFM Kalman V5c2 28

Page 29: Structure from motion using Kalman filter

Kalman code (lab5: IMU)• // Kalman filter module

• float Q_angle = 0.001;• float Q_gyro = 0.003;• float R_angle = 0.03;

• float x_angle = 0;• float x_bias = 0;• float P_00 = 0, P_01 = 0, P_10 = 0,

P_11 = 0; • float dt, y, S;• float K_0, K_1;

• float kalmanCalculate(float newAngle, float newRate,int looptime) {

• dt = float(looptime)/1000;

• x_angle += dt * (newRate - x_bias);• P_00 += - dt * (P_10 + P_01) + Q_angle *

dt;• P_01 += - dt * P_11;• P_10 += - dt * P_11;• P_11 += + Q_gyro * dt;• • y = newAngle - x_angle;• S = P_00 + R_angle;• K_0 = P_00 / S;• K_1 = P_10 / S;• • x_angle += K_0 * y;• x_bias += K_1 * y;• P_00 -= K_0 * P_00;• P_01 -= K_0 * P_01;• P_10 -= K_1 * P_00;• P_11 -= K_1 * P_01;• return x_angle;}SFM Kalman V5c2 29

Page 30: Structure from motion using Kalman filter

Experiment using a real imutitle('Kalman IMU and sim: square line= arduino kalamn measured, +line =raw

measured, oline=matalb sim kalman')

SFM Kalman V5c2 30

Page 31: Structure from motion using Kalman filter

Extended Kalman filter EKF

• For non-linear problems, such as 2D to 3D computer vision problems.

• Here for our Structure from motion SfM problem– Camera motion is linear (Newtonian

mechanics)–Measurement is non-linear (3D to 2D

projection)

SFM Kalman V5c2 31

Page 32: Structure from motion using Kalman filter

SFM Kalman V5c2 32

Definitions:Note: measurement to state is non-linear

ˆ state vectorw

tmeasuremen of Jacobian

length focal,functiont measuremenlinear -nons.coordinatecamera in feature D-3 theis

where,)( Example

where,)( functionlinear -nona ofresult theis t Measuremen

noiset measuremennoise, statestate, structure

-- Transition State

t1

t

xhh

fhizyx

zy

zxfxh

noisevvxhh(X)

xxvx

t

thTCi

Ci

Ci

T

C

C

C

C

t

tttt

t

tt

t

Page 33: Structure from motion using Kalman filter

SFM Kalman V5c2 33

EKF Iteration flow

h()h

PhKIP

xhzKxx

RhPhhPK

kkk

kkkkk

Tk

Tkk

functiont measuremen theof jacobian theis Covariance Update

0,ˆˆˆ EstimateUpdate

gain Kalman

equations UpdateEKF1

kPx andˆ

states Initial

k•

)prediction covarianceerror (

solinear is , of jacobian theis where,

functionlinear a is , ˆ)ˆ(ˆ ),prediction state(ˆˆ(linear) motioncamera for statenext intoproject :equations Prediction

1

111

111

QAAPP

AFffFQFPFP

xAxfxxAx

Tkk

Tkkkk

kkkkk

Ref: http://en.wikipedia.org/wiki/Extended_Kalman_filter

Page 34: Structure from motion using Kalman filter

SFM Kalman V5c2 34

Part IITwo-pass Kalman filter for structure

and pose estimationDescription

Major reference [Yu, June 2005]

Page 35: Structure from motion using Kalman filter

SFM Kalman V5c2 35

Two-pass Kalman filter for structure and pose estimation

• Structure and pose updating

Feature extractionand trackingusing KLT

ModelInitialization

Set i=2

Step 1Pose estimationfor the ith frame

Step 2Structure updatingusing N EKFs withthe ith image as the

measurement

The final3D model

The i-th frame is not the last frame.Increment i by 1.

The last frame is reached

Page 36: Structure from motion using Kalman filter

SFM Kalman V5c2 36

Model initializations• f=focal length (found by camera calibration)• Zinit=initial guess of z direction of the model points

(e.g. Zinit=1 meter from the camera)

scoordinateobjectTO

iOi

Oiguess

TCi

Ci

Ci

Ci

Ci

Ci

Ci

Ci

initi

i

TCi

Ci

Ci

Tii

zyxzyx

mizyx

yx

zf

vu

izyx

vu

_

1: allfor guessed be can Zinit)(,,

equation projection theuse

s.coordinatecamera in feature D-3a is

measured position pixel

Page 37: Structure from motion using Kalman filter

SFM Kalman V5c2 37

Kalman tracking

Step 1: Kalman pose tracking

Page 38: Structure from motion using Kalman filter

SFM Kalman V5c2 38

Kalman filtering pose trackingAssume model is known (by

guessing)•

Xc

Yc

Zc

Xo

Yo

Zo

Oo

Oc

u

v

C (image center)

Model

XiO = [xi

O yiO zi

O]’

Tc

Object coordinateframe

Camera coordinateframecoordintes (world)object at point model D3

coordintescamera at point model D3

,)(

Oi

Ci

COi

Ci

X

X

whereTTRXX

Page 39: Structure from motion using Kalman filter

SFM Kalman V5c2 39

Kalman pose filterStates• State transition

ˆ state vectorw

dtTTT

diag

w

wherewAw

dtdTTTTT

whereTTTTTTw

w

sss

tt

ttt

Ttt

where,10

1,,

101

noisen transitiostate vector,state

,ˆˆ

resp. axes zy, x,aroundrotation are,,etc; resp. axes zy, x,alongon translatiare ,,

,,,,,,,,,,,, ˆ

as defined is state

)1212(

'

)112('

)112(1)1212()112(

321

11321

332211332211)112(1,

Note: we use w instead of x for state representation here

Page 40: Structure from motion using Kalman filter

SFM Kalman V5c2 40

Kalman pose filter measurement

• measurement

)1(,...,...,)(__

)(

noiset measuremen,length focal

1

1

1

1

''

'

T

Cn

Cn

Cn

Cn

Ci

Ci

Ci

Ci

C

C

C

C

tt

tttt

t

zy

zx

zy

zx

zy

zxfwg

vimageuimage

vwg

vf

Page 41: Structure from motion using Kalman filter

Kalman for pose estimationIMMKalmanPoseGen.m

SFM Kalman

V5c2

41

}

)7(

)6(

)5()ˆ(ˆˆ--equations -Update-

)4(

)3(ˆˆ{)1(min ationsfor K_iter follwoing tehloop :frame image eachfor

)2(10

1,

101

,10

1,

101

,10

1,

101

Gains Kalman features, ofnumber resp. axes zy,x, around rotation are,,

etc; resp. axes zy,x, along on translatiare ,,

,,,,,,,,,,, variablesstateˆ

1

22)22('

)212()1212(1,)122()212()1212(1,)212(

)1212(1,)122()212()1212(1,)1212(,

)12()2(1,)2('

)212()112(1,)112(,

)1212('

)1212()1212(1,1)1212()1212(1,

)112(1,1)1212()112(1,

)212(

321

11321

332211332211)112(1,

NNNNtNTwttNwN

TwttN

ttNwNtttt

NNtttNtNcurrentttnexttt

tT

tttt

previousttcurrenttt

N

T

tt

RgPggPK

PgKPP

wgKww

QAPAP

wAw

TsTsTsTsTsTsdiagA

KN

dtdTTTTT

TTTTTTw

‧‧

Page 42: Structure from motion using Kalman filter

Implementation

• SFM Kalman V5c2 42

by KLT ede.g.obtain ts,measuremen

::::

)1(,...,...,)(

__

::

__

)(

noiset measuremen,length focal

12

2

2

1

1

'

1

1

1

1

1

1

''

'

NN

N

t

T

Cn

Cn

Cn

Cn

Ci

Ci

Ci

Ci

C

C

C

C

tt

N

N

tttt

t

vu

vuvu

zy

zx

zy

zx

zy

zxfwg

vimageuimage

vimageuimage

vwg

vf

Page 43: Structure from motion using Kalman filter

Implementation details, equation 2,3

SFM Kalman V5c2

43

resp. axes zy,x, around rotation are,,etc; resp. axes zy,x, along on translatiare ,,

)3(

11

11

11

11

11

11

)3(ˆˆ

,,,,,,,,,,, ˆ

101

,10

1,

101

,10

1,

101

,10

1

321

11321

1,13

3

2

2

1

1

3

3

2

2

1

1

1,3

3

2

2

1

1

3

3

2

2

1

1

)112(1,1)1212()112(1,

332211332211)112(1,

1212

dtdTTTTT

TTTTTT

Ts

Ts

Ts

Ts

Ts

Ts

TTTTTT

wAw

TTTTTTw

dtTs

TsTsTsTsTsTsdiagA

tttt

previousttcurrenttt

Ttt

Page 44: Structure from motion using Kalman filter

State transition matrix A12x12

• Typical • A12x12

• Ts=1 used in the

program

SFM Kalman V5c2 44

11

11

11

11

11

11

1212

Ts

Ts

Ts

Ts

Ts

Ts

A

Page 45: Structure from motion using Kalman filter

Initialize pose_covar P1,1 • %Initialize state vector covariance for the pose filter• pose_covar=P1,1 = diag([1 1 1 1 1 1 0.001 0.0001 0.1 0.01 0.01

0.001]*1000);

SFM Kalman V5c2 45

1212

11

1.01

1.01

101

10001000

10001000

10001000

.

P ,

Page 46: Structure from motion using Kalman filter

Covariance of state noise= Q12x12 , • Qp = diag([10 10 10 10 10 10 0.0001 0.0001 0.1 0.01 0.001 0.0001]);

SFM Kalman V5c246

1212

1212

0001.0001.0

01.01.0

0001.00001.0

1010

1010

1010

Q

Page 47: Structure from motion using Kalman filter

Covariance of measurement noise=R12x12• Rc = diag(repmat([2 2], 1, n_features));• N=number of features

SFM Kalman V5c247

NN

NNR

22

22

22

22

::

::

22

22

Page 48: Structure from motion using Kalman filter

Motion and projection

SFM Kalman V5c2

48

312

213

3333231

2232221

312

123

3333231

1131211

,...,1

3

2

1

333231

232221

131211

3

2

1

333231

232221

131211

3211

onsmanipulati someAfter

'',

''

.length focal of camera aby captured

are projection image The

'''

].,position D-3 new in the is ],point model ,motion After s.expression hesimplify t todropped is index The

matrix rotational theis

on vector, translati theis , Ar time

TZYXTZYXf

ZYf

TZrYrXrTZrYrXrfv

TZYXTZYXf

ZXf

TZrYrXrTZrYrXrfu

ZYf

ZXf

vu

q

f

q

TTT

ZYX

rrrrrrrrr

TTT

ZYX

RZYX

Z'[X',Y'Z [X,YR,Tt

rrrrrrrrr

R

TTTTtt

iii

iiiRi

Ri

iii

iiii

iii

iiiRi

Ri

iii

iiii

i

i

i

i

i

ii

Ni

i

i

i

i

i

i

i

i

i

T

T

Page 49: Structure from motion using Kalman filter

SFM Kalman V5c2

490 and

0 all practice In

columns. 12 hasrow Eachrows. 2 totalrows, 2 generates feature Each

122

::::

:

:

11

1 Rsince

),,,,,,,,( Given

321321

321321

2

2

1

2

1

2

2

2

1

2

1

2

3

1

3

1

2

1

2

1

1

1

1

1

3

1

3

1

2

1

2

1

1

1

1

1

3

1

3

1

2

1

2

1

1

1

1

1

3

1

3

1

2

1

2

1

1

1

1

1

)122(

12

13

23

333231

232221

131211

312

213

3333231

2232221

312

123

3333231

1131211

321321

vvvTv

Tv

Tv

uuuTu

Tu

Tu

N

N

Tv

Tv

Tv

Tu

Tu

Tu

vvvvvvTv

Tv

Tv

Tv

Tv

Tv

uuuuuuTu

Tu

Tu

Tu

Tu

Tu

g

rrrrrrrrr

TZYXTZYXf

ZYf

TZrYrXrTZrYrXrfv

TZYXTZYXf

ZXf

TZrYrXrTZrYrXrfu

ZYXTTTgu

iii

iii

iiiiiiiiiiii

iiiiiiiiiiii

Nw

iii

iiiRi

Ri

iii

iiii

iii

iiiRi

Ri

iii

iiii

iiiui

Pose Jacobian Matrix )122( Nwg

Page 50: Structure from motion using Kalman filter

SFM Kalman V5c2 50

Yu-recursive Kalman [Yu, June 2005] algorithm

Matlab for pose Jacobian matrices (full) • %oct 2014• %************************************************************************• function TestJacobian_pose_full• % Try to solve the differentiate equations without simplification• clc,clear;• disp('TestJacobian');• • syms a b c; % a= pitch ( around x axis), b=yaw(around y), c=roll (around z) respectively• syms f X Y Z T1 T2 T3;• F = [• %u• f*((cos(b)*cos(c)*X - cos(b)*sin(c)*Y + sin(b)*Z+ T1)...• /((-cos(a)*sin(b)*cos(c) + sin(a)*sin(c))*X ...• + (cos(a)*sin(b)*sin(c)+ sin(a)*cos(c))*Y + cos(a)*cos(b)*Z + T3));• %v• ((sin(a)*sin(b)*cos(c)+ cos(a)*sin(c))*X ...• + (-sin(a)*sin(b)*sin(c)+ cos(a)*cos(c))*Y - sin(a)*sin(b)*Z + T2)...• /((-cos(a)*sin(b)*cos(c) + sin(a)*sin(c))*X + (cos(a)*sin(b)*sin(c)...• + sin(a)*cos(c))*Y + cos(a)*cos(b)*Z + T3)]• • V = [a,b,c,T1,T2,T3];• Fjaco = jacobian(F,V);• disp('Fjaco =');• disp(Fjaco);• size(Fjaco) % Fjaco is 2x6• %Fjaco(1,1)• %************************

Page 51: Structure from motion using Kalman filter

SFM Kalman V5c2

51

Yu-recursive Kalman [Yu, June 2005] algorithm Matlab for pose Jacobian matrices (approximation)• % TestJacobian_pose_approx• %function TestJacobian_pose_approx• %'==test jacobian for chang,wong ieee_mm 2 pass lowe=================='• %use twist (small) angles approximation. • clear, clc;• • syms R dR M TT XYZ ZZ x y z f u v a1 a2 a3 t1 t2 t3 aa1 aa2 aa3 tt1 tt2 tt3• R=[1 -aa3 aa2; aa3 1 -aa1; -aa2 aa1 1];• dR=[1 -a3 a2; a3 1 -a1; -a2 a1 1];• M=[x;y;z];• TT=[tt1;tt2;tt3];• dt=[t1;t2;t3]• XYZ=dR*R*M+TT+dt; % R is a matrix multiplication transform• u=f*XYZ(1)/XYZ(3);• v=f*XYZ(2)/XYZ(3);• ja=jacobian([u ;v],[tt1 t1 tt2 t2 tt3 t3 aa1 a1 aa2 a2 aa3 a3])• size(ja) %size of ja is 2x12• ja(1,1),ja(1,2),ja(1,3),ja(1,4),ja(1,5),ja(1,6),ja(1,7),ja(1,8),ja(1,9),ja(1,10),ja(1,11),ja(1,12)

Page 52: Structure from motion using Kalman filter

SFM Kalman V5c2 52

Kalman tracking

Step2: Kalman structure tracking

Page 53: Structure from motion using Kalman filter

SFM Kalman V5c2 53

Kalman filtering structure trackingAssume pose is known

Xc

Yc

Zc

Xo

Yo

Zo

Oo

Oc

u

v

C (image center)

Model

XiO = [xi

O yiO zi

O]’

Tc

Object coordinateframe

Camera coordinateframecoordintes (world)object at point model D3

coordintescamera at point model D3

,)(

Oi

Ci

COi

Ci

X

X

whereTTRXX

Page 54: Structure from motion using Kalman filter

SFM Kalman V5c2 54

Kalman structure filterStates

• Structure State transition ˆ state vectorw

}length focal,functiont measuremen

)(

)(tMeasuremen

noiset measuremennoise, statestate, structure

-- Transition State{N to1dexfeature_inFor

t1

t

fhzy

zxfXh

vXh

XXvX

t

C

C

C

C

t

ttt

tt

t

Page 55: Structure from motion using Kalman filter

SFM Kalman V5c2 55

Extended Kalman filter iteration for the model structureThe process is an identify matrix (no change of structure against time)The procedure is for each features:

}

)()(

)(

)ˆ(ˆˆ--equations -Update-

modelfor Jacobiangain, Kalmancovarianceerror ,covariance noise where

,

ˆˆstates structurefor equations Prediction

N{ to1dexfeature_inFor

1

)22()21()11(1,)12()21()11(1,)21(

)11(1,1)12()21()11(1,1)11(,

)12(1,'

)21()11(1,1)11(,

1,1)13(1,

)11(1,1)11(1,

tTXttX

TXtt

ttXtttt

tttttttt

X

t

ttttt

tttt

RhhhW

hW

XhWXX

hWQ

Q

XX

Page 56: Structure from motion using Kalman filter

SFM Kalman V5c2 56

Yu-recursive Kalman [Yu, June 2005] algorithm Matlab for structure Jacobian matrices (full)

• % Solve the problem without simplification• % Since is the yaw, pitch, roll of the rotation respectively. The R can be represent by as:• % • % Substitute R into (1), we have the following program (in matlab):• %************************************************************************• function TestJacobian• % Try to solve the differentiate equations without simplification• clc,clear;• disp('TestJacobian');• • syms a b c; %yaw( around x axis), pitch(around y), roll(aroudn z) respectively• syms f X Y Z T1 T2 T3;• F = [• %u• f*((cos(b)*cos(c)*X - cos(b)*sin(c)*Y + sin(b)*Z+ T1)...• /...• ((-cos(a)*sin(b)*cos(c) + sin(a)*sin(c))*X ...• + (cos(a)*sin(b)*sin(c)+ sin(a)*cos(c))*Y + cos(a)*cos(b)*Z + T3));• %v• ((sin(a)*sin(b)*cos(c)+ cos(a)*sin(c))*X ...• + (-sin(a)*sin(b)*sin(c)+ cos(a)*cos(c))*Y - sin(a)*sin(b)*Z + T2)...• /...• ((-cos(a)*sin(b)*cos(c) + sin(a)*sin(c))*X + (cos(a)*sin(b)*sin(c)...• + sin(a)*cos(c))*Y + cos(a)*cos(b)*Z + T3)]• • V = [X,Y,Z];• Fjaco = jacobian(F,V);• %************************

Page 57: Structure from motion using Kalman filter

SFM Kalman V5c2 57

Structure Jacobian• function lpf = KalmanStructJacobSP(RT_solution, a, f, u, v, initz)

• b = 1/f;• tx = RT_solution(1);• ty = RT_solution(2);• tzxb = RT_solution(3);• wx = RT_solution(4);• wy = RT_solution(5);• wz = RT_solution(6);

• temp1 = 1 - b*sin(wy)*(u + a*b*u) + b*cos(wy)*sin(wx)*(v + a*b*v) + b*cos(wy)*cos(wx)*(a - initz) + tzxb;

• • lpf = zeros(2, 1);

• lpf(1) = (cos(wz)*cos(wy)*b*u + (cos(wz)*sin(wy)*sin(wx) - sin(wz)*cos(wx))*b*v + cos(wz)*sin(wy)*cos(wx) + sin(wz)*sin(wx))/(temp1) - ...

• (cos(wz)*cos(wy)*(u + a*b*u) + (cos(wz)*sin(wy)*sin(wx) - sin(wz)*cos(wx))*(v + a*b*v) + ...

• (cos(wz)*sin(wy)*cos(wx) + sin(wz)*sin(wx))*(a - initz) + tx)*(((-b)^2)*sin(wy)*u + (b^2)*cos(wy)*sin(wx)*v + b*cos(wy)*cos(wx)) /(temp1^2);

• lpf(2) = (sin(wz)*cos(wy)*b*u + (sin(wz)*sin(wy)*sin(wx) + cos(wz)*cos(wx))*b*v + sin(wz)*sin(wy)*cos(wx) - cos(wz)*sin(wx))/(temp1) - ...

• (sin(wz)*cos(wy)*(u + a*b*u) + (sin(wz)*sin(wy)*sin(wx) + cos(wz)*cos(wx))*(v + a*b*v) + ...

• (sin(wz)*sin(wy)*cos(wx) - cos(wz)*sin(wx))*(a - initz) + ty)*(((-b)^2)*sin(wy)*u + (b^2)*cos(wy)*sin(wx)*v + b*cos(wy)*cos(wx)) /(temp1^2);

• return

Page 58: Structure from motion using Kalman filter

SFM Kalman V5c2 58

Yu-recursive Kalman [Yu, June 2005] algorithm Matlab for structure Jacobian matrices

(approximate))• '====test jacobian for structure================='• %use twist (small) angles approximation. • clear, clc;• • syms R dR M TT XYZ ZZ x y z f u v a1 a2 a3 t1 t2 t3 aa1 aa2 aa3

tt1 tt2 tt3• R=[1 -aa3 aa2; aa3 1 -aa1; -aa2 aa1 1];• dR=[1 -a3 a2; a3 1 -a1; -a2 a1 1];• M=[x;y;z];• TT=[tt1;tt2;tt3];• dt=[t1;t2;t3]• XYZ=dR*R*M+TT+dt; % R is a matrix multiplication transform• u=f*XYZ(1)/XYZ(3);• v=f*XYZ(2)/XYZ(3);• • ja=jacobian([u ;v],[x y z])• •

Page 59: Structure from motion using Kalman filter

SFM Kalman V5c2 59

Part BInteracting Multiple Model Method

(IMM) structure and pose estimationMajor reference [Yu Aug.2005]

Page 60: Structure from motion using Kalman filter

SFM Kalman V5c2 60

Example: Interacting Multiple Model Method (IMM) for (IMM-KSFM)

• 3 dynamic models =3 parallel Kalman structures– General, Rotation, Translation

• Use IMM to find the suitable dynamic model at time t• Each Kalman structure is similar to IV-KSFR• Reference

1) Ying Kin Yu, Kin Hong Wong and Michael Ming Yuen Chang, "Merging Artificial Objects with Marker-less Video Sequences Based on the Interacting Multiple Model Method",  IEEE Transactions on Multimedia, Volume 8,  Issue 3,  June 2006 Page(s):521 - 528.

Page 61: Structure from motion using Kalman filter

SFM Kalman V5c2 61

Steps

Page 62: Structure from motion using Kalman filter

SFM Kalman V5c2 62

Pose

Page 63: Structure from motion using Kalman filter

SFM Kalman V5c2 63

IMM switching

Page 64: Structure from motion using Kalman filter

SFM Kalman V5c2 64

Part CUSE Trifocal tensor (TRI-KSFM)

structure and pose estimationMajor reference [Yu Feb.2005]

Page 65: Structure from motion using Kalman filter

SFM Kalman V5c2 65

Example : USE Trifocal tensor (TRI-KSFM)

• Always use first second (I1, I2) frames as reference• Use It as the third frame to form a trifocal tensor at time

t• If only pose output required, use one Kalman filter• If structure is needed use N Kalman filters for N

features, similar to IV-KSFM.• Reference

1) Ying Kin YU, Kin Hong Wong and Michael Ming Yuen Chang, "Recursive 3D Model Reconstruction Based on Kalman Filtering", IEEE Transactions on Systems, Man and Cybernetics B, Vol.35, No.3, June 2005.

Page 66: Structure from motion using Kalman filter

SFM Kalman V5c2 66

TRI-KSFM flow diagram

Page 67: Structure from motion using Kalman filter

SFM Kalman V5c2 67

The flow of the recursive algorithm with the structure recovery

extension.

Page 68: Structure from motion using Kalman filter

SFM Kalman V5c2 68

Condensation

1) Reference1) Kin-Hong Wong and Michael Ming-Yuen Chang, "Pose tracking for

virtual walk-through environment construction", Proceedings of the Recent Development in Theories and  Numerics, Editor: Y.C. Hon , World Scientific Publishing Co. Pte. Ltd. 2003. ISBN 981-238-266-2

Page 69: Structure from motion using Kalman filter

SFM Kalman V5c2 69

Conclusion

• Studied various techniques for model and pose tracking in 3D computer vision.

Page 70: Structure from motion using Kalman filter

SFM Kalman V5c2 70

References on Kalman filter1. [Azarbayejani 1995] A.Azarbayejani and A.P.Pentland, “Recursive estimation of motion, structure, and focal length”, IEEE Trans. on

PAMI, vol. 17, no 6, June 1995.2. [Azarbayejani 1993] A. Azarbayejani, T. Starner, B. Horowitz, A. Pentland,“, Visually Controlled Graphics“, IEEE Transactions on

Pattern Analysis and Machine Intelligence, vol.15, no. 6, pages 602-605,1993.3. [Yu, June 2005] Ying Kin YU, Kin Hong Wong and Michael Ming Yuen Chang, "Recursive 3D Model Reconstruction Based on Kalman

Filtering", IEEE Transactions on Systems, Man and Cybernetics B, Vol.35, No.3, June 2005. 4. Ying Kin YU, Kin Hong Wong and Michael Ming Yuen Chang, "A Fast and Robust Simultaneous Pose Tracking and Structure Recovery

Algorithm for Augmented Reality Applications", International Conference on Image Processing (ICPR04), Singapore, Oct. 2004.5. Ying Kin YU, Kin Hong Wong and Michael Ming Yuen Chang,"A Fast Recursive 3D Model Reconstruction Algorithm for Multimedia

Applications", International Conference on Pattern Recognition ICPR2004, Cambridge, August 2004.6. Ying Kin Yu, Kin Hong Wong and Michael Ming Yuen Chang, "Merging Artificial Objects with Marker-less Video Sequences Based on

the Interacting Multiple Model Method",  IEEE Transactions on Multimedia, Volume 8,  Issue 3,  June 2006 Page(s):521 - 528. 7. Ying Kin YU, Kin Hong Wong and Michael Ming Yuen Chang, "Recursive 3D Model Reconstruction Based on Kalman Filtering",

IEEE Transactions on Systems, Man and Cybernetics B, Vol.35, No.3, June 2005.8. Kin-Hong Wong and Michael Ming-Yuen Chang, "Pose tracking for virtual walk-through environment construction", Proceedings of the

Recent Development in Theories and  Numerics, Editor: Y.C. Hon , World Scientific Publishing Co. Pte. Ltd. 2003. ISBN 9819. Greg Welch and Gary Bishop, "An Introduction to the Kalman Filter, "TR 95-041 Department of Computer Science University of North

Carolina at Chapel Hill Chapel Hill, NC 27599-3175 www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf (excellent tutorial)10. T.J.Broida, S.Chandrasiiekhar and R.Chellappa, “Recursive 3-D motion estimation from monocular image sequence”, IEEE Trans. on

Aerospace and Electronic Systems, vol 26, no. 4, July 1990. (The first paper of Kalman on pose estimation)11. http://mathworld.wolfram.com/Quaternion.html12. http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/index.htm13. A.W. Rihaczek, “Recursive methods for the estimation of rotation quaternions”, IEEE transactions on aerospace and electronic systems,

Vol. 32, No. 2, April 1996.14. [Yu, Feb 2005]Ying Kin Yu, Kin Hong Wong, Michael Ming Yuen Chang and Siu Hang Or, "Recursive Camera Motion Estimation with

Trifocal Tensor:, Submitted to a journal.

Page 71: Structure from motion using Kalman filter

AppendixSome math background

• Mean• Variance/ standard deviation• Covariance• Covariance matrix

SFM Kalman V5c2 71

Page 72: Structure from motion using Kalman filter

Mean, variance (var) and standard_deviation (std)

• x =• 2.5000• 0.5000• 2.2000• 1.9000• 3.1000• 2.3000• 2.0000• 1.0000• 1.5000• 1.1000• mean_x = 1.8100• var_x = 0.6166• std_x = 0.7852

)var()(

)1(1)var(

1

2

1

1

xxstd

xn

x

xn

xmean

n

ii

n

ii

SFM Kalman V5c2 72

%matlab codex=[2.5 0.5 2.2 1.9 3.1 2.3 2 1 1.5 1.1]' mean_x=mean(x)var_x=var(x)std_x=std(x)%%%%%%%%Answer:mean_x = 1.8100var_x = 0.6166std_x = 0.7852

x

sample

Page 73: Structure from motion using Kalman filter

N or N-1 as denominator??see

http://stackoverflow.com/questions/3256798/why-does-matlab-native-function-cov-covariance-matrix-computation-use-a-differe

• “n-1 is the correct denominator to use in computation of variance. It is what's known as Bessel's correction” (http://en.wikipedia.org/wiki/Bessel%27s_correction) Simply put, 1/(n-1) produces a more accurate expected estimate of the variance than 1/n

SFM Kalman V5c2 73

Page 74: Structure from motion using Kalman filter

Class exercise 1

By computer (Matlab)• x=[1 3 5 10 12]'• mean(x)• var(x)• std(x)• Mean(x)• = 6.2000• Variance(x)= 21.7000• Stand deviation = 4.6583

By and• x=[1 3 5 10 12]'• mean=• Variance=• Standard deviation=

SFM Kalman V5c2

%class exercise1x=[1 3 5 10 12]'

mean(x)var(x)std(x)

74

)var()(

)1(1)var(

1

2

1

1

xxstd

xn

x

xn

xmean

n

ii

n

ii

Page 75: Structure from motion using Kalman filter

Answer1:

By computer (Matlab)• x=[1 3 5 10 12]'• mean(x)• var(x)• std(x)• Mean(x)• = 6.2000• Variance(x)= 21.7000• Stand deviation = 4.6583

By hand• x=[1 3 5 10 12]'• mean=(1+3+5+10+12)/5• =6.2• Variance=((1-6.2)^2+(3-

6.2)^2+(5-6.2)^2+(10-6.2)^2+(12-6.2)^2)/(5-1)=21.7

• Standard deviation= sqrt(21.7)= 4.6583

SFM Kalman V5c2

)var()(

)1(1)var(

1

2

1

1

xxstd

xn

x

xn

xmean

n

ii

n

ii

75

Page 76: Structure from motion using Kalman filter

What do mean, variance, standard deviation tell you

• Mean: the average value of a set of numbers• Variance: the sum of the square of the

difference between the numbers and the mean.

• Stand deviation : the square root of the mean , a measurement of how the numbers are deviated from the mean. Give you intuition than the Variance.

SFM Kalman V5c2 76

Page 77: Structure from motion using Kalman filter

• See• http://www.biostat.jhsph.edu/~fdominic/teaching/bio655/extras/matrixnotes2.pdf

SFM Kalman V5c2 77

Variance/Covariance matrix (or called Covariance matrix) of a vector of random variables

variances theare digonal theandmatrix symmteric is

..covcov:.::

cov..covcov..cov

is _matrixofcovariance

between variancecov of variance

]',,,[ mean zero with variablesrandom ofa vector is

2n21

22i12

1122i

2i

4321

nn

n

n

j iij

i

X

j, i and YYy

yyyyYY

Page 78: Structure from motion using Kalman filter

Variance -covariance matrix

• Videos• Co-variance matrix and correlation– https://www.youtube.com/watch?v=ZfJW3ol2F

bA• Co-variance matrix– https://www.youtube.com/watch?v=locZabK4A

ls

SFM Kalman V5c2 78

Page 79: Structure from motion using Kalman filter

Particle filter

• Video– https://www.youtube.com/watch?v=O-lAJVra1

PU–With matlab code:• https://www.youtube.com/watch?v=HZvF8KlFoWk

SFM Kalman V5c2 79