Ultralytics YOLO27:
Get Started

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.

VisionEye object mapping with YOLO tracking

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.

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 a un file modello Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Punto in cui VisionEye Solution traccia gli oggetti e disegna i percorsi.
line_widthint2Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione.
verboseboolTrueAbilita 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:

ArgomentoTipoPredefinitoDescrizione
trackerstr'tracktrack.yaml'Specifica l'algoritmo di tracciamento da usare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Imposta la soglia di confidenza per le rilevazioni; valori più bassi consentono di tracciare più oggetti, ma possono includere falsi positivi.
ioufloat0.7Imposta la soglia di Intersezione sull'unione (IoU) per filtrare le rilevazioni sovrapposte.
classeslistNoneFiltra i risultati in base all'indice della classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate.
devicestrNoneSpecifica 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.
imgszint or tuple640Dimensione 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_detint300Numero massimo di rilevazioni da mantenere per fotogramma prima del tracciamento, che limita gli oggetti elaborati da una soluzione nelle scene dense.
quantizeint or strNonePrecisione 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:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe 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_confboolTrueMostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento.
show_labelsboolTrueMostra 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:

  1. Estrae le tracce (riquadri di delimitazione, classi e ID di tracciamento) dall'immagine di input
  2. Crea un annotatore per disegnare riquadri di delimitazione ed etichette
  3. Per ogni oggetto rilevato, disegna un'etichetta del riquadro e traccia una linea visiva dal punto di osservazione
  4. 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 aperte
  • Ultralytics 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:

    1. Prestazioni all'avanguardia: offre un'elevata precisione nel rilevamento degli oggetti in tempo reale.
    2. Flessibilità: supporta il rilevamento, il tracciamento e il calcolo della distanza in un'unica pipeline.
    3. Community e supporto: documentazione completa e community GitHub attiva per la risoluzione dei problemi e i miglioramenti.
    4. 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.

Commenti