Link to this sectionTrackZone con Ultralytics YOLO26#
Link to this sectionCos'è TrackZone?#
TrackZone è specializzato nel monitoraggio di oggetti all'interno di aree designate di un frame anziché dell'intero frame. Basato su Ultralytics YOLO26, integra il rilevamento di oggetti e il tracking specificamente all'interno di zone per video e feed di telecamere live. Gli algoritmi avanzati e le tecnologie di deep learning di YOLO26 lo rendono la scelta perfetta per casi d'uso in tempo reale, offrendo un tracking preciso ed efficiente degli oggetti in applicazioni come il monitoraggio della folla e la sorveglianza.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this sectionVantaggi del tracciamento degli oggetti nelle zone (TrackZone)#
- Analisi mirata: Il tracciamento degli oggetti all'interno di zone specifiche consente approfondimenti più focalizzati, permettendo un monitoraggio e un'analisi precisi delle aree di interesse, come punti di ingresso o zone riservate.
- Riduzione del carico di lavoro a valle: Ignorando gli oggetti al di fuori della zona, TrackZone rimuove i rilevamenti irrilevanti, così avrai meno oggetti da contare, registrare o su cui generare avvisi nella logica che costruisci sopra di esso. Il rilevamento viene comunque eseguito su un frame mascherato a dimensione intera piuttosto che su un ritaglio stretto della zona, quindi il vantaggio è un output più pulito e mirato piuttosto che un'inferenza del modello più veloce.
- Sicurezza migliorata: Il tracciamento zonale migliora la sorveglianza monitorando le aree critiche, aiutando nel rilevamento 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 fluida e la scalabilità.
Link to this sectionApplicazioni nel mondo reale#
| Agricoltura | Trasporti |
|---|---|
| Tracciamento delle piante nel campo usando Ultralytics YOLO26 | Tracciamento dei veicoli su strada usando Ultralytics YOLO26 |
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True
# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"TrackZone si affida alla lista region per sapere quale parte del fotogramma monitorare. Definisci il poligono in modo che corrisponda alla zona fisica a cui sei interessato (porte, cancelli, ecc.) e mantieni show=True abilitato durante la configurazione, così da poter verificare che la sovrapposizione sia allineata con il feed video.
- Ogni voce in
regionè una coordinata pixel(x, y)nel frame video. Elenca i punti nell'ordine in cui dovrebbero essere collegati lungo il perimetro dell'area che vuoi monitorare. - Le coordinate sono legate alla risoluzione del frame, quindi una regione dimensionata per un feed 1280×720 non si allineerà con una 640×480. Mantieni
show=Truedurante la configurazione in modo da poter confermare che la sovrapposizione corrisponda al tuo feed. TrackZoneriduce i punti al loro involucro convesso, quindi una forma concava viene semplificata nel più piccolo poligono convesso che contiene tutti i suoi punti. Per forme non convesse o diverse aree separate, usa invece la soluzione RegionCounter.- Se ometti
regioninteramente, viene utilizzata una zona predefinita di[(75, 75), (565, 75), (565, 285), (75, 285)].
Link to this sectionArgomenti di TrackZone#
Ecco una tabella con gli argomenti di TrackZone:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso verso un file del modello Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Lista di punti che definiscono la regione di conteggio. |
La soluzione TrackZone include il supporto per i parametri track:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più oggetti ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes | list | None | Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
verbose | bool | True | Controlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati. |
device | str | None | Specifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 o 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 | int or None | None | Specifica la larghezza della linea dei bounding box. Se None, la larghezza della linea viene regolata automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per chiarezza. |
show_conf | bool | True | Mostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento. |
show_labels | bool | True | Mostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati. |
Link to this sectionConta gli oggetti all'interno della zona#
Ogni chiamata al tracker restituisce un oggetto SolutionResults il cui attributo total_tracks contiene il numero di oggetti attualmente tracciati all'interno della zona. Leggilo su ogni frame per monitorare l'occupazione in tempo reale, ad esempio per registrare quanto è trafficato un punto di ingresso o un'area riservata:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
print(f"Objects currently in zone: {results.total_tracks}") # live zone occupancy
cap.release()Link to this sectionFAQ#
Link to this sectionCome posso tracciare oggetti in un'area o zona specifica di un fotogramma video utilizzando Ultralytics YOLO26?#
Tracciare oggetti in un'area o zona definita di un fotogramma video è semplice con Ultralytics YOLO26. Usa 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=TrueLink to this sectionCome posso usare TrackZone in Python con Ultralytics YOLO26?#
Con poche righe di codice, puoi configurare il tracciamento degli oggetti in zone specifiche, rendendolo facile da integrare 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))
video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
trackzone = solutions.TrackZone(
show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()Link to this sectionCome configuro i punti della zona per l'elaborazione video utilizzando Ultralytics TrackZone?#
Configurare i punti della 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
)Ricorda che TrackZone riduce i punti al loro involucro convesso, quindi elencali in ordine lungo il perimetro dell'area che vuoi monitorare.
Link to this sectionQuando dovresti usare TrackZone invece di ObjectCounter o RegionCounter?#
Tutte e tre le soluzioni funzionano con le regioni, ma rispondono a domande diverse:
| Soluzione | Usalo per | Output tipico |
|---|---|---|
| TrackZone | Traccia oggetti e monitora l'occupazione live all'interno di una singola zona convessa | ID tracciati e total_tracks per la zona |
| ObjectCounter | Conta gli oggetti che attraversano una linea o entrano ed escono da una regione | Conteggi cumulativi di entrata e uscita |
| RegionCounter | Conta gli oggetti all'interno di una o più regioni arbitrarie (incluse quelle non convesse) | Conteggi degli oggetti per regione |
Scegli TrackZone quando desideri un tracking continuo all'interno di un'area, e RegionCounter quando hai bisogno di più zone o di una forma non convessa.