SlideShare a Scribd company logo
1 of 110
Download to read offline
Particle Filters and Applications in Computer Vision

                                     Désiré Sidibé

                       Maître de Conférences - Université de Bourgogne
                              LE2I - UMR CNRS 5158
                          dro-desire.sidibe@u-bourgogne.fr

                                     April 6th 2011




Désiré Sidibé (Le2i)                  Module Image - I2S                 April 6th 2011   1 / 110
Outline



1   Introduction

2   General Bayesian Framework

3   Particle Filters

4   Visual Tracking

5   Conclusion




     Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   2 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   3 / 110
Introduction



Particle Filters : two words
    Filter : a procedure that estimates parameters (state) of a system.
    Particles : a set of randomly chosen weighted samples used to
    approximate a pdf.


Estimation
Estimation is the process by which we infer the value of a quantity of
interest, x, by processing data that is in some way dependent on x.




    Désiré Sidibé (Le2i)       Module Image - I2S            April 6th 2011   4 / 110
Introduction

State estimation or filtering has many applications

    Estimating communication
    signals from noisy
    measurements
    Predicting economical data
    Tracking of aircraft positions
    from radar
    Tracking of people or cars in
    surveillance videos
    Mobile robotics
    etc.



    Désiré Sidibé (Le2i)         Module Image - I2S   April 6th 2011   5 / 110
Introduction

Goals of this presentation :
    State the problem
    Introduce the key ideas
    Show examples of applications in computer vision




    Désiré Sidibé (Le2i)       Module Image - I2S      April 6th 2011   6 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   7 / 110
Introduction


The problem
                           ˆ
Find the best estimate x for a parameter x given a set of k measurements
Z1:k = {z1 , . . . , zk }.

    State estimation is based on probability theroy.
    One of the ’most important’ results in probability theory is Bayes
    Rule :
                                      P (B |A )P (A )
                          P (A |B ) =
                                           P (B )
                                      likelihood × prior
                           posterior =
                                           evidence
                             => simple but powerful !



    Désiré Sidibé (Le2i)         Module Image - I2S          April 6th 2011   8 / 110
Introduction

Using Bayes rule, the posterior pdf is given by

                                             p (Z1:k |x)p (x)
                            p (x|Z1:k ) =
                                                 p (Z1:k )
                                       ∝     η × p (Z1:k |x)p (x)

p (x|Z1:k ) : the posterior pdf
p (Z1:k |x) : the likelihood function
p (x) : the prior distribution


           "‘The probability of any event is the ratio between the value at which an
 expectation depending on the happening of the event ought to be computed, and
                               the value of the thing expected upon its happening."’
                                                         Thomas Bayes (1702-1761)



     Désiré Sidibé (Le2i)             Module Image - I2S            April 6th 2011   9 / 110
Introduction
Maximum Likelihood Estimation
If we have no prior knowledge about the parameter x :
                             p (x|Z1:k ) ∝ η × p (Z1:k |x)
                      ˆ
Then, the estimate x is given by the value of x which maximizes the
likelihood function :
                          ˆ
                          xML = arg max p (Z1:k |x)
                                               x


Maximum A-Posteriori Estimation
In many cases we have some prior knowledge on x represented by p (x) :
                           p (x|Z1:k ) ∝ η × p (Z1:k |x)p (x)
                     ˆ
Then, the estimate x is given by the value of x which maximizes the
posterior distribution :
                           ˆ
                           xMAP = arg max p (Z1:k |x)p (x)
                                           x

    Désiré Sidibé (Le2i)             Module Image - I2S         April 6th 2011   10 / 110
Introduction

MMSE Estimation
Another key technique for estimating the value of a random variable x is
the minimum mean squared error estimation :

                            xMMSE = arg min E{(x − x)T (x − x)|Z1:k }
                            ˆ                  ˆ        ˆ
                                           ˆ
                                           x

It is easy to show that :
                                       ˆ
                                       xMMSE = E{x|Z1:k }


Recursive Estimation
If the measurements are obtained sequentially over time, we could use the
previous estimate of x as the prior knowledge.

                                               p (Z1:k |x)p (x|Z1:k −1 )
                               p (x|Z1:k ) =
                                                   p (zk |Z1:k −1 )


     Désiré Sidibé (Le2i)                  Module Image - I2S              April 6th 2011   11 / 110
Introduction


We can distinguish three estimation problems :


    Filtering : estimate the current state x(k ) given all the data availabe
    up to and including z(k ).

    Smoothing : estimate some past value of x(l ), l < k , given all the
    data availabe up to and including z(k ).

    Prediction : estimate some future value of x(l ), l > k , given all the
    data availabe up to and including z(k ).




    Désiré Sidibé (Le2i)        Module Image - I2S             April 6th 2011   12 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   13 / 110
What Is A Particle Filter ?



Recursive filter
    Sequential update of previous estimate
    ⇒ faster online data processing as opposed to batch processing

Approximate method
    It is impossible to obtain analytic solutions to non-linear and
    non-Gaussian estimation problems
    ⇒ particle filters provide approximate solutions




    Désiré Sidibé (Le2i)        Module Image - I2S            April 6th 2011   14 / 110
What Is A Particle Filter ?

Particle filter is :
     a technique for implementing recursive Bayesian filter by Monte Carlo
     sampling.
     the idea is to represent the posterior density by a set of random
     particles with associated weights ;
     and compute estimates based on these samples and weights




     Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   15 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   16 / 110
Applications in Computer Vision

Visual Tracking
    Particle filters were first introduced to the computer vision community
    by the famous CONDENSATION paper of Isard and Blake.
    ⇒ real-time contour tracking




    M. Isard and A. Blake, CONDENSATION - conditional density propagation
    for visual tracking, Int. J. Computer Vision, 29, 1, 5–28, (1998)

    A lot of work has been published on contour extraction and tracking since
    then.

    Désiré Sidibé (Le2i)         Module Image - I2S             April 6th 2011   17 / 110
Applications in Computer Vision
Medical Image Analysis
   Particle filters have been widely used in medical image analysis
   ⇒ contour tracking, image segmentation




I. Smal et al., Multiple Object Tracking in Molecular Bioimaging by
Rao-Blackwellized Marginal Particle Filtering, Medical Image Analysis, 12 (6), pp.
764–777, (2008)

M. de Bruijne and M. Nielsen, Shape Particle Filtering for Image Segmentation, in
Proc. MICCAI, pp. 168–175, (2004)
     Désiré Sidibé (Le2i)          Module Image - I2S             April 6th 2011   18 / 110
Applications in Computer Vision
Human Computer Interaction
   Particle filters are used in HCI for tracking
   ⇒ face and hand tracking can be coupled with facial expression and
   gesture recognition




M. Bray et al., Smart particle filtering for 3D hand tracking, in Proc. AFGR, pp.
675–680, (2004)

M. F. Ho et al., A multi-view vision-based hand motion capturing system, Pattern
Recognition, 44 (2), pp ; 443–453 (2011)
     Désiré Sidibé (Le2i)          Module Image - I2S              April 6th 2011   19 / 110
Applications in Computer Vision
Image Restoration
     Particle filters have been used for image enhancement and denoising




N. Azzabou, N. Paragios, and F. Guichard, Image Reconstruction Using Particle
Filters and Multiple Hypotheses Testing, IEEE Trans. on Image Processing, 19, 5,
1181–1190, (2010)

L. Xia, Image restoration based on particle filters, in Proc. ICSP, pp. 1084–1087,
(2004)
     Désiré Sidibé (Le2i)          Module Image - I2S             April 6th 2011   20 / 110
Applications in Computer Vision

Shape correpondence
    Particle filters can also be used for shape correspondence




R. Lakaemper and M. Sobel, Correspondences between parts of shapes with
particle filters, in Proc. CVPR, pp. 1–8, (2008)

    Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   21 / 110
Applications in Computer Vision
Robot Navigation
     Particle filters are now used as a key technique for localization and
     mapping problems in mobile robot navigation.




The Simultaneous Localisation and Map Building (SLAM) problem requires that
the probability distribution P (xk ; m|Z0:k ; U0:k ; x0 ) be computed for all times k .

S. Thrun, W. Burgard and D. Fox, Probabilistic Robotics, The MIT Press, (2006)
     Désiré Sidibé (Le2i)             Module Image - I2S                April 6th 2011   22 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   23 / 110
Introduction
Recursive filtering involves a description of our a priori knowledge about
the world :
    System dynamics model : how does system state evolves over
    time ?
    Measurement model : how are measurements related to system
    state ?




    Désiré Sidibé (Le2i)        Module Image - I2S           April 6th 2011   24 / 110
Introduction

Notations
    System state at time k : x(k )
    Measurement at time k : z(k )
    All measurements up to time k : Z1:k = {z(1), . . . , z(k )}
    System error sources at time k : w (k )
    Measurement error sources at time k : v (k )
    Control input at time k : u(k )

Models equations
                           xk = f (xk −1 , uk −1 ) + wk −1 ,                         (1)


                                zk = h (xk ) + vk .                                  (2)


    Désiré Sidibé (Le2i)            Module Image - I2S             April 6th 2011   25 / 110
General Bayesian Framework


General model
   We have a system described by some internal state parameters X

   We also have a set of measurements Z from some devices.

   There is a clock
          at each tick, the state changes (system state equation)
          at each tick, we get a new observation (measurement equation)

   System state is unkown (’hidden’)

   We want to recover the state components from observations
   => state estimation problem.



   Désiré Sidibé (Le2i)          Module Image - I2S            April 6th 2011   26 / 110
General Bayesian Framework




   We want to get P (Xk |Z1:k )

   Désiré Sidibé (Le2i)           Module Image - I2S   April 6th 2011   27 / 110
General Bayesian Framework


Independence assumptions



   Hidden Markov Model

                               P (Xk |X0 , . . . , Xk −1 ) = P (Xk |Xk −1 )                           (3)



   Observations are conditionally independent given the state

                      P (Zk , Zi , . . . , Zj |Xk ) = P (Zk |Xk )P (Zi , . . . , Zj |Xk )             (4)




   Désiré Sidibé (Le2i)                     Module Image - I2S                      April 6th 2011   28 / 110
General Bayesian Framework
Recursive estimation implies two main steps :
    Prediction : given measurements z1 , . . . , zk −1 , what state Xk can we
    predict for the k-th tick ? We need to obtain a representation of
    P (Xk |Z1 = z1 , . . . , Zk −1 = zk −1 ).

    Correction : given the relevant measurement at time k, zk , we need
    to compute a representation of P (Xk |Z1 = z1 , . . . , Zk = zk ).




    Désiré Sidibé (Le2i)        Module Image - I2S            April 6th 2011   29 / 110
General Bayesian Framework
We assume that the initial pdf P (X0 ) is known
Then given a representation of P (Xk −1 |z1 , . . . , zk −1 ), we have :



Prediction

       P (Xk |z1 , . . . , zk −1 ) =        P (Xk |Xk −1 )P (Xk −1 |z1 , . . . , zk −1 )dXk −1




Correction
                                               P (zk |Xk )P (Xk |z1 , . . . , zk −1 )
               P (Xk |z1 , . . . , zk ) =
                                              P (zk |Xk )P (Xk |z1 , . . . , zk −1 )dXk



Computing these pdfs is impossible in practice ! (nasty integrals)
     Désiré Sidibé (Le2i)                    Module Image - I2S                     April 6th 2011   30 / 110
Recursive Bayesian Estimation



Prediction




       P (Xk |Z1:k −1 ) =      P (Xk , Xk −1 |Z1:k −1 )dXk −1

                           =   P (Xk |Xk −1 , Z1:k −1 )P (Xk −1 |Z1:k −1 )dXk −1

                           =   P (Xk |Xk −1 )P (Xk −1 |Z1:k −1 )dXk −1




    Désiré Sidibé (Le2i)          Module Image - I2S                  April 6th 2011   31 / 110
Recursive Bayesian Estimation


Correction
                               P (Z1:k |Xk )P (Xk )
      P (Xk |Z1:k ) =
                                    P (Z1:k )
                               P (zk , Z1:k −1 |Xk )P (Xk )
                           =
                                    P (zk , Z1:k −1 )
                               P (zk |Xk , Z1:k −1 )P (Z1:k −1 |Xk )P (Xk )
                           =
                                       P (zk |Z1:k −1 )P (Z1:k −1 )
                               P (zk |Z1:k −1 , Xk )P (Xk |Z1:k −1 )P (Z1:k −1 )P (Xk )
                           =
                                         P (zk |Z1:k −1 )P (Z1:k −1 )P (Xk )
                               P (zk |Xk )P (Xk |Z1:k −1 )
                           =
                                    P (zk |Z1:k −1 )




    Désiré Sidibé (Le2i)                 Module Image - I2S                  April 6th 2011   32 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   33 / 110
Kalman Filters


If we restrict attention to linear dynamic systems and linear measurement
models, both with additive Gaussian noise
=> all the densities are Gaussians and we can avoide the question of
solving the various integrals.



Model of the system
State equation :
                            Xt = At Xt −1 + Bt Ut −1 + wt
Measurement equation :
                                  Zt = Ct Xt + vt
with wt ∼ N(0, Qt ), vt ∼ N(0, Rt ) and wt ⊥vt .



     Désiré Sidibé (Le2i)           Module Image - I2S      April 6th 2011   34 / 110
Discrete Kalman Filters
Importance of Gaussian distribution
Since the system is linear and the distributions are Gaussian, we need
only to know
      the conditional mean Xk = E[Xk |Z1:k , U0:k −1 ]
      the conditional covariance Pk = Cov (Xk , Xk |Z1:k , U0:k −1 )

Recursivity
Assume that we know P (xk |Z1:k , U0:k −1 ) at some time k
  1   Prediction : what can we say about xk +1 before we get the
      measurement Zk +1 ?
                               P (xk +1 |Z1:k , U0:k )
  2   Correction : how can we improve our knowledge of xk +1 given the
      actual measurement zk +1 ?

                                 P (xk +1 |Z1:k +1 , U0:k )
      Désiré Sidibé (Le2i)         Module Image - I2S             April 6th 2011   35 / 110
Discrete Kalman Filters

               ˆ
Assume we know xk and Pk .

Prediction step


    From the state equation :

                                   ˆ−
                                   xk +1    = E[xk +1 |Z1:k , U0:k ]
                                            = Ak xk + Bk uk .
                                                 ˆ

    From the prior estimate error covariance
                            −                   ˆ−              ˆ−
                           Pk +1   = E[(xk +1 − xk +1 )(xk +1 − xk +1 )T ]
                                   = Ak Pk Ak + Qk .
                                            T




    Désiré Sidibé (Le2i)                   Module Image - I2S            April 6th 2011   36 / 110
Discrete Kalman Filters

Correction step


    Use the measurement equation to make a prediction of the
    observation
                          zk +1 = Ck +1 xk +1 .
                           −            ˆ−


    Given, the actual observation zk +1 , correct the state prediction

                           ˆ       ˆ−                      −
                           xk +1 = xk +1 + Kk +1 (zk +1 − zk +1 ).
                     −
           (zk +1 − zk +1 ) is called the measurement innovation or the residual.
           Kk +1 is called the Kalman gain and is chosen in order to minimize the
           posterior MMSE Pk +1 = E[(xk +1 − xk +1 )(xk +1 − xk +1 )T ].
                                              ˆ              ˆ


    Désiré Sidibé (Le2i)             Module Image - I2S              April 6th 2011   37 / 110
Discrete Kalman Filters
Optimal Kalman Gain
The a posteriori error covariance matrix is

                            Pk +1 = E[(xk +1 − xk +1 )(xk +1 − xk +1 )T ],
                                               ˆ               ˆ

which after a few calculations gives

     Pk +1 = (I − Kk +1 Ck +1 )Pk +1 (I − Kk +1 Ck +1 )T + Kk +1 Rk +1 Kk +1 .
                                −                                       T




Taking the trace of Pk +1 and setting its derivative w.r.t. Kk +1 equals to
zero, we obtain the optimal Kalman gain

                    Kk +1 = Pk +1 Ck +1 [Ck +1 Pk +1 Ck +1 + Rk +1 ]−1 .
                             −     T            −     T




The posterior covariance matrix can then be simplified as

                                  Pk +1 = (I − Kk +1 Ck +1 )Pk +1 .
                                                             −


     Désiré Sidibé (Le2i)                   Module Image - I2S               April 6th 2011   38 / 110
Kalman Filters

Algorithm Kalman-Filter(µt −1 , Σt −1 , ut , zt )

Prediction
1. µ− = At µt −1 + Bt ut
    t
2. Σ− = At Σt −1 AtT + Qt
     t

Correction
3. Kt = Σ− CtT (Ct Σ− CtT + Rt )−1
           t         t
4. µt = µ− + Kt (zt − Ct µ− )
         t                t
5. Σt = (I − Kt Ct )Σ− t

Return µt and Σt



KF recursively predicts and updates the mean µt and the covariance
matrix Σt of the Gaussian pdf.

     Désiré Sidibé (Le2i)            Module Image - I2S   April 6th 2011   39 / 110
Discrete Kalman Filters
In most of our applications, the matrices Ak , Bk and Ck do not vary over
time. So, the Kalman filter equations are simplified as :
Prediction step
                              ˆ−       ˆ
                             xk +1 = A xk + Buk

                                    −
                                   Pk +1 = APk A T + Qk

Correction step

                           Kk +1 = Pk +1 C T [CPk +1 C T + Rk +1 ]−1
                                    −           −




                           ˆ       ˆ−                       ˆ−
                           xk +1 = xk +1 + Kk +1 (zk +1 − C xk +1 )

                                                        −
                                 Pk +1 = (I − Kk +1 C )Pk +1

    Désiré Sidibé (Le2i)                 Module Image - I2S            April 6th 2011   40 / 110
Discrete Kalman Filter Algorithm
           ˆ− −
1. Start : x0 , P0
2. Compute Kalman gain :

                           Kk = Pk C T (CPk C T + Rk )−1
                                 −        −


3. Compute state estimate :

                             ˆ    ˆ−              ˆ−
                             xk = xk + Kk (zk − C xk )

4. Update error covariance :
                                                 −
                                Pk = (I − Kk C )Pk

5. Update prediction and predicted error covariance :

                                ˆ−        ˆ
                                xk +1 = A xk + Buk
                               −
                              Pk +1 = APk A T + Qk
6. Do k = k + 1 and go to step 2.
    Désiré Sidibé (Le2i)           Module Image - I2S      April 6th 2011   41 / 110
Discrete Kalman Filter Example

Estimation of a scalar random constant
Let’s assume that we have the ability to make measurements of the
constant, but the measurement are corrupted by a white noise.



System equation

                           xk   = Axk −1 + Buk + wk
                                = xk −1 + wk


Measurement equation

                                zk     = Cxk + vk
                                       = xk + vk

    Désiré Sidibé (Le2i)             Module Image - I2S   April 6th 2011   42 / 110
Discrete Kalman Filter Example

% the state-space equations
A = 1; % transition matrix
B = 0; % input matrix: no control input
C = 1; % measurement matrix: noisy measurement is the state
% calculation of noise covariance matrices
R = Meas_Noise^2; % measurement noise cov
Q = Process_Noise^2; % process noise cov
% initialization
x = -0.51234; % true state
% simulation
x_out = zeros(duration,1);
y_out = zeros(duration,1);
Process_Noise = Process_Noise * randn(duration,1);
Meas_Noise = Meas_Noise * randn(duration,1);
for t=1:duration,
    x_out(t) = A*x + Process_Noise(t);
    y_out(t) = C*x + Meas_Noise(t);
end
    Désiré Sidibé (Le2i)   Module Image - I2S       April 6th 2011   43 / 110
Discrete Kalman Filter Example
We randomly chose a scalar constant z = −0.51234
We assume a very small process noise : Qk = 1e − 5
We assume that measurements are corrupted by a 0.1 noise Rk = 0.01




    Désiré Sidibé (Le2i)     Module Image - I2S        April 6th 2011   44 / 110
Discrete Kalman Filter Code

function [x_out]=discrete_kalman_filter(y, u, x0, P0, A,B,C,Q,R)
T = size(y, 1); %number of observations
[n,m] = size(P0); I = eye(n,m); % form identity matrix
xhat = x0; P = P0; %initialization
x_out = [];
for k=1:T,
   % compute Kalman Gain
   K = P*C’* inv(C*P*C’ + R);
   % estimate state
   innovation = y(k) - C*xhat; % innovation vector
   xhat = xhat + K*innovation;
   x_out = [x_out; xhat’];
   % update covariance matrice
   P = (I - K*C)*P;
   % predict next state and covariance
   xhat = A*xhat + B*u;
   P = A*P*A’ + Q;
end
    Désiré Sidibé (Le2i)   Module Image - I2S       April 6th 2011   45 / 110
Discrete Kalman Filter Example
Given that Qk = 1e − 5 and Rk = 0.01, we initialize the filter with x0 = 0
                                                                   ˆ
and P0 = 1.




    Désiré Sidibé (Le2i)        Module Image - I2S          April 6th 2011   46 / 110
Kalman Filters




Extensions of the Kalman Filter



    For non-linear dynamic models with Gaussian noises : Extended KF ;
    Unscented KF.

    For non-linear, non-Gaussian distributions : Particle filters




    Désiré Sidibé (Le2i)          Module Image - I2S         April 6th 2011   47 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   48 / 110
Particle Filters


Why particle filters ?
    Kalman filter is limited to linear system with Gaussian noise
    Extended KF and Unscented KF are limited to Gaussian distributions
    Many practical problems show non linear dynamics and non
    Gaussian noises
    We often find multi-modal distributions


Key Idea
Find an approximate solution using a complex model rather than an exact
solution using a simplified model.




     Désiré Sidibé (Le2i)      Module Image - I2S          April 6th 2011   49 / 110
Particle Filters

Muti-modal distribution




A Gaussian distribution is unimodal and verifies : mode = mean = median
For a multimodal distribution, the mode, mean and median do not coincide.
=> Kalman Filter, clearly, is not suitable for multi-modal distributions.


    Désiré Sidibé (Le2i)      Module Image - I2S          April 6th 2011   50 / 110
Particle Filters


Particle Filters (PF) are a family of methods often called :
     condensation algorithms
     sequential Monte Carlo methods
     bootstrap filters
     etc



PF is based on representing the posterior pdf by a set of randomly chosen
weighted samples.
"randomly chosen" ≡ "Monte carlo"




     Désiré Sidibé (Le2i)        Module Image - I2S            April 6th 2011   51 / 110
Particle Filters


Basic Principle


   Represent the pdf as a set of weighted
   samples
   For N → ∞, PF converges (almost
   surely) to the true pdf                                 {xi0:k } : set of samples.
                                                               i
   For N → ∞, PF approaches optimal                        {wk } associated weights,
                                                                                 i
   Bayesian estimate                                       normalized to i wk = 1
   Regions of high density
          Many particles                                                    N
          Large weight of particles                        p (x|Z1:k ) =          wk δ(x0:k − xi0:k )
                                                                                   i

                                                                           i =1




    Désiré Sidibé (Le2i)              Module Image - I2S                          April 6th 2011   52 / 110
Particle Filters


SIS : Sequential Importance Sampling


    The discrete approximation is good if the samples are drawn from the
    posterior pdf p (xk |Z1:k ).
        But we don’t have an explicit representation of p (.) !


    K  : we can sample from another importance density q(.).
           Our approximation is still correct, up to normalization, if the particles
           are weighted :
                                         i
                                              p (xi0:k |Z1:k )
                                       wk ∝
                                              q(xi0:k |Z1:k )
           We can choose q(.) freely !




    Désiré Sidibé (Le2i)            Module Image - I2S                April 6th 2011   53 / 110
Particle Filters
SIS : Sequential Importance Sampling




    Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   54 / 110
Particle Filters
SIS : Sequential Importance Sampling

Pseudo-code

A 1 : SIS Particle Filter

[{xik , wk }N 1 ] = SIS [{xik −1 , wk −1 }N 1 , zk ]
         i
            i=
                                    i
                                          i=
        For i = 1 : N
             Draw xik ∼ q(xk |xik −1 , zk )
             Update weights according to

                                       i    i
                                                       p (zk |xik )p (xik |xik −1 )
                                      wk ∝ wk −1
                                                           q(xik |xik −1 , zk )

      End For
                                      N       i
      Normalize weights to            i =1   wk = 1

      Désiré Sidibé (Le2i)                   Module Image - I2S                       April 6th 2011   55 / 110
Particle Filters

SIS : Sequential Importance Sampling

Degeneracy problem : after a few iterations, most particles have
negligible weights ; the weights are concentrated on a few particles only !

Solutions :
  1   Brute force : many, many samples ! Of course, impractical.
  2   Optimal importance density :
      q(xk |xk −1 , zk )opt = p (xk |xk −1 , zk )
      and wk = wk −1 p (zk |xk )p (xk |xik −1 )d xk
             i        i

      But evaluating an integral over the entire state can rarely be done.

      An alternative convenient choice is to take q(xk |xik −1 , zk ) = p (xk |xik −1 )
      → easy to implement, but does not take measurements into account.
  3   Resampling


      Désiré Sidibé (Le2i)              Module Image - I2S                  April 6th 2011   56 / 110
Particle Filters
SIS : Sequential Importance Sampling

Resampling : eliminate particles with small associated weights and to
concentrate on particles with high weights.
    Sample N times with replacement from the set of particles {xi0:k }
    according to importance weights :
    ⇒ "Survival of the fittest"




    Désiré Sidibé (Le2i)       Module Image - I2S            April 6th 2011   57 / 110
Particle Filters
Sampling and Resampling




    Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   58 / 110
Particle Filters
Generic Particle Filter Pseudo-Code

A 2 : Generic Particle Filter

[{xik , wk }N 1 ] = PF [{xik −1 , wk −1 }N 1 , zk ]
         i
            i=
                                   i
                                         i=
       FOR i = 1 : N
              Draw xik ∼ q(xk |xik −1 , zk )
                                           i    i                        p (zk |xik )p (xik |xik −1 )
              Update weights according to wk ∝ wk −1                        q(xik |xik −1 ,zk )

       END FOR
                                       N       i
       Normalize weights to            i =1   wk = 1
                                                                     1
       Calculate degeneracy measure : Neff =                     N      i 2
                                                                 i =1 (wk )


       IF Neff < NT
              Resample
       END IF

       Désiré Sidibé (Le2i)                     Module Image - I2S                                      April 6th 2011   59 / 110
Particle Filters


Estimation form particles

Any estimate of a function f (xk ) can be obtained from the discrete pdf
approximation :
                                                       N
                                                  1
                                E[f (xk )] =                 wk f (xik )
                                                              i
                                                  N
                                                      i =1



                            1   N
    Mean : E[xk ] =         N   i =1   wk xik
                                        i

    MAP estimate : particle with largest weight
    Robust mean : mean within window around MAP estimate




     Désiré Sidibé (Le2i)                  Module Image - I2S              April 6th 2011   60 / 110
Particle Filters : Example


A simple example

We want to estimate a parameter x whose evolution is governed by :

                            xt +1 = 1 + sin(4.10−2 πt ) + 0.5xt + wt ,

with wt       Gamma (3, 2).

We cannot measure x directly but have access to a set of measurements :

                                        0.2xt2 + vt            if t ≤ 30
                             zt =                                        ,
                                      0.5xt − 2 + vt           if t > 30

with vt      N(0, σm ).


     Désiré Sidibé (Le2i)                 Module Image - I2S                 April 6th 2011   61 / 110
Particle Filters : Example
A simple example

Gaussian and Gamma distributions : same mean and variance.




    Désiré Sidibé (Le2i)     Module Image - I2S        April 6th 2011   62 / 110
Particle Filters : Example
A simple example




    Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   63 / 110
Particle Filters : Example
A simple example




    Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   64 / 110
Particle Filters : Example
Comparison with the Extended KF




    Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   65 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   66 / 110
What is tracking ?

Problem statement
Given a sequence of images
    Find the trajectories of objects
    over time


Fundamental problem
    Surveillance
    Vehicle tracking
    Human-computer interaction
    Motion capture
    Robotics
    etc.

     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   67 / 110
What is tracking ?


Why track ?
    Segmentation is hard !
    Detection and recognition are expensive
    If we can predict where the object will be in next frame, then we need
    less work detecting or recognizing the object.



Three main steps
    Prediction
    Matching (data association)
    Correction (updating)



    Désiré Sidibé (Le2i)      Module Image - I2S           April 6th 2011   68 / 110
What is tracking ?
Tracking involves two basic problems :


    Motion : predicts the limited search region in which the tracked object
    is most likely to be in next frame.

    Matching : identifies the object within the designed search region.




    Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   69 / 110
What is tracking ?

Example of Face Tracking


                            Detection involves searching in entire image
                            => Can take some time !
                            Though efficient solutions exist like
                            Adaboost classifiers, e.g. Viola and Jones
                            detector for face detection.



   Making prediction, reduces the
   search area
   => template matching can do
   the job efficiently !


    Désiré Sidibé (Le2i)     Module Image - I2S          April 6th 2011   70 / 110
Implicit Assumptions



   Physical cameras do not move instantly from one viewpoint to
   another.

   Objects do not teleport between places around the scene.

   Relative position between camera and scene changes incrementally.

   We can model objects motion.




   Désiré Sidibé (Le2i)      Module Image - I2S         April 6th 2011   71 / 110
Designing a Visual Tracker
What is the state ?
   pose and motion (position, velocity, acceleration, ...)
   shape (size, deformation, articulation, ...)
   appearance (subspace, colors, ...)

Which image properties should we use ?
   intensity, color, texture, motion, edges, ...
   template, adaptive appearance, region statistics

What might simplify the problem ?
   known/stationary background
   use of color (e.g., skin)
   multiple cameras (often 2 or 3)
   manual initialization
   prior knowledge of the number of objects and their types
   limited (or no) occlusion
     Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   72 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   73 / 110
Tracking Methods

Deterministic methods
Iteratively search for a local maxima of a similarity measure between a
template of the target and the current frame.

Examples :
    KLT tracker
    Mean-Shift tracker

Probabilistic methods
Use a state-space representation of the moving object to model its
underlying dynamics.
=> The tracking problem is viewed as a Bayesian inference problem.

Examples :
    Kalman filter
    Particle filter
    Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   74 / 110
Tracking Methods : Background subtraction




Pros
   Simple and easy implementation
   Detect all changes

Cons
   Detect unwanted changes
   Difficult to quantify motion
   Difficult to deal with changing background
   Désiré Sidibé (Le2i)          Module Image - I2S   April 6th 2011   75 / 110
Tracking Methods : Regions tracking




State : 2D image location, size of ellipse, velocity
Appearance model : color histogram, elliptical contour
Estimation : search over discrete locations and size, or density estimation

Pros/Cons
    fast
    good for large variation in shape/appearance
    limited fidelity in pose estimation
     Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   76 / 110
Tracking Methods : Appearance-Based Tracking




   Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   77 / 110
Tracking Methods : Motion-Based Tracking




We can better understand the scene if we can find the motions of the
objects/cameras.

Pros/Cons
    based on brightness constancy
    good for small motion
    Désiré Sidibé (Le2i)      Module Image - I2S          April 6th 2011   78 / 110
Tracking Methods : Probabilistic Tracking



    Explicit modeling of the system dynamics : how does the object move
    from frame to frame ?
    Modeling of states uncertainty : how do we acount for system and
    measurement noises ?


Pros/Cons
    give good results for complex motion
    robust to occlusion
    can be slow




    Désiré Sidibé (Le2i)      Module Image - I2S         April 6th 2011   79 / 110
Deterministic Methods




Two popular tracking methods are :
    KLT Tracker (1984-1990) for feature points tracking
    Mean Shift Tracker (2000) for blob/region tracking




    Désiré Sidibé (Le2i)       Module Image - I2S         April 6th 2011   80 / 110
Optical Flow and Motion Field




Where did each pixel in I1 go to in I2 ?


      Motion Field = Real word 3D motion
      Optical Flow Field = Projection of the motion field onto the 2D image



      Désiré Sidibé (Le2i)           Module Image - I2S      April 6th 2011   81 / 110
Examples of Motion fields




   Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   82 / 110
Estimating Optical Flow
Goal
Find for each pixel a velocity vector u = (u, v ), which says :
     how quickly is the pixel moving across the image
     in which direction it is moving




                            Zelnik-Manor et al., PAMI 2000

=> Important assumption : image intensity I is constant
     Désiré Sidibé (Le2i)            Module Image - I2S           April 6th 2011   83 / 110
Estimating Optical Flow
Brightness Constancy Equation


                    I (x , y , t ) = I (x + dx , y + dy , t + dt )
                                                     ∂I      ∂I     ∂I
                                   = I(x , y , t ) +    dx +    dy + dt
                                                     ∂x      ∂y     ∂t
Which gives
                               ∂I      ∂I     ∂I
                                  dx +    dy + dt = 0
                               ∂x      ∂y     ∂t
                                                       dx             dy
Finally, if we divide by dt and denote u =             dy   and v =   dt ,   we have :

                                     Ix u + Iy v = −It


Problem : one equation, two unknows ! (under-determined system)

     Désiré Sidibé (Le2i)              Module Image - I2S                      April 6th 2011   84 / 110
Estimating Optical Flow

The Aperture Problem




Where did the blue point move to ?             The aperture problem in practice


Brightness constancy equation provides only the normal component of the
motion flow.
=> We need additional constraints

      Désiré Sidibé (Le2i)           Module Image - I2S               April 6th 2011   85 / 110
Lucas Kanade

Local smoothness

                                                                          u
                           Ix u + Iy v = −It =⇒ [Ix               Iy ]          = −It
                                                                          v

If we assume constant velocity (u, v ) in small neighborhood

                                     Ix1   Iy1                           It1
                                                                         
                                 
                                 
                                             
                                              
                                                             
                                                              
                                                                           
                                                                            
                                                                            
                                 
                                 
                                 
                                    Ix2   Iy2
                                               u
                                              
                                              
                                                              
                                                              
                                                              
                                                                        It2
                                                                            
                                                                            
                                                                            
                                 
                                 
                                 
                                    Ix3   Iy3
                                              
                                              
                                               v
                                                          = −
                                                              
                                                              
                                                                        It3
                                                                            
                                                                            
                                                                            
                                                                            
                                      .     .                            . 
                                 
                                             
                                                             
                                                                           
                                                                            
                                      .     .                            . 
                                 
                                                            
                                                                           
                                      .     .                             .
                                                             

We get an over-determined system

                                                 Au = b

which we can solve using LLS (Linear Least Squares) method.
    Désiré Sidibé (Le2i)                     Module Image - I2S                         April 6th 2011   86 / 110
Lucas Kanade

We want to find u that minimizes Au − b 2
LLS solution is given by
                           u = (AT A)−1 AT b
                           ˆ
So, we need the matrix AT A to be invertible.
                                           2
                                          Ix          Ix Iy
                            AT A =                      2
                                         Ix Iy         Iy

=> summation over all pixels in a K × K window (e.g., 5 × 5).


Good Features to Track
    Edge → AT A becomes singular
    Homogeneous region → low gradients ; AT A ≈ 0
    High texture → Good ! AT A has two large eigenvalues.

     Désiré Sidibé (Le2i)        Module Image - I2S           April 6th 2011   87 / 110
KLT Tracker
KLT assumes that the motion is small, if not the case Taylor expansion
doesn’t hold !
=> multi-scale estimation




    Désiré Sidibé (Le2i)       Module Image - I2S          April 6th 2011   88 / 110
KLT Tracker
Multi-scale estimation




    Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   89 / 110
Appearance-Based Tracking




   Désiré Sidibé (Le2i)   Module Image - I2S   April 6th 2011   90 / 110
Mean-Shift Tracker



Motivations
    Track non-rigid objects, for which it is hard to specify an explicit 2D
    parametric motion model.
    Appearances of non-rigid objects can be modeled by color distribution



Mean-Shift
    Mean-shift algorithm is an efficient approach to tracking objects
    whose appearance is modeled by histograms (not limited to color).
    It finds modes of the appearance’s distribution.




    Désiré Sidibé (Le2i)        Module Image - I2S             April 6th 2011   91 / 110
Mean-Shift : Theory
Intuitive Description




                           Objective : Find the densest region

    Désiré Sidibé (Le2i)              Module Image - I2S         April 6th 2011   92 / 110
Mean-Shift : Theory
Intuitive Description




                           Objective : Find the densest region

    Désiré Sidibé (Le2i)              Module Image - I2S         April 6th 2011   93 / 110
Mean-Shift : Theory
Intuitive Description




                           Objective : Find the densest region

    Désiré Sidibé (Le2i)              Module Image - I2S         April 6th 2011   94 / 110
Mean-Shift : Theory
Intuitive Description




                           Objective : Find the densest region

    Désiré Sidibé (Le2i)              Module Image - I2S         April 6th 2011   95 / 110
Mean-Shift : Theory

Instead of estimating the pdf
                                                  n
                                           1
                                  P (X ) =              K (X − Xi )
                                           n
                                                 i =1

Only estimate the gradient
                                                  n
                                             1
                                  P (X ) =                  K (X − Xi )
                                             n
                                                 i =1

                                                              X −Xi 2
Using the kernel form : K (X − Xi ) = ck                        h       , we get

                                   n                    n               n
                                                                
                              c               c                         i =1 Xi gi
                                                   
                                                                
                                                                 
                     P (X ) =            ki =      
                                                   
                                                             gi 
                                                                 
                                                                         n          −X
                              n               n                 
                                                                          i =1 gi
                                  i =1                 i =1



     Désiré Sidibé (Le2i)                 Module Image - I2S                          April 6th 2011   96 / 110
Mean-Shift : Theory




Simple Mean-Shift procedure :
    Compute the mean shift vector m(x)
    Translate the Kernel window by m(x)
    Iterate until convergence
    Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   97 / 110
Mean-Shift : Tracking
Some Results




                           Comaniciu et al., PAMI 2002


    The method is quite effective
    But not scale invariant
    Collins (CVPR 2003) has proposed an scale-space adapted
    mean-shift
    Désiré Sidibé (Le2i)          Module Image - I2S     April 6th 2011   98 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   99 / 110
Particle Filters for Visual Tracking

A Tracking example
The state is defined by the position and the velocity of the object
                                         
                                      xt 
                                     
                                         
                                      yt 
                                     
                                         
                                          
                                          
                                Xt = 
                                      x 
                                         
                                      ˙t 
                                     
                                     
                                     
                                          
                                          
                                          
                                          
                                       ˙
                                         
                                       yt


If we use a first order AR model, then the state-space equations are given
by :
    State equation
                               Xt = AXt −1 + vt −1
    Measurement equation
                                 Zt = BXt + wt

     Désiré Sidibé (Le2i)       Module Image - I2S           April 6th 2011   100 / 110
Particle Filters for Visual Tracking


where
                      1 0 ∆t
                                             
                                        0    
                                              
                                             
                      0 1 0
                     
                                        ∆t   
                                              
                                                                   1 0 0 0
                  A =
                     
                      0 0 1
                                               and B =
                                              
                                         0                          0 1 0 0
                     
                                             
                                              
                                              
                     
                     
                                             
                                              
                                              
                             0 0   0     1
and                                                   2                       
                                             
                                                     qx      0     0     0    
                                                                               
                                                               2
                                                                              
                                                      0       qy    0     0
                                             
                                                                              
                                                                               
                         vt → N(0, Q )
                                                                              
                                           Q=
                                                                              
                                                                               
                                                                     2
                                                      0       0     qx    0
                                             
                                             
                                                                              
                                                                               
                                                                               
                                             
                                                                    ˙         
                                                                               
                                                                           2
                                                                              
                                                      0       0     0     qy
                                                                              
                                                                           ˙

                                                                2
                                                               rx    0
                             wt → N(0, R )           R=               2
                                                               0     ry



      Désiré Sidibé (Le2i)               Module Image - I2S                        April 6th 2011   101 / 110
Particle Filters for Visual Tracking
The likelihood function is based on similarity between image features : one
can use color, gradient or any other distinctive feature




    Désiré Sidibé (Le2i)       Module Image - I2S          April 6th 2011   102 / 110
Particle Filters for Visual Tracking


    Since color is a distinctive and quite robust feature, each particle is
    dscribed by the color distribution of its local image patch,
    p (x) = {pu (x)}u=1,...,m given by :

                                        Np                   2
                                                    xi − x
                           pu (x) = C          k(                )δ[b (xi ) − u],
                                                       h
                                        i =1

    where C is a normalizer, δ is the Kronecker function, k is a kernel with
    bandwith h, Np is the number of pixels in the region and b (xi ) is a
    function that assigns one of the m-bins to a given color at location xi .
    The kernel k is used to consider spatial information by lowering the
    contribution of farther pixels.



    Désiré Sidibé (Le2i)                Module Image - I2S                          April 6th 2011   103 / 110
Particle Filters for Visual Tracking


    The similarity between two color distributions, p (xt ) and p ∗ (x0 ), can
    be defined as the Bhattacharyya distance
                                                    m
                                                                              1
                                                                             2
                           ρ[p ∗ , p (xt )] = 1 −             ∗
                                                                             
                                                              pu (x0 )pu (xt )
                                              
                                                                             
                                                                              
                                              
                                                                             
                                                                              
                                                     u=1

    Each sample xit is assigned an importance weight which corresponds
    to the likelihood that xit is the true location of the object. The weights
    are given by the observation likelihood :
                                                                ∗ ,p (xi )]2
                                 wti = p (zt |xit ) ∝ e −λρ[p          t       .




    Désiré Sidibé (Le2i)                 Module Image - I2S                        April 6th 2011   104 / 110
Particle Filters for Visual Tracking
For every frame, the weighted mean of the particles (MMSE estimate) or
the particle with largest weight (MAP estimate) can be used as an
estimate of the object’s current state.




    Désiré Sidibé (Le2i)      Module Image - I2S         April 6th 2011   105 / 110
Particle Filters for Visual Tracking

Tracking algorithm


    Initialize the state vector for the first frame and get a reference color
    model

    Generate a set of N particles

    For each new frame
           Find the predicted state of each particle using the state equation
           Compute histogram distance between the reference color model and
           the predicted one
           Weight each particle based on similarity between color models
           Select the state of the target based on the weighted particles (MMSE
           or MAP)
           Sample the particles for next iteration


    Désiré Sidibé (Le2i)          Module Image - I2S            April 6th 2011   106 / 110
Outline

1   Introduction
       Recall on Estimation Theory
       What Is A Particle Filter ?
       Applications in Computer Vision

2   General Bayesian Framework
      Kalman Filter

3   Particle Filters

4   Visual Tracking
       Tracking Methods
       Particle Filters Based Tracking

5   Conclusion


     Désiré Sidibé (Le2i)        Module Image - I2S   April 6th 2011   107 / 110
Particle Filters
Pros and Cons of PF

+ estimation of full pdfs                 - degeneracy problem
+ non Gaussian and multi-modal            - high number of particles needed
distributions                             - can be computationally expensive
+ non linear dynamic systems              - choice of importance density is
+ can be parallelized                     crucial


Personal Notes
     The principal is quite simple (basically Bayes rule and Markov
     models)
     Though I did not talk about the math (convergence properties,
     complexity issues, etc)
     Writing a code that do what is expected can be tricky !
     But works well when you succeed !
     Désiré Sidibé (Le2i)       Module Image - I2S             April 6th 2011   108 / 110
Challenges in Visual Tracking


   Changing appearance
   - Discriminant and adapting features
   - Optimal combination of multiple feature modalities
   - Binary classification approach

   Quantitative evaluation
   - There is a need for a standard a complete dataset.

   Non conventional sensors
   - Tracking beyond the visible spectrum
   - Tracking in omnidirectional image sequences is still an open problem




    Désiré Sidibé (Le2i)      Module Image - I2S          April 6th 2011   109 / 110
References


   A. Doucet, N. De Freitas and D. Gordon (2001).
   Sequential Monte Carlo Methods in Practice.
   Springer Verlag.

   M. S. Arulampalam and S. Maskell and N. Gordon and T. Clapp (2002).
   A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian
   Tracking.
   IEEE Transactions on Signal Processing, 50(2), pp : 174-188.

   M. Isard and A. Blake (1998).
   CONDENSATION - conditional density propagation for visual tracking.
   Int. J. Computer Vision, 29(1), pp : 5–28.




   Désiré Sidibé (Le2i)            Module Image - I2S          April 6th 2011   110 / 110

More Related Content

What's hot

Video object tracking with classification and recognition of objects
Video object tracking with classification and recognition of objectsVideo object tracking with classification and recognition of objects
Video object tracking with classification and recognition of objects
Manish Khare
 
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Simplilearn
 
Facial Image Analysis for age and gender and
Facial Image Analysis for age and gender andFacial Image Analysis for age and gender and
Facial Image Analysis for age and gender and
Yuheng Wang
 
Multisensor data fusion in object tracking applications
Multisensor data fusion in object tracking applicationsMultisensor data fusion in object tracking applications
Multisensor data fusion in object tracking applications
Sayed Abulhasan Quadri
 

What's hot (20)

Video object tracking with classification and recognition of objects
Video object tracking with classification and recognition of objectsVideo object tracking with classification and recognition of objects
Video object tracking with classification and recognition of objects
 
Intro to machine learning
Intro to machine learningIntro to machine learning
Intro to machine learning
 
Deep Learning for Computer Vision: Object Detection (UPC 2016)
Deep Learning for Computer Vision: Object Detection (UPC 2016)Deep Learning for Computer Vision: Object Detection (UPC 2016)
Deep Learning for Computer Vision: Object Detection (UPC 2016)
 
Kalman Filter
 Kalman Filter    Kalman Filter
Kalman Filter
 
Kalman filters
Kalman filtersKalman filters
Kalman filters
 
Multi sensor-fusion
Multi sensor-fusionMulti sensor-fusion
Multi sensor-fusion
 
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
 
=SLAM ppt.pdf
=SLAM ppt.pdf=SLAM ppt.pdf
=SLAM ppt.pdf
 
Yolo
YoloYolo
Yolo
 
ppt on machine learning to deep learning (1).pptx
ppt on machine learning to deep learning (1).pptxppt on machine learning to deep learning (1).pptx
ppt on machine learning to deep learning (1).pptx
 
What is the Expectation Maximization (EM) Algorithm?
What is the Expectation Maximization (EM) Algorithm?What is the Expectation Maximization (EM) Algorithm?
What is the Expectation Maximization (EM) Algorithm?
 
Faster R-CNN: Towards real-time object detection with region proposal network...
Faster R-CNN: Towards real-time object detection with region proposal network...Faster R-CNN: Towards real-time object detection with region proposal network...
Faster R-CNN: Towards real-time object detection with region proposal network...
 
Facial Image Analysis for age and gender and
Facial Image Analysis for age and gender andFacial Image Analysis for age and gender and
Facial Image Analysis for age and gender and
 
Reinforcement Learning
Reinforcement LearningReinforcement Learning
Reinforcement Learning
 
Artificial Intelligence -- Search Algorithms
Artificial Intelligence-- Search Algorithms Artificial Intelligence-- Search Algorithms
Artificial Intelligence -- Search Algorithms
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
Connected component labeling algorithm
Connected component labeling algorithmConnected component labeling algorithm
Connected component labeling algorithm
 
Multisensor data fusion in object tracking applications
Multisensor data fusion in object tracking applicationsMultisensor data fusion in object tracking applications
Multisensor data fusion in object tracking applications
 
Local beam search example
Local beam search exampleLocal beam search example
Local beam search example
 
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
[PR12] You Only Look Once (YOLO): Unified Real-Time Object Detection
 

Viewers also liked

Particle Filter Tracking in Python
Particle Filter Tracking in PythonParticle Filter Tracking in Python
Particle Filter Tracking in Python
Kohta Ishikawa
 
Monte Carlo Methods
Monte Carlo MethodsMonte Carlo Methods
Monte Carlo Methods
James Bell
 
iccv2009 tutorial: boosting and random forest - part III
iccv2009 tutorial: boosting and random forest - part IIIiccv2009 tutorial: boosting and random forest - part III
iccv2009 tutorial: boosting and random forest - part III
zukun
 
Particle filtering in Computer Vision (2003)
Particle filtering in Computer Vision (2003)Particle filtering in Computer Vision (2003)
Particle filtering in Computer Vision (2003)
zukun
 
History of Mathematics
History of MathematicsHistory of Mathematics
History of Mathematics
tmp44
 

Viewers also liked (20)

Particle Filter
Particle FilterParticle Filter
Particle Filter
 
Particle Filter Tracking in Python
Particle Filter Tracking in PythonParticle Filter Tracking in Python
Particle Filter Tracking in Python
 
Monte Carlo Methods
Monte Carlo MethodsMonte Carlo Methods
Monte Carlo Methods
 
iccv2009 tutorial: boosting and random forest - part III
iccv2009 tutorial: boosting and random forest - part IIIiccv2009 tutorial: boosting and random forest - part III
iccv2009 tutorial: boosting and random forest - part III
 
A FRIENDLY APPROACH TO PARTICLE FILTERS IN COMPUTER VISION
A FRIENDLY APPROACH TO PARTICLE FILTERS IN COMPUTER VISIONA FRIENDLY APPROACH TO PARTICLE FILTERS IN COMPUTER VISION
A FRIENDLY APPROACH TO PARTICLE FILTERS IN COMPUTER VISION
 
Presentation of Visual Tracking
Presentation of Visual TrackingPresentation of Visual Tracking
Presentation of Visual Tracking
 
Using particle filter for face tracking
Using particle filter for face trackingUsing particle filter for face tracking
Using particle filter for face tracking
 
An Importance Sampling Approach to Integrate Expert Knowledge When Learning B...
An Importance Sampling Approach to Integrate Expert Knowledge When Learning B...An Importance Sampling Approach to Integrate Expert Knowledge When Learning B...
An Importance Sampling Approach to Integrate Expert Knowledge When Learning B...
 
Computer vision
Computer visionComputer vision
Computer vision
 
Particle filtering in Computer Vision (2003)
Particle filtering in Computer Vision (2003)Particle filtering in Computer Vision (2003)
Particle filtering in Computer Vision (2003)
 
Nonverbal communication
Nonverbal communicationNonverbal communication
Nonverbal communication
 
Modification And Accommodations
Modification And AccommodationsModification And Accommodations
Modification And Accommodations
 
Deep Learning and its Applications - Computer Vision
Deep Learning and its Applications - Computer VisionDeep Learning and its Applications - Computer Vision
Deep Learning and its Applications - Computer Vision
 
History of Mathematics
History of MathematicsHistory of Mathematics
History of Mathematics
 
Single person pose recognition and tracking
Single person pose recognition and trackingSingle person pose recognition and tracking
Single person pose recognition and tracking
 
Monte Carlo Simulation Methods
Monte Carlo Simulation MethodsMonte Carlo Simulation Methods
Monte Carlo Simulation Methods
 
Strata 2013: Tutorial-- How to Create Predictive Models in R using Ensembles
Strata 2013: Tutorial-- How to Create Predictive Models in R using EnsemblesStrata 2013: Tutorial-- How to Create Predictive Models in R using Ensembles
Strata 2013: Tutorial-- How to Create Predictive Models in R using Ensembles
 
Object Recognition
Object RecognitionObject Recognition
Object Recognition
 
Color based image processing , tracking and automation using matlab
Color based image processing , tracking and automation using matlabColor based image processing , tracking and automation using matlab
Color based image processing , tracking and automation using matlab
 
Nonverbal
NonverbalNonverbal
Nonverbal
 

Similar to Particle Filters and Applications in Computer Vision

No Slide Title
No Slide TitleNo Slide Title
No Slide Title
butest
 
No Slide Title
No Slide TitleNo Slide Title
No Slide Title
butest
 
Signal processingcolumbia
Signal processingcolumbiaSignal processingcolumbia
Signal processingcolumbia
vevin1986
 
An adaptive-model-for-blind-image-restoration-using-bayesian-approach
An adaptive-model-for-blind-image-restoration-using-bayesian-approachAn adaptive-model-for-blind-image-restoration-using-bayesian-approach
An adaptive-model-for-blind-image-restoration-using-bayesian-approach
Cemal Ardil
 

Similar to Particle Filters and Applications in Computer Vision (20)

Visual Object Tracking: Action-Decision Networks (ADNets)
Visual Object Tracking: Action-Decision Networks (ADNets)Visual Object Tracking: Action-Decision Networks (ADNets)
Visual Object Tracking: Action-Decision Networks (ADNets)
 
lecture_6_jiajun.pdf
lecture_6_jiajun.pdflecture_6_jiajun.pdf
lecture_6_jiajun.pdf
 
(slides 2) Visual Computing: Geometry, Graphics, and Vision
(slides 2)  Visual Computing: Geometry, Graphics, and Vision(slides 2)  Visual Computing: Geometry, Graphics, and Vision
(slides 2) Visual Computing: Geometry, Graphics, and Vision
 
Bayesian_Decision_Theory-3.pdf
Bayesian_Decision_Theory-3.pdfBayesian_Decision_Theory-3.pdf
Bayesian_Decision_Theory-3.pdf
 
Sparse representation based human action recognition using an action region-a...
Sparse representation based human action recognition using an action region-a...Sparse representation based human action recognition using an action region-a...
Sparse representation based human action recognition using an action region-a...
 
Deep Learning for Computer Vision (1/4): Image Analytics @ laSalle 2016
Deep Learning for Computer Vision (1/4): Image Analytics @ laSalle 2016Deep Learning for Computer Vision (1/4): Image Analytics @ laSalle 2016
Deep Learning for Computer Vision (1/4): Image Analytics @ laSalle 2016
 
A short and naive introduction to using network in prediction models
A short and naive introduction to using network in prediction modelsA short and naive introduction to using network in prediction models
A short and naive introduction to using network in prediction models
 
Accelerating Metropolis Hastings with Lightweight Inference Compilation
Accelerating Metropolis Hastings with Lightweight Inference CompilationAccelerating Metropolis Hastings with Lightweight Inference Compilation
Accelerating Metropolis Hastings with Lightweight Inference Compilation
 
Deep Learning Hardware: Past, Present, & Future
Deep Learning Hardware: Past, Present, & FutureDeep Learning Hardware: Past, Present, & Future
Deep Learning Hardware: Past, Present, & Future
 
Kernel methods and variable selection for exploratory analysis and multi-omic...
Kernel methods and variable selection for exploratory analysis and multi-omic...Kernel methods and variable selection for exploratory analysis and multi-omic...
Kernel methods and variable selection for exploratory analysis and multi-omic...
 
Situation based analysis and control for supporting Event-web applications
Situation based analysis and control for supporting Event-web applicationsSituation based analysis and control for supporting Event-web applications
Situation based analysis and control for supporting Event-web applications
 
A Semantic Web Platform for Automating the Interpretation of Finite Element ...
A Semantic Web Platform for Automating the Interpretation of Finite Element ...A Semantic Web Platform for Automating the Interpretation of Finite Element ...
A Semantic Web Platform for Automating the Interpretation of Finite Element ...
 
UofT_ML_lecture.pptx
UofT_ML_lecture.pptxUofT_ML_lecture.pptx
UofT_ML_lecture.pptx
 
No Slide Title
No Slide TitleNo Slide Title
No Slide Title
 
No Slide Title
No Slide TitleNo Slide Title
No Slide Title
 
Signal processingcolumbia
Signal processingcolumbiaSignal processingcolumbia
Signal processingcolumbia
 
Reading revue of "Inferring Multiple Graphical Structures"
Reading revue of "Inferring Multiple Graphical Structures"Reading revue of "Inferring Multiple Graphical Structures"
Reading revue of "Inferring Multiple Graphical Structures"
 
I0343065072
I0343065072I0343065072
I0343065072
 
nnml.ppt
nnml.pptnnml.ppt
nnml.ppt
 
An adaptive-model-for-blind-image-restoration-using-bayesian-approach
An adaptive-model-for-blind-image-restoration-using-bayesian-approachAn adaptive-model-for-blind-image-restoration-using-bayesian-approach
An adaptive-model-for-blind-image-restoration-using-bayesian-approach
 

More from zukun

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009
zukun
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCV
zukun
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Information
zukun
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statistics
zukun
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibration
zukun
 
Brunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionBrunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer vision
zukun
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluation
zukun
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-software
zukun
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptors
zukun
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectors
zukun
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-intro
zukun
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
zukun
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video search
zukun
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video search
zukun
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
zukun
 
Advances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionAdvances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer vision
zukun
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick start
zukun
 
EM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysisEM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysis
zukun
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structures
zukun
 
Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities
zukun
 

More from zukun (20)

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCV
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Information
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statistics
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibration
 
Brunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionBrunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer vision
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluation
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-software
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptors
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectors
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-intro
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video search
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video search
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
 
Advances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionAdvances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer vision
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick start
 
EM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysisEM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysis
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structures
 
Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities
 

Recently uploaded

Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 

Recently uploaded (20)

INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

Particle Filters and Applications in Computer Vision

  • 1. Particle Filters and Applications in Computer Vision Désiré Sidibé Maître de Conférences - Université de Bourgogne LE2I - UMR CNRS 5158 dro-desire.sidibe@u-bourgogne.fr April 6th 2011 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 1 / 110
  • 2. Outline 1 Introduction 2 General Bayesian Framework 3 Particle Filters 4 Visual Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 2 / 110
  • 3. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 3 / 110
  • 4. Introduction Particle Filters : two words Filter : a procedure that estimates parameters (state) of a system. Particles : a set of randomly chosen weighted samples used to approximate a pdf. Estimation Estimation is the process by which we infer the value of a quantity of interest, x, by processing data that is in some way dependent on x. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 4 / 110
  • 5. Introduction State estimation or filtering has many applications Estimating communication signals from noisy measurements Predicting economical data Tracking of aircraft positions from radar Tracking of people or cars in surveillance videos Mobile robotics etc. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 5 / 110
  • 6. Introduction Goals of this presentation : State the problem Introduce the key ideas Show examples of applications in computer vision Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 6 / 110
  • 7. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 7 / 110
  • 8. Introduction The problem ˆ Find the best estimate x for a parameter x given a set of k measurements Z1:k = {z1 , . . . , zk }. State estimation is based on probability theroy. One of the ’most important’ results in probability theory is Bayes Rule : P (B |A )P (A ) P (A |B ) = P (B ) likelihood × prior posterior = evidence => simple but powerful ! Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 8 / 110
  • 9. Introduction Using Bayes rule, the posterior pdf is given by p (Z1:k |x)p (x) p (x|Z1:k ) = p (Z1:k ) ∝ η × p (Z1:k |x)p (x) p (x|Z1:k ) : the posterior pdf p (Z1:k |x) : the likelihood function p (x) : the prior distribution "‘The probability of any event is the ratio between the value at which an expectation depending on the happening of the event ought to be computed, and the value of the thing expected upon its happening."’ Thomas Bayes (1702-1761) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 9 / 110
  • 10. Introduction Maximum Likelihood Estimation If we have no prior knowledge about the parameter x : p (x|Z1:k ) ∝ η × p (Z1:k |x) ˆ Then, the estimate x is given by the value of x which maximizes the likelihood function : ˆ xML = arg max p (Z1:k |x) x Maximum A-Posteriori Estimation In many cases we have some prior knowledge on x represented by p (x) : p (x|Z1:k ) ∝ η × p (Z1:k |x)p (x) ˆ Then, the estimate x is given by the value of x which maximizes the posterior distribution : ˆ xMAP = arg max p (Z1:k |x)p (x) x Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 10 / 110
  • 11. Introduction MMSE Estimation Another key technique for estimating the value of a random variable x is the minimum mean squared error estimation : xMMSE = arg min E{(x − x)T (x − x)|Z1:k } ˆ ˆ ˆ ˆ x It is easy to show that : ˆ xMMSE = E{x|Z1:k } Recursive Estimation If the measurements are obtained sequentially over time, we could use the previous estimate of x as the prior knowledge. p (Z1:k |x)p (x|Z1:k −1 ) p (x|Z1:k ) = p (zk |Z1:k −1 ) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 11 / 110
  • 12. Introduction We can distinguish three estimation problems : Filtering : estimate the current state x(k ) given all the data availabe up to and including z(k ). Smoothing : estimate some past value of x(l ), l < k , given all the data availabe up to and including z(k ). Prediction : estimate some future value of x(l ), l > k , given all the data availabe up to and including z(k ). Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 12 / 110
  • 13. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 13 / 110
  • 14. What Is A Particle Filter ? Recursive filter Sequential update of previous estimate ⇒ faster online data processing as opposed to batch processing Approximate method It is impossible to obtain analytic solutions to non-linear and non-Gaussian estimation problems ⇒ particle filters provide approximate solutions Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 14 / 110
  • 15. What Is A Particle Filter ? Particle filter is : a technique for implementing recursive Bayesian filter by Monte Carlo sampling. the idea is to represent the posterior density by a set of random particles with associated weights ; and compute estimates based on these samples and weights Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 15 / 110
  • 16. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 16 / 110
  • 17. Applications in Computer Vision Visual Tracking Particle filters were first introduced to the computer vision community by the famous CONDENSATION paper of Isard and Blake. ⇒ real-time contour tracking M. Isard and A. Blake, CONDENSATION - conditional density propagation for visual tracking, Int. J. Computer Vision, 29, 1, 5–28, (1998) A lot of work has been published on contour extraction and tracking since then. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 17 / 110
  • 18. Applications in Computer Vision Medical Image Analysis Particle filters have been widely used in medical image analysis ⇒ contour tracking, image segmentation I. Smal et al., Multiple Object Tracking in Molecular Bioimaging by Rao-Blackwellized Marginal Particle Filtering, Medical Image Analysis, 12 (6), pp. 764–777, (2008) M. de Bruijne and M. Nielsen, Shape Particle Filtering for Image Segmentation, in Proc. MICCAI, pp. 168–175, (2004) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 18 / 110
  • 19. Applications in Computer Vision Human Computer Interaction Particle filters are used in HCI for tracking ⇒ face and hand tracking can be coupled with facial expression and gesture recognition M. Bray et al., Smart particle filtering for 3D hand tracking, in Proc. AFGR, pp. 675–680, (2004) M. F. Ho et al., A multi-view vision-based hand motion capturing system, Pattern Recognition, 44 (2), pp ; 443–453 (2011) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 19 / 110
  • 20. Applications in Computer Vision Image Restoration Particle filters have been used for image enhancement and denoising N. Azzabou, N. Paragios, and F. Guichard, Image Reconstruction Using Particle Filters and Multiple Hypotheses Testing, IEEE Trans. on Image Processing, 19, 5, 1181–1190, (2010) L. Xia, Image restoration based on particle filters, in Proc. ICSP, pp. 1084–1087, (2004) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 20 / 110
  • 21. Applications in Computer Vision Shape correpondence Particle filters can also be used for shape correspondence R. Lakaemper and M. Sobel, Correspondences between parts of shapes with particle filters, in Proc. CVPR, pp. 1–8, (2008) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 21 / 110
  • 22. Applications in Computer Vision Robot Navigation Particle filters are now used as a key technique for localization and mapping problems in mobile robot navigation. The Simultaneous Localisation and Map Building (SLAM) problem requires that the probability distribution P (xk ; m|Z0:k ; U0:k ; x0 ) be computed for all times k . S. Thrun, W. Burgard and D. Fox, Probabilistic Robotics, The MIT Press, (2006) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 22 / 110
  • 23. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 23 / 110
  • 24. Introduction Recursive filtering involves a description of our a priori knowledge about the world : System dynamics model : how does system state evolves over time ? Measurement model : how are measurements related to system state ? Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 24 / 110
  • 25. Introduction Notations System state at time k : x(k ) Measurement at time k : z(k ) All measurements up to time k : Z1:k = {z(1), . . . , z(k )} System error sources at time k : w (k ) Measurement error sources at time k : v (k ) Control input at time k : u(k ) Models equations xk = f (xk −1 , uk −1 ) + wk −1 , (1) zk = h (xk ) + vk . (2) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 25 / 110
  • 26. General Bayesian Framework General model We have a system described by some internal state parameters X We also have a set of measurements Z from some devices. There is a clock at each tick, the state changes (system state equation) at each tick, we get a new observation (measurement equation) System state is unkown (’hidden’) We want to recover the state components from observations => state estimation problem. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 26 / 110
  • 27. General Bayesian Framework We want to get P (Xk |Z1:k ) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 27 / 110
  • 28. General Bayesian Framework Independence assumptions Hidden Markov Model P (Xk |X0 , . . . , Xk −1 ) = P (Xk |Xk −1 ) (3) Observations are conditionally independent given the state P (Zk , Zi , . . . , Zj |Xk ) = P (Zk |Xk )P (Zi , . . . , Zj |Xk ) (4) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 28 / 110
  • 29. General Bayesian Framework Recursive estimation implies two main steps : Prediction : given measurements z1 , . . . , zk −1 , what state Xk can we predict for the k-th tick ? We need to obtain a representation of P (Xk |Z1 = z1 , . . . , Zk −1 = zk −1 ). Correction : given the relevant measurement at time k, zk , we need to compute a representation of P (Xk |Z1 = z1 , . . . , Zk = zk ). Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 29 / 110
  • 30. General Bayesian Framework We assume that the initial pdf P (X0 ) is known Then given a representation of P (Xk −1 |z1 , . . . , zk −1 ), we have : Prediction P (Xk |z1 , . . . , zk −1 ) = P (Xk |Xk −1 )P (Xk −1 |z1 , . . . , zk −1 )dXk −1 Correction P (zk |Xk )P (Xk |z1 , . . . , zk −1 ) P (Xk |z1 , . . . , zk ) = P (zk |Xk )P (Xk |z1 , . . . , zk −1 )dXk Computing these pdfs is impossible in practice ! (nasty integrals) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 30 / 110
  • 31. Recursive Bayesian Estimation Prediction P (Xk |Z1:k −1 ) = P (Xk , Xk −1 |Z1:k −1 )dXk −1 = P (Xk |Xk −1 , Z1:k −1 )P (Xk −1 |Z1:k −1 )dXk −1 = P (Xk |Xk −1 )P (Xk −1 |Z1:k −1 )dXk −1 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 31 / 110
  • 32. Recursive Bayesian Estimation Correction P (Z1:k |Xk )P (Xk ) P (Xk |Z1:k ) = P (Z1:k ) P (zk , Z1:k −1 |Xk )P (Xk ) = P (zk , Z1:k −1 ) P (zk |Xk , Z1:k −1 )P (Z1:k −1 |Xk )P (Xk ) = P (zk |Z1:k −1 )P (Z1:k −1 ) P (zk |Z1:k −1 , Xk )P (Xk |Z1:k −1 )P (Z1:k −1 )P (Xk ) = P (zk |Z1:k −1 )P (Z1:k −1 )P (Xk ) P (zk |Xk )P (Xk |Z1:k −1 ) = P (zk |Z1:k −1 ) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 32 / 110
  • 33. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 33 / 110
  • 34. Kalman Filters If we restrict attention to linear dynamic systems and linear measurement models, both with additive Gaussian noise => all the densities are Gaussians and we can avoide the question of solving the various integrals. Model of the system State equation : Xt = At Xt −1 + Bt Ut −1 + wt Measurement equation : Zt = Ct Xt + vt with wt ∼ N(0, Qt ), vt ∼ N(0, Rt ) and wt ⊥vt . Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 34 / 110
  • 35. Discrete Kalman Filters Importance of Gaussian distribution Since the system is linear and the distributions are Gaussian, we need only to know the conditional mean Xk = E[Xk |Z1:k , U0:k −1 ] the conditional covariance Pk = Cov (Xk , Xk |Z1:k , U0:k −1 ) Recursivity Assume that we know P (xk |Z1:k , U0:k −1 ) at some time k 1 Prediction : what can we say about xk +1 before we get the measurement Zk +1 ? P (xk +1 |Z1:k , U0:k ) 2 Correction : how can we improve our knowledge of xk +1 given the actual measurement zk +1 ? P (xk +1 |Z1:k +1 , U0:k ) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 35 / 110
  • 36. Discrete Kalman Filters ˆ Assume we know xk and Pk . Prediction step From the state equation : ˆ− xk +1 = E[xk +1 |Z1:k , U0:k ] = Ak xk + Bk uk . ˆ From the prior estimate error covariance − ˆ− ˆ− Pk +1 = E[(xk +1 − xk +1 )(xk +1 − xk +1 )T ] = Ak Pk Ak + Qk . T Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 36 / 110
  • 37. Discrete Kalman Filters Correction step Use the measurement equation to make a prediction of the observation zk +1 = Ck +1 xk +1 . − ˆ− Given, the actual observation zk +1 , correct the state prediction ˆ ˆ− − xk +1 = xk +1 + Kk +1 (zk +1 − zk +1 ). − (zk +1 − zk +1 ) is called the measurement innovation or the residual. Kk +1 is called the Kalman gain and is chosen in order to minimize the posterior MMSE Pk +1 = E[(xk +1 − xk +1 )(xk +1 − xk +1 )T ]. ˆ ˆ Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 37 / 110
  • 38. Discrete Kalman Filters Optimal Kalman Gain The a posteriori error covariance matrix is Pk +1 = E[(xk +1 − xk +1 )(xk +1 − xk +1 )T ], ˆ ˆ which after a few calculations gives Pk +1 = (I − Kk +1 Ck +1 )Pk +1 (I − Kk +1 Ck +1 )T + Kk +1 Rk +1 Kk +1 . − T Taking the trace of Pk +1 and setting its derivative w.r.t. Kk +1 equals to zero, we obtain the optimal Kalman gain Kk +1 = Pk +1 Ck +1 [Ck +1 Pk +1 Ck +1 + Rk +1 ]−1 . − T − T The posterior covariance matrix can then be simplified as Pk +1 = (I − Kk +1 Ck +1 )Pk +1 . − Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 38 / 110
  • 39. Kalman Filters Algorithm Kalman-Filter(µt −1 , Σt −1 , ut , zt ) Prediction 1. µ− = At µt −1 + Bt ut t 2. Σ− = At Σt −1 AtT + Qt t Correction 3. Kt = Σ− CtT (Ct Σ− CtT + Rt )−1 t t 4. µt = µ− + Kt (zt − Ct µ− ) t t 5. Σt = (I − Kt Ct )Σ− t Return µt and Σt KF recursively predicts and updates the mean µt and the covariance matrix Σt of the Gaussian pdf. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 39 / 110
  • 40. Discrete Kalman Filters In most of our applications, the matrices Ak , Bk and Ck do not vary over time. So, the Kalman filter equations are simplified as : Prediction step ˆ− ˆ xk +1 = A xk + Buk − Pk +1 = APk A T + Qk Correction step Kk +1 = Pk +1 C T [CPk +1 C T + Rk +1 ]−1 − − ˆ ˆ− ˆ− xk +1 = xk +1 + Kk +1 (zk +1 − C xk +1 ) − Pk +1 = (I − Kk +1 C )Pk +1 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 40 / 110
  • 41. Discrete Kalman Filter Algorithm ˆ− − 1. Start : x0 , P0 2. Compute Kalman gain : Kk = Pk C T (CPk C T + Rk )−1 − − 3. Compute state estimate : ˆ ˆ− ˆ− xk = xk + Kk (zk − C xk ) 4. Update error covariance : − Pk = (I − Kk C )Pk 5. Update prediction and predicted error covariance : ˆ− ˆ xk +1 = A xk + Buk − Pk +1 = APk A T + Qk 6. Do k = k + 1 and go to step 2. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 41 / 110
  • 42. Discrete Kalman Filter Example Estimation of a scalar random constant Let’s assume that we have the ability to make measurements of the constant, but the measurement are corrupted by a white noise. System equation xk = Axk −1 + Buk + wk = xk −1 + wk Measurement equation zk = Cxk + vk = xk + vk Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 42 / 110
  • 43. Discrete Kalman Filter Example % the state-space equations A = 1; % transition matrix B = 0; % input matrix: no control input C = 1; % measurement matrix: noisy measurement is the state % calculation of noise covariance matrices R = Meas_Noise^2; % measurement noise cov Q = Process_Noise^2; % process noise cov % initialization x = -0.51234; % true state % simulation x_out = zeros(duration,1); y_out = zeros(duration,1); Process_Noise = Process_Noise * randn(duration,1); Meas_Noise = Meas_Noise * randn(duration,1); for t=1:duration, x_out(t) = A*x + Process_Noise(t); y_out(t) = C*x + Meas_Noise(t); end Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 43 / 110
  • 44. Discrete Kalman Filter Example We randomly chose a scalar constant z = −0.51234 We assume a very small process noise : Qk = 1e − 5 We assume that measurements are corrupted by a 0.1 noise Rk = 0.01 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 44 / 110
  • 45. Discrete Kalman Filter Code function [x_out]=discrete_kalman_filter(y, u, x0, P0, A,B,C,Q,R) T = size(y, 1); %number of observations [n,m] = size(P0); I = eye(n,m); % form identity matrix xhat = x0; P = P0; %initialization x_out = []; for k=1:T, % compute Kalman Gain K = P*C’* inv(C*P*C’ + R); % estimate state innovation = y(k) - C*xhat; % innovation vector xhat = xhat + K*innovation; x_out = [x_out; xhat’]; % update covariance matrice P = (I - K*C)*P; % predict next state and covariance xhat = A*xhat + B*u; P = A*P*A’ + Q; end Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 45 / 110
  • 46. Discrete Kalman Filter Example Given that Qk = 1e − 5 and Rk = 0.01, we initialize the filter with x0 = 0 ˆ and P0 = 1. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 46 / 110
  • 47. Kalman Filters Extensions of the Kalman Filter For non-linear dynamic models with Gaussian noises : Extended KF ; Unscented KF. For non-linear, non-Gaussian distributions : Particle filters Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 47 / 110
  • 48. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 48 / 110
  • 49. Particle Filters Why particle filters ? Kalman filter is limited to linear system with Gaussian noise Extended KF and Unscented KF are limited to Gaussian distributions Many practical problems show non linear dynamics and non Gaussian noises We often find multi-modal distributions Key Idea Find an approximate solution using a complex model rather than an exact solution using a simplified model. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 49 / 110
  • 50. Particle Filters Muti-modal distribution A Gaussian distribution is unimodal and verifies : mode = mean = median For a multimodal distribution, the mode, mean and median do not coincide. => Kalman Filter, clearly, is not suitable for multi-modal distributions. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 50 / 110
  • 51. Particle Filters Particle Filters (PF) are a family of methods often called : condensation algorithms sequential Monte Carlo methods bootstrap filters etc PF is based on representing the posterior pdf by a set of randomly chosen weighted samples. "randomly chosen" ≡ "Monte carlo" Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 51 / 110
  • 52. Particle Filters Basic Principle Represent the pdf as a set of weighted samples For N → ∞, PF converges (almost surely) to the true pdf {xi0:k } : set of samples. i For N → ∞, PF approaches optimal {wk } associated weights, i Bayesian estimate normalized to i wk = 1 Regions of high density Many particles N Large weight of particles p (x|Z1:k ) = wk δ(x0:k − xi0:k ) i i =1 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 52 / 110
  • 53. Particle Filters SIS : Sequential Importance Sampling The discrete approximation is good if the samples are drawn from the posterior pdf p (xk |Z1:k ). But we don’t have an explicit representation of p (.) ! K  : we can sample from another importance density q(.). Our approximation is still correct, up to normalization, if the particles are weighted : i p (xi0:k |Z1:k ) wk ∝ q(xi0:k |Z1:k ) We can choose q(.) freely ! Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 53 / 110
  • 54. Particle Filters SIS : Sequential Importance Sampling Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 54 / 110
  • 55. Particle Filters SIS : Sequential Importance Sampling Pseudo-code A 1 : SIS Particle Filter [{xik , wk }N 1 ] = SIS [{xik −1 , wk −1 }N 1 , zk ] i i= i i= For i = 1 : N Draw xik ∼ q(xk |xik −1 , zk ) Update weights according to i i p (zk |xik )p (xik |xik −1 ) wk ∝ wk −1 q(xik |xik −1 , zk ) End For N i Normalize weights to i =1 wk = 1 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 55 / 110
  • 56. Particle Filters SIS : Sequential Importance Sampling Degeneracy problem : after a few iterations, most particles have negligible weights ; the weights are concentrated on a few particles only ! Solutions : 1 Brute force : many, many samples ! Of course, impractical. 2 Optimal importance density : q(xk |xk −1 , zk )opt = p (xk |xk −1 , zk ) and wk = wk −1 p (zk |xk )p (xk |xik −1 )d xk i i But evaluating an integral over the entire state can rarely be done. An alternative convenient choice is to take q(xk |xik −1 , zk ) = p (xk |xik −1 ) → easy to implement, but does not take measurements into account. 3 Resampling Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 56 / 110
  • 57. Particle Filters SIS : Sequential Importance Sampling Resampling : eliminate particles with small associated weights and to concentrate on particles with high weights. Sample N times with replacement from the set of particles {xi0:k } according to importance weights : ⇒ "Survival of the fittest" Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 57 / 110
  • 58. Particle Filters Sampling and Resampling Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 58 / 110
  • 59. Particle Filters Generic Particle Filter Pseudo-Code A 2 : Generic Particle Filter [{xik , wk }N 1 ] = PF [{xik −1 , wk −1 }N 1 , zk ] i i= i i= FOR i = 1 : N Draw xik ∼ q(xk |xik −1 , zk ) i i p (zk |xik )p (xik |xik −1 ) Update weights according to wk ∝ wk −1 q(xik |xik −1 ,zk ) END FOR N i Normalize weights to i =1 wk = 1 1 Calculate degeneracy measure : Neff = N i 2 i =1 (wk ) IF Neff < NT Resample END IF Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 59 / 110
  • 60. Particle Filters Estimation form particles Any estimate of a function f (xk ) can be obtained from the discrete pdf approximation : N 1 E[f (xk )] = wk f (xik ) i N i =1 1 N Mean : E[xk ] = N i =1 wk xik i MAP estimate : particle with largest weight Robust mean : mean within window around MAP estimate Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 60 / 110
  • 61. Particle Filters : Example A simple example We want to estimate a parameter x whose evolution is governed by : xt +1 = 1 + sin(4.10−2 πt ) + 0.5xt + wt , with wt Gamma (3, 2). We cannot measure x directly but have access to a set of measurements : 0.2xt2 + vt if t ≤ 30 zt = , 0.5xt − 2 + vt if t > 30 with vt N(0, σm ). Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 61 / 110
  • 62. Particle Filters : Example A simple example Gaussian and Gamma distributions : same mean and variance. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 62 / 110
  • 63. Particle Filters : Example A simple example Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 63 / 110
  • 64. Particle Filters : Example A simple example Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 64 / 110
  • 65. Particle Filters : Example Comparison with the Extended KF Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 65 / 110
  • 66. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 66 / 110
  • 67. What is tracking ? Problem statement Given a sequence of images Find the trajectories of objects over time Fundamental problem Surveillance Vehicle tracking Human-computer interaction Motion capture Robotics etc. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 67 / 110
  • 68. What is tracking ? Why track ? Segmentation is hard ! Detection and recognition are expensive If we can predict where the object will be in next frame, then we need less work detecting or recognizing the object. Three main steps Prediction Matching (data association) Correction (updating) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 68 / 110
  • 69. What is tracking ? Tracking involves two basic problems : Motion : predicts the limited search region in which the tracked object is most likely to be in next frame. Matching : identifies the object within the designed search region. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 69 / 110
  • 70. What is tracking ? Example of Face Tracking Detection involves searching in entire image => Can take some time ! Though efficient solutions exist like Adaboost classifiers, e.g. Viola and Jones detector for face detection. Making prediction, reduces the search area => template matching can do the job efficiently ! Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 70 / 110
  • 71. Implicit Assumptions Physical cameras do not move instantly from one viewpoint to another. Objects do not teleport between places around the scene. Relative position between camera and scene changes incrementally. We can model objects motion. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 71 / 110
  • 72. Designing a Visual Tracker What is the state ? pose and motion (position, velocity, acceleration, ...) shape (size, deformation, articulation, ...) appearance (subspace, colors, ...) Which image properties should we use ? intensity, color, texture, motion, edges, ... template, adaptive appearance, region statistics What might simplify the problem ? known/stationary background use of color (e.g., skin) multiple cameras (often 2 or 3) manual initialization prior knowledge of the number of objects and their types limited (or no) occlusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 72 / 110
  • 73. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 73 / 110
  • 74. Tracking Methods Deterministic methods Iteratively search for a local maxima of a similarity measure between a template of the target and the current frame. Examples : KLT tracker Mean-Shift tracker Probabilistic methods Use a state-space representation of the moving object to model its underlying dynamics. => The tracking problem is viewed as a Bayesian inference problem. Examples : Kalman filter Particle filter Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 74 / 110
  • 75. Tracking Methods : Background subtraction Pros Simple and easy implementation Detect all changes Cons Detect unwanted changes Difficult to quantify motion Difficult to deal with changing background Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 75 / 110
  • 76. Tracking Methods : Regions tracking State : 2D image location, size of ellipse, velocity Appearance model : color histogram, elliptical contour Estimation : search over discrete locations and size, or density estimation Pros/Cons fast good for large variation in shape/appearance limited fidelity in pose estimation Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 76 / 110
  • 77. Tracking Methods : Appearance-Based Tracking Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 77 / 110
  • 78. Tracking Methods : Motion-Based Tracking We can better understand the scene if we can find the motions of the objects/cameras. Pros/Cons based on brightness constancy good for small motion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 78 / 110
  • 79. Tracking Methods : Probabilistic Tracking Explicit modeling of the system dynamics : how does the object move from frame to frame ? Modeling of states uncertainty : how do we acount for system and measurement noises ? Pros/Cons give good results for complex motion robust to occlusion can be slow Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 79 / 110
  • 80. Deterministic Methods Two popular tracking methods are : KLT Tracker (1984-1990) for feature points tracking Mean Shift Tracker (2000) for blob/region tracking Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 80 / 110
  • 81. Optical Flow and Motion Field Where did each pixel in I1 go to in I2 ? Motion Field = Real word 3D motion Optical Flow Field = Projection of the motion field onto the 2D image Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 81 / 110
  • 82. Examples of Motion fields Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 82 / 110
  • 83. Estimating Optical Flow Goal Find for each pixel a velocity vector u = (u, v ), which says : how quickly is the pixel moving across the image in which direction it is moving Zelnik-Manor et al., PAMI 2000 => Important assumption : image intensity I is constant Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 83 / 110
  • 84. Estimating Optical Flow Brightness Constancy Equation I (x , y , t ) = I (x + dx , y + dy , t + dt ) ∂I ∂I ∂I = I(x , y , t ) + dx + dy + dt ∂x ∂y ∂t Which gives ∂I ∂I ∂I dx + dy + dt = 0 ∂x ∂y ∂t dx dy Finally, if we divide by dt and denote u = dy and v = dt , we have : Ix u + Iy v = −It Problem : one equation, two unknows ! (under-determined system) Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 84 / 110
  • 85. Estimating Optical Flow The Aperture Problem Where did the blue point move to ? The aperture problem in practice Brightness constancy equation provides only the normal component of the motion flow. => We need additional constraints Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 85 / 110
  • 86. Lucas Kanade Local smoothness u Ix u + Iy v = −It =⇒ [Ix Iy ] = −It v If we assume constant velocity (u, v ) in small neighborhood Ix1 Iy1 It1                     Ix2 Iy2  u       It2        Ix3 Iy3    v  = −    It3     . .  .          . .  .        . . .   We get an over-determined system Au = b which we can solve using LLS (Linear Least Squares) method. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 86 / 110
  • 87. Lucas Kanade We want to find u that minimizes Au − b 2 LLS solution is given by u = (AT A)−1 AT b ˆ So, we need the matrix AT A to be invertible. 2 Ix Ix Iy AT A = 2 Ix Iy Iy => summation over all pixels in a K × K window (e.g., 5 × 5). Good Features to Track Edge → AT A becomes singular Homogeneous region → low gradients ; AT A ≈ 0 High texture → Good ! AT A has two large eigenvalues. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 87 / 110
  • 88. KLT Tracker KLT assumes that the motion is small, if not the case Taylor expansion doesn’t hold ! => multi-scale estimation Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 88 / 110
  • 89. KLT Tracker Multi-scale estimation Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 89 / 110
  • 90. Appearance-Based Tracking Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 90 / 110
  • 91. Mean-Shift Tracker Motivations Track non-rigid objects, for which it is hard to specify an explicit 2D parametric motion model. Appearances of non-rigid objects can be modeled by color distribution Mean-Shift Mean-shift algorithm is an efficient approach to tracking objects whose appearance is modeled by histograms (not limited to color). It finds modes of the appearance’s distribution. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 91 / 110
  • 92. Mean-Shift : Theory Intuitive Description Objective : Find the densest region Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 92 / 110
  • 93. Mean-Shift : Theory Intuitive Description Objective : Find the densest region Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 93 / 110
  • 94. Mean-Shift : Theory Intuitive Description Objective : Find the densest region Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 94 / 110
  • 95. Mean-Shift : Theory Intuitive Description Objective : Find the densest region Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 95 / 110
  • 96. Mean-Shift : Theory Instead of estimating the pdf n 1 P (X ) = K (X − Xi ) n i =1 Only estimate the gradient n 1 P (X ) = K (X − Xi ) n i =1 X −Xi 2 Using the kernel form : K (X − Xi ) = ck h , we get n n n   c c i =1 Xi gi     P (X ) = ki =    gi    n −X n n   i =1 gi i =1 i =1 Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 96 / 110
  • 97. Mean-Shift : Theory Simple Mean-Shift procedure : Compute the mean shift vector m(x) Translate the Kernel window by m(x) Iterate until convergence Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 97 / 110
  • 98. Mean-Shift : Tracking Some Results Comaniciu et al., PAMI 2002 The method is quite effective But not scale invariant Collins (CVPR 2003) has proposed an scale-space adapted mean-shift Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 98 / 110
  • 99. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 99 / 110
  • 100. Particle Filters for Visual Tracking A Tracking example The state is defined by the position and the velocity of the object    xt      yt       Xt =   x     ˙t         ˙   yt If we use a first order AR model, then the state-space equations are given by : State equation Xt = AXt −1 + vt −1 Measurement equation Zt = BXt + wt Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 100 / 110
  • 101. Particle Filters for Visual Tracking where  1 0 ∆t    0      0 1 0   ∆t    1 0 0 0 A =   0 0 1  and B =  0 0 1 0 0            0 0 0 1 and  2    qx 0 0 0   2   0 qy 0 0     vt → N(0, Q )   Q=    2 0 0 qx 0         ˙   2   0 0 0 qy   ˙ 2 rx 0 wt → N(0, R ) R= 2 0 ry Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 101 / 110
  • 102. Particle Filters for Visual Tracking The likelihood function is based on similarity between image features : one can use color, gradient or any other distinctive feature Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 102 / 110
  • 103. Particle Filters for Visual Tracking Since color is a distinctive and quite robust feature, each particle is dscribed by the color distribution of its local image patch, p (x) = {pu (x)}u=1,...,m given by : Np 2 xi − x pu (x) = C k( )δ[b (xi ) − u], h i =1 where C is a normalizer, δ is the Kronecker function, k is a kernel with bandwith h, Np is the number of pixels in the region and b (xi ) is a function that assigns one of the m-bins to a given color at location xi . The kernel k is used to consider spatial information by lowering the contribution of farther pixels. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 103 / 110
  • 104. Particle Filters for Visual Tracking The similarity between two color distributions, p (xt ) and p ∗ (x0 ), can be defined as the Bhattacharyya distance  m 1  2 ρ[p ∗ , p (xt )] = 1 − ∗   pu (x0 )pu (xt )         u=1 Each sample xit is assigned an importance weight which corresponds to the likelihood that xit is the true location of the object. The weights are given by the observation likelihood : ∗ ,p (xi )]2 wti = p (zt |xit ) ∝ e −λρ[p t . Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 104 / 110
  • 105. Particle Filters for Visual Tracking For every frame, the weighted mean of the particles (MMSE estimate) or the particle with largest weight (MAP estimate) can be used as an estimate of the object’s current state. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 105 / 110
  • 106. Particle Filters for Visual Tracking Tracking algorithm Initialize the state vector for the first frame and get a reference color model Generate a set of N particles For each new frame Find the predicted state of each particle using the state equation Compute histogram distance between the reference color model and the predicted one Weight each particle based on similarity between color models Select the state of the target based on the weighted particles (MMSE or MAP) Sample the particles for next iteration Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 106 / 110
  • 107. Outline 1 Introduction Recall on Estimation Theory What Is A Particle Filter ? Applications in Computer Vision 2 General Bayesian Framework Kalman Filter 3 Particle Filters 4 Visual Tracking Tracking Methods Particle Filters Based Tracking 5 Conclusion Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 107 / 110
  • 108. Particle Filters Pros and Cons of PF + estimation of full pdfs - degeneracy problem + non Gaussian and multi-modal - high number of particles needed distributions - can be computationally expensive + non linear dynamic systems - choice of importance density is + can be parallelized crucial Personal Notes The principal is quite simple (basically Bayes rule and Markov models) Though I did not talk about the math (convergence properties, complexity issues, etc) Writing a code that do what is expected can be tricky ! But works well when you succeed ! Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 108 / 110
  • 109. Challenges in Visual Tracking Changing appearance - Discriminant and adapting features - Optimal combination of multiple feature modalities - Binary classification approach Quantitative evaluation - There is a need for a standard a complete dataset. Non conventional sensors - Tracking beyond the visible spectrum - Tracking in omnidirectional image sequences is still an open problem Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 109 / 110
  • 110. References A. Doucet, N. De Freitas and D. Gordon (2001). Sequential Monte Carlo Methods in Practice. Springer Verlag. M. S. Arulampalam and S. Maskell and N. Gordon and T. Clapp (2002). A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking. IEEE Transactions on Signal Processing, 50(2), pp : 174-188. M. Isard and A. Blake (1998). CONDENSATION - conditional density propagation for visual tracking. Int. J. Computer Vision, 29(1), pp : 5–28. Désiré Sidibé (Le2i) Module Image - I2S April 6th 2011 110 / 110