Reference for ultralytics/trackers/basetrack.py
Note
This file is available at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/trackers/basetrack.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!
ultralytics.trackers.basetrack.TrackState
Enumeration class representing the possible states of an object being tracked.
Attributes:
Name | Type | Description |
---|---|---|
New |
int
|
State when the object is newly detected. |
Tracked |
int
|
State when the object is successfully tracked in subsequent frames. |
Lost |
int
|
State when the object is no longer tracked. |
Removed |
int
|
State when the object is removed from tracking. |
Examples:
>>> state = TrackState.New
>>> if state == TrackState.New:
>>> print("Object is newly detected.")
ultralytics.trackers.basetrack.BaseTrack
BaseTrack()
Base class for object tracking, providing foundational attributes and methods.
Attributes:
Name | Type | Description |
---|---|---|
_count |
int
|
Class-level counter for unique track IDs. |
track_id |
int
|
Unique identifier for the track. |
is_activated |
bool
|
Flag indicating whether the track is currently active. |
state |
TrackState
|
Current state of the track. |
history |
OrderedDict
|
Ordered history of the track's states. |
features |
list
|
List of features extracted from the object for tracking. |
curr_feature |
Any
|
The current feature of the object being tracked. |
score |
float
|
The confidence score of the tracking. |
start_frame |
int
|
The frame number where tracking started. |
frame_id |
int
|
The most recent frame ID processed by the track. |
time_since_update |
int
|
Frames passed since the last update. |
location |
tuple
|
The location of the object in the context of multi-camera tracking. |
Methods:
Name | Description |
---|---|
end_frame |
Returns the ID of the last frame where the object was tracked. |
next_id |
Increments and returns the next global track ID. |
activate |
Abstract method to activate the track. |
predict |
Abstract method to predict the next state of the track. |
update |
Abstract method to update the track with new data. |
mark_lost |
Marks the track as lost. |
mark_removed |
Marks the track as removed. |
reset_id |
Resets the global track ID counter. |
Examples:
Initialize a new track and mark it as lost:
>>> track = BaseTrack()
>>> track.mark_lost()
>>> print(track.state) # Output: 2 (TrackState.Lost)
Examples:
Initialize a new track
>>> track = BaseTrack()
>>> print(track.track_id)
0
Source code in ultralytics/trackers/basetrack.py
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
|
end_frame
property
end_frame
Returns the ID of the most recent frame where the object was tracked.
activate
activate(*args)
Activates the track with provided arguments, initializing necessary attributes for tracking.
Source code in ultralytics/trackers/basetrack.py
101 102 103 |
|
mark_lost
mark_lost()
Marks the track as lost by updating its state to TrackState.Lost.
Source code in ultralytics/trackers/basetrack.py
113 114 115 |
|
mark_removed
mark_removed()
Marks the track as removed by setting its state to TrackState.Removed.
Source code in ultralytics/trackers/basetrack.py
117 118 119 |
|
next_id
staticmethod
next_id()
Increment and return the next unique global track ID for object tracking.
Source code in ultralytics/trackers/basetrack.py
95 96 97 98 99 |
|
predict
predict()
Predicts the next state of the track based on the current state and tracking model.
Source code in ultralytics/trackers/basetrack.py
105 106 107 |
|
reset_id
staticmethod
reset_id()
Reset the global track ID counter to its initial value.
Source code in ultralytics/trackers/basetrack.py
121 122 123 124 |
|
update
update(*args, **kwargs)
Updates the track with new observations and data, modifying its state and attributes accordingly.
Source code in ultralytics/trackers/basetrack.py
109 110 111 |
|