getHistory
Get branch history of maintained tracks
Description
returns a table containing the track branch history maintained by the input history
= getHistory(branchHistoryMgr
)trackBranchHistory
System object™, branchHistoryMgr
.
returns the branch history in the specified format: history
= getHistory(branchHistoryMgr
,format
)'table'
or
'matrix'
.
Examples
Branch Tracks Based on Assignment Results
Apply the results of an assignment algorithm to a track-oriented, multi-hypothesis tracking (MHT) branch history manager. View the resulting track branches (hypotheses).
Create the MHT branch history manager, which is a trackBranchHistory
System object™. Set the object to maintain a history of four sensors and two scans.
branchHistoryMgr = trackBranchHistory('MaxNumSensors',4,'MaxNumHistoryScans',2)
branchHistoryMgr = trackBranchHistory with properties: MaxNumSensors: 4 MaxNumHistoryScans: 2 MaxNumTracks: 200 MaxNumTrackBranches: 3
Update the branch history. Because the first update has no previous branches, the branch history manager contains only unassigned detections.
emptyAssignment = zeros(0,2,'uint32'); emptyUnassignment = zeros(0,1,'uint32'); unassignedDetections = uint32([1;2;3]); originatingSensor = [1 1 2]; history = branchHistoryMgr(emptyAssignment,emptyUnassignment, ... unassignedDetections,originatingSensor);
View the current branch history by using the getHistory
function. Each detection is assigned to a separate track.
getHistory(branchHistoryMgr)
ans=3×5 table
TrackID ParentID BranchID Scan2 Scan1
_______ ________ ________ ________________________________________ ________________________________________
Sensor1 Sensor2 Sensor3 Sensor4 Sensor1 Sensor2 Sensor3 Sensor4
_______ _______ _______ _______ _______ _______ _______ _______
1 0 1 1 0 0 0 0 0 0 0
2 0 2 2 0 0 0 0 0 0 0
3 0 3 0 3 0 0 0 0 0 0
Specify multiple branch assignments and multiple unassigned track branches and detections.
Assign branch 1 to detections 1 and 2.
Assign branch 2 to detections 1 and 2.
Consider track branches 1 and 3 unassigned.
Consider detections 1, 2, and 3 unassigned.
assignments = uint32([1 1; 1 2; 2 1; 2 2]); unassignedTracks = uint32([1;3]); unassignedDetections = uint32([1;2;3]);
Update the branch history manager with the assignments and unassigned tracks and detections.
history = branchHistoryMgr(assignments,unassignedTracks, ...
unassignedDetections,originatingSensor);
View the updated branch history.
getHistory(branchHistoryMgr)
ans=9×5 table
TrackID ParentID BranchID Scan2 Scan1
_______ ________ ________ ________________________________________ ________________________________________
Sensor1 Sensor2 Sensor3 Sensor4 Sensor1 Sensor2 Sensor3 Sensor4
_______ _______ _______ _______ _______ _______ _______ _______
1 1 1 0 0 0 0 1 0 0 0
3 3 3 0 0 0 0 0 3 0 0
4 0 4 1 0 0 0 0 0 0 0
5 0 5 2 0 0 0 0 0 0 0
6 0 6 0 3 0 0 0 0 0 0
1 1 7 1 0 0 0 1 0 0 0
1 1 8 2 0 0 0 1 0 0 0
2 2 9 1 0 0 0 2 0 0 0
2 2 10 2 0 0 0 2 0 0 0
Inspect the branch history.
The most recent scan is Scan 2. The previous scan is Scan 1, which was Scan 2 in the previous assignment update. The history has shifted one scan to the right.
Branches 1 and 3 are the branches for the unassigned tracks.
Branch 2 is no longer in the history because it was not considered to be unassigned. Its assignment to detections 1 and 2 created branches 9 and 10.
Branches 4–6 are branches created for the unassigned detections.
Branches 7–10 are branches created for the track assignments.
Input Arguments
branchHistoryMgr
— Input branch history manager
trackBranchHistory
System object
Input branch history manager, specified as a trackBranchHistory
System object.
format
— Format of output branch history
'table'
(default) | 'matrix'
Format of the output branch history, specified as one of the following:
'table'
(default) — Return branch history in a table.'matrix'
— Return branch history in a matrix. This output is equivalent to the output returned when calling thetrackBranchHistory
System object.
Output Arguments
history
— Branch history
table of integers | matrix of integers
Branch history, returned as a table of integers or as a matrix of integers.
Each row of history
represents a unique
track branch. history
has 3+(D×S)
columns, where D is the number of maintained scans (the history depth) and
S is the maximum number of maintained sensors. The first three columns
represent the following information about each track branch:
TrackID
— ID of the track that is associated with the branch. Track branches that are assumed to have originated from the same target have the same track ID. If a branch originates from an unassigned detection, that branch gets a new track ID.ParentID
— ID of the parent branch, that is, the branch from which the current branch originated. Branches that were created from the same parent have the sameParentID
. AParentID
of 0 indicates a new track. These tracks are created from hypotheses corresponding to unassigned detections.BranchID
— Unique ID of track branch. Every branch created from an unassigned detection or assignment gets a new branch ID.
The remaining D×S columns
contain the IDs of the detections assigned to each branch. A branch can be assigned to at most
one detection per scan and per sensor. The table shows the organization of these columns with
sample detections. N is the number of scans. A value of 0
means that the sensor at that scan does not have a detection assigned to it.
Scan N | Scan N – 1 | . . . | Scan N – D | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Sensor – 1 | Sensor – 2 | . . . | Sensor – S | Sensor – 1 | Sensor – 2 | . . . | Sensor – S | . . . | Sensor – 1 | Sensor – 2 | . . . | Sensor – S |
|
| ... |
|
|
| ... |
| ... |
|
| ... |
|
Version History
Introduced in R2018b
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)