Ultralytics YOLO27:

Mappatura degli oggetti della vista di VisionEye tramite Ultralytics YOLO26#

Che cos'è la mappatura degli oggetti VisionEye?#

Ultralytics YOLO26 VisionEye offre ai computer la capacità di identificare e localizzare con precisione gli oggetti, simulando la precisione 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 determinato punto di vista.

VisionEye object mapping with YOLO tracking

Mappa gli oggetti con YOLO26#

VisionEye fissa un singolo punto di osservazione nel fotogramma e traccia un raggio da esso verso ogni oggetto seguito, così puoi visualizzare l'aspetto di una scena da un unico punto di vista. Imposta vision_point sulle coordinate dei pixel dell'osservatore, quindi esegui la soluzione sul tuo 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 VisionEye#

Ecco una tabella con gli argomenti VisionEye:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso al file del modello Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Punto in cui la vista traccia gli oggetti e disegna i percorsi utilizzando la soluzione VisionEye.
line_widthint2Spessore delle linee per i riquadri, i punti chiave e i conteggi disegnati dalla soluzione.
verboseboolTrueAbilita il registro per fotogramma della soluzione, con forma dell'input, conteggi delle classi e velocità di elaborazione. La chiamata di tracciamento è sempre silenziosa.

Puoi anche utilizzare diversi argomenti track nella 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 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 inferenza di destinazione: un numero intero per un'immagine quadrata o una coppia (height, width). Le forme vengono regolate in base al passo del modello.
max_detint300Numero massimo di rilevamenti conservati per fotogramma prima del tracciamento, limitando gli oggetti elaborati da una soluzione in scene dense.
quantizeint or strNonePrecisione dell'inferenza: 16 (FP16) o 32/non impostato (FP32) per i modelli PyTorch e TorchScript; altri formati vengono calcolati alla precisione selezionata dal loro artefatto e runtime. Sostituisce il flag deprecato half.

Sono inoltre supportati alcuni argomenti di visualizzazione, elencati di seguito:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. È utile per ottenere un feedback visivo immediato durante lo sviluppo o i test.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevazione accanto all'etichetta. Fornisce informazioni sul grado di certezza del modello per ogni rilevazione.
show_labelsboolTrueVisualizza le etichette per ogni rilevazione nell'output visivo. Consente di comprendere immediatamente gli oggetti rilevati.

Come funziona VisionEye#

VisionEye funziona stabilendo un punto di osservazione fisso nel fotogramma e tracciando linee da questo punto verso gli oggetti rilevati. Questo simula il modo in cui la vista 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 tra i fotogrammi, creando una rappresentazione visiva della relazione spaziale tra l'osservatore (il punto di osservazione) e gli oggetti nella scena.

Il metodo process nella classe VisionEye esegue diverse operazioni fondamentali:

  1. Estrae le tracce (riquadri di delimitazione, classi e maschere) 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 crea una linea di osservazione dal punto di osservazione
  4. Restituisce l'immagine annotata con le statistiche del tracciamento

Questo approccio è particolarmente utile per le applicazioni che richiedono consapevolezza spaziale e visualizzazione delle relazioni tra oggetti, come i sistemi di sorveglianza, la navigazione autonoma e le 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 del commercio al dettaglio: monitora gli schemi di movimento dei clienti in relazione agli espositori del negozio
  • Analisi sportiva: analizza la posizione e il movimento dei giocatori dalla prospettiva dell'allenatore
  • Veicoli autonomi: visualizza come un veicolo "vede" e dà priorità agli oggetti nel proprio 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 si limitano a tracciare gli oggetti, ma ne comprendono anche le relazioni spaziali e i comportamenti.

FAQ#

  • Per iniziare a utilizzare la mappatura degli oggetti VisionEye con Ultralytics YOLO26, devi prima installare il pacchetto Ultralytics YOLO tramite pip. Poi 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., yolo26s.pt
        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 velocità, la precisione e la facilità di integrazione, che lo rendono una scelta eccellente per la mappatura e il tracciamento degli oggetti. I principali vantaggi includono:

    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 attiva su GitHub per la risoluzione dei problemi e i miglioramenti.
    4. Facilità d'uso: l'API intuitiva semplifica le attività complesse, consentendo un'implementazione e un'iterazione rapide.

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

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

Commenti