Vai al contenuto

TrackZone che utilizza Ultralytics YOLO11

Apri TrackZone in Colab

Cos'è TrackZone?

TrackZone è specializzato nel monitoraggio di oggetti all'interno di aree designate di un frame anziché dell'intero frame. Basato su Ultralytics YOLO11, integra il rilevamento e il tracciamento degli oggetti specificamente all'interno delle zone per video e feed di telecamere live. Gli algoritmi avanzati di YOLO11 e le tecnologie di deep learning lo rendono una scelta perfetta per casi d'uso in tempo reale, offrendo un tracciamento degli oggetti preciso ed efficiente in applicazioni come il monitoraggio della folla e la sorveglianza.



Guarda: Come tracciare oggetti in una regione utilizzando Ultralytics YOLO11 | TrackZone 🚀

Vantaggi del tracciamento degli oggetti nelle zone (TrackZone)

  • Analisi mirata: Il tracciamento di oggetti all'interno di zone specifiche consente analisi più mirate, permettendo un monitoraggio e un'analisi precisi delle aree di interesse, come punti di ingresso o zone riservate.
  • Maggiore efficienza: restringendo l'ambito di tracciamento a zone definite, TrackZone riduce il sovraccarico computazionale, garantendo un'elaborazione più rapida e prestazioni ottimali.
  • Sicurezza Migliorata: Il tracciamento zonale migliora la sorveglianza monitorando le aree critiche, aiutando nella rilevazione precoce di attività insolite o violazioni della sicurezza.
  • Soluzioni scalabili: La capacità di concentrarsi su zone specifiche rende TrackZone adattabile a vari scenari, dagli spazi commerciali agli ambienti industriali, garantendo un'integrazione e una scalabilità senza interruzioni.

Applicazioni nel mondo reale

Agricoltura Trasporti
Monitoraggio delle piante in campo utilizzando Ultralytics YOLO11 Tracciamento di veicoli su strada utilizzando Ultralytics YOLO11
Monitoraggio delle piante in campo utilizzando Ultralytics YOLO11 Tracciamento di veicoli su strada utilizzando Ultralytics YOLO11

TrackZone che utilizza Ultralytics YOLO

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

TrackZone Argomenti

Ecco una tabella con i TrackZone argomenti:

Argomento Tipo Predefinito Descrizione
model str None Percorso del file del modello Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' Elenco dei punti che definiscono la regione di conteggio.

La soluzione TrackZone include il supporto per track parametri:

Argomento Tipo Predefinito Descrizione
tracker str 'botsort.yaml' Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml.
conf float 0.3 Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi.
iou float 0.5 Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti.
classes list None Filtra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verbose bool True Controlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati.
device str None Specifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 oppure 0). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono disponibili le seguenti opzioni di visualizzazione:

Argomento Tipo Predefinito Descrizione
show bool False Se True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_width None or int None Specifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza.
show_conf bool True Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento.
show_labels bool True Mostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati.

FAQ

Come posso tracciare oggetti in un'area o zona specifica di un frame video utilizzando Ultralytics YOLO11?

Tracciare oggetti in un'area o zona definita di un frame video è semplice con Ultralytics YOLO11. Utilizza semplicemente il comando fornito di seguito per avviare il tracciamento. Questo approccio garantisce un'analisi efficiente e risultati accurati, rendendolo ideale per applicazioni come la sorveglianza, la gestione della folla o qualsiasi scenario che richieda il tracciamento zonale.

yolo solutions trackzone source="path/to/video.mp4" show=True

Come posso usare TrackZone in Python con Ultralytics YOLO11?

Con poche righe di codice, puoi impostare il tracciamento degli oggetti in zone specifiche, rendendone facile l'integrazione nei tuoi progetti.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Come posso configurare i punti di zona per l'elaborazione video utilizzando Ultralytics TrackZone?

Configurare i punti zona per l'elaborazione video con Ultralytics TrackZone è semplice e personalizzabile. Puoi definire e regolare direttamente le zone tramite uno script python, consentendo un controllo preciso sulle aree che desideri monitorare.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)


📅 Creato 9 mesi fa ✏️ Aggiornato 4 mesi fa

Commenti