İçeriğe geç

Referans için ultralytics/trackers/basetrack.py

Not

Bu dosya https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/trackers/basetrack .py adresinde mevcuttur. Bir sorun tespit ederseniz lütfen bir Çekme İsteği 🛠️ ile katkıda bulunarak düzeltilmesine yardımcı olun. Teşekkürler 🙏!



ultralytics.trackers.basetrack.TrackState

İzlenen bir nesnenin olası durumlarını temsil eden numaralandırma sınıfı.

Nitelikler:

İsim Tip Açıklama
New int

Nesne yeni tespit edildiğinde durum.

Tracked int

Nesne sonraki karelerde başarıyla izlendiğinde durum.

Lost int

Nesne artık izlenmediğinde durum.

Removed int

Nesne takipten çıkarıldığında durum.

Kaynak kodu 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

Nesne izleme için temel nitelikler ve yöntemler sağlayan temel sınıf.

Nitelikler:

İsim Tip Açıklama
_count int

Benzersiz parça kimlikleri için sınıf düzeyinde sayaç.

track_id int

Parça için benzersiz tanımlayıcı.

is_activated bool

Parçanın o anda aktif olup olmadığını gösteren bayrak.

state TrackState

Pistin şu anki durumu.

history OrderedDict

Pistin eyaletlerinin sıralı geçmişi.

features list

İzleme için nesneden çıkarılan özelliklerin listesi.

curr_feature any

İzlenen nesnenin geçerli özelliği.

score float

İzlemenin güven puanı.

start_frame int

İzlemenin başladığı çerçeve numarası.

frame_id int

Parça tarafından işlenen en son çerçeve kimliği.

time_since_update int

Son güncellemeden bu yana geçen çerçeveler.

location tuple

Çoklu kamera takibi bağlamında nesnenin konumu.

Yöntemler:

İsim Açıklama
end_frame

Nesnenin izlendiği son karenin kimliğini döndürür.

next_id

Bir sonraki global parça kimliğini artırır ve döndürür.

activate

Pisti etkinleştirmek için soyut yöntem.

predict

Pistin bir sonraki durumunu tahmin etmek için soyut yöntem.

update

İzi yeni verilerle güncellemek için soyut yöntem.

mark_lost

İzi kayıp olarak işaretler.

mark_removed

Parçayı kaldırılmış olarak işaretler.

reset_id

Global parça kimliği sayacını sıfırlar.

Kaynak kodu 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

Parçanın son kare kimliğini döndürür.

__init__()

Benzersiz kimliğe ve temel izleme niteliklerine sahip yeni bir parça başlatır.

Kaynak kodu 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)

Sağlanan argümanlarla pisti etkinleştirmek için soyut yöntem.

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

mark_lost()

İzi kayıp olarak işaretleyin.

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

mark_removed()

Parçayı çıkarılmış olarak işaretleyin.

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

next_id() staticmethod

Global parça kimliği sayacını artırır ve döndürür.

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

predict()

Pistin bir sonraki durumunu tahmin etmek için soyut yöntem.

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

reset_id() staticmethod

Global parça kimliği sayacını sıfırlayın.

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

update(*args, **kwargs)

İzi yeni gözlemlerle güncellemek için soyut yöntem.

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





Oluşturuldu 2023-11-12, Güncellendi 2024-05-08
Yazarlar: Burhan-Q (1), glenn-jocher (3)