Main Content

Track Point Targets in Dense Clutter Using GM-PHD Tracker in Simulink

Radars generally receive echoes from all surfaces in the signal path. These unwanted back-scattered signals or echoes generated from physical objects are called clutter. In a densely cluttered environment, missed detections and false alarms make tracking objects a challenging task. This example shows you how to track points targets in dense clutter using a Gaussian mixture probability hypothesis density (GM-PHD) tracker with a constant velocity model in Simulink. The example closely follows the Track Point Targets in Dense Clutter Using GM-PHD Tracker MATLAB® example.

Overview of the model

load_system('TrackPointTargetsInDenseClutterSimulinkExample');
set_param('TrackPointTargetsInDenseClutterSimulinkExample','SimulationCommand','update');
open_system('TrackPointTargetsInDenseClutterSimulinkExample');

Detection and Ground Truth Reader

Simulation data used in this example is captured from the scenario described in the Track Point Targets in Dense Clutter Using GM-PHD Tracker MATLAB® example. The Detection Generator and Ground Truth Reader blocks are implemented using the MATLAB System (Simulink) block. Code for these blocks is defined in helper classes HelperDetLogReader and HelperTruthLogReader, respectively. Both blocks read recorded data and generate detections, time, and truth data.

The blocks output detections and truth information as a Simulink.Bus (Simulink) objects.

Tracking Algorithm

Conventional trackers such as Global Nearest Neighbor (GNN) and Joint Probabilistic Data Association (JPDA) assume that the sensors return at most one detection per object per scan. Therefore, the traditional trackers suffer with missing targets and false alarms in a cluttered environment. In such an environment a PHD tracker provides better estimation of objects as it handles clustering and data association simultaneously.

In this example you use a GM-PHD point object tracker to track targets. The first step towards configuring a PHD tracker is to define the configuration of the sensor. In this example, you specify sensor configuration in the PreLoadFcn callback. See Model Callbacks (Simulink) for more information about callback functions. In the sensor configuration, its FilterInitializationFcn field is specified as initcvgmphd representing a constant velocity GM-PHD filter . You can set other parameters of the tracker from the block mask.

Performance Analysis with GOSPA Metric

To evaluate the performance of the tracker, you use the Generalized Optimal Subpattern Assignment (GOSPA) metric. The GOSPA metric aims to evaluate the performance of a tracker using a single cost value. The GOSPA metric can be calculated by the following equation

$GOSPA = [\sum_{i=0}^{m}(min(d_{b},c))^{p} + \frac{c^{p}}{\alpha} (n-m)]^{1/p}$

Where m is the number of ground truths and $n(n>=m)$ is the number of estimated tracks. $c$ is the cutoff distance threshold, and $d_{b}$ is the base distance between track and truth calculated by a distance function specified in the Distance property. $p$ is order of the metric and $\alpha$ is the alpha parameter of the metric, defined from block mask.

Lower GOSPA cost represents better tracking performance. A value of zero represents a perfect tracking. You can also output different GOSPA components by selecting proper options from block mask.

Visualization

In this example the GOSPA metric is visualized using the scope block and the scenario is visualized using Scenario Visualization block. The Scenario Visualization block is implemented using MATLAB System (Simulink) block. Code for this block is defined in the helper class helperClutterTrackingDisplayBlock. The block uses RunTimeObject parameter of the blocks to display their outputs. See Access Block Data During Simulation (Simulink) for further information on how to access block outputs during simulation.

Notice that GOSPA metric decreases after a few steps. The initial value of GOSPA metric is higher due to the establishment delay for each track. The GOSPA metric results show that the GM-PHD tracker performed well in the densely cluttered scenario with zero false alarms and zero missed tracks.

close_system('TrackPointTargetsInDenseClutterSimulinkExample');

Summary

In this example you learned how to use a GM-PHD tracker to track point objects in dense clutter in Simulink. You also learned how to evaluate performance of a tracking algorithm using GOSPA metric and its associated components. The simulation results show that the GM-PHD tracker does not miss targets or creates false alarms. The lower overall GOSPA score also indicates desirable tracking performance.