Vai al contenuto

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 degli oggetti VisionEye View con Object Tracking utilizzando Ultralytics YOLO11

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:

  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 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:

  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 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.



📅 Creato 1 anno fa ✏️ Aggiornato 4 mesi fa

Commenti