Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

I 8 migliori strumenti e algoritmi open source per il tracciamento degli oggetti

Scopri gli 8 migliori strumenti open source per il tracciamento degli oggetti per l'analisi video in tempo reale. Scopri come funzionano e come scegliere quello più adatto al tuo progetto.

Quando un'auto passa con il semaforo rosso e al conducente viene inviata una multa automatica, o quando un calciatore dribbla sul campo e la telecamera segue fluidamente l'azione, l'intelligenza artificiale lavora silenziosamente dietro le quinte. In particolare, questi sistemi si basano sulla visione artificiale, un sotto-campo dell'intelligenza artificiale che consente alle macchine di vedere, interpretare e comprendere le informazioni visive provenienti dal mondo.

Nell'ambito della visione artificiale, una delle attività principali alla base di queste applicazioni è il tracciamento degli oggetti. Viene utilizzato per identificare gli oggetti in ogni fotogramma di un video e poi seguirli mentre si muovono, si sovrappongono ad altri o cambiano direzione.

Oggi sono disponibili molti strumenti e algoritmi per il tracciamento degli oggetti, ciascuno progettato per diversi casi d'uso, esigenze prestazionali e livelli di complessità. Alcuni puntano sulla velocità e sono in grado di track di oggetti in tempo reale, mentre altri privilegiano la precisione o la stabilità a lungo termine in condizioni difficili come occlusione, movimenti rapidi o scarsa illuminazione.

In particolare, i progetti open source hanno svolto un ruolo fondamentale nel progresso di questo settore. Poiché il loro codice è liberamente accessibile, sviluppatori e ricercatori possono studiarne il funzionamento, migliorare i metodi esistenti e adattarli a nuove applicazioni. Questa apertura ha contribuito alla rapida evoluzione del tracciamento degli oggetti e alla sua più facile integrazione nei sistemi reali.

In questo articolo esploreremo otto popolari strumenti e algoritmi open source per il tracciamento degli oggetti. Cominciamo!

Che cos'è il tracciamento degli oggetti?

Consideriamo uno scenario in cui una guardia di sicurezza sta guardando le riprese delle telecamere a circuito chiuso di un parcheggio. Decide di tenere d'occhio un'auto rossa. Mentre il video viene riprodotto, mentalmente contrassegna quell'auto e continua a seguirla ovunque vada, anche quando altre auto passano o persone camminano davanti ad essa.

Il tracciamento degli oggetti basato sull'intelligenza artificiale è simile, ma funziona automaticamente e su larga scala. In altre parole, il tracciamento degli oggetti è il processo che consiste nel seguire un oggetto mentre si muove attraverso i fotogrammi di un video e nel mantenerne l'identità coerente da un fotogramma all'altro. 

In molti sistemi, questo processo inizia con il rilevamento degli oggetti, che individua ed etichetta oggetti come persone, veicoli o segnali stradali in ogni fotogramma. Quindi, man mano che questi oggetti si muovono, appaiono, scompaiono o si sovrappongono, il sistema di tracciamento collega i rilevamenti tra i fotogrammi in modo da sapere quale oggetto è quale e dove si trova nel tempo.

Fig. 1. Uno sguardo al tracciamento degli oggetti (Fonte)

Esistono due tipi comuni di tracciamento: il tracciamento di un singolo oggetto (SOT), che si concentra su un oggetto principale (come il tracciamento della palla in un video sportivo), e il tracciamento di più oggetti (MOT), che segue più oggetti contemporaneamente e assegna a ciascuno un ID univoco (come il tracciamento di tutte le auto in un incrocio trafficato). 

Indipendentemente dal tipo di tracciamento, la maggior parte dei sistemi si basa su tre componenti fondamentali: un rilevatore per individuare gli oggetti in ogni fotogramma, un modello di movimento per prevedere come tali oggetti potrebbero muoversi e una fase di corrispondenza per collegare i nuovi rilevamenti con gli oggetti tracciati in precedenza. Queste parti trasformano il video grezzo in informazioni significative su come gli oggetti si muovono e interagiscono nel tempo.

La necessità di strumenti open source per il tracciamento degli oggetti

Prima di entrare nei dettagli, ti starai forse chiedendo: cosa rende così speciali gli strumenti e gli algoritmi open source per il tracciamento degli oggetti?

Gli strumenti open source hanno svolto un ruolo importante nel rendere il tracciamento degli oggetti più facile da usare e più ampiamente disponibile. Poiché il codice è aperto, gli sviluppatori e i ricercatori possono vedere esattamente come funziona un tracker, imparare da esso e adattarlo ai propri progetti invece di trattarlo come una scatola nera.

Inoltre, beneficiano di comunità solide. Molti strumenti di tracciamento open source sono gestiti da collaboratori attivi che aggiungono nuove funzionalità, migliorano la velocità e la precisione, correggono i bug e mantengono gli strumenti in linea con le ultime ricerche. Questa collaborazione continua li aiuta a rimanere affidabili e utili in diverse applicazioni.

Il costo è un altro motivo importante per cui sono importanti. Poiché gli strumenti open source sono gratuiti, studenti, startup e piccoli team possono sperimentare, creare prototipi e costruire sistemi reali senza preoccuparsi dei costi di licenza o di abbonamento.

I 8 migliori strumenti e algoritmi open source per il tracciamento degli oggetti

Oggi è disponibile un'ampia varietà di opzioni open source per la creazione di sistemi di tracciamento. Alcune sono algoritmi o modelli di tracciamento che è possibile integrare direttamente nella propria pipeline, mentre altre sono librerie e framework che semplificano l'esecuzione, la gestione e l'integrazione di tali modelli. Insieme, coprono tutto, dalla logica di tracciamento di base agli strumenti circostanti necessari in un progetto reale. 

Di seguito, diamo un'occhiata a otto popolari strumenti e algoritmi open source per il tracciamento degli oggetti.

1.YOLO Ultralytics ePython Ultralytics

Una delle opzioni più semplici e pratiche per il tracciamento degli oggetti è l'utilizzo dei YOLO Ultralytics YOLO in combinazione con il Python Ultralytics .YOLO Ultralytics YOLO come Ultralytics YOLO11 e il prossimo Ultralytics sono modelli di visione artificiale che supportano una serie di attività di visione, tra cui il rilevamento di oggetti, la segmentazione di istanze, la stima della posa e il tracciamento di oggetti.

Fig. 2. Esempio di utilizzo YOLO11 detect track . (Fonte)

È interessante notare che i modelli stessi non track attraverso i fotogrammi. È invece ilPython Ultralytics , una libreria che semplifica l'esecuzione e l'implementazioneYOLO Ultralytics YOLO , a rendere possibile il tracciamento combinando i rilevamenti fotogramma per fotogramma YOLOcon algoritmi dedicati al tracciamento multi-oggetto come BoT-SORT e ByteTrack. 

Grazie alla sua funzionalità di tracciamento integrata, il Ultralytics eYOLO Ultralytics YOLO possono essere utilizzati per detect in ogni fotogramma e quindi assegnare ID coerenti in modo da poterli seguire mentre si muovono, si sovrappongono, escono dal fotogramma e rientrano in un secondo momento. Questo approccio viene adottato sempre più spesso in settori come quello manifatturiero e della vendita al dettaglio, consentendo applicazioni quali flussi di lavoro per l'ispezione dei difetti, tracciamento del flusso di inventario e tracciamento dei clienti all'interno dei negozi.

2. OpenCV

OpenCV è una vasta libreria di visione artificiale che include una raccolta di algoritmi di tracciamento degli oggetti. Questa libreria è stata sviluppata e mantenuta dalla OpenCV dal 1999. 

Anziché affidarsi al deep learning, la maggior parte di questi tracker utilizza metodi tradizionali di visione artificiale, come i filtri di correlazione e le tecniche basate sul kernel (che seguono un oggetto confrontandone l'aspetto visivo, come il colore e la consistenza, da un fotogramma all'altro, anziché apprendere le caratteristiche utilizzando reti neurali). 

Quando si utilizzano questi algoritmi, in genere è possibile selezionare prima l'oggetto che si desidera track e il tracciatore cerca continuamente la regione visiva più simile nei fotogrammi successivi mentre l'oggetto si muove. 

Fig. 3. Tracciamento di oggetti utilizzando OpenCV Fonte)

Sebbene questi metodi possano non essere così affidabili come i moderni sistemi di tracciamento basati sul deep learning in scene complesse o affollate, sono comunque ampiamente utilizzati perché leggeri, veloci e facili da eseguire. Inoltre, poiché questi tracker funzionano in modo efficiente sulle CPU e di solito non richiedono una GPU, sono ideali per esperimenti rapidi, apprendimento in classe e progetti hobbistici. 

3. ByteTrack

ByteTrack è uno degli algoritmi open source più popolari per il tracciamento multi-oggetto. Anziché abbinare solo i rilevamenti di cui il modello è molto sicuro, utilizza anche rilevamenti con un livello di affidabilità inferiore che molti sistemi normalmente ignorano. 

Questo aiuta a tenere track oggetti che sono difficili da vedere per brevi periodi, ad esempio quando sono parzialmente nascosti, lontani o in rapido movimento. Grazie alla sua rapidità e affidabilità, ByteTrack è comunemente utilizzato in applicazioni quali l'analisi del traffico, il tracciamento dei pedoni e il monitoraggio della vendita al dettaglio, dove sono fondamentali le prestazioni in tempo reale e l'uniformità degli ID. 

Come accennato in precedenza, se si utilizzanoYOLO Ultralytics per il rilevamento, è facile abilitare ByteTrack tramite ilPython Ultralytics . Tuttavia, può anche essere utilizzato in modo indipendente in pipeline personalizzate, rendendolo adatto a qualsiasi applicazione, dai prototipi di ricerca ai sistemi di produzione scritti in C++.

4. DeepSORT

Un altro algoritmo ampiamente utilizzato per il tracciamento multi-oggetto è DeepSORT, abbreviazione di Deep Simple Online and Real-Time Tracking. Si tratta di una versione avanzata di SORT, acronimo di Simple Online and Real-Time Tracking.

Analogamente a ByteTrack, SORT segue un approccio di tracciamento tramite rilevamento. Tuttavia, SORT si basa su un filtro di Kalman, un modello matematico che stima la posizione futura di un oggetto in base al suo movimento passato, per prevedere dove ogni oggetto potrebbe spostarsi successivamente.

Quindi abbina i nuovi rilevamenti alle tracce esistenti, principalmente in base alla posizione e alla sovrapposizione dei riquadri di delimitazione. Ciò rende SORT veloce e leggero, ma può avere difficoltà quando gli oggetti si sovrappongono, si incrociano o scompaiono brevemente dalla vista.

DeepSORT migliora SORT aggiungendo informazioni sull'aspetto al processo di tracciamento. Oltre al movimento e alla posizione, utilizza un modello di reidentificazione o re-id basato sul deep learning che apprende l'aspetto degli oggetti. Ciò consente al tracciatore di riconoscere lo stesso oggetto tra i fotogrammi, anche quando il movimento non è sufficiente per distinguerlo dagli altri.

Per questo motivo, DeepSORT è comunemente utilizzato in applicazioni quali la sorveglianza e il monitoraggio della folla, dove le persone spesso si sovrappongono o vengono brevemente oscurate. Tuttavia, oggi è considerato un classico punto di riferimento e i metodi di tracciamento più recenti spesso ottengono prestazioni migliori in scenari più complessi.

5. Norfair

Norfair è una libreria di tracciamento leggera progettata per essere flessibile, anziché costringerti a seguire una pipeline di tracciamento fissa. Può aggiungere il tracciamento a quasi tutti i rilevatori, purché i risultati del rilevatore possano essere rappresentati come un insieme di punti, ad esempio centri di bounding box, punti chiave o dati di coordinate personalizzati.

Fig. 4. Tracciamento di oggetti reali utilizzando Norfair (Fonte)

Questa flessibilità lo rende particolarmente efficace per progetti che prevedono input insoliti o modelli di movimento dinamici, dove gli strumenti standard di tracciamento multi-oggetto potrebbero non essere sufficienti. La libreria fornisce anche funzioni di distanza integrate per controllare come i rilevamenti vengono abbinati tra i fotogrammi. 

Queste funzioni di distanza misurano la somiglianza tra due punti o oggetti, offrendo agli utenti il pieno controllo sulla logica di tracciamento. Norfair è spesso utilizzato nella robotica, nell'analisi dei movimenti sportivi, nella navigazione dei droni e in applicazioni che fanno ampio ricorso al tracciamento di punti di riferimento o punti chiave.

6. MMTracking

MMTracking è un toolbox di tracciamento open source sviluppato dal team OpenMMLab, che è anche responsabile di librerie di visione artificiale ampiamente utilizzate come MMDetection. Basato su MMDetection, fornisce un framework flessibile per lo sviluppo e la sperimentazione di sistemi di tracciamento.

Uno dei suoi maggiori punti di forza è il design modulare. Anziché vincolarti a un unico flusso di lavoro, MMTracking ti consente di configurare e scambiare diversi componenti, come rilevatori, moduli di tracciamento e, in alcune configurazioni, modelli di reidentificazione. Grazie a questa flessibilità, è particolarmente apprezzato nella ricerca e nei progetti avanzati in cui i team desiderano confrontare metodi, testare nuove idee o mettere a punto flussi di lavoro di tracciamento.

7. FairMOT

FairMOT è un framework di tracciamento multiplo progettato per track oggetti contemporaneamente. A differenza dei tradizionali sistemi di tracciamento tramite rilevamento, che eseguono prima il rilevamento e poi collegano gli oggetti tra i fotogrammi in una fase separata, FairMOT apprende il rilevamento e la reidentificazione insieme in un'unica rete. 

Fig. 5. Come funziona il framework FairMOT (Fonte)

Questa configurazione congiunta consente di mantenere identità più coerenti, specialmente in scene affollate in cui le persone spesso si sovrappongono o si muovono rapidamente. FairMOT è comunemente utilizzato in scenari quali il tracciamento dei pedoni e il monitoraggio della folla, ma trova applicazione anche in contesti quali l'analisi dei dati di vendita al dettaglio e il monitoraggio del traffico, dove è importante tracciare molti obiettivi in tempo reale.

8. SiamMask

SiamMask è un metodo di tracciamento di oggetti singoli che va oltre molti tracker, producendo una maschera di segmentazione insieme a un riquadro di delimitazione. In parole povere, non si limita a disegnare un rettangolo attorno al bersaglio, ma delinea anche la forma dell'oggetto a livello di pixel, il che può essere utile quando il bersaglio cambia forma, ruota o viene parzialmente nascosto. 

Fig. 6. Tracciamento e segmentazione di un oggetto utilizzando SiamMask (Fonte)

Questo approccio utilizza un design di tracciamento siamese, che prevede che il tracciatore acquisisca prima una piccola vista di riferimento del bersaglio dal primo fotogramma, spesso chiamata modello. Quindi, in ogni nuovo fotogramma, cerca una regione più ampia e trova il punto con la massima somiglianza con quel modello. 

SiamMask si basa su questa idea di corrispondenza. Prevede anche una maschera a livello di pixel per il bersaglio, in modo da ottenere sia la posizione dell'oggetto che un contorno più preciso durante la riproduzione del video.

Fattori chiave nella scelta di uno strumento di tracciamento degli oggetti

Con le varie opzioni disponibili oggi nel campo dell'intelligenza artificiale per gli strumenti open source di tracciamento degli oggetti, la scelta migliore per il tuo progetto di visione artificiale dipende dalle esigenze specifiche del tuo caso d'uso. Ecco alcuni fattori da considerare:

  • Precisione: questo aspetto è particolarmente importante in scene affollate o visivamente complesse, dove il sistema di visione deve mantenere identificatori stabili anche in caso di sovrapposizioni, occlusioni o movimenti rapidi.
  • Velocità: per applicazioni in tempo reale come la robotica, il monitoraggio del traffico e l'analisi sportiva, la reattività può essere più importante della precisione perfetta.
  • Facilità di integrazione: alcuni strumenti di tracciamento degli oggetti sono facili da collegare e funzionano con poche righe di codice, mentre altri richiedono una maggiore configurazione o un lavoro di personalizzazione della pipeline.
  • Vincoli di implementazione: l'ambiente di destinazione, come GPU , dispositivi edge o hardware mobile, può determinare quale approccio di tracciamento sia pratico.
  • Scalabilità: se il sistema deve track oggetti contemporaneamente o elaborare più flussi video, il tracker deve essere in grado di scalare in modo efficiente senza un calo significativo delle prestazioni.

Ogni strumento o algoritmo di tracciamento degli oggetti ha uno scopo diverso. In definitiva, la scelta giusta dipende dai requisiti specifici, dai vincoli di runtime, dalle metriche di prestazione e dal grado di personalizzazione richiesto dal progetto per l'approccio di tracciamento. 

Punti chiave

Il tracciamento degli oggetti si è evoluto dalle prime tecniche artigianali agli attuali sistemi di deep learning all'avanguardia che interpretano il movimento, l'identità e il comportamento con una precisione impressionante. Gli strumenti open source sono stati una forza trainante di questo progresso. Essi democratizzano l'accesso a potenti algoritmi, incoraggiano la sperimentazione e consentono ai ricercatori di costruire sofisticate pipeline di tracciamento senza licenze restrittive o infrastrutture pesanti. 

Visita la nostra community e il repository GitHub per saperne di più sull'IA. Esplora le nostre pagine dedicate alle soluzioni di IA nell'agricoltura e alla visione artificiale nella produzione. Scopri le nostre opzioni di licenza e inizia a creare il tuo modello di visione.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis