Filmora
Filmora - App di editing video AI
App di editing video potente e semplice
Scarica

Filmora Video Editor

Il miglior software di editing video e audio
  • Strumenti avanzati di regolazione del colore per aiutarti a realizzare video creativi.
  • Oltre mille effetti straordinari progettati per bellezza, giocatore, viaggiatore, ecc.
  • Premi per le app di Microsoft Store 2022 & Leader nell'editing video di G2 Crowd Report Primavera 2022

Tracciamento degli oggetti in OpenCV: La guida completa

Aggiornato il 21/11/2024• Soluzioni comprovate

OpenCV Tracking è un metodo popolare utilizzato per tracciare gli oggetti in un video in tempo reale. OpenCV è una potente libreria utilizzata per l'elaborazione delle immagini e le applicazioni di computer vision.

Dall'analisi video in tempo reale alla realtà aumentata, OpenCV Tracking ha un'ampia gamma di utilizzi e può aiutare sia il settore privato che quello pubblico a rilevare e tracciare l'oggetto desiderato in un'immagine o in un video.

In questa guida completa, esploreremo OpenCV Tracking e i suoi tracker predefiniti. Per implementare questa applicazione di tracciamento degli oggetti utilizzeremo la libreria OpenCV e Python.

In questo articolo
    1. SOT & MOT
    2. La differenza tra tracciamento e rilevamento
    1. Tracciamento dell'immagine
    2. Tracciamento video
  1. Quali sono le difficoltà del tracciamento degli oggetti
    1. Fasi del processo di tracciamento degli oggetti
    2. Metodi di tracciamento degli oggetti
    1. Che cos'è OpenCV
    2. Gli algoritmi preconfezionati che OpenCV offre per il tracciamento degli oggetti
    3. Implementazione in Python e OpenCV

Parte 1. Che cos'è il tracciamento degli oggetti?

L'Object Tracking determina la posizione di un oggetto in un video e può essere utilizzato per diversi scopi, tra cui la sorveglianza, la sicurezza, il controllo del traffico, la forensica digitale, il rilevamento di anomalie, il riconoscimento dei gesti, la sorveglianza visiva, l'interazione uomo-macchina, la realtà aumentata e la visione robotica.

Anche se può sembrare facile per una persona comune, il tracciamento degli oggetti è piuttosto complesso per i computer, che devono analizzare una serie di fotogrammi e stimare la traiettoria dell'oggetto basandosi su numeri anziché su immagini.

Per la sua complessità, l'Object Tracking è considerato uno dei compiti più difficili della computer vision. Anche se è una sfida, non è impossibile da realizzare.

Esistono due livelli di tracciamento degli oggetti che è bene conoscere:

1. SOT & MOT

  1. Inseguimento di un singolo oggetto (SOT):SOT è un algoritmo di tracciamento che crea modelli di aspetto e/o di movimento avanzati per gestire problemi difficili come rotazioni fuori dal piano, variazioni di illuminazione o cambiamenti di scala.
  2. Multiple Object Tracking (MOT): MOT traccia ogni parte di un video e si occupa principalmente di compiti di medio livello e serve come base per compiti di alto livello.

Per una comprensione più approfondita dei due livelli di Object Tracking, leggete il nostro articolo su: Guida completa al tracciamento di più oggetti.(consegnato allo stesso tempo, è possibile inserire un link interno all'oggetto di questo articolo)

2. La differenza tra tracciamento e rilevamento

Dopo aver capito cos'è il tracciamento degli oggetti, è necessario conoscere un altro concetto: il rilevamento degli oggetti.

L'Object Tracking e l'Object Detection sono due metodi importanti nella computer vision. L'Object Tracking traccia la posizione di un determinato oggetto in un'immagine in tempo reale, mentre l'Object Detection identifica e localizza gli oggetti in un'immagine o in un video. Questa è la differenza.

Parte 2. Tipi di tracciamento degli oggetti

Tracciamento dell'immagine

Il tracciamento delle immagini consente agli utenti di interagire con i contenuti digitali in modo più naturale e li aiuta a muoversi e interagire con gli oggetti digitali nello stesso modo in cui lo farebbero con gli oggetti fisici del mondo reale.

Il tracciamento delle immagini può essere utilizzato in diverse applicazioni di realtà aumentata (AR), come i giochi AR, lo shopping e la navigazione. Inoltre, è possibile utilizzarlo per scopi didattici, come l'insegnamento dell'anatomia o la fornitura di istruzioni per un compito difficile.

tracciamento delle immagini nella realtà aumentata

Tracciamento video

Il video tracking è il processo di tracciamento degli oggetti in una sequenza video e può essere utilizzato per diverse applicazioni, come il rilevamento e il conteggio degli oggetti in una scena, la comprensione dei loro movimenti e il riconoscimento delle attività.

Parte 3. Quali sono le difficoltà del tracciamento degli oggetti?

Come si è detto, l'uso del tracciamento degli oggetti è versatile. Tuttavia, esistono alcune sfide associate all'Object Tracking, quali:

Disordine di fondo: Lo sfondo può influire sull'estrazione delle caratteristiche di un oggetto. Se lo sfondo è più densamente popolato, il rilevamento o il tracciamento dell'oggetto di interesse può essere più difficile.

Occlusione: È un fenomeno in cui l'oggetto tracciato è influenzato dallo sfondo o dal primo piano. Questo fa sì che l'algoritmo di tracciamento si confonda a causa della vicinanza di più oggetti, perdendo così la traccia dell'oggetto.

il problema dell'occlusione è il tracciamento degli oggetti

Scale spaziali diverse: Le scale spaziali variabili si riferiscono a oggetti di dimensioni o forme diverse, che possono confondere l'algoritmo e causare errori.

Formazione e velocità di tracciamento: se l'oggetto si muove troppo velocemente o è troppo piccolo, può essere difficile da tracciare. Pertanto, il modulo di tracciamento deve essere progettato per tracciare, identificare e localizzare gli oggetti in pochi secondi.

Parte 4. Fasi del processo di tracciamento degli oggetti

Dopo aver introdotto il tracciamento degli oggetti dal punto di vista tecnico, vediamo il suo meccanismo da due punti di vista: i periodi del processo di lavoro e il modo in cui traccia.

1. Fasi del processo di tracciamento degli oggetti

Di seguito sono riportate le fasi del processo di tracciamento degli oggetti:

Inizializzazione del target

L'inizializzazione del target è la prima fase dell'Object Tracking e prevede la definizione dei target o degli oggetti di interesse e il disegno di un rettangolo di selezione attorno ad essi nel fotogramma iniziale. Successivamente, il tracker deve rilevare la posizione dell'oggetto nel fotogramma mentre disegna il rettangolo di selezione.

Modellazione dell'aspetto

La modellazione dell'aspetto è importante per capire come apparirà un oggetto in diverse circostanze. Se l'oggetto tracciato cambia aspetto a causa della diversa illuminazione, dell'angolazione o della velocità, l'algoritmo di tracciamento può perdere le informazioni e l'oggetto stesso. Pertanto, deve essere condotta per consentire all'algoritmo di rilevare i cambiamenti e le distorsioni.

fase di modellazione dell'aspetto nel tracciamento degli oggetti

Stima del movimento

La stima del movimento implica la capacità del modello di anticipare con precisione la posizione futura di un oggetto.

Posizionamento del target

La stima del movimento è un processo di approssimazione della regione più probabile in cui potrebbe essere presente un oggetto. Dopo aver approssimato la posizione dell'oggetto, è possibile utilizzare un modello visivo per determinare con maggiore precisione la posizione del bersaglio.

2. Metodi di tracciamento degli oggetti

Ecco alcuni metodi di tracciamento degli oggetti:

Tracciamento degli oggetti basato su OpenCV

Il metodo OpenCV Object Tracking è ampiamente utilizzato perché offre diverse funzioni integrate progettate appositamente per questo scopo, come GOTURN, MIL, MediandFlow e CSRT. Il tipo di inseguitore scelto dipenderà dal progetto dell'applicazione specifica. Ogni tracker ha i suoi pro e i suoi contro, quindi non esiste un unico tipo di tracker ideale per tutte le applicazioni.

MDNet

Multi-Domain Convolutional Neural Network Tracker è un tracker visivo basato su reti neurali convoluzionali e ha vinto la sfida VOT2015. Inoltre, è composto da livelli specifici per il dominio, rami e livelli multipli condivisi.

Il tracker MDNetT è una rete neurale profonda addestrata su numerosi dataset di Object Tracking. Il tracker è progettato per funzionare in diversi ambiti, tra cui video, testo e immagini.

Ordinamento profondo

L'algoritmo DeepSort può tracciare gli oggetti in tempo reale e utilizza YOLO v3 per calcolare i riquadri di delimitazione intorno agli oggetti in un fotogramma.

DeepSort utilizza il filtro di Kalman dell'algoritmo Simple Online and Realtime Tracking e un modello di identificazione, ReID, per collegare le bounding box e le tracce degli oggetti.

ROLO

ROLO è un nuovo metodo di tracciamento degli oggetti che utilizza reti neurali ricorrenti (RNN) per apprendere rappresentazioni spazio-temporali specifiche dell'oggetto. Questo metodo funziona con YOLO, un algoritmo di rilevamento degli oggetti e un LTSM per determinare la traiettoria di un oggetto.

Parte 5. Il potente backup: OpenCV

Abbiamo dimostrato quanto sia potente OpenCV Tracking e come funziona. Tuttavia, vi chiedete cosa sia OpenCV? Come supporta il raggiungimento degli obiettivi di tracciamento? In questa parte ci concentreremo su OpenCV e vi aiuteremo a comprendere meglio i meccanismi sottostanti.

1. Che cos'è OpenCV?

OpenCV è una potente libreria che consente di eseguire operazioni di elaborazione delle immagini, deep learning, machine learning e computer vision su feed video in diretta. Inoltre, può essere utilizzato per rilevare gli oggetti, seguirne i movimenti e riconoscere i volti.

Può aiutare a elaborare i dati che contengono video e immagini ed è stato utilizzato in diverse applicazioni, come il riconoscimento e il rilevamento di oggetti, le auto autonome, i robot, l'analisi delle immagini mediche, la sorveglianza automatizzata e il rilevamento di anomalie.

2. Gli algoritmi preconfezionati che OpenCV offre per il tracciamento degli oggetti

OpenCV offre 8 algoritmi precostituiti per il tracciamento degli oggetti. Tutti hanno la loro unicità e qui presenteremo i loro pro e contro per una migliore comprensione.

Inseguitore Pro Contro
Traccia di potenziamento
  • Traccia con precisione gli oggetti.
  • Relativamente lento.
  • Impossibile fermarsi quando si perde un oggetto.
Tracciatore MIL
  • Forte resistenza al rumore.
  • Fornisce risultati accurati.
  • Bassa velocità.
  • Impossibile interrompere il tracciamento una volta perso l'oggetto.
Inseguitore KCF
  • Alta velocità e precisione.
  • Interrompe il tracciamento quando l'oggetto viene perso.
  • Incapacità di continuare a seguire gli oggetti una volta persi.
Inseguitore di TLD
  • Resistenza alla sovrapposizione e al ridimensionamento degli oggetti.
  • Instabile nel rilevamento e nel tracciamento degli oggetti.
  • Perde costantemente l'oggetto.
Tracciamento del flusso medio
  • Alta precisione e velocità.
  • Accurato nel determinare la perdita dell'oggetto.
  • Perde rapidamente l'oggetto a causa dell'alta velocità.
Inseguitore GOTURN
  • Mostra resistenza alle ostruzioni e al rumore.
  • Se la velocità di un oggetto è elevata, si sposta su un altro oggetto.
Inseguitore MOSSE
  • In grado di continuare il tracciamento anche dopo la perdita dell'oggetto.
  • Alta velocità.
  • Perde facilmente l'oggetto se la velocità è molto elevata.
Tracciamento CSRT
  • Buona resistenza alla sovrapposizione.
  • Alta precisione.
  • Bassa velocità.
  • Instabile quando un oggetto viene perso.

3. Implementazione in Python e OpenCV

Ora, dopo la spiegazione teorica di OpenCV e OpenCV Tracking, impariamo Object Tracking OpenCV Python con la codifica e le nostre semplici istruzioni passo-passo:

Installare le dipendenze

Installare il programma Insert a tag pycharm sul PC e avviarlo. Create un nuovo progetto e andate al Terminale. Installate il pacchetto opencv-contrib-python incollando il seguente comando nel Terminale.

Impostare i tracker

Ora, create un quaderno Jupyter e impostate i tracker con questo codice:

impostare i tracker in opencv per implementare il tracciamento degli oggetti

Compiti:

  • cv2. version restituisce il numero di versione della libreria OpenCV.
  • Salvare il nome degli otto tracker.
  • Controllare l'elenco della versione su cui si sta lavorando e creare un oggetto tracker in base al numero.

Acquisizione dell'ingresso video

Per catturare l'ingresso video, scrivere le seguenti righe di codice:

catturare l'input video in opencv per implementare il tracciamento degli oggetti

Compiti:

  • Utilizzate la classe VideoCapture per catturare un video tramite la webcam o per ottenerne uno salvato dal PC.
  • In VideoCapture - riga 2, indicare il percorso del video.
  • Commentare la seconda riga per utilizzare la webcam per il tracciamento e decommentare la terza.

Creazione del rettangolo di selezione e inizializzazione del tracker

Definire un rettangolo di selezione casuale iniziale o selezionare le scelte per l'oggetto che si desidera tracciare con il seguente codice:

creare il riquadro di delimitazione e avviare il tracker in opencv per implementare il tracciamento degli oggetti

Avviare il tracker e controllare l'output

Infine, scrivere le righe di codice seguenti per avviare il tracker:

avviare il tracker e controllare l'output in opencv per implementare il tracciamento degli oggetti

Compiti

  • Leggere ogni fotogramma video.
  • Avviare il timer e, attraverso il tracker, determinare la traiettoria dell'oggetto.
  • Utilizzare la traiettoria per disegnare il rettangolo di selezione.
  • Il programma inizierà a tracciare il percorso. Successivamente, premere la barra spaziatrice per interrompere il tracciamento.

Video - Tracciamento di oggetti con Opencv e Python

Conclusione

In questo articolo abbiamo discusso in dettaglio l'Object Tracking e il suo confronto con l'Object Detection. Inoltre, abbiamo esplorato i metodi utilizzati per il tracciamento degli oggetti e abbiamo fornito una guida completa sul metodo OpenCV Tracking e sulle sue funzionalità integrate.

Speriamo che questa guida sia stata utile e che ora possiate tracciare gli oggetti in tempo reale senza problemi.


Provalo Gratis
Per win11 / Win10 / 8.1 / 8/ 7 (64 bit)
Scopri di Più
Homepage di Filmora Windows
Garanzia di Download Sicuro, zero malware
endorse
Provalo Gratis
Per macOS V 10.14 o versioni successive
Scopri di Più
Homepage di Filmora macOS
Garanzia di Download Sicuro, zero malware
endorse

(vai a scaricare Filmora mobile sul tuo dispositivo mobile tramite Appstore e GooglePlay).


Gianni
Gianni is a writer and a lover of all things video.