Overslaan naar inhoud

Referentie voor ultralytics/trackers/basetrack.py

Opmerking

Dit bestand is beschikbaar op https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/trackers/basetrack .py. Als je een probleem ziet, help het dan oplossen door een Pull Request 🛠️ bij te dragen. Bedankt 🙏!



ultralytics.trackers.basetrack.TrackState

Opsommingsklasse die de mogelijke toestanden weergeeft van een object dat wordt gevolgd.

Kenmerken:

Naam Type Beschrijving
New int

Staat wanneer het object nieuw is gedetecteerd.

Tracked int

Staat wanneer het object succesvol wordt gevolgd in volgende frames.

Lost int

Staat wanneer het object niet langer wordt gevolgd.

Removed int

Staat wanneer het object wordt verwijderd uit tracking.

Broncode in ultralytics/trackers/basetrack.py
class TrackState:
    """
    Enumeration class representing the possible states of an object being tracked.

    Attributes:
        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.
    """

    New = 0
    Tracked = 1
    Lost = 2
    Removed = 3



ultralytics.trackers.basetrack.BaseTrack

Basisklasse voor het volgen van objecten, met fundamentele attributen en methoden.

Kenmerken:

Naam Type Beschrijving
_count int

Teller op klasseniveau voor unieke track-ID's.

track_id int

Unieke identifier voor de track.

is_activated bool

Vlag die aangeeft of de track momenteel actief is.

state TrackState

Huidige staat van de baan.

history OrderedDict

Geordende geschiedenis van de staten van de baan.

features list

Lijst met kenmerken die uit het object zijn gehaald voor het volgen.

curr_feature any

Het huidige kenmerk van het object dat wordt gevolgd.

score float

De betrouwbaarheidsscore van de tracking.

start_frame int

Het framenummer waar het volgen begon.

frame_id int

De meest recente frame-ID die door de track is verwerkt.

time_since_update int

Frames verstreken sinds de laatste update.

location tuple

De locatie van het object in de context van multi-camera tracking.

Methoden:

Naam Beschrijving
end_frame

Geeft de ID terug van het laatste frame waarin het object werd gevolgd.

next_id

Verhoogt en retourneert de volgende globale track-ID.

activate

Abstracte methode om de baan te activeren.

predict

Abstracte methode om de volgende toestand van de baan te voorspellen.

update

Abstracte methode om de baan bij te werken met nieuwe gegevens.

mark_lost

Markeert de track als verloren.

mark_removed

Markeert het spoor als verwijderd.

reset_id

Zet de globale track ID teller terug.

Broncode in ultralytics/trackers/basetrack.py
class BaseTrack:
    """
    Base class for object tracking, providing foundational attributes and methods.

    Attributes:
        _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:
        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.
    """

    _count = 0

    def __init__(self):
        """Initializes a new track with unique ID and foundational tracking attributes."""
        self.track_id = 0
        self.is_activated = False
        self.state = TrackState.New
        self.history = OrderedDict()
        self.features = []
        self.curr_feature = None
        self.score = 0
        self.start_frame = 0
        self.frame_id = 0
        self.time_since_update = 0
        self.location = (np.inf, np.inf)

    @property
    def end_frame(self):
        """Return the last frame ID of the track."""
        return self.frame_id

    @staticmethod
    def next_id():
        """Increment and return the global track ID counter."""
        BaseTrack._count += 1
        return BaseTrack._count

    def activate(self, *args):
        """Abstract method to activate the track with provided arguments."""
        raise NotImplementedError

    def predict(self):
        """Abstract method to predict the next state of the track."""
        raise NotImplementedError

    def update(self, *args, **kwargs):
        """Abstract method to update the track with new observations."""
        raise NotImplementedError

    def mark_lost(self):
        """Mark the track as lost."""
        self.state = TrackState.Lost

    def mark_removed(self):
        """Mark the track as removed."""
        self.state = TrackState.Removed

    @staticmethod
    def reset_id():
        """Reset the global track ID counter."""
        BaseTrack._count = 0

end_frame property

Geeft de laatste frame-ID van de track.

__init__()

Initialiseert een nieuw spoor met een unieke ID en fundamentele volgattributen.

Broncode in ultralytics/trackers/basetrack.py
def __init__(self):
    """Initializes a new track with unique ID and foundational tracking attributes."""
    self.track_id = 0
    self.is_activated = False
    self.state = TrackState.New
    self.history = OrderedDict()
    self.features = []
    self.curr_feature = None
    self.score = 0
    self.start_frame = 0
    self.frame_id = 0
    self.time_since_update = 0
    self.location = (np.inf, np.inf)

activate(*args)

Abstracte methode om de baan te activeren met opgegeven argumenten.

Broncode in ultralytics/trackers/basetrack.py
def activate(self, *args):
    """Abstract method to activate the track with provided arguments."""
    raise NotImplementedError

mark_lost()

Markeer het spoor als verloren.

Broncode in ultralytics/trackers/basetrack.py
def mark_lost(self):
    """Mark the track as lost."""
    self.state = TrackState.Lost

mark_removed()

Markeer het spoor als verwijderd.

Broncode in ultralytics/trackers/basetrack.py
def mark_removed(self):
    """Mark the track as removed."""
    self.state = TrackState.Removed

next_id() staticmethod

Verhoogt en retourneert de globale track ID teller.

Broncode in ultralytics/trackers/basetrack.py
@staticmethod
def next_id():
    """Increment and return the global track ID counter."""
    BaseTrack._count += 1
    return BaseTrack._count

predict()

Abstracte methode om de volgende toestand van de baan te voorspellen.

Broncode in ultralytics/trackers/basetrack.py
def predict(self):
    """Abstract method to predict the next state of the track."""
    raise NotImplementedError

reset_id() staticmethod

Reset de globale track ID teller.

Broncode in ultralytics/trackers/basetrack.py
@staticmethod
def reset_id():
    """Reset the global track ID counter."""
    BaseTrack._count = 0

update(*args, **kwargs)

Abstracte methode om de baan bij te werken met nieuwe waarnemingen.

Broncode in ultralytics/trackers/basetrack.py
def update(self, *args, **kwargs):
    """Abstract method to update the track with new observations."""
    raise NotImplementedError





Gemaakt 2023-11-12, Bijgewerkt 2024-05-08
Auteurs: Burhan-Q (1), glenn-jocher (3)