A mixture of Gaussians adaptive updater based on Stauffer-Grimson. More...
#include <vpdt_update_mog.h>

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. | |
| void | operator() (mog_type &mix, const F &sample) const |
| The main function. | |
Protected Member Functions | |
| void | update (mog_type &mix, const F &sample, T alpha) 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 >2, 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 | alpha_ |
| The learning rate. | |
| T | init_weight_ |
| The initial weight for added Gaussians. | |
| T | min_var_ |
| Minimum variance allowed in each Gaussian component. | |
| gaussian_type | init_gaussian_ |
| A model for new Gaussians inserted. | |
| unsigned int | max_components_ |
| The maximum number of components in the mixture. | |
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 97 of file vpdt_update_mog.h.
typedef mog_type vpdt_mog_updater< mog_type >::distribution_type [inherited] |
Definition at line 25 of file vpdt_update_mog.h.
| typedef gaussian_type::field_type vpdt_mog_sg_updater< mog_type >::F |
Reimplemented from vpdt_mog_updater< mog_type >.
Definition at line 101 of file vpdt_update_mog.h.
typedef mog_type::field_type vpdt_mog_updater< mog_type >::field_type [inherited] |
Definition at line 26 of file vpdt_update_mog.h.
| typedef mog_type::component_type vpdt_mog_sg_updater< mog_type >::gaussian_type |
Reimplemented from vpdt_mog_updater< mog_type >.
Definition at line 100 of file vpdt_update_mog.h.
| typedef vpdt_field_traits<F>::scalar_type vpdt_mog_sg_updater< mog_type >::T |
Reimplemented from vpdt_mog_updater< mog_type >.
Definition at line 102 of file vpdt_update_mog.h.
| 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 105 of file vpdt_update_mog.h.
| 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.
| sample | A Gaussian is inserted with a mean of sample and a covariance from init_gaussian_ |
| init_weight | The normalized weight the resulting sample should have after insertion |
Definition at line 44 of file vpdt_update_mog.h.
| 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.
| void vpdt_mog_sg_updater< mog_type >::operator() | ( | mog_type & | mix, |
| const F & | sample | ||
| ) | const [inline] |
The main function.
Definition at line 116 of file vpdt_update_mog.h.
| void vpdt_mog_sg_updater< mog_type >::update | ( | mog_type & | mix, |
| const F & | sample, | ||
| T | alpha | ||
| ) | const [inline, protected] |
Update the mixture with sample using learning rate alpha.
Definition at line 124 of file vpdt_update_mog.h.
T vpdt_mog_sg_updater< mog_type >::alpha_ [protected] |
The learning rate.
Definition at line 152 of file vpdt_update_mog.h.
T vpdt_mog_sg_updater< mog_type >::gt2_ [protected] |
Squared Gaussian Mahalanobis distance threshold.
Definition at line 150 of file vpdt_update_mog.h.
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.
T vpdt_mog_sg_updater< mog_type >::init_weight_ [protected] |
The initial weight for added Gaussians.
Definition at line 154 of file vpdt_update_mog.h.
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.
T vpdt_mog_sg_updater< mog_type >::min_var_ [protected] |
Minimum variance allowed in each Gaussian component.
Definition at line 156 of file vpdt_update_mog.h.
1.7.5.1