Joint Probabilistic Data Association Filter
The joint probabilistic data-association filter is a statistical approach to the problem of plot association in a target tracking algorithm. Like the probabilistic [data association filter], rather than choosing the most likely assignment of measurements to a target, the PDAF takes an expected value, which is the minimum mean square error estimate for the state of each target. At each time, it maintains its estimate of the target state as the mean and covariance matrix of a multivariate normal distribution. However, unlike the PDAF, which is only meant for tracking a single target in the presence of false alarms and missed detections, the JPDAF can handle multiple target tracking scenarios. A derivation of the JPDAF is given in.
The JPDAF is one of several techniques for radar target tracking and for target tracking in the field of computer vision.
The coalescence problem
A common problem observed with the JPDAF is that estimates of closely spaced targets tend to coalesce over time. This is because the MMSE estimate is typically undesirable when target identity is uncertain.Variants of the JPDAF algorithm have been made that try to avoid track coalescence. For example, the Set JPDAF uses an approximate minimum mean optimal sub pattern assignment instead of an approximate MMSE estimator. The JPDAF*, modifies how the target-measurement association probabilities are computed, and variants of the global nearest-neighbor JPDAF use the global nearest neighbor estimate in place of the mean but compute the covariance matrix as in the normal JPDAF: as a mean-squared error matrix.
Implementations
- MATLAB: The PDAF, JPDAF, Set JPDAF, JPDAF*, GNN-JPDAF, and several other exact and approximate variants of the JPDAF are implemented in the
singleScanUpdatefunction that is part of the United States Naval Research Laboratory's free and open-source software. The sample code indemo2DDataAssociationdemonstrates how the algorithms can be used in a simple scenario. - Python: The PDAF, JPDAF and other data association methods are implemented in Stone Soup. A tutorial demonstrates how the algorithms can be used.