Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
vpdt_mog_lm_updater< mog_type > Class Template Reference

A mixture of Gaussians adaptive updater base on Leotta-Mundy. More...

#include <vpdt_update_mog.h>

Inheritance diagram for vpdt_mog_lm_updater< mog_type >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef mog_type::component_type gaussian_type
typedef gaussian_type::field_type F
typedef vpdt_field_traits< F >
::scalar_type 
T
typedef mog_type distribution_type
typedef mog_type::field_type field_type

Public Member Functions

 vpdt_mog_lm_updater (const gaussian_type &init_gaussian, unsigned int max_cmp=5, T g_thresh=T(2.5), T min_stdev=T(0.16), unsigned int ws=300)
 Constructor.
void operator() (mog_type &mix, const F &sample, T sample_weight=T(1)) const
 The main function.

Protected Member Functions

T total_weight (const mog_type &mix) const
 Count the total mixture weight.
void update (mog_type &mix, const F &sample, T samp_weight) const
 Update the mixture with sample using learning rate alpha.
void insert (mog_type &mixture, const F &sample, T init_weight) const
 insert a sample in the mixture.
unsigned int match (const mog_type &mix, const F &sample, const T &gt2, T &sqr_dist) const
 Return the index of the first Gaussian within the threshold distance.

Protected Attributes

T gt2_
 Squared Gaussian Mahalanobis distance threshold.
T min_var_
 Minimum variance allowed in each Gaussian component.
unsigned int window_size_
 The moving window size in number of frames.
gaussian_type init_gaussian_
 A model for new Gaussians inserted.
unsigned int max_components_
 The maximum number of components in the mixture.

Detailed Description

template<class mog_type>
class vpdt_mog_lm_updater< mog_type >

A mixture of Gaussians adaptive updater base on Leotta-Mundy.

Combines the greedy matching of the S-G method for speed with the dynamic learning rate of Lee for faster learning. Unnormalized weights serve a dual role with observation counts. This algorithm is based on: M. Leotta and J. Mundy, "Learning background and shadow appearance with 3-d vehicle models", BMVC, 2:649--658, September 2006.

Definition at line 316 of file vpdt_update_mog.h.


Member Typedef Documentation

template<class mog_type >
typedef mog_type vpdt_mog_updater< mog_type >::distribution_type [inherited]

Definition at line 25 of file vpdt_update_mog.h.

template<class mog_type >
typedef gaussian_type::field_type vpdt_mog_lm_updater< mog_type >::F

Reimplemented from vpdt_mog_updater< mog_type >.

Definition at line 320 of file vpdt_update_mog.h.

template<class mog_type >
typedef mog_type::field_type vpdt_mog_updater< mog_type >::field_type [inherited]

Definition at line 26 of file vpdt_update_mog.h.

template<class mog_type >
typedef mog_type::component_type vpdt_mog_lm_updater< mog_type >::gaussian_type

Reimplemented from vpdt_mog_updater< mog_type >.

Definition at line 319 of file vpdt_update_mog.h.

template<class mog_type >
typedef vpdt_field_traits<F>::scalar_type vpdt_mog_lm_updater< mog_type >::T

Reimplemented from vpdt_mog_updater< mog_type >.

Definition at line 321 of file vpdt_update_mog.h.


Constructor & Destructor Documentation

template<class mog_type >
vpdt_mog_lm_updater< mog_type >::vpdt_mog_lm_updater ( const gaussian_type init_gaussian,
unsigned int  max_cmp = 5,
T  g_thresh = T(2.5),
T  min_stdev = T(0.16),
unsigned int  ws = 300 
) [inline]

Constructor.

Definition at line 324 of file vpdt_update_mog.h.


Member Function Documentation

template<class mog_type >
void vpdt_mog_updater< mog_type >::insert ( mog_type &  mixture,
const F sample,
T  init_weight 
) const [inline, protected, inherited]

insert a sample in the mixture.

Parameters:
sampleA Gaussian is inserted with a mean of sample and a covariance from init_gaussian_
init_weightThe normalized weight the resulting sample should have after insertion

Definition at line 44 of file vpdt_update_mog.h.

template<class mog_type >
unsigned int vpdt_mog_updater< mog_type >::match ( const mog_type &  mix,
const F sample,
const T gt2,
T sqr_dist 
) const [inline, protected, inherited]

Return the index of the first Gaussian within the threshold distance.

The threshold gt2 is on the square distance. The computed square distance is returned by reference in sqr_dist If there are no matches return the number of components (last index + 1)

Definition at line 72 of file vpdt_update_mog.h.

template<class mog_type >
void vpdt_mog_lm_updater< mog_type >::operator() ( mog_type &  mix,
const F sample,
T  sample_weight = T(1) 
) const [inline]

The main function.

Definition at line 334 of file vpdt_update_mog.h.

template<class mog_type >
T vpdt_mog_lm_updater< mog_type >::total_weight ( const mog_type &  mix) const [inline, protected]

Count the total mixture weight.

Definition at line 342 of file vpdt_update_mog.h.

template<class mog_type >
void vpdt_mog_lm_updater< mog_type >::update ( mog_type &  mix,
const F sample,
T  samp_weight 
) const [inline, protected]

Update the mixture with sample using learning rate alpha.

Definition at line 353 of file vpdt_update_mog.h.


Member Data Documentation

template<class mog_type >
T vpdt_mog_lm_updater< mog_type >::gt2_ [protected]

Squared Gaussian Mahalanobis distance threshold.

Definition at line 390 of file vpdt_update_mog.h.

template<class mog_type >
gaussian_type vpdt_mog_updater< mog_type >::init_gaussian_ [mutable, protected, inherited]

A model for new Gaussians inserted.

Definition at line 86 of file vpdt_update_mog.h.

template<class mog_type >
unsigned int vpdt_mog_updater< mog_type >::max_components_ [protected, inherited]

The maximum number of components in the mixture.

Definition at line 88 of file vpdt_update_mog.h.

template<class mog_type >
T vpdt_mog_lm_updater< mog_type >::min_var_ [protected]

Minimum variance allowed in each Gaussian component.

Definition at line 392 of file vpdt_update_mog.h.

template<class mog_type >
unsigned int vpdt_mog_lm_updater< mog_type >::window_size_ [protected]

The moving window size in number of frames.

Definition at line 394 of file vpdt_update_mog.h.


The documentation for this class was generated from the following file: