Ultralytics YOLO27:

Panoramica dei dataset per il tracking multi-oggetto#

Il tracking multi-oggetto è un componente fondamentale dell'analisi video: identifica gli oggetti e mantiene ID univoci per ogni oggetto rilevato tra i fotogrammi del video. Ultralytics YOLO offre potenti funzionalità di tracking applicabili a vari ambiti, tra cui videosorveglianza, analisi sportive e monitoraggio del traffico.

Formato del dataset#

La modalità Track non addestra un tracker e non richiede un dataset specifico per il tracking. Addestra un modello di rilevamento, segmentazione, posa o OBB utilizzando il formato standard del dataset per quell'attività, quindi usa i pesi risultanti con model.track() o yolo track. Il tracker selezionato associa le predizioni del modello tra i fotogrammi durante l'inferenza.

Tracker disponibili#

Ultralytics YOLO supporta i seguenti algoritmi di tracking:

  • BoT-SORT - Usa botsort.yaml per abilitare questo tracker
  • ByteTrack - Usa bytetrack.yaml per abilitare questo tracker
  • OC-SORT - Usa ocsort.yaml per abilitare questo tracker
  • Deep OC-SORT - Usa deepocsort.yaml per abilitare questo tracker
  • FastTracker - Usa fasttrack.yaml per abilitare questo tracker
  • TrackTrack - Usa tracktrack.yaml per abilitare questo tracker (predefinito)

Utilizzo#

Esempio
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

Mantenimento delle tracce tra i fotogrammi#

Per eseguire il tracking continuo tra i fotogrammi del video, puoi usare il parametro persist=True:

Esempio
import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Open the video file
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Run tracking with persistence between frames
        results = model.track(frame, persist=True)

        # Visualize the results
        annotated_frame = results[0].plot()
        cv2.imshow("Tracking", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

FAQ#

  • Per usare il tracking multi-oggetto con Ultralytics YOLO, puoi iniziare con gli esempi Python o CLI forniti. Ecco come iniziare:

    Esempio
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # Load the YOLO26 model
    results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

    Questi comandi caricano il modello YOLO26 e lo usano per eseguire il tracking degli oggetti nella sorgente video indicata, con soglie specifiche di confidenza (conf) e Intersezione sull'unione (iou). Per ulteriori dettagli, consulta la documentazione sulla modalità Track.

  • Ultralytics YOLO è un modello di rilevamento degli oggetti all'avanguardia, noto per le sue prestazioni in tempo reale e l'elevata accuratezza. Usare YOLO per il tracking multi-oggetto offre diversi vantaggi:

    • Tracking in tempo reale: ottieni un tracking efficiente e ad alta velocità, ideale per gli ambienti dinamici.
    • Flessibilità con i modelli pretrained: non è necessario addestrare un modello da zero; usa semplicemente modelli pretrained di rilevamento, segmentazione, posa o OBB.
    • Facilità d'uso: la semplice integrazione dell'API con Python e CLI rende immediata la configurazione delle pipeline di tracking.
    • Documentazione completa e supporto della community: Ultralytics offre una documentazione esaustiva e un forum della community attivo per risolvere i problemi e migliorare i tuoi modelli di tracking.

    Per ulteriori dettagli sulla configurazione e sull'uso di YOLO per il tracking, visita la nostra guida all'uso della modalità Track.

  • Sì. Addestra un modello di rilevamento, segmentazione, posa o OBB sul tuo dataset personalizzato, quindi passa i relativi pesi a model.track(). Il tracker viene eseguito durante l'inferenza e non richiede dati di addestramento separati.

  • Dopo aver eseguito un'attività di tracking con Ultralytics YOLO, i risultati includono vari dati, come gli ID degli oggetti tracciati, i relativi riquadri di delimitazione e i punteggi di confidenza. Ecco una breve panoramica su come interpretare questi risultati:

    • ID tracciati: a ogni oggetto viene assegnato un ID univoco, che ne facilita il tracking tra i fotogrammi.
    • Riquadri di delimitazione: indicano la posizione degli oggetti tracciati all'interno del fotogramma.
    • Punteggi di confidenza: riflettono il livello di confidenza del modello nel rilevamento dell'oggetto tracciato.

    Per indicazioni dettagliate sull'interpretazione e la visualizzazione di questi risultati, consulta la guida alla gestione dei risultati.

  • Puoi personalizzare il tracker creando una versione modificata del file di configurazione del tracker. Copia un file di configurazione esistente dalla cartella ultralytics/cfg/trackers, modifica i parametri secondo necessità e specifica questo file quando esegui il tracker:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.track(source="video.mp4", tracker="custom_tracker.yaml")

Commenti