trackerTOMHT
Multi-hypothesis, multi-sensor, multi-object tracker
Description
The trackerTOMHT
System object™ is a multi-hypothesis tracker capable of processing detections of multiple
targets from multiple sensors. The tracker initializes, confirms, predicts, corrects, and
deletes tracks. Inputs to the tracker are detection reports generated by objectDetection
, fusionRadarSensor
,
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?
Creation
Description
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.
Properties
Usage
To process detections and update tracks, call the tracker with arguments, as if it were a function (described here).
Syntax
Description
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, analysisInformation
] = tracker(___)analysisInformation
, useful for track
analysis.
Input Arguments
Output Arguments
Object Functions
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)
Examples
Algorithms
References
[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.
Extended Capabilities
Version History
Introduced in R2018bSee Also
Functions
Objects
objectDetection
|trackingKF
|trackingEKF
|trackingKF
|trackingUKF
|trackingCKF
|trackingPF
|trackingMSCEKF
|trackingGSF
|trackingIMM
|trackingABF
|objectTrack
|fusionRadarSensor
|sonarSensor
|irSensor
|trackerGNN
|trackBranchHistory