MTT
Implementation of several Bayesian multi-target tracking algorithms, including Poisson multi-Bernoulli mixture filters for sets of targets and sets of trajectories. The repository also includes the GOSPA and T-GOSPA metrics to evaluate performance.
Install / Use
/learn @Agarciafernandez/MTTREADME
This repository contains the Matlab implementations of Bayesian multi-target filtering and tracking algorithms. The available algorithms and metrics are organised in the following folders.
Performance evaluation
Performance evaluation of the multi-target filters, which estimate the set of targets at each time step, is based on the generalised optimal subpattern-assignment (GOSPA) metric and its decomposition into localisation errors for properly detected targets, and costs for false and missed targets [12][13][14]. The GOSPA metric code is provided in folder "GOSPA code".
Performance evaluation of multi-target trackers (filters that estimate a set of trajectories) is based on the linear programming implementation of the trajectory GOSPA (T-GOSPA) metric (GOSPA metric for sets of trajectories) and its decomposition into localisation errors for properly detected targets, and costs for false, missed targets, and track switches [15]. The T-GOSPA metric code is provided in folder "Trajectory metric". This folder also contains the time-weighted T-GOSPA metric proposed in [26].
Folder "PMBM"
This folder contains the implementations of the Poisson multi-Bernoulli mixture (PMBM) filter [1][2], the multi-Bernoulli mixture (MBM) filter [3], and (track-oriented) Poisson multi-Bernoulli (PMB) [1].
To run the PMBM filter, execute PMBMtarget_filter.m. To run the PMB filter, execute PMBtarget_filter.m. To run the MBM filter, execute MBMtarget_filter.m.
Sequential track estimation with the above filters can be achieved by linking target states estimates from the same Bernoulli component, which is uniquely identified by a start time and measurement. This information can be made explicit in the posterior via auxiliary variables [4]. Note that Bayesian track formation is obtained by estimating the set of trajectories directly from the posterior density on the set of trajectories, not by sequentially linking target state estimates [5]. For optimal Bayesian estimation of the set of trajectories, see folder "TPMBM filter".
To run the PMBM filter with sequential track formation, execute PMBMtarget_filter_tracks_all.m. To run the PMB filter with sequential track formation, execute PMBtarget_filter_tracks_all.m.
Folder "CD MTT filters"
This folder contains implementations of continuous-discrete multi-target filters. That is, these filters that have been designed for multi-target dynamics given in continuous time (including target births, single-target dynamics and target deaths) and measurements taken at known discrete time steps. These filters are specially suitable for non-uniform sampling times since the target dynamics should not be independent of how sensors take samples from the scene.
In particular, this folder contains the implementations of the continuous-discrete PMBM filter, the continuous-discrete probability hypothesis density (PHD) filter and continuous-discrete cardinality probability hypothesis density (CPHD) filter for the Wiener velocity model proposed in [6]:
To run the continuous-discrete PMBM filter (Wiener velocity), execute PMBMtarget_cd_filter.m. To run the continuous-discrete PHD filter (Wiener velocity), execute GMPHD_cd_filter.m. To run the continuous-discrete CPHD filter (Wiener velocity), execute GMCPHD_cd_filter.m.
This folder also contains the implementations of the continuous-discrete PMBM, continuous-discrete PMB, continuous-discrete PMB, continuous-discrete PHD, and continuous-discrete CPHD filters for general linear stochastic differential equations (SDEs) described in [24]:
To run the continuous-discrete PMBM filter (linear SDE), execute PMBMtarget_cd_filter_linear_SDE.m. To run the continuous-discrete PMB filter (linear SDE), execute PMBtarget_cd_filter_linear_SDE.m. To run the continuous-discrete PHD filter (linear SDE), execute GMPHD_cd_filter_linear_SDE.m. To run the continuous-discrete CPHD filter (linear SDE), execute GMCPHD_cd_filter_linear_SDE.m.
This folder also contains the implementations of the continuous-discrete PMBM, continuous-discrete PMB, continuous-discrete PHD, and continuous-discrete CPHD filters for non-linear SDEs described in [24]:
To run the continuous-discrete PMBM filter (non-linear SDE), execute PMBMtarget_cd_filter_nonlinear_SDE_Taylor.m. To run the continuous-discrete PMB filter (non-linear SDE), execute PMBtarget_cd_filter_nonlinear_SDE_Taylor.m. To run the continuous-discrete PHD filter (non-linear SDE), execute GMPHD_cd_filter_nonlinear_SDE_Taylor.m. To run the continuous-discrete CPHD filter (non-linear SDE), execute GMCPHD_cd_filter_nonlinear_SDE_Taylor.m.
Folder "TPHD"
This folder contains the implementations of the trajectory probability hypothesis density (TPHD) filter and the trajectory cardinality PHD (TCPHD) filter for sets of trajectories in [7].
To run the filters, execute GM_TPHD_filter.m and GM_TCPHD_filter.m
Folder "TPMBM filter"
This folder contains the implementations of the trajectory PMBM (TPMBM) filter [8][9], trajectory MBM (TMBM) filter [10], trajectory PMB (TPMB) filter [4] and trajectory MB (TMB) filter [11]. Each of these filters can be run to estimate the set of alive trajectories or the set of all trajectories at each time step (running a different file).
It should be noted that the TPMBM and TMBM filters provide the Bayesian recursion to compute the posterior density on the set of trajectories for Poisson point process birth model and multi-Bernoulli birth model, respectively. Therefore, they contain all information on the set of trajectories and can in principle provide optimal estimates of the sets of trajectories as well as any other information of interest (subject to the standard pruning approximations).
To run the filters, execute TPMBM_all_filter.m, TPMB_all_filter.m, TMBM_all_filter.m, TMB_all_filter.m, TPMBM_alive_filter.m, TPMB_alive_filter.m, TMBM_alive_filter.m, TMB_alive_filter.m.
Folder "OOS TPMBM filter"
This folder contains the implementations of the continuous-discrete TPMBM and continuous-discrete TPMB filters with out-of-sequence measurements [16]. That is, multi-target dynamics (including target births, single-target dynamics and target deaths) are modelled in continuous time, and we receive measurements at known discrete time steps. We can also receive measurements that happened before the last processed measurement, so this measurement is out-of-sequence.
To run the filters, execute TPMBM_cd_all_filter_oos.m and TPMB_cd_all_filter_oos.m.
Folder "Tree PMBM - Spawning"
This folder contains the implementations of the Tree PMBM and Tree MBM filters for multiple target tracking with spawning [17].
To run the filters, execute TrPMBM_all_filter.m and TrMBM_all_filter.m. A PMBM filter with spawning and sequential track formation can be run with PMBMtarget_filter_tracks_all_spawning.m.
Folder "Non-linear MTT"
This folder contains the implementation of PMBM, PMB, TPMBM and TPMB filters for non-linear, non-Gaussian measurement models and non-constant probability of detection. In particular, the filters perform the updates using the iterated posterior linearisation filter (IPLF) for conditional moments [18][19] and with the improvement of normalising constant approximation [20]. The TPMBM and TPMB implementations are explained in [21]. The implementations make use of a range-bearings sensors with von-Mises Fisher-distributed measurements. The IPLF for this type of measurement is explained in [22].
To run the filters, execute TPMBM_all_filter_range_bearing.m, TPMB_all_filter_range_bearing.m, TPMBM_alive_filter_range_bearing.m, TPMB_alive_filter_range_bearing.m, PMBM_filter_range_bearing.m , PMB_filter_range_bearing.m
Folder "PMBM arbitrary clutter"
This folder contains the point-target PMBM and PMB implementations with negative binomial clutter in [23].
To run the filters, execute "PMBMtarget_filter_nb_clutter" and "PMBtarget_filter_nb_clutter"
The code for the extended target example in [23] can be found at
https://github.com/yuhsuansia/Extented-target-PMBM-filter-independent-clutter-sources
Folder "Distributed MTT"
This folder contains the implementation of the distributed PMBM/PMB filters based on the generalised covariance intersection (GCI) fusion rule for PMB densities in [25].
To run the filters, execute DPMB_GCI_filtering.m.
Online course
A relevant online course on Bayesian multiple target tracking by Chalmers University is available in Youtube and edX:
https://www.youtube.com/channel/UCa2-fpj6AV8T6JK1uTRuFpw
http
