Mappatura degli oggetti VisionEye View con Ultralytics YOLO11 🚀
Cos'è VisionEye Object Mapping?
Ultralytics YOLO11 VisionEye offre ai computer la capacità di identificare e individuare gli oggetti, simulando la precisione osservativa dell'occhio umano. Questa funzionalità consente ai computer di discernere e concentrarsi su oggetti specifici, proprio come l'occhio umano osserva i dettagli da un particolare punto di vista.
Mappatura VisionEye con Ultralytics YOLO
# Monitor objects position with visioneye
yolo solutions visioneye show=True
# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"
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 VisionEye
argomenti:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Percorso del file del modello Ultralytics YOLO. |
vision_point |
tuple[int, int] |
(20, 20) |
Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando VisionEye Solution. |
È anche possibile utilizzare varie track
argomenti all'interno del VisionEye
solution:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml . |
conf |
float |
0.3 |
Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi. |
iou |
float |
0.5 |
Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes |
list |
None |
Filtra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
verbose |
bool |
True |
Controlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati. |
device |
str |
None |
Specifica il dispositivo per l'inferenza (ad esempio, cpu , cuda:0 oppure 0 ). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
Inoltre, sono supportati alcuni argomenti di visualizzazione, come elencato 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 lo spessore della linea dei riquadri di delimitazione. Se None , lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza. |
show_conf |
bool |
True |
Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento. |
show_labels |
bool |
True |
Mostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati. |
Come funziona VisionEye
VisionEye funziona stabilendo un punto di visione fisso nel frame e tracciando linee da questo punto agli oggetti rilevati. Questo simula il modo in cui la visione umana si concentra su più oggetti da un singolo punto di vista. La soluzione utilizza il tracciamento degli oggetti per mantenere un'identificazione coerente degli oggetti attraverso i frame, creando una rappresentazione visiva della relazione spaziale tra l'osservatore (punto di visione) e gli oggetti nella scena.
Il process
Il metodo nella classe VisionEye esegue diverse operazioni chiave:
- Estrae i tracciamenti (bounding box, classi e maschere) dall'immagine di input
- Crea un annotatore per disegnare bounding box ed etichette
- Per ogni oggetto rilevato, disegna un'etichetta di casella e crea una linea di visione dal punto di visione
- Restituisce l'immagine annotata con le statistiche di tracciamento
Questo approccio è particolarmente utile per applicazioni che richiedono consapevolezza spaziale e visualizzazione delle relazioni tra oggetti, come sistemi di sorveglianza, navigazione autonoma e installazioni interattive.
Applicazioni di VisionEye
La mappatura degli oggetti VisionEye ha numerose applicazioni pratiche in vari settori:
- Sicurezza e sorveglianza: Monitora più oggetti di interesse da una posizione fissa della telecamera
- Retail Analytics: Traccia i modelli di movimento dei clienti in relazione agli espositori del negozio.
- Analisi Sportiva: Analizza il posizionamento e il movimento dei giocatori dalla prospettiva di un allenatore
- Veicoli autonomi: Visualizza come un veicolo "vede" e dà priorità agli oggetti nel suo ambiente
- Interazione uomo-computer: 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à, puoi costruire sistemi completi che non solo tracciano gli oggetti, ma ne comprendono anche le relazioni spaziali e i comportamenti.
Nota
Per qualsiasi domanda, non esitate a pubblicare le vostre domande nella sezione dei problemi di Ultralytics o nella sezione di discussione menzionata di seguito.
FAQ
Come posso iniziare a utilizzare VisionEye Object Mapping con Ultralytics YOLO11?
Per iniziare a utilizzare VisionEye Object Mapping con Ultralytics YOLO11, per prima cosa, dovrai installare il pacchetto Ultralytics YOLO tramite pip. Quindi, puoi 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é dovrei usare Ultralytics YOLO11 per la mappatura e il tracking di oggetti?
Ultralytics YOLO11 è rinomato per la sua velocità, precisione e facilità di integrazione, rendendolo una scelta eccellente per la mappatura e il tracciamento degli oggetti. I vantaggi principali includono:
- Prestazioni all'avanguardia: Offre un'elevata accuratezza nel rilevamento di oggetti in tempo reale.
- Flessibilità: Supporta varie attività come il rilevamento, il tracking e il calcolo della distanza.
- Community e Supporto: Ampia documentazione e community 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 maggiori informazioni su applicazioni e vantaggi, consulta la documentazione di Ultralytics YOLO11.
Come posso integrare VisionEye con altri strumenti di machine learning come Comet o ClearML?
Ultralytics YOLO11 può integrarsi perfettamente con vari strumenti di machine learning come Comet e ClearML, migliorando il tracciamento degli esperimenti, la collaborazione e la riproducibilità. Segui le guide dettagliate su come utilizzare YOLOv5 con Comet e integrare YOLO11 con ClearML per iniziare.
Per ulteriori esempi di esplorazione e integrazione, consulta la nostra Guida alle integrazioni Ultralytics.