Multi-sensor, multi-object PHD tracker
The trackerPHD
System object™ is a tracker capable of processing detections of multiple targets from multiple
sensors. The tracker uses a multi-target probability hypothesis density (PHD) filter to
estimate the states of point targets and extended objects. PHD is a function defined over the
state-space of the tracking system, and its value at a state is defined as the expected number
of targets per unit state-space volume. The PHD is represented by a weighted summation
(mixture) of probability density functions, and peaks in the PHD correspond to possible
targets. For an overview of how the tracker functions, see Algorithms.
By default, the trackerPHD
can track extended objects using the ggiwphd
filter, which models
detections from an extended object as a parse points cloud. You can also use
trackerPHD
with the gmphd
filters, which tracks point targets and extended objects with designated
shapes. Inputs to the tracker are detection reports generated by objectDetection
, radarSensor
,
monostaticRadarSensor
, irSensor
, or
sonarSensor
objects. The tracker outputs all maintained tracks and their analysis information.
To track targets using this object:
Create the trackerPHD
object and set its properties.
Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?.
creates a
tracker
= trackerPHDtrackerPHD
System object with default property values.
sets properties for the tracker using one or more name-value pairs. For example,
tracker
= trackerPHD(Name,Value
)trackerPHD('MaxNumTracks',100)
creates a PHD tracker that allows a
maximum of 100 tracks. Enclose each property name in quotes.
To process detections and update tracks, call the tracker with arguments, as if it were a function (described here).
returns a list of confirmed tracks that are updated from a list of detections,
confirmedTracks
= tracker(detections
,time
)detections
, at the update time, time
.
Confirmed tracks are corrected and predicted to the update time.
also specifies a sensor configuration input, confirmedTracks
= tracker(detections
,config
,time
)config
. Use this syntax
when the configurations of sensors are changing with time. To enable this syntax, set the
HasSensorConfigurationsInput
property to
true
.
[
also returns a list of tentative tracks, confirmedTracks
,tentativeTracks
,allTracks
] = tracker(___)tentativeTracks
, and a list
of all tracks, allTracks
. You can use this output syntax with any of
the previous input syntaxes.
[
also returns the analysis information, confirmedTracks
,tentativeTracks
,allTracks
,analysisInformation
] = tracker(___)analysisInformation
, which can
be used for track analysis. You can use this output syntax with any of the previous input
syntaxes.
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
[1] Granstorm, K., C. Lundquiest, and O. Orguner. " Extended target tracking using a Gaussian-mixture PHD filter." IEEE Transactions on Aerospace and Electronic Systems. Vol. 48, Number 4, 2012, pp. 3268-3286.
[2] Granstorm, K., and O. Orguner." A PHD filter for tracking multiple extended targets using random matrices." IEEE Transactions on Signal Processing. Vol. 60, Number 11, 2012, pp. 5657-5671.
[3] Granstorm, K., and A. Natale, P. Braca, G. Ludeno, and F. Serafino."Gamma Gaussian inverse Wishart probability hypothesis density for extended target tracking using X-band marine radar data." IEEE Transactions on Geoscience and Remote Sensing. Vol. 53, Number 12, 2015, pp. 6617-6631.