Multi-Object Tracking (MOT)
Il tracciamento di oggetti multipli (MOT) segue ogni oggetto in un video e mantiene un ID per ciascuno attraverso i frame. Scopri come i tracker associano i rilevamenti, le metriche e il codice.
Il tracciamento multi-oggetto (MOT) è il compito di visione artificiale che consiste nel seguire contemporaneamente ogni oggetto di interesse in un video, assegnando a ciascuno un ID persistente affinché le sue posizioni nei vari fotogrammi formino una traiettoria. Il numero di oggetti è sconosciuto e cambia continuamente man mano che persone o veicoli entrano, escono, si incrociano e scompaiono dietro gli altri, quindi un tracker deve decidere a ogni fotogramma quali rilevamenti proseguono tracce esistenti, quali ne avviano di nuove e quali tracce sono terminate. Il MOT è la forma più comune di tracciamento degli oggetti; il tracciamento di un singolo oggetto (SOT) segue un target scelto nel primo fotogramma, indipendentemente dalla sua classe.
Come funziona il tracking multi-oggetto#
La maggior parte dei sistemi MOT usa il tracking basato sui rilevamenti: un modello di rilevamento degli oggetti individua gli oggetti in ogni fotogramma e un tracker collega quei rilevamenti alle tracce già registrate. Il tracker predice dove dovrebbe comparire ogni traccia usando un modello di movimento, di solito un filtro di Kalman; costruisce una matrice dei costi tra le tracce previste e i nuovi rilevamenti, basata sulla sovrapposizione dei riquadri (IoU), sul movimento e, facoltativamente, sugli embedding visivi prodotti da un modello di re-identificazione degli oggetti (Re-ID); infine, risolve l'associazione come problema di assegnamento lineare con l'algoritmo ungherese. Le tracce abbinate mantengono i propri ID, i rilevamenti non abbinati con sufficiente confidenza avviano nuove tracce e quelle senza corrispondenza vengono conservate come «perse» per un certo numero di fotogrammi, così da poterle recuperare dopo un'occlusione.
La fase di associazione è difficile in presenza di folle, perché le persone parzialmente nascoste producono rilevamenti a bassa confidenza che una semplice soglia scarterebbe. ByteTrack li conserva per una seconda fase di associazione:
Architetture dei tracker#
- SORT e successori: SORT (2016) combinava un filtro di Kalman, costi IoU e l'algoritmo ungherese. DeepSORT ha aggiunto caratteristiche visive per recuperare le identità dopo un'occlusione, ByteTrack ha introdotto la seconda fase per i rilevamenti a bassa confidenza, OC-SORT ha reso le stime del movimento robuste alle occlusioni e BoT-SORT ha aggiunto la compensazione del movimento della telecamera per le telecamere in movimento.
- Rilevamento e embedding congiunti (FairMOT): FairMOT addestra un'unica rete a produrre insieme rilevamenti ed embedding Re-ID, così che le caratteristiche visive non richiedano un secondo modello.
- Tracking end-to-end (MOTR): MOTR e TrackFormer estendono il transformer DETR con query di tracking che mantengono l'identità di ogni oggetto da un fotogramma all'altro, facendo sì che l'associazione venga appresa durante il training.
La modalità di tracking di Ultralytics YOLO applica il tracking tramite rilevamento a qualsiasi modello YOLO26 di rilevamento, segmentazione, pose o riquadri orientati, con sei tracker integrati selezionabili tramite l'argomento tracker: TrackTrack (quello predefinito), BoT-SORT, ByteTrack, OC-SORT, Deep OC-SORT e FastTracker. Questo esempio traccia le persone in una breve clip e conta i fotogrammi per cui sopravvive ogni ID:
from collections import Counter
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
video = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
# Traccia le persone (classe COCO 0) e conta i fotogrammi in cui compare ogni ID di traccia
frames_per_id = Counter()
for result in model.track(video, stream=True, classes=[0]):
if result.boxes.is_track:
frames_per_id.update(result.boxes.id.int().tolist())
# Le cinque traiettorie più lunghe come (ID di traccia, fotogrammi)
print(frames_per_id.most_common(5))Ogni coppia indica un ID di traccia e il numero di fotogrammi per cui è stato mantenuto; quindi, un ID persistente significa che il tracker ha continuato a seguire una persona per molti fotogrammi.
Misurare la qualità del tracking#
Il MOT viene valutato su benchmark come MOT17, MOT20 per le folle dense e DanceTrack, in cui i ballerini si somigliano e si muovono in modo imprevedibile. Tre metriche sono le più usate:
- MOTA: uno meno la somma di oggetti mancati, falsi positivi e scambi di ID, divisa per il numero di oggetti nel ground truth; è quindi dominata dalla qualità del rilevamento.
- IDF1: il punteggio F1 dei rilevamenti identificati correttamente, che misura la coerenza con cui ogni oggetto reale mantiene un unico ID.
- HOTA: la media geometrica dell'accuratezza del rilevamento e dell'accuratezza dell'associazione, che attribuisce lo stesso peso all'individuazione e al collegamento degli oggetti.
Sfide#
- Occlusione: un oggetto nascosto per molti fotogrammi può ricomparire con un nuovo ID, a meno che la previsione del movimento o l'abbinamento visivo non permettano di recuperarlo.
- Folle e aspetto simile: in gruppi numerosi di persone o tra atleti con la stessa divisa, i costi IoU e quelli basati sull'aspetto diventano ambigui e gli ID si scambiano.
- Movimento della telecamera: una telecamera che ruota o vibra sposta contemporaneamente tutti i riquadri, compromettendo i modelli di movimento a velocità costante, a meno che il tracker non compensi il movimento.
- Vincoli di tempo reale: il rilevamento, l'associazione e qualsiasi modello Re-ID condividono il tempo disponibile per ogni fotogramma; un modello Re-ID separato aggiunge un passaggio della rete per ogni oggetto rilevato.










