Multi-hypothesis, multi-sensor, multi-object tracker
The trackerTOMHT
System object™ is a multi-hypothesis tracker capable of processing detections of many targets
from multiple sensors. The tracker initializes, confirms, predicts, corrects, and deletes
tracks. Inputs to the tracker are detection reports generated by objectDetection
, radarSensor
,
monostaticRadarSensor
, irSensor
, or
sonarSensor
objects. The tracker estimates the state vector and state vector covariance matrix for each
track. The tracker assigns detections based on a track-oriented, multi-hypothesis approach.
Each detection is assigned to at least one track. If the detection cannot be assigned to any
track, the tracker creates a track.
Any new track starts in a tentative state. If enough detections are
assigned to a tentative track, its status changes to confirmed. If the
detection already has a known classification (the ObjectClassID
field of
the returned track is nonzero), that track is confirmed immediately. When a track is
confirmed, the multi-object tracker considers the track to represent a physical object. If
detections are not assigned to the track within a specifiable number of updates, the track is
deleted. For an overview of how the tracker functions, see Algorithms.
To track objects using the multi-hypothesis tracker:
Create the trackerTOMHT
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
= trackerTOMHTtrackerTOMHT
System object with default property values.
sets properties for the multi-object tracker using one or more name-value pairs. For
example,
tracker
= trackerTOMHT(Name,Value
)trackerTOMHT('FilterInitializationFcn',@initcvukf,'MaxNumTracks',100)
creates a multi-object tracker that uses a constant-velocity, unscented Kalman filter and
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 cost matrix, confirmedTracks
= tracker(detections
,time
,costMatrix
)costMatrix
.
To enable this syntax, set the HasCostMatrixInput
property to
true
.
also specifies a list of expected detectable branches,
confirmedTracks
= tracker(___,detectableBranchIDs
)detectableBranchIDs
.
To enable this syntax, set the HasDetectableBranchIDsInput
property to true
.
[
also returns a list of tentative tracks, confirmedTracks
,tentativeTracks
,allTracks
] = tracker(___)tentativeTracks
, and a list
of all tracks, allTracks
.
[
also returns information, confirmedTracks
,tentativeTracks
,allTracks
,analysisInformation
] = tracker(___)analysisInformation
, useful for track
analysis.
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] Werthmann, J. R.. "Step-by-Step Description of a Computationally Efficient Version of Multiple Hypothesis Tracking." In International Society for Optics and Photonics, Vol. 1698, pp. 228-301, 1992.
[2] Blackman, S., and R. Popoli. Design and Analysis of Modern Tracking Systems. Artech House Radar Library, Boston, 1999.
objectDetection
| objectTrack
| trackingABF
| trackingCKF
| trackingEKF
| trackingGSF
| trackingIMM
| trackingKF
| trackingMSCEKF
| trackingPF
| trackingUKF