Riferimento per ultralytics/trackers/bot_sort.py
Nota
Questo file è disponibile all'indirizzo https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/trackers/bot_sort .py. Se riscontri un problema, contribuisci a risolverlo inviando una Pull Request 🛠️. Grazie 🙏!
ultralytics.trackers.bot_sort.BOTrack
Basi: STrack
Una versione estesa della classe STrack per YOLOv8, che aggiunge funzioni di tracciamento degli oggetti.
Attributi:
Nome | Tipo | Descrizione |
---|---|---|
shared_kalman |
KalmanFilterXYWH
|
Un filtro Kalman condiviso per tutte le istanze di BOTrack. |
smooth_feat |
ndarray
|
Vettore di caratteristiche smussate. |
curr_feat |
ndarray
|
Vettore di caratteristiche corrente. |
features |
deque
|
Un deque per memorizzare vettori di caratteristiche con una lunghezza massima definita da |
alpha |
float
|
Fattore di lisciatura per la media mobile esponenziale delle caratteristiche. |
mean |
ndarray
|
Lo stato medio del filtro di Kalman. |
covariance |
ndarray
|
La matrice di covarianza del filtro di Kalman. |
Metodi:
Nome | Descrizione |
---|---|
update_features |
Aggiorna il vettore delle caratteristiche e lo smussa utilizzando la media mobile esponenziale. |
predict |
Prevede la media e la covarianza utilizzando il filtro di Kalman. |
re_activate |
Riattiva un brano con caratteristiche aggiornate e, facoltativamente, un nuovo ID. |
update |
Aggiorna l'istanza di YOLOv8 con il nuovo ID della traccia e del fotogramma. |
tlwh |
Proprietà che ottiene la posizione corrente in formato tlwh |
multi_predict |
Prevede la media e la covarianza di più tracce di oggetti utilizzando un filtro di Kalman condiviso. |
convert_coords |
Converte le coordinate del rettangolo di selezione tlwh in formato xywh. |
tlwh_to_xywh |
Convertire il rettangolo di selezione in formato xywh |
Utilizzo
bo_track = BOTrack(tlwh, score, cls, feat) bo_track.predict() bo_track.update(new_track, frame_id)
Codice sorgente in ultralytics/trackers/bot_sort.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
tlwh
property
Ottieni la posizione corrente in formato bounding box (top left x, top left y, width, height)
.
__init__(tlwh, score, cls, feat=None, feat_history=50)
Inizializza l'oggetto YOLOv8 con i parametri temporali, come la storia delle caratteristiche, l'alfa e le caratteristiche correnti.
Codice sorgente in ultralytics/trackers/bot_sort.py
convert_coords(tlwh)
Converte le coordinate del rettangolo di selezione Top-Left-Width-Height nel formato X-Y-Width-Height.
multi_predict(stracks)
staticmethod
Prevede la media e la covarianza di più tracce di oggetti utilizzando un filtro di Kalman condiviso.
Codice sorgente in ultralytics/trackers/bot_sort.py
predict()
Prevede la media e la covarianza utilizzando il filtro di Kalman.
Codice sorgente in ultralytics/trackers/bot_sort.py
re_activate(new_track, frame_id, new_id=False)
Riattiva un tracciato con caratteristiche aggiornate e assegna facoltativamente un nuovo ID.
Codice sorgente in ultralytics/trackers/bot_sort.py
tlwh_to_xywh(tlwh)
staticmethod
Convertire il rettangolo di selezione in formato (center x, center y, width, height)
.
update(new_track, frame_id)
Aggiorna l'istanza di YOLOv8 con il nuovo ID della traccia e del fotogramma.
update_features(feat)
Aggiorna il vettore delle caratteristiche e lo smussa utilizzando la media mobile esponenziale.
Codice sorgente in ultralytics/trackers/bot_sort.py
ultralytics.trackers.bot_sort.BOTSORT
Basi: BYTETracker
Una versione estesa della classe BYTETracker per YOLOv8, progettata per il tracciamento degli oggetti con ReID e l'algoritmo GMC.
Attributi:
Nome | Tipo | Descrizione |
---|---|---|
proximity_thresh |
float
|
Soglia di prossimità spaziale (IoU) tra tracce e rilevamenti. |
appearance_thresh |
float
|
Soglia per la somiglianza di aspetto (incorporazioni ReID) tra le tracce e i rilevamenti. |
encoder |
object
|
Oggetto per gestire le incorporazioni ReID, impostato su None se ReID non è abilitato. |
gmc |
GMC
|
Un'istanza dell'algoritmo GMC per l'associazione dei dati. |
args |
object
|
Argomenti della riga di comando analizzati contenenti parametri di tracciamento. |
Metodi:
Nome | Descrizione |
---|---|
get_kalmanfilter |
Restituisce un'istanza di KalmanFilterXYWH per il tracciamento degli oggetti. |
init_track |
Inizializza la traccia con i rilevamenti, i punteggi e le classi. |
get_dists |
Ottiene le distanze tra le tracce e i rilevamenti utilizzando IoU e (facoltativamente) ReID. |
multi_predict |
Prevedere e seguire più oggetti con il modello YOLOv8 . |
Utilizzo
bot_sort = BOTSORT(args, frame_rate) bot_sort.init_track(dets, scores, cls, img) bot_sort.multi_predict(tracce)
Nota
La classe è progettata per funzionare con il modello di rilevamento degli oggetti di YOLOv8 e supporta ReID solo se abilitato tramite gli args.
Codice sorgente in ultralytics/trackers/bot_sort.py
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
|
__init__(args, frame_rate=30)
Inizializza l'oggetto YOLOv8 con il modulo ReID e l'algoritmo GMC.
Codice sorgente in ultralytics/trackers/bot_sort.py
get_dists(tracks, detections)
Ottiene le distanze tra le tracce e i rilevamenti utilizzando le incorporazioni IoU e (opzionalmente) ReID.
Codice sorgente in ultralytics/trackers/bot_sort.py
get_kalmanfilter()
init_track(dets, scores, cls, img=None)
Inizializza la traccia con i rilevamenti, i punteggi e le classi.