YOLO Vision 2026:

TrackZone con Ultralytics YOLO26#

Cos'è TrackZone?#

Open TrackZone In Colab

TrackZone è specializzato nel monitoraggio di oggetti all'interno di aree designate di un fotogramma anziché dell'intero fotogramma. Basato su Ultralytics YOLO26, integra il rilevamento degli oggetti e il tracciamento specificamente all'interno di zone per video e flussi di telecamere in tempo reale. Gli algoritmi avanzati di YOLO26 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 di folle e la sorveglianza.



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Vantaggi 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à.

Applicazioni nel mondo reale#

AgricolturaTrasporti
Plants Tracking in Field Using Ultralytics YOLO26Vehicles Tracking on Road using Ultralytics YOLO26
Tracciamento delle piante nel campo usando Ultralytics YOLO26Tracciamento dei veicoli su strada usando Ultralytics YOLO26
TrackZone con Ultralytics YOLO
# 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 all'elenco region per sapere quale parte del fotogramma monitorare. Definisci il poligono in modo che corrispondi alla zona fisica di tuo interesse (porte, cancelli, ecc.) e mantieni show=True abilitato durante la configurazione in modo da poter verificare che la sovrapposizione sia allineata con il flusso video.

Definire la zona di tracking
  • Ogni voce in region è una coordinata pixel (x, y) nel fotogramma video. Elenca i punti nell'ordine in cui devono essere collegati attorno al perimetro dell'area che desideri monitorare.
  • Le coordinate sono legate alla risoluzione del fotogramma, quindi una regione dimensionata per un flusso 1280×720 non si allineerà con una 640×480. Mantieni show=True durante la configurazione in modo da poter confermare che la sovrapposizione corrisponda al tuo flusso.
  • TrackZone riduce 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 concave o diverse aree separate, usa invece la soluzione RegionCounter.
  • Se ometti completamente region, viene utilizzata una zona predefinita di [(75, 75), (565, 75), (565, 285), (75, 285)].

Argomenti di TrackZone#

Ecco una tabella con gli argomenti di TrackZone:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file del modello Ultralytics YOLO.
regionlist o dictNonePunti che definiscono la regione di interesse, sia una lista di tuple (x, y) o un dizionario che associa i nomi delle regioni a liste di punti per più regioni (solo RegionCounter). Quando None, le soluzioni che richiedono una regione fanno ricorso a un valore predefinito.
line_widthint2Spessore della linea per i box, i keypoint e i conteggi disegnati dalla soluzione.
verboseboolTrueAbilita il registro per fotogramma della soluzione relativo a forma dell'input, conteggi delle classi e velocità di elaborazione. La chiamata di tracking in sé è sempre silenziosa.

La soluzione TrackZone include il supporto per i parametri track:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più oggetti ma possono includere falsi positivi.
ioufloat0.7Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti.
classeslistNoneFiltra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, una specifica GPU o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono disponibili le seguenti opzioni di visualizzazione:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, mostra le immagini o i video annotati in una finestra. Utile per un riscontro visivo immediato durante lo sviluppo o i test.
show_confboolTrueMostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueMostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati.

Conta 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 fotogramma per monitorare l'occupazione in tempo reale, ad esempio per registrare quanto sia trafficato un punto di ingresso o un'area ristretta:

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()

FAQ#

  • 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=True
  • 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()
  • 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 attorno al perimetro dell'area che desideri monitorare.

  • Tutte e tre le soluzioni funzionano con le regioni, ma rispondono a domande diverse:

    SoluzioneUsalo perOutput tipico
    TrackZoneTraccia oggetti e monitora l'occupazione live all'interno di una singola zona convessaID tracciati e total_tracks per la zona
    ObjectCounterConta gli oggetti che attraversano una linea o entrano ed escono da una regioneConteggi cumulativi di entrata e uscita
    RegionCounterConta gli oggetti all'interno di una o più regioni arbitrarie (incluse quelle non convesse)Conteggi degli oggetti per regione

    Scegli TrackZone quando desideri un tracciamento continuo all'interno di un'area e RegionCounter quando hai bisogno di più zone o di una forma non convessa.

Commenti