Link to this sectionMappatura degli oggetti con vista VisionEye utilizzando Ultralytics YOLO26 🚀#
Link to this sectionCos'è la mappatura degli oggetti VisionEye?#
Ultralytics YOLO26 VisionEye offre ai computer la capacità di identificare e localizzare oggetti, simulando la precisione osservativa dell'occhio umano. Questa funzionalità consente ai computer di distinguere e concentrarsi su oggetti specifici, proprio come l'occhio umano osserva i dettagli da un punto di vista particolare.
# 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]"Link to this sectionArgomenti di VisionEye#
Ecco una tabella con gli argomenti di VisionEye:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso verso un 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 usando la Soluzione VisionEye. |
Puoi anche utilizzare vari argomenti di track all'interno della soluzione VisionEye:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più oggetti ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes | list | None | Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
verbose | bool | True | Controlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati. |
device | str | None | Specifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 o 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 | int or None | None | Specifica la larghezza della linea dei bounding box. Se None, la larghezza della linea viene regolata automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per chiarezza. |
show_conf | bool | True | Mostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento. |
show_labels | bool | True | Mostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati. |
Link to this sectionCome funziona VisionEye#
VisionEye funziona stabilendo un punto di vista fisso nel frame e tracciando linee da questo punto agli oggetti rilevati. Questo simula come la visione umana si concentra su più oggetti da un unico punto di osservazione. 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 vista) e gli oggetti nella scena.
Il metodo process nella classe VisionEye esegue diverse operazioni chiave:
- Estrae le tracce (bbox, classi e maschere) dall'immagine di input
- Crea un annotatore per disegnare bbox ed etichette
- Per ogni oggetto rilevato, disegna un'etichetta nel riquadro e crea una linea di visione dal punto di vista
- 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.
Link to this sectionApplicazioni di VisionEye#
La mappatura degli oggetti VisionEye ha numerose applicazioni pratiche in diversi settori:
- Sicurezza e Sorveglianza: Monitora più oggetti di interesse da una posizione fissa della telecamera
- Analisi Retail: 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: Crea interfacce più intuitive che rispondono 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 comprendono anche le loro relazioni spaziali e i loro comportamenti.
Link to this sectionNota#
Per qualsiasi richiesta, non esitare a pubblicare le tue domande nella sezione Issue di Ultralytics o nella sezione discussioni menzionata di seguito.
Link to this sectionFAQ#
Link to this sectionCome inizio a utilizzare la mappatura degli oggetti VisionEye con Ultralytics YOLO26?#
Per iniziare a utilizzare la mappatura degli oggetti VisionEye con Ultralytics YOLO26, per prima cosa dovrai installare il pacchetto Ultralytics YOLO tramite pip. Successivamente, potrai utilizzare il codice di esempio fornito nella documentazione per configurare 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="yolo26n.pt", # use any model that Ultralytics supports, e.g., 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 windowsLink to this sectionPerché dovrei usare Ultralytics YOLO26 per la mappatura e il tracciamento degli oggetti?#
Ultralytics YOLO26 è rinomato per la sua velocità, accuratezza e facilità di integrazione, rendendolo una scelta eccellente per la mappatura e il tracciamento degli oggetti. I vantaggi chiave includono:
- Prestazioni allo stato dell'arte: Offre un'elevata accuratezza nel rilevamento degli oggetti in tempo reale.
- Flessibilità: Supporta varie attività come rilevamento, tracciamento e calcolo della distanza.
- Community e Supporto: Ampia documentazione e una community attiva su GitHub per la risoluzione dei problemi e i miglioramenti.
- Facilità d'uso: L'API intuitiva semplifica attività complesse, consentendo una rapida distribuzione e iterazione.
Per ulteriori informazioni sulle applicazioni e i vantaggi, consulta la documentazione di Ultralytics YOLO26.
Link to this sectionCome posso integrare VisionEye con altri strumenti di machine learning come Comet o ClearML?#
Ultralytics YOLO26 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 YOLO26 con ClearML per iniziare.
Per ulteriori esplorazioni ed esempi di integrazione, controlla la nostra Guida alle integrazioni di Ultralytics.