Vai al contenuto

Calcolo della distanza con Ultralytics YOLO11

Che cos'è il calcolo della distanza?

La misurazione dello spazio tra due oggetti è nota come calcolo della distanza all'interno di uno spazio specifico. Nel caso di Ultralytics YOLO11il centroide del rettangolo di selezione viene utilizzato per calcolare la distanza dei rettangoli di selezione evidenziati dall'utente.



Guarda: Calcolo della distanza con Ultralytics YOLO11

Immagini

Calcolo della distanza con Ultralytics YOLO11
Ultralytics YOLO11 Calcolo della distanza

Vantaggi del calcolo della distanza?

  • Precisione di localizzazione: Migliora l'accuratezza del posizionamento spaziale nelle attività di visione computerizzata.
  • Stima delle dimensioni: Consente di stimare le dimensioni degli oggetti per una migliore comprensione del contesto.
Calcolo della distanza
  • Fare clic su due caselle di delimitazione qualsiasi con il tasto sinistro del mouse per calcolare la distanza.
  • Facendo clic con il tasto destro del mouse si cancellano tutti i punti disegnati
  • Il clic sinistro del mouse può essere utilizzato per disegnare punti
La distanza è una stima
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

Calcolo della distanza con Ultralytics YOLO

import cv2

from ultralytics import solutions

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

# 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("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
    model="yolo11n.pt",  # path to the YOLO11 model file.
    show=True,  # display the output
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = distancecalculator(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

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

DistanceCalculation() Argomenti

Ecco una tabella con i dati DistanceCalculation argomenti:

Argomento Tipo Predefinito Descrizione
model str None Percorso del file del modelloYOLO Ultralytics .

È inoltre possibile utilizzare diversi track argomenti nella sezione DistanceCalculation soluzione.

Argomento Tipo Predefinito Descrizione
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.
device str None Specifica il dispositivo per l'inferenza (ad es, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, uno specifico GPU o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono disponibili i seguenti argomenti di visualizzazione:

Argomento Tipo Predefinito Descrizione
show bool False Se Truevisualizza 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 la larghezza della linea delle caselle di delimitazione. Se NoneLa larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza.

FAQ

Come si calcolano le distanze tra gli oggetti utilizzando Ultralytics YOLO11 ?

Per calcolare le distanze tra gli oggetti utilizzando Ultralytics YOLO11è necessario identificare i centroidi del rettangolo di selezione degli oggetti rilevati. Questo processo comporta l'inizializzazione dei parametri DistanceCalculation da Ultralytics' solutions e utilizzando le uscite di tracciamento del modello per calcolare le distanze. Si può fare riferimento all'implementazione nel file esempio di calcolo della distanza.

Quali sono i vantaggi dell'utilizzo del calcolo della distanza con Ultralytics YOLO11 ?

L'utilizzo del calcolo della distanza con Ultralytics YOLO11 offre diversi vantaggi:

  • Precisione di localizzazione: Fornisce un posizionamento spaziale preciso per gli oggetti.
  • Stima delle dimensioni: Aiuta a stimare le dimensioni fisiche, contribuendo a una migliore comprensione del contesto.
  • Comprensione della scena: Migliora la comprensione della scena 3D, favorendo un migliore processo decisionale in applicazioni come la guida autonoma e la sorveglianza.

È possibile eseguire il calcolo della distanza nei flussi video in tempo reale con Ultralytics YOLO11 ?

Sì, è possibile eseguire il calcolo della distanza nei flussi video in tempo reale con Ultralytics YOLO11 . Il processo prevede l'acquisizione di fotogrammi video utilizzando OpenCV, corsa YOLO11 rilevamento degli oggettie utilizzando l'opzione DistanceCalculation per calcolare le distanze tra gli oggetti in fotogrammi successivi. Per un'implementazione dettagliata, vedere il file esempio di flusso video.

Come si eliminano i punti tracciati durante il calcolo della distanza utilizzando Ultralytics YOLO11 ?

Per cancellare i punti disegnati durante il calcolo della distanza con Ultralytics YOLO11 , è possibile fare clic con il tasto destro del mouse. Questa azione cancellerà tutti i punti disegnati. Per maggiori dettagli, consultare la sezione delle note sotto l'esempio di calcolo della distanza.

Quali sono gli argomenti chiave per inizializzare la classe DistanceCalculation in Ultralytics YOLO11 ?

Gli argomenti chiave per l'inizializzazione del file DistanceCalculation in Ultralytics YOLO11 includono:

  • model: Percorso del file del modello.

Per un elenco esaustivo e per i valori predefiniti, vedere gli argomenti di DistanceCalculation.

📅C reato 1 anno fa ✏️ Aggiornato 5 giorni fa

Commenti