VisionEye View Object Mapping con Ultralytics YOLO26 🚀

Cos'è la mappatura degli oggetti VisionEye?

VisionEye di Ultralytics YOLO26 offre ai computer la capacità di identificare e localizzare oggetti, simulando la precisione di osservazione dell'occhio umano. Questa funzionalità permette ai computer di distinguere e concentrarsi su oggetti specifici, proprio come l'occhio umano osserva i dettagli da un punto di vista particolare.

VisionEye object mapping with YOLO tracking

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]"

Argomenti di VisionEye

Ecco una tabella con gli argomenti di VisionEye:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file modello Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando la VisionEye Solution.

Puoi anche utilizzare vari argomenti di track all'interno della soluzione VisionEye:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare, ad esempio bytetrack.yaml o botsort.yaml.
conffloat0.1Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono il tracciamento di più oggetti ma potrebbero includere falsi positivi.
ioufloat0.7Imposta la soglia di Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti.
classeslistNoneFiltra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verboseboolTrueControlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad esempio cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, una specifica GPU o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono supportati alcuni argomenti di visualizzazione, come elencato di seguito:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_widthint or NoneNoneSpecifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore viene regolato automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per maggiore chiarezza.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Offre informazioni sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueVisualizza le etichette per ogni rilevamento nell'output visivo. Fornisce 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 verso gli oggetti rilevati. Ciò simula come 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 tra i frame, creando una rappresentazione visiva della relazione spaziale tra l'osservatore (punto di visione) e gli oggetti nella scena.

Il metodo process nella classe VisionEye esegue diverse operazioni chiave:

  1. Estrae le tracce (bounding box, classi e maschere) dall'immagine di input
  2. Crea un annotatore per disegnare bounding box ed etichette
  3. Per ogni oggetto rilevato, disegna un'etichetta nel riquadro e crea una linea di visione dal punto di visione
  4. 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
  • Analisi Retail: Traccia i modelli di movimento dei clienti in relazione alle esposizioni 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 assegna una 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.

Nota

Per qualsiasi richiesta, non esitare a pubblicare le tue domande nella sezione Issue di Ultralytics o nella sezione di discussione menzionata di seguito.

FAQ

Come inizio a utilizzare la mappatura degli oggetti VisionEye con Ultralytics YOLO26?

Per iniziare a utilizzare la mappatura degli oggetti VisionEye con Ultralytics YOLO26, innanzitutto dovrai installare il pacchetto Ultralytics YOLO tramite pip. Successivamente, 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="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 windows

Perché 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 la scelta migliore per la mappatura e il tracciamento degli oggetti. I vantaggi chiave includono:

  1. Prestazioni all'avanguardia: Offre un'elevata precisione nel rilevamento di oggetti in tempo reale.
  2. Flessibilità: Supporta varie attività come il rilevamento, il tracciamento e il calcolo della distanza.
  3. Community e Supporto: Ampia documentazione e una community attiva su GitHub per la risoluzione dei problemi e i miglioramenti.
  4. Facilità d'uso: L'API intuitiva semplifica attività complesse, consentendo un rapido deployment e iterazione.

Per maggiori informazioni sulle applicazioni e i vantaggi, dai un'occhiata alla documentazione di Ultralytics YOLO26.

Come posso integrare VisionEye con altri strumenti di apprendimento automatico come Comet o ClearML?

Ultralytics YOLO26 può integrarsi perfettamente con vari strumenti di apprendimento automatico 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, consulta la nostra Guida alle Integrazioni di Ultralytics.

Commenti