TrackZone che utilizza Ultralytics YOLO11
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 |
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
)