YOLO Vision 2026:

Mappatura degli oggetti con vista VisionEye utilizzando Ultralytics YOLO26 🚀#

Cos'è 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 particolare punto di vista.

VisionEye object mapping with YOLO tracking

Mappa oggetti con YOLO26#

VisionEye fissa un singolo punto di osservazione nel fotogramma e traccia un raggio da esso verso ogni oggetto tracciato, permettendoti di visualizzare come appare una scena da un unico punto di vista. Imposta vision_point sulle coordinate in pixel dell'osservatore, quindi esegui la soluzione sul tuo video con l'API Python o la CLI.

Mappatura VisionEye utilizzando 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 del modello Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi usando la Soluzione VisionEye.
line_widthint2Spessore della linea per i box, i keypoint e i conteggi disegnati dalla soluzione.
verboseboolTrueAbilita il registro per fotogramma della soluzione relativo a forma dell'input, conteggi delle classi e velocità di elaborazione. La chiamata di tracking in sé è sempre silenziosa.

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

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più oggetti ma possono includere falsi positivi.
ioufloat0.7Imposta la soglia 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.
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, mostra le immagini o i video annotati in una finestra. Utile per un riscontro visivo immediato durante lo sviluppo o i test.
show_confboolTrueMostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueMostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati.

Come funziona VisionEye#

VisionEye funziona stabilendo un punto di vista fisso nel fotogramma e tracciando linee da questo punto agli oggetti rilevati. Ciò simula il modo in cui la vista 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 fotogrammi, 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:

  1. Estrae le tracce (bbox, classi e maschere) dall'immagine di input
  2. Crea un annotatore per disegnare bbox ed etichette
  3. Per ogni oggetto rilevato, disegna un'etichetta nel riquadro e crea una linea di visione dal punto di vista
  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 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 creare sistemi completi che non solo tracciano gli oggetti ma comprendono anche le loro relazioni spaziali e i loro comportamenti.

FAQ#

  • Per iniziare a utilizzare VisionEye Object Mapping con Ultralytics YOLO26, devi prima installare il pacchetto Ultralytics YOLO tramite pip. Dopodiché, puoi 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 windows
  • Ultralytics YOLO26 è rinomato per la sua velocità, precisione e facilità di integrazione, rendendolo la scelta ideale per la mappatura e il tracciamento degli oggetti. I principali vantaggi includono:

    1. Prestazioni allo stato dell'arte: Offre un'elevata accuratezza nel rilevamento degli oggetti in tempo reale.
    2. Flessibilità: Supporta rilevamento, tracciamento e calcolo della distanza in un'unica pipeline.
    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 una rapida distribuzione e iterazione.

    Per ulteriori informazioni su applicazioni e vantaggi, consulta la documentazione di Ultralytics YOLO26.

  • Ultralytics YOLO26 si integra perfettamente con vari strumenti di machine learning come Comet e ClearML, migliorando il monitoraggio 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 approfondimenti ed esempi di integrazione, consulta la nostra Guida alle integrazioni di Ultralytics.

Commenti