Vai al contenuto

VisionEye View Object Mapping con Ultralytics YOLO26 🚀

Cos'è VisionEye Object Mapping?

Ultralytics YOLO26 VisionEye offre ai computer la capacità di identificare e individuare oggetti, simulando la precisione osservativa dell'occhio umano. Questa funzionalità consente ai computer di discernere e focalizzarsi su oggetti specifici, proprio come l'occhio umano osserva i dettagli da un particolare punto di vista.

Mappatura degli oggetti VisionEye con YOLO

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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point where VisionEye 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

Il vision_point La tupla rappresenta la posizione dell'osservatore in coordinate pixel. Regolarla in modo che corrisponda alla prospettiva della telecamera in modo che i raggi renderizzati illustrino correttamente come gli oggetti si relazionano al punto di vista scelto.

VisionEye Argomenti

Ecco una tabella con i VisionEye argomenti:

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

È anche possibile utilizzare varie track argomenti all'interno del VisionEye solution:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml.
conffloat0.1Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi.
ioufloat0.7Imposta la soglia Intersection over Union (IoU) per filtrare i detect sovrapposti.
classeslistNoneFiltra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verboseboolTrueControlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati.
devicestrNoneSpecifica 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:

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 della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueMostra 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:

  1. Estrae i tracciamenti (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 di casella 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
  • 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 si inizia a usare VisionEye Object Mapping con Ultralytics YOLO26?

Per iniziare a utilizzare VisionEye Object Mapping con Ultralytics YOLO26, per prima cosa, dovrai installare il pacchetto Ultralytics YOLO tramite pip. Successivamente, puoi utilizzare il codice di esempio fornito nella documentazione per configurare l'object detection 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 il mapping e il tracking degli oggetti?

Ultralytics YOLO26 è rinomato per la sua velocità, precisione e facilità di integrazione, rendendolo una scelta eccellente per il mapping e il tracking degli oggetti. I principali vantaggi includono:

  1. Prestazioni all'avanguardia: Offre un'elevata accuratezza nel rilevamento di oggetti in tempo reale.
  2. Flessibilità: Supporta varie attività come il rilevamento, il tracking e il calcolo della distanza.
  3. Community e Supporto: Ampia documentazione e community GitHub attiva per la risoluzione dei problemi e i miglioramenti.
  4. 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 YOLO26.

Come 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 tracking degli esperimenti, la collaborazione e la riproducibilità. Segui le guide dettagliate su come usare YOLOv5 con Comet e integrare YOLO26 con ClearML per iniziare.

Per ulteriori esempi di esplorazione e integrazione, consulta la nostra Guida alle integrazioni Ultralytics.



📅 Creato 2 anni fa ✏️ Aggiornato 7 giorni fa
glenn-jocherRizwanMunawarUltralyticsAssistantMatthewNoyceIvorZhu331RizwanMunawar

Commenti