Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vpdt_mog_sg_updater< mog_type > Class Template Reference

A mixture of Gaussians adaptive updater based on Stauffer-Grimson. More...

#include <vpdt_update_mog.h>

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

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_sg_updater (const gaussian_type &init_gaussian, unsigned int max_cmp=5, T g_thresh=T(2.5), T alpha=T(0.1), T init_weight=T(0.1), T min_stdev=T(0.16))
 Constructor. More...
 
void operator() (mog_type &mix, const F &sample) const
 The main function. More...
 

Protected Member Functions

void update (mog_type &mix, const F &sample, T alpha) const
 Update the mixture with sample using learning rate alpha. More...
 
void insert (mog_type &mixture, const F &sample, T init_weight) const
 insert a sample in the mixture. More...
 
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. More...
 

Protected Attributes

T gt2_
 Squared Gaussian Mahalanobis distance threshold. More...
 
T alpha_
 The learning rate. More...
 
T init_weight_
 The initial weight for added Gaussians. More...
 
T min_var_
 Minimum variance allowed in each Gaussian component. More...
 
gaussian_type init_gaussian_
 A model for new Gaussians inserted. More...
 
unsigned int max_components_
 The maximum number of components in the mixture. More...
 

Detailed Description

template<class mog_type>
class vpdt_mog_sg_updater< mog_type >

A mixture of Gaussians adaptive updater based on Stauffer-Grimson.

Using the S-G approximation to prior probabilities This algorithm is based on: C. Stauffer and W.E.L. Grimson, "Adaptive background mixture models for real-time tracking", CVPR 1999

Definition at line 98 of file vpdt_update_mog.h.

Member Typedef Documentation

◆ distribution_type

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

Definition at line 28 of file vpdt_update_mog.h.

◆ F

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

Definition at line 102 of file vpdt_update_mog.h.

◆ field_type

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

Definition at line 29 of file vpdt_update_mog.h.

◆ gaussian_type

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

Definition at line 101 of file vpdt_update_mog.h.

◆ T

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

Definition at line 103 of file vpdt_update_mog.h.

Constructor & Destructor Documentation

◆ vpdt_mog_sg_updater()

template<class mog_type >
vpdt_mog_sg_updater< mog_type >::vpdt_mog_sg_updater ( const gaussian_type init_gaussian,
unsigned int  max_cmp = 5,
T  g_thresh = T(2.5),
T  alpha = T(0.1),
T  init_weight = T(0.1),
T  min_stdev = T(0.16) 
)
inline

Constructor.

Definition at line 106 of file vpdt_update_mog.h.

Member Function Documentation

◆ insert()

template<class mog_type >
void vpdt_mog_updater< mog_type >::insert ( mog_type &  mixture,
const F sample,
T  init_weight 
) const
inlineprotectedinherited

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 47 of file vpdt_update_mog.h.

◆ match()

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
inlineprotectedinherited

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 73 of file vpdt_update_mog.h.

◆ operator()()

template<class mog_type >
void vpdt_mog_sg_updater< mog_type >::operator() ( mog_type &  mix,
const F sample 
) const
inline

The main function.

Definition at line 117 of file vpdt_update_mog.h.

◆ update()

template<class mog_type >
void vpdt_mog_sg_updater< mog_type >::update ( mog_type &  mix,
const F sample,
T  alpha 
) const
inlineprotected

Update the mixture with sample using learning rate alpha.

Definition at line 125 of file vpdt_update_mog.h.

Member Data Documentation

◆ alpha_

template<class mog_type >
T vpdt_mog_sg_updater< mog_type >::alpha_
protected

The learning rate.

Definition at line 153 of file vpdt_update_mog.h.

◆ gt2_

template<class mog_type >
T vpdt_mog_sg_updater< mog_type >::gt2_
protected

Squared Gaussian Mahalanobis distance threshold.

Definition at line 151 of file vpdt_update_mog.h.

◆ init_gaussian_

template<class mog_type >
gaussian_type vpdt_mog_updater< mog_type >::init_gaussian_
mutableprotectedinherited

A model for new Gaussians inserted.

Definition at line 87 of file vpdt_update_mog.h.

◆ init_weight_

template<class mog_type >
T vpdt_mog_sg_updater< mog_type >::init_weight_
protected

The initial weight for added Gaussians.

Definition at line 155 of file vpdt_update_mog.h.

◆ max_components_

template<class mog_type >
unsigned int vpdt_mog_updater< mog_type >::max_components_
protectedinherited

The maximum number of components in the mixture.

Definition at line 89 of file vpdt_update_mog.h.

◆ min_var_

template<class mog_type >
T vpdt_mog_sg_updater< mog_type >::min_var_
protected

Minimum variance allowed in each Gaussian component.

Definition at line 157 of file vpdt_update_mog.h.


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