Référence pour ultralytics/trackers/byte_tracker.py
Note
Ce fichier est disponible à l'adresse https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/trackers/byte_tracker .py. Si tu repères un problème, aide à le corriger en contribuant à une Pull Request 🛠️. Merci 🙏 !
ultralytics.trackers.byte_tracker.STrack
Bases : BaseTrack
Représentation du suivi d'un objet unique qui utilise le filtrage de Kalman pour l'estimation de l'état.
Cette classe est responsable du stockage de toutes les informations concernant les tracklets individuels et effectue des mises à jour d'état et des prédictions basées sur le filtre de Kalman.
Attributs :
Nom | Type | Description |
---|---|---|
shared_kalman |
KalmanFilterXYAH
|
Filtre de Kalman partagé qui est utilisé dans toutes les instances de STrack pour la prédiction. |
_tlwh |
ndarray
|
Attribut privé permettant de stocker les coordonnées du coin supérieur gauche ainsi que la largeur et la hauteur de la boîte de délimitation. |
kalman_filter |
KalmanFilterXYAH
|
Instance du filtre de Kalman utilisé pour cette piste d'objet particulière. |
mean |
ndarray
|
Vecteur d'estimation de l'Ă©tat moyen. |
covariance |
ndarray
|
Covariance de l'estimation de l'Ă©tat. |
is_activated |
bool
|
Drapeau booléen indiquant si la piste a été activée. |
score |
float
|
Score de confiance de la piste. |
tracklet_len |
int
|
Longueur du tracklet. |
cls |
any
|
Étiquette de classe pour l'objet. |
idx |
int
|
Index ou identifiant de l'objet. |
frame_id |
int
|
ID de la trame actuelle. |
start_frame |
int
|
Cadre où l'objet a été détecté pour la première fois. |
MĂ©thodes :
Nom | Description |
---|---|
predict |
Prédis le prochain état de l'objet à l'aide du filtre de Kalman. |
multi_predict |
Prédis les prochains états pour plusieurs pistes. |
multi_gmc |
Mets Ă jour les Ă©tats de plusieurs pistes Ă l'aide d'une matrice d'homographie. |
activate |
Active un nouveau tracklet. |
re_activate |
Réactive un tracklet précédemment perdu. |
update |
Met à jour l'état d'une piste jumelée. |
convert_coords |
Convertit la boîte de délimitation au format x-y-aspect-hauteur. |
tlwh_to_xyah |
Convertit la boîte de délimitation de tlwh au format xyah. |
Code source dans ultralytics/trackers/byte_tracker.py
12 13 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 123 124 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 201 202 203 204 205 206 207 208 209 |
|
result
property
Obtenir les résultats actuels du suivi.
tlwh
property
Obtenir la position actuelle dans le format de la boîte de délimitation (x en haut à gauche, y en haut à gauche, largeur, hauteur).
xywh
property
Obtenir la position actuelle dans le format de la boîte de délimitation (centre x, centre y, largeur, hauteur).
xywha
property
Obtenir la position actuelle dans le format de la boîte de délimitation (centre x, centre y, largeur, hauteur, angle).
xyxy
property
Convertit la boîte de délimitation au format (min x, min y, max x, max y), c'est-à -dire (en haut à gauche, en bas à droite).
__init__(xywh, score, cls)
Initialise une nouvelle instance de STrack.
Code source dans ultralytics/trackers/byte_tracker.py
__repr__()
Renvoie une représentation sous forme de chaîne de l'objet BYTETracker avec les images de début et de fin et l'ID de la piste.
activate(kalman_filter, frame_id)
Commence un nouveau tracklet.
Code source dans ultralytics/trackers/byte_tracker.py
convert_coords(tlwh)
Convertit le format haut-gauche-largeur-hauteur d'une boîte de délimitation en son équivalent x-y-aspect-hauteur.
multi_gmc(stracks, H=np.eye(2, 3))
staticmethod
Mets Ă jour les positions et les covariances des pistes d'Ă©tat Ă l'aide d'une matrice d'homographie.
Code source dans ultralytics/trackers/byte_tracker.py
multi_predict(stracks)
staticmethod
Effectue un suivi prédictif de plusieurs objets à l'aide d'un filtre de Kalman pour des pistes données.
Code source dans ultralytics/trackers/byte_tracker.py
predict()
Prévoit la moyenne et la covariance à l'aide du filtre de Kalman.
Code source dans ultralytics/trackers/byte_tracker.py
re_activate(new_track, frame_id, new_id=False)
Réactive une piste précédemment perdue avec une nouvelle détection.
Code source dans ultralytics/trackers/byte_tracker.py
tlwh_to_xyah(tlwh)
staticmethod
Convertit la boîte de délimitation au format (centre x, centre y, rapport d'aspect, hauteur), où le rapport d'aspect est largeur / hauteur.
Code source dans ultralytics/trackers/byte_tracker.py
update(new_track, frame_id)
Met à jour l'état d'une piste jumelée.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
new_track |
STrack
|
La nouvelle piste contenant des informations actualisées. |
requis |
frame_id |
int
|
L'ID de la trame actuelle. |
requis |
Code source dans ultralytics/trackers/byte_tracker.py
ultralytics.trackers.byte_tracker.BYTETracker
BYTETracker : Un algorithme de suivi construit sur YOLOv8 pour la détection et le suivi d'objets.
Cette classe est responsable de l'initialisation, de la mise à jour et de la gestion des pistes pour les objets détectés dans une séquence vidéo. séquence vidéo. Elle maintient l'état des pistes suivies, perdues et supprimées sur les images, utilise le filtrage de Kalman pour prédire l'emplacement des nouveaux objets et effectue l'association des données. prédire l'emplacement des nouveaux objets et effectue l'association des données.
Attributs :
Nom | Type | Description |
---|---|---|
tracked_stracks |
list[STrack]
|
Liste des pistes activées avec succès. |
lost_stracks |
list[STrack]
|
Liste des pistes perdues. |
removed_stracks |
list[STrack]
|
Liste des pistes supprimées. |
frame_id |
int
|
L'ID de la trame actuelle. |
args |
namespace
|
Arguments de la ligne de commande. |
max_time_lost |
int
|
Le nombre maximum de trames pour qu'une piste soit considérée comme "perdue". |
kalman_filter |
object
|
Objet du filtre de Kalman. |
MĂ©thodes :
Nom | Description |
---|---|
update |
Met à jour le traqueur d'objets avec les nouvelles détections. |
get_kalmanfilter |
Renvoie un objet de filtre de Kalman pour le suivi des boîtes de délimitation. |
init_track |
Initialise le suivi des objets avec les détections. |
get_dists |
Calcule la distance entre les traces et les détections. |
multi_predict |
Prévoit l'emplacement des traces. |
reset_id |
RĂ©initialise le compteur d'ID de STrack. |
joint_stracks |
Combine deux listes d'éléments. |
sub_stracks |
Filtre les stracks présents dans la deuxième liste à partir de la première liste. |
remove_duplicate_stracks |
Supprime les stracks en double en fonction de l'unité d'exploitation. |
Code source dans ultralytics/trackers/byte_tracker.py
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
|
__init__(args, frame_rate=30)
Initialise un objet YOLOv8 pour suivre les objets avec les arguments et la fréquence d'images donnés.
Code source dans ultralytics/trackers/byte_tracker.py
get_dists(tracks, detections)
Calcule la distance entre les pistes et les détections à l'aide des scores de l'IoU et des fusions.
Code source dans ultralytics/trackers/byte_tracker.py
get_kalmanfilter()
init_track(dets, scores, cls, img=None)
Initialise le suivi des objets avec les détections et les scores à l'aide de l'algorithme STrack.
Code source dans ultralytics/trackers/byte_tracker.py
joint_stracks(tlista, tlistb)
staticmethod
Combine deux listes de stracks en une seule.
Code source dans ultralytics/trackers/byte_tracker.py
multi_predict(tracks)
remove_duplicate_stracks(stracksa, stracksb)
staticmethod
Supprime les doublons dont la distance entre les points de contact n'est pas maximale.
Code source dans ultralytics/trackers/byte_tracker.py
reset()
Remets le tracker à zéro.
Code source dans ultralytics/trackers/byte_tracker.py
reset_id()
staticmethod
sub_stracks(tlista, tlistb)
staticmethod
DEPRECATED CODE in https://github.com/ultralytics/ultralytics/pull/1890/ stracks = {t.track_id: t for t in tlista} for t in tlistb: tid = t.track_id if stracks.get(tid, 0): del stracks[tid] return list(stracks.values())
Code source dans ultralytics/trackers/byte_tracker.py
update(results, img=None)
Met à jour le traqueur d'objets avec les nouvelles détections et renvoie les boîtes de délimitation des objets suivis.
Code source dans ultralytics/trackers/byte_tracker.py
253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 |
|
Créé le 2023-11-12, Mis à jour le 2024-05-08
Auteurs : Burhan-Q (1), glenn-jocher (3), Laughing-q (1)