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)
Source code in ultralytics/trackers/basetrack.py
67 68 69 70 71 72 73 74 75 76 77 78 79 | |
end_frameproperty
end_frame: int
Return the ID of the most recent frame where the object was tracked.
activate
activate(*args: Any) -> None
Activate the track with provided arguments, initializing necessary attributes for tracking.
Source code in ultralytics/trackers/basetrack.py
92 93 94 | |
mark_lost
mark_lost() -> None
Mark the track as lost by updating its state to TrackState.Lost.
Source code in ultralytics/trackers/basetrack.py
104 105 106 | |
mark_removed
mark_removed() -> None
Mark the track as removed by setting its state to TrackState.Removed.
Source code in ultralytics/trackers/basetrack.py
108 109 110 | |
next_idstaticmethod
next_id() -> int
Increment and return the next unique global track ID for object tracking.
Source code in ultralytics/trackers/basetrack.py
86 87 88 89 90 | |
predict
predict() -> None
Predict the next state of the track based on the current state and tracking model.
Source code in ultralytics/trackers/basetrack.py
96 97 98 | |
reset_idstaticmethod
reset_id() -> None
Reset the global track ID counter to its initial value.
Source code in ultralytics/trackers/basetrack.py
112 113 114 115 | |
update
update(*args: Any, **kwargs: Any) -> None
Update the track with new observations and data, modifying its state and attributes accordingly.
Source code in ultralytics/trackers/basetrack.py
100 101 102 | |