Gaussian-Mixture Probability Hypothesis Density Filter¶
GM-PHD, proposed by Vo et. al. in 2006 [Vo2006], is one of the close-form implementation of PHD filter for multi-target tracking.
GM-PHD is developed with following assumptions:
Target Independence: each target evolves and generates observations independently of one another
Poisson Clutter: clutter porcess is Poisson and independent of target-originated measurements.
Poisson RFS: the predicted multi-target RFS governed by \(p_{k|k-1}\) is Poisson (See [Mahler2003]).
Linear Gaussian Dynamic Model: each target follows a linear Gaussian dynamic model represented by
\[f_{k|k-1} \left(x|\zeta\right) = \mathcal{N}(x; F_{k-1}\zeta, Q_{k-1}) \]Target Birth: the PHD of the target birth of RFS are gaussian mixtures of the form
\[D_{\gamma, k}(x) = \sum_{j=1}^{J_{\gamma, k}} w_{\gamma, k}^{(j)} \mathcal{N}(x; m_{\gamma, k}^{(j)}, P_{\gamma, k}^{(j)}) \]
Predictor¶
If the posterior PHD of multi-target RFS at time \(k-1\) is represented in forms of Gaussian Mixtures:
The predicted intesity \(D_{k|k-1}\) at time \(k\) is composed of three terms: target birth \(D_{\gamma, k}(x)\), target persistence \(D_{S, k|k-1}(x)\) and target spawning \(D_{\beta, k|k-1}(x)\).
In the application of multi-resident tracking, there is no target spawning, so term \(D_{\beta, k|k-1}(x)\) is ignored in this implementation.
The persistence term updates each existing Gaussian Components according to Kalman update equation (for proof, see Kalman Update for Gaussian Components).
where
and
This calculation is implemented in
gmphd_predictor().
Corrector¶
Assume that the predicted intensity (i.e. the output of predictor) for time \(k\) is a Gaussian mixture of the form
The posterior intensity is given by
\(p_{D, k}\) is the probability that the target will be observed. The term \((1-p_{D,k}) D_{k|k-1}(x)\) represents the portion that is not observed at time step \(k\) - and thus do not need to be corrected by the set of measurement \(Z_k\) at time \(k\).
The term \(\sum_{z \in Z_k} D_{D, k}(x; z)\) calculated the posterior PHD corrected according to the measurement set at current time step.
In the equation,
The updated weight is
where
In the equation above, \(I\) stands for the identity matrix.
Appendix¶
Kalman Update for Gaussian Components¶
Assume that each target follows a linear Gaussian dynamic model, i.e.
where \(\zeta\) is the mean state vector of the target at time \(k-1\), \(F_{k-1}\) is the state linear multiplier of dynamic model, \(Q_{k-1}\) is the covariance matrix of error estimation in dynamic model.
If the posterior intensity of a target is represented by a Gaussian Component
where \(m_{k-1}\) is the mean vector and \(P_{k-1}\) is the covariance matrix.
According to the linear Gaussian dynamic model, at time \(k\), the updated probability density of the target will be
where
and
This calculation is implemented by
kalman_update().
A target is modeled by a dynamic model
where the error term \(w_{k}\) has a mean of zero and covariance of \(Q_{k}\).
At time \(k\), random variable \(x_{k}\) follows Gaussian distribution \(\mathcal{N}(x_{k}; m_{k}, P_{k})\).
The mean of variable \(x_{k+1}\) is
The covariance of variable \(x_{k+1}\) is
Gaussian Mixture Corrector Proof¶
Assume that target measurement follows a linear Gaussian observation model
According to Theorem 6 in [Mahler2003], the “Single-Sensor” Bayes Update formula for PHD is
Term \(1-p_D(x)\) is the portion of predicted PHD that does not need to be corrected (as the portion is not observed).
You can view the nominator of the fraction is the weight to the predicted PHD based on the likelihood of getting the observation \(z\). The denominator of the fraction can be viewed as a normalization factor [Mahler2004].
Based on calculus,