- Guide per Montare Video
- 1.Convertitori da audio a testo online gratuiti
- 2.Gli 9 migliori generatori di voci AI
- 3.Idee, Musica e Frasi per Video di Compleanno
- 4.Come Generare Sottotitoli Automatici in Video
- 5.Software Migliori per Montaggio Video con IA
- 6.Strumenti Online Migliori per Rimuovere Voce
- 7.Come Sostituire i Volti nei Video
- 8.Migliori Lettori Video Gratuiti per PC
- 9.Migliori programmi gratuiti per riprodurre DVD
- 10.Rimuovere rumori di sottofondo da video
- 11.Creare Video di Mappa di Viaggio Animata
- 12.I 10 Migliori Cutter Video Gratuiti
- Miglior Editor Video su PC: Filmora
- Provalo gratuitamente Provalo gratuitamente
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
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
- 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.
- 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 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.
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.
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 |
|
|
Tracciatore MIL |
|
|
Inseguitore KCF |
|
|
Inseguitore di TLD |
|
|
Tracciamento del flusso medio |
|
|
Inseguitore GOTURN |
|
|
Inseguitore MOSSE |
|
|
Tracciamento CSRT |
|
|
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:
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:
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:
Avviare il tracker e controllare l'output
Infine, scrivere le righe di codice seguenti per avviare il tracker:
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.
(vai a scaricare Filmora mobile sul tuo dispositivo mobile tramite Appstore e GooglePlay).
Il programma di montaggio video potenziato dall'IA, superpotente e facile da usare per tutti i creatori.
Provalo Gratis Provalo Gratis Provalo Gratis