Dynamic Models for Multi-target Tracking¶
Namespace pymrt.tracking.models includes multiple classes for commonly used
dynamic models. They serve as the basis of state transition modelling for
multi-target tracking algorithm.
GM-based Constant Velocity Model¶
pymrt.tracking.models.CVModel provides a base class for constant
velocity maneuvering object in n-dimensional space.
The model is composed of the following parts of information:
State Space¶
The state of an object maneuvering in a n-dimensional space with constant velocity can be expressed as an array composed of its location in the space and velocity at a given time.
The state space where \(x\) is drawn from is usually \(\mathbb{R}^{2n}\).
State Update¶
If the object is moving according to a constant velocity in the n-dimensional space, then the new state (after time \(t\)) can be expressed as
In matrix format, we can rewrite it as
where
\(I_n\) here is identity matrix of n-dimension.
State Error Estimation¶
Well, there is always error associated with a model, and to simulate the error, the following error term (only first order is considered) is added.
Given disturbance \(w = \left[w_{d_0}, w_{d_1}, ..., w_{d_n} \right]^T\), the state updated with error estimation can be written in matrix form as follows:
where
and
Measurement¶
Measurement, sometimes also referred to as observation, of a target at state \(x\) can be derived with the following equation
\(H\) is called measurement multiplier, and \(z_t\) is the observation of the target at time \(t\). Usually, only the space location of target can be measured, so the measurement multipler \(H\) is
Measurement Error Estimation¶
Measurement will have error. The error is modeled by a uncertainty measure around the exact measurement. In Gaussian Mixture model, it is represented by a multi-variant Gaussian covariance matrix \(D\).
If each dimension are independent of each other,
GM-based Constant Velocity Model with Track ID¶
pymrt.tracking.models.CVIDModel provides a base class for constant
velocity maneuvering object in n-dimensional space with track ID embedded in
state vector.
State Space¶
In order to accomplish data-track association during target tracking, the track ID needs to be append to state vector. At a given time, the state vector is described as follows
The state space is usually \(\mathbb{R}^{2n}\times \mathbb{N}\).
State Update¶
The state update, without considering spawning (one object separated into two), can be expressed as follows:
where
State Error Estimation¶
Given disturbance \(w = \left[w_{d_0}, w_{d_1}, ..., w_{d_n} \right]^T\), the state updated with error estimation can be written in matrix form as follows:
where
and
Measurement¶
Measurement equation of the model can be expressed as:
where
Other Model Parameters for MTT¶
In additional to the model parameters mentioned above, there are additional parameters defined for the tracking algorithm to use.
Target Birth¶
In Gaussian-Mixture PHD algorithm, target birth is represented by a series of Gaussian Mixtures, where the sum of all GMs represents the possibility of target birth in the state space.
Target Persistence¶
Target persistence is modeled by parameter \(p_s\). \(p_s\) is the probability of the target being persistent into the next time step. \(1-p_s\) gives the probability of the target death at the current time step.
Target Detection¶
In some cases, targets are not picked up by the observers. Parameter \(p_d\) gives the probability of the detection of a target in at current time step.
Clutter Process¶
Observations are also noisy. All the false-alarms in the observation are modeled by the clutter process. It is usually safe to assume that the clutter process is a Poison Point Process with parameter \(\lambda_c\), i.e. the number of false-alarms follows Poisson distribution of \(\lambda_c\), where the exact observed position of those false-alarms follows a spacial distribution \(c(z)\). \(c(z)\) can be represented as a series of Gaussian Mixtures or a uniform distribution across space (constant).
Gaussian Mixture Approximation¶
While propagating Gaussian Mixtures over time causes an exponential growth of the number of GMs, the following parameters are set for the trade-off between computation and accuracy.
\(gm_T\) is the truncating threshold. If the weight of a Gaussian Mixture is below the threshold, it is considered insignificant and can be safely discarded without sacrificing a lot of tracking performance.
\(gm_U\) defines the merging threshold of GMs. If multiple GMs are centered at about the same location, the summation of two GMs can be approximate by a single Gaussian Mixture.
\(gm_{Jmax}\) sets the maximum number of Gaussian Mixture to track in the process.
Appendix¶
Derivation of Error Estimation¶
This section, we provide derivation of the constant velocity model state update and state error estimation. Here, we consider 2D and 3D models for convenience of demonstration.
If the target moves in a 2D space, then the state space has a dimensionality of 4: \(\left[x, y, v_x, v_y\right]^T\). If the target moves in a 3D space, then the state space has a dimensionality of 6: \(\left[x, y, z, v_x, v_y, v_z\right]^T\). (\(z\) in this case represent a dimension in state space).
The linear constant velocity model provides a linear relationship between the target states before and after a time step. Mathematically,
Now, consider a 2D constant velocity model. At time step \(k+1\) with time interval \(t\) , \(v_x\) , \(v_y\) stays the same, but \(x\) and \(y\) are both increased by \(v_x \cdot t\) and \(v_y \cdot t\) respectively. Formally,
In another word,
The equation above provides an ideal physical constant velocity model. However, in real-world applications, due to various environmental noise such as air perturbation, an additive error term needs to be introduced.
In 4D CV model, we assume that there is a white noise \(\mathbb{w}_k = \left[w_x, w_y\right]^T\) added on top of the velocity of the particle that causes deviation between the actual model and the ideal physical model.
Thus, the following physical dynamic equation holds:
where
Solve the differential equation with Laplace transformation:
Now, take inverse Laplace transformation,
As we are deriving discrete-time motion model, let \(t > 0\) be the time interval of two continuous sample. Thus, the step function \(u(t) = 1\), and the \(u(t - \tau) = 1\) as \(\tau < t\). Moreover, assume that with in the time step, \(\mathbb{w}(\tau) = w\) is constant.
Alternatively,
where
\(\mathbb{w}_k\) is a Gaussian noise with standard deviation of \(\sigma\).
Similarly, for 3D space,