Mappatura degli oggetti con VisionEye View e Ultralytics YOLO26#
Che cos'è la mappatura degli oggetti VisionEye?#
Ultralytics YOLO26 VisionEye offre ai computer la possibilità di identificare e localizzare gli oggetti, simulando la precisione dell'occhio umano. Questa funzionalità consente ai computer di distinguere e mettere a fuoco oggetti specifici, proprio come l'occhio umano osserva i dettagli da un punto di vista particolare.
Mappa gli oggetti con YOLO26#
VisionEye fissa un unico punto di osservazione nell'inquadratura e traccia una linea da questo punto a ogni oggetto tracciato, così puoi visualizzare la scena da un unico punto di vista. Imposta vision_point sulle coordinate in pixel dell'osservatore, quindi esegui la soluzione sul video con l'API Python o la CLI.
# 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]"Argomenti di VisionEye#
Ecco una tabella con gli argomenti di VisionEye:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso a un file modello Ultralytics YOLO. |
vision_point | tuple[int, int] | (20, 20) | Punto in cui VisionEye Solution traccia gli oggetti e disegna i percorsi. |
line_width | int | 2 | Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita il log per frame della soluzione, con forma dell'input, conteggi per classe e velocità di elaborazione. La chiamata di tracking è sempre silenziosa. |
Puoi anche utilizzare diversi argomenti track nella soluzione VisionEye:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Specifica l'algoritmo di tracciamento da usare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Imposta la soglia di confidenza per le rilevazioni; valori più bassi consentono di tracciare più oggetti, ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersezione sull'unione (IoU) per filtrare le rilevazioni sovrapposte. |
classes | list | None | Filtra i risultati in base all'indice della classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
device | str | None | Specifica il dispositivo per l'inferenza (ad es. cpu, cuda:0 o 0). Consente di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
imgsz | int or tuple | 640 | Dimensione dell'immagine di destinazione per l'inferenza: un intero per un'immagine quadrata o una coppia (height, width). Le forme vengono adattate allo stride del modello. |
max_det | int | 300 | Numero massimo di rilevazioni da mantenere per fotogramma prima del tracciamento, che limita gli oggetti elaborati da una soluzione nelle scene dense. |
quantize | int or str | None | Precisione dell’inferenza: 16 (FP16) oppure 32/unset (FP32) per i modelli PyTorch e TorchScript quando non si usa la CPU; gli altri formati usano la precisione selezionata dal rispettivo artefatto e ambiente di esecuzione. Sostituisce l’argomento deprecato half. |
Sono inoltre supportati alcuni argomenti di visualizzazione, elencati di seguito:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se True, mostra le immagini o i video annotati in una finestra. Utile per ottenere un riscontro visivo immediato durante lo sviluppo o i test. |
show_conf | bool | True | Mostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento. |
show_labels | bool | True | Mostra le etichette di ogni rilevamento nell'output visivo. Permette di identificare immediatamente gli oggetti rilevati. |
Come funziona VisionEye#
VisionEye funziona stabilendo un punto di osservazione fisso nell'inquadratura e tracciando linee da questo punto agli oggetti rilevati. In questo modo simula il modo in cui la vista umana mette a fuoco più oggetti da un unico punto di osservazione. La soluzione usa il tracciamento degli oggetti per mantenere un'identificazione coerente degli oggetti tra i fotogrammi e creare una rappresentazione visiva della relazione spaziale tra l'osservatore (punto di osservazione) e gli oggetti nella scena.
Il metodo process della classe VisionEye esegue diverse operazioni chiave:
- Estrae le tracce (riquadri di delimitazione, classi e ID di tracciamento) dall'immagine di input
- Crea un annotatore per disegnare riquadri di delimitazione ed etichette
- Per ogni oggetto rilevato, disegna un'etichetta del riquadro e traccia una linea visiva dal punto di osservazione
- Restituisce l'immagine annotata con le statistiche di tracciamento
Questo approccio è particolarmente utile nelle applicazioni che richiedono consapevolezza spaziale e visualizzazione delle relazioni tra gli oggetti, come i sistemi di videosorveglianza, la navigazione autonoma e le installazioni interattive.
Applicazioni di VisionEye#
La mappatura degli oggetti VisionEye ha numerose applicazioni pratiche in diversi settori:
- Sicurezza e videosorveglianza: monitora più oggetti di interesse da una posizione fissa della videocamera
- Analisi del commercio al dettaglio: traccia gli schemi di movimento dei clienti rispetto agli espositori del negozio
- Analisi sportiva: analizza la posizione e i movimenti dei giocatori dal punto di vista dell'allenatore
- Veicoli autonomi: visualizza come un veicolo "vede" e dà priorità agli oggetti nell'ambiente circostante
- 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 creare sistemi completi che non si limitano a tracciare gli oggetti, ma ne comprendono anche le relazioni spaziali e i comportamenti.
Domande frequenti#
Per iniziare a usare la mappatura degli oggetti VisionEye con Ultralytics YOLO26, installa innanzitutto il pacchetto Ultralytics YOLO tramite pip. Poi puoi usare 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" # Scrittore video 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)) # Inizializza l'oggetto vision eye visioneye = solutions.VisionEye( show=True, # visualizza l'output model="yolo26n.pt", # usa qualsiasi modello supportato da Ultralytics, ad es. yolo26s.pt classes=[0, 2], # genera la vista visioneye per classi specifiche ) # Elabora il 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) # accedi all'output video_writer.write(results.plot_im) # scrivi il file video cap.release() video_writer.release() cv2.destroyAllWindows() # chiudi tutte le finestre aperteUltralytics YOLO26 è rinomato per la velocità, la precisione e la facilità di integrazione, caratteristiche che lo rendono una scelta ideale per la mappatura e il tracciamento degli oggetti. Ecco alcuni vantaggi chiave:
- Prestazioni all'avanguardia: offre un'elevata precisione nel rilevamento degli oggetti in tempo reale.
- Flessibilità: supporta il rilevamento, il tracciamento e il calcolo della distanza in un'unica pipeline.
- Community e supporto: documentazione completa e community GitHub attiva per la risoluzione dei problemi e i miglioramenti.
- Facilità d'uso: l'API intuitiva semplifica le attività complesse e consente di distribuire e iterare rapidamente.
Per ulteriori informazioni sulle applicazioni e sui vantaggi, consulta la documentazione di Ultralytics YOLO26.
Ultralytics YOLO26 si integra facilmente con diversi strumenti di machine learning, come Comet e ClearML, migliorando il tracciamento degli esperimenti, la collaborazione e la riproducibilità. Per iniziare, segui le guide dettagliate sull'integrazione di YOLO26 con Comet e sull'integrazione di YOLO26 con ClearML.
Per approfondire e consultare esempi di integrazione, dai un'occhiata alla guida alle integrazioni Ultralytics.