Multi-sensor, multi-object tracker using GNN assignment
The trackerGNN
System object™ is a tracker capable of processing detections of many targets from multiple
sensors. The tracker uses a global nearest-neighbor (GNN) assignment algorithm. 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. Each detection is assigned to at most one track. If the detection cannot be assigned to
any track, the tracker initializes a new 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 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.
To track objects using this object:
Create the trackerGNN
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
= trackerGNNtrackerGNN
System object with default property values.
sets properties for the tracker using one or more name-value pairs. For example,
tracker
= trackerGNN(Name,Value
)trackerGNN('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 tracks,
confirmedTracks
= tracker(___,detectableTrackIDs
)detectableTrackIDs
.
To enable this syntax, set the HasDetectableTrackIDsInput
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
, which can be used 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] Blackman, S., and R. Popoli. Design and Analysis of Modern Tracking Systems. Artech House Radar Library, Boston, 1999.
assignauction
| assignjv
| assignkbest
| assignkbestsd
| assignmunkres
| assignsd
| assignTOMHT
| clusterTrackBranches
| compatibleTrackBranches
| fusecovint
| fusecovunion
| fusexcov
| getTrackPositions
| getTrackVelocities
| pruneTrackBranches
| triangulateLOS
objectDetection
| objectTrack
| trackHistoryLogic
| trackingABF
| trackingCKF
| trackingEKF
| trackingGSF
| trackingIMM
| trackingKF
| trackingMSCEKF
| trackingPF
| trackingUKF
| trackScoreLogic