Vai al contenuto

TrackZone utilizzando Ultralytics YOLO11

Open TrackZone In Colab

Che cos'è TrackZone?

TrackZone è specializzato nel monitoraggio di oggetti all'interno di aree designate di un'inquadratura, anziché dell'intera inquadratura. Costruito su Ultralytics YOLO11TrackZone integra il rilevamento e il tracciamento degli oggetti all'interno di zone specifiche per i video e i feed di telecamere in diretta. YOLO11 Gli algoritmi avanzati e le tecnologie di deep learning ne fanno una scelta perfetta per i casi d'uso in tempo reale, offrendo un tracciamento preciso ed efficiente degli oggetti in applicazioni come il monitoraggio della folla e la sorveglianza.

Vantaggi del tracciamento degli oggetti in zone (TrackZone)

  • Analisi mirata: Il tracciamento degli oggetti all'interno di zone specifiche consente di ottenere approfondimenti più mirati, permettendo un monitoraggio e un'analisi precisi delle aree di interesse, come i punti di ingresso o le zone riservate.
  • Efficienza migliorata: Restringendo l'ambito di tracciamento a zone definite, TrackZone riduce l'overhead computazionale, garantendo un'elaborazione più rapida e prestazioni ottimali.
  • Maggiore sicurezza: La localizzazione zonale migliora la sorveglianza monitorando le aree critiche, favorendo il rilevamento tempestivo di attività insolite o di violazioni della sicurezza.
  • Soluzioni scalabili: La possibilità di concentrarsi su zone specifiche rende TrackZone adattabile a diversi scenari, dagli spazi commerciali agli ambienti industriali, garantendo una perfetta integrazione e scalabilità.

Applicazioni nel mondo reale

Agricoltura Trasporto
Tracciamento delle piante sul campo Ultralytics YOLO11 Tracciamento dei veicoli su strada Ultralytics YOLO11
Tracciamento delle piante sul campo Ultralytics YOLO11 Tracciamento dei veicoli su strada Ultralytics YOLO11

Esempio di TrackZone con YOLO11

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video/file.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/file.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",  # You can use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # Adjust the line width for bounding boxes and text display
    # classes=[0, 2],  # If you want to count specific classes i.e. person and car with COCO pretrained model.
)

# 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
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

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

Argomento TrackZone

Ecco una tabella con i dati TrackZone argomenti:

Nome Tipo Predefinito Descrizione
model str None Percorso del file del modello Ultralytics YOLO
region list [(150, 150), (1130, 150), (1130, 570), (150, 570)] Elenco di punti che definiscono la regione di tracciamento dell'oggetto.
line_width int 2 Spessore delle linee per i riquadri di delimitazione.
show bool False Flag per controllare se visualizzare il flusso video.

Argomenti model.track

Argomento Tipo Predefinito Descrizione
source str None Specifica la directory di origine delle immagini o dei video. Supporta percorsi di file e URL.
persist bool False Consente il tracciamento persistente degli oggetti tra i fotogrammi, mantenendo gli ID tra le sequenze video.
tracker str botsort.yaml Specifica l'algoritmo di tracciamento da utilizzare, ad es, bytetrack.yaml o botsort.yaml.
conf float 0.3 Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare un maggior numero di oggetti, ma possono includere falsi positivi.
iou float 0.5 Imposta la soglia Intersection over Union (IoU) per il filtraggio dei rilevamenti sovrapposti.
classes list None Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] tiene traccia solo delle classi specificate.
verbose bool True Controlla la visualizzazione dei risultati del tracciamento, fornendo un output visivo degli oggetti tracciati.

FAQ

Come si fa a tracciare gli oggetti in un'area o zona specifica di un fotogramma video utilizzando Ultralytics YOLO11 ?

Il tracciamento di oggetti in un'area o zona definita di un fotogramma video è semplice con Ultralytics YOLO11 . È sufficiente utilizzare 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/file.mp4" show=True

Come posso utilizzare TrackZone in Python con Ultralytics YOLO11 ?

Con poche righe di codice, è possibile impostare il tracciamento degli oggetti in zone specifiche, semplificando l'integrazione nei progetti.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.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
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

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

Come si configurano i punti di zona per l'elaborazione video con Ultralytics TrackZone?

La configurazione dei punti di zona per l'elaborazione video con Ultralytics TrackZone è semplice e personalizzabile. È possibile definire e regolare le zone direttamente tramite uno script di Python , consentendo un controllo preciso delle aree che si desidera monitorare.

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

# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # Display the output
    region=region_points,  # Pass region points
)
📅C reato 1 mese fa ✏️ Aggiornato 0 giorni fa

Commenti