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 |
---|
![]() |
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.
- Comprensione della scena: Migliora la comprensione della scena 3D per migliorare il processo decisionale in applicazioni come i veicoli autonomi e i sistemi di sorveglianza.
- Evitare le collisioni: Consente ai sistemi di rilevare potenziali collisioni monitorando le distanze tra gli oggetti in movimento.
- Analisi spaziale: Facilita l'analisi delle relazioni e delle interazioni tra gli oggetti nell'ambiente monitorato.
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.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 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 la larghezza della linea delle caselle di delimitazione. Se None La larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza. |
Dettagli sull'implementazione
Il DistanceCalculation
La classe funziona tracciando gli oggetti nei fotogrammi del video e calcolando la distanza euclidea tra i centri delle caselle di delimitazione selezionate. Quando si fa clic su due oggetti, la soluzione:
- Estrae i centroidi (punti centrali) dei rettangoli di selezione.
- Calcola la distanza euclidea tra questi centroidi, espressa in pixel.
- Visualizza la distanza sul riquadro con una linea di collegamento tra gli oggetti.
L'implementazione utilizza il metodo mouse_event_for_distance
per gestire le interazioni con il mouse, consentendo agli utenti di selezionare gli oggetti e di cancellare le selezioni, se necessario. Il metodo process
gestisce l'elaborazione fotogramma per fotogramma, il tracciamento degli oggetti e il calcolo delle distanze.
Applicazioni
Il calcolo della distanza con YOLO11 ha numerose applicazioni pratiche:
- Retail Analytics: Misurare la vicinanza dei clienti ai prodotti e analizzare l'efficacia del layout del negozio.
- Sicurezza industriale: Monitorare le distanze di sicurezza tra lavoratori e macchinari
- Gestione del traffico: Analizzare la distanza tra i veicoli e rilevare le code.
- Analisi sportiva: Calcolare le distanze tra i giocatori, la palla e le posizioni chiave del campo.
- Assistenza sanitaria: Garantire una distanza adeguata nelle aree di attesa e monitorare i movimenti dei pazienti.
- Robotica: Consentire ai robot di mantenere distanze adeguate da ostacoli e persone.
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 i risultati del tracciamento del modello per calcolare le distanze.
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.
- Elaborazione in tempo reale: Esegue calcoli al volo, rendendolo adatto all'analisi video in diretta.
- Capacità di integrazione: Funziona perfettamente con altre soluzioni YOLO11 , come il tracciamento degli oggetti e la stima della velocità.
È 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 YOLO11 .tracker
: Algoritmo di tracciamento da usare (l'impostazione predefinita è 'botsort.yaml').conf
: Soglia di fiducia per i rilevamenti.show
: Flag per visualizzare l'output.
Per un elenco esaustivo e per i valori predefiniti, vedere gli argomenti di DistanceCalculation.