VisionEye Visualizza la mappatura degli oggetti utilizzando Ultralytics YOLO11 🚀
Che cos'è la mappatura degli oggetti di VisionEye?
Ultralytics YOLO11 VisionEye consente ai computer di identificare e individuare gli oggetti, simulando la precisione di osservazione dell'occhio umano. Questa funzionalità consente ai computer di individuare e mettere a fuoco oggetti specifici, proprio come l'occhio umano osserva i dettagli da un particolare punto di vista.
Mappatura VisionEye 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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
vision_point=(50, 50), # the point, where vision will view objects and draw tracks
)
# 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
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
VisionEye
Argomenti
Ecco una tabella con i dati VisionEye
argomenti:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Percorso del file del modelloYOLO Ultralytics . |
vision_point |
tuple[int, int] |
(50, 50) |
Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando VisionEye Solution. |
È inoltre possibile utilizzare diversi track
all'interno del file VisionEye
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 supportati alcuni argomenti di visualizzazione, come quelli elencati di seguito:
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. |
Come funziona VisionEye
VisionEye funziona stabilendo un punto di visione fisso nell'inquadratura e tracciando linee da questo punto agli oggetti rilevati. In questo modo si simula il modo in cui la visione umana si concentra su più oggetti da un unico punto di vista. La soluzione utilizza il tracciamento degli oggetti per mantenere un'identificazione coerente degli oggetti nei vari fotogrammi, creando una rappresentazione visiva della relazione spaziale tra l'osservatore (punto di visione) e gli oggetti della scena.
Il process
della classe VisionEye esegue diverse operazioni fondamentali:
- Estrae i tracciati (riquadri di delimitazione, classi e maschere) dall'immagine di input.
- Crea un annotatore per disegnare i riquadri di delimitazione e le etichette.
- Per ogni oggetto rilevato, disegna l'etichetta di un riquadro e crea una linea di visione dal punto di visione.
- Restituisce l'immagine annotata con le statistiche di tracciamento
Questo approccio è particolarmente utile per le applicazioni che richiedono la consapevolezza spaziale e la visualizzazione delle relazioni tra gli oggetti, come i sistemi di sorveglianza, la navigazione autonoma e le installazioni interattive.
Applicazioni di VisionEye
La mappatura degli oggetti di VisionEye ha numerose applicazioni pratiche in diversi settori:
- Sicurezza e sorveglianza: Monitoraggio di più oggetti di interesse da una posizione fissa della telecamera
- Retail Analytics: Tracciare i modelli di movimento dei clienti in relazione agli espositori del negozio
- Analisi sportiva: Analizzare il posizionamento e il movimento dei giocatori dal punto di vista dell'allenatore.
- Veicoli autonomi: Visualizzare come un veicolo "vede" e dà priorità agli oggetti nel suo ambiente.
- Interazione uomo-macchina: Creare interfacce più intuitive che rispondano alle relazioni spaziali.
Combinando VisionEye con altre soluzioni Ultralytics , come il calcolo della distanza o la stima della velocità, è possibile costruire sistemi completi che non solo tracciano gli oggetti, ma ne comprendono anche le relazioni spaziali e i comportamenti.
Nota
Per qualsiasi richiesta, non esitate a postare le vostre domande nella sezione Problemi diUltralytics o nella sezione di discussione indicata di seguito.
FAQ
Come si inizia a utilizzare VisionEye Object Mapping con Ultralytics YOLO11 ?
Per iniziare a usare VisionEye Object Mapping con Ultralytics YOLO11 , è necessario installare il pacchetto Ultralytics YOLO tramite pip. Quindi, si può utilizzare il codice di esempio fornito nella documentazione per impostare il rilevamento degli oggetti con VisionEye. Ecco un semplice esempio per iniziare:
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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
)
# 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
results = visioneye(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
Perché utilizzare Ultralytics YOLO11 per la mappatura e il tracciamento degli oggetti?
Ultralytics YOLO11 è rinomato per la sua velocità, precisione e facilità di integrazione, che lo rendono la scelta migliore per la mappatura e il tracciamento degli oggetti. I vantaggi principali includono:
- Prestazioni all'avanguardia: Offre un'elevata precisione nel rilevamento degli oggetti in tempo reale.
- Flessibilità: Supporta diverse attività come il rilevamento, il tracciamento e il calcolo della distanza.
- Comunità e supporto: Ampia documentazione e comunità GitHub attiva per la risoluzione dei problemi e i miglioramenti.
- Facilità d'uso: l'API intuitiva semplifica le attività complesse, consentendo una rapida implementazione e iterazione.
Per ulteriori informazioni sulle applicazioni e sui vantaggi, consultate la documentazione di Ultralytics YOLO11 .
Come posso integrare VisionEye con altri strumenti di apprendimento automatico come Comet o ClearML?
Ultralytics YOLO11 può integrarsi perfettamente con vari strumenti di apprendimento automatico come Comet e ClearML, migliorando il tracciamento degli esperimenti, la collaborazione e la riproducibilità. Seguite le guide dettagliate su come utilizzare YOLOv5 con Comet e integrare YOLO11 con ClearML per iniziare.
Per ulteriori approfondimenti ed esempi di integrazione, consultate la nostra Guida alle integrazioni diUltralytics .