Segmentazione di istanze e tracciamento con Ultralytics YOLO26 🚀

Cos'è la segmentazione di istanze?

La segmentazione di istanze è un'attività di computer vision che consiste nell'identificare e delineare singoli oggetti in un'immagine a livello di pixel. A differenza della segmentazione semantica, che classifica i pixel solo per categoria, la segmentazione di istanze etichetta in modo univoco e delinea con precisione ogni istanza di oggetto, rendendola cruciale per applicazioni che richiedono una comprensione spaziale dettagliata come l'imaging medico, la guida autonoma e l'automazione industriale.

Ultralytics YOLO26 offre potenti funzionalità di segmentazione di istanze che consentono di rilevare con precisione i confini degli oggetti, mantenendo la velocità e l'efficienza per cui i modelli YOLO sono noti.

Esistono due tipi di tracciamento tramite segmentazione di istanze disponibili nel pacchetto Ultralytics:

  • Segmentazione di istanze con oggetti di classe: ad ogni classe di oggetti viene assegnato un colore univoco per una chiara distinzione visiva.

  • Segmentazione di istanze con tracciamento oggetti: ogni traccia è rappresentata da un colore distinto, facilitando l'identificazione e il monitoraggio tra i fotogrammi video.



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

Campioni

Segmentazione di istanzeSegmentazione di istanze + Tracciamento oggetti
Segmentazione di istanze UltralyticsSegmentazione di istanze Ultralytics con tracciamento oggetti
Segmentazione di istanze Ultralytics 😍Segmentazione di istanze Ultralytics con tracciamento oggetti 🔥
Segmentazione di istanze tramite Ultralytics YOLO
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True

# Pass a source video
yolo solutions isegment source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"

Argomenti InstanceSegmentation

Ecco una tabella con gli argomenti di InstanceSegmentation:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file modello Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Elenco di punti che definiscono la regione di conteggio.

Puoi anche sfruttare gli argomenti di track all'interno della soluzione InstanceSegmentation:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare, ad esempio bytetrack.yaml o botsort.yaml.
conffloat0.1Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono il tracciamento di più oggetti ma potrebbero includere falsi positivi.
ioufloat0.7Imposta la soglia di 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.
verboseboolTrueControlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati.
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 disponibili i seguenti argomenti di visualizzazione:

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 viene regolato automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per maggiore chiarezza.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Offre informazioni sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueVisualizza le etichette per ogni rilevamento nell'output visivo. Fornisce una comprensione immediata degli oggetti rilevati.

Applicazioni della segmentazione di istanze

La segmentazione di istanze con YOLO26 ha numerose applicazioni nel mondo reale in vari settori:

Gestione dei rifiuti e riciclaggio

YOLO26 può essere utilizzato negli impianti di gestione dei rifiuti per identificare e smistare diversi tipi di materiali. Il modello è in grado di segmentare con elevata precisione rifiuti di plastica, cartone, metallo e altri materiali riciclabili, consentendo ai sistemi di smistamento automatico di gestire i rifiuti in modo più efficiente. Questo è particolarmente prezioso se si considera che solo circa il 10% dei 7 miliardi di tonnellate di rifiuti plastici generati a livello globale viene riciclato.

Veicoli autonomi

Nelle auto a guida autonoma, la segmentazione di istanze aiuta a identificare e tracciare pedoni, veicoli, segnali stradali e altri elementi stradali a livello di pixel. Questa comprensione precisa dell'ambiente è fondamentale per le decisioni di navigazione e sicurezza. Le prestazioni in tempo reale di YOLO26 lo rendono ideale per queste applicazioni sensibili al fattore tempo.

Imaging medico

La segmentazione di istanze può identificare e delineare tumori, organi o strutture cellulari nelle scansioni mediche. La capacità di YOLO26 di delineare con precisione i confini degli oggetti lo rende prezioso per la diagnostica medica e la pianificazione dei trattamenti.

Monitoraggio dei cantieri edili

Nei cantieri edili, la segmentazione di istanze può tracciare macchinari pesanti, lavoratori e materiali. Ciò aiuta a garantire la sicurezza monitorando le posizioni delle attrezzature e rilevando quando i lavoratori entrano in aree pericolose, ottimizzando al contempo il flusso di lavoro e l'allocazione delle risorse.

Nota

Per qualsiasi richiesta, non esitare a pubblicare le tue domande nella sezione Issue di Ultralytics o nella sezione di discussione menzionata di seguito.

FAQ

Come posso eseguire la segmentazione di istanze utilizzando Ultralytics YOLO26?

Per eseguire la segmentazione di istanze utilizzando Ultralytics YOLO26, inizializza il modello YOLO con una versione di segmentazione di YOLO26 ed elabora i fotogrammi video attraverso di esso. Ecco un esempio di codice semplificato:

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("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = isegment(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Scopri di più sulla segmentazione di istanze nella guida di Ultralytics YOLO26.

Qual è la differenza tra segmentazione di istanze e tracciamento oggetti in Ultralytics YOLO26?

La segmentazione di istanze identifica e delinea i singoli oggetti all'interno di un'immagine, assegnando a ciascun oggetto un'etichetta e una maschera univoche. Il tracciamento oggetti estende questa funzionalità assegnando ID coerenti agli oggetti tra i fotogrammi video, facilitando il monitoraggio continuo degli stessi oggetti nel tempo. Quando combinati, come nell'implementazione di YOLO26, ottieni potenti funzionalità per analizzare il movimento e il comportamento degli oggetti nei video, mantenendo al contempo informazioni precise sui confini.

Perché dovrei usare Ultralytics YOLO26 per la segmentazione di istanze e il tracciamento rispetto ad altri modelli come Mask R-CNN o Faster R-CNN?

Ultralytics YOLO26 offre prestazioni in tempo reale, precisione superiore e facilità d'uso rispetto ad altri modelli come Mask R-CNN o Faster R-CNN. YOLO26 elabora le immagini in un unico passaggio (rilevamento a uno stadio), rendendolo significativamente più veloce pur mantenendo un'elevata precisione. Fornisce inoltre un'integrazione perfetta con la piattaforma Ultralytics, consentendo agli utenti di gestire in modo efficiente modelli, set di dati e pipeline di addestramento. Per le applicazioni che richiedono sia velocità che precisione, YOLO26 offre un equilibrio ottimale.

Esistono set di dati forniti da Ultralytics adatti all'addestramento di modelli YOLO26 per la segmentazione di istanze e il tracciamento?

Sì, Ultralytics offre diversi set di dati adatti all'addestramento di modelli YOLO26 per la segmentazione di istanze, tra cui COCO-Seg, COCO8-Seg (un sottoinsieme più piccolo per test rapidi), Package-Seg e Crack-Seg. Questi set di dati includono annotazioni a livello di pixel necessarie per le attività di segmentazione di istanze. Per applicazioni più specializzate, puoi anche creare set di dati personalizzati seguendo il formato Ultralytics. Informazioni complete sui set di dati e istruzioni per l'uso sono disponibili nella documentazione sui set di dati di Ultralytics.

Commenti