Segmentazione di istanze e tracking con Ultralytics YOLO26#
Che cos'è la segmentazione di istanze?#
La segmentazione di istanze è un'attività di visione artificiale 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 in base alla categoria, la segmentazione di istanze assegna un'etichetta univoca e delimita con precisione ogni singola istanza di oggetto. È quindi fondamentale 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 contorni degli oggetti, mantenendo la velocità e l'efficienza per cui sono noti i modelli YOLO.
Nel pacchetto Ultralytics sono disponibili due tipi di tracking con segmentazione di istanze:
-
Segmentazione di istanze con oggetti di classe: a ogni oggetto di classe viene assegnato un colore univoco per distinguerlo visivamente con chiarezza.
-
Segmentazione di istanze con tracce degli oggetti: ogni traccia è rappresentata da un colore distinto, facilitando l'identificazione e il tracking tra i frame video.
Guarda: Segmentazione di istanze con tracking degli oggetti usando Ultralytics YOLO26
Campioni#
| Segmentazione di istanze | Segmentazione di istanze + tracking degli oggetti |
|---|---|
![]() | ![]() |
| Segmentazione di istanze Ultralytics 😍 | Segmentazione di istanze Ultralytics con tracking degli oggetti 🔥 |
Segmenta e traccia con YOLO26#
La soluzione InstanceSegmentation esegue un modello di segmentazione YOLO26 su ogni frame, disegna maschere per ciascun oggetto e assegna un colore diverso a ogni istanza, così puoi seguire i singoli oggetti in un video. Carica un modello -seg, quindi eseguilo sulla sorgente con l'API Python o la CLI.
# 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 di InstanceSegmentation#
Ecco una tabella con gli argomenti di InstanceSegmentation:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso a un file modello Ultralytics YOLO. |
line_width | int | 2 | Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita 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 sfruttare gli argomenti track nella soluzione InstanceSegmentation:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Specifica l'algoritmo di tracciamento da usare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Imposta la soglia di confidenza per le rilevazioni; valori più bassi consentono di tracciare più oggetti, ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersezione sull'unione (IoU) per filtrare le rilevazioni sovrapposte. |
classes | list | None | Filtra i risultati in base all'indice della classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
device | str | None | Specifica 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. |
imgsz | int or tuple | 640 | Dimensione 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_det | int | 300 | Numero massimo di rilevazioni da mantenere per fotogramma prima del tracciamento, che limita gli oggetti elaborati da una soluzione nelle scene dense. |
quantize | int or str | None | Precisione 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 disponibili i seguenti argomenti di visualizzazione:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se 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_conf | bool | True | Mostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento. |
show_labels | bool | True | Mostra le etichette di ogni rilevamento nell'output visivo. Permette di identificare immediatamente gli oggetti rilevati. |
show_boxes | bool | True | Disegna riquadri di delimitazione attorno agli oggetti rilevati. Essenziale per identificarli visivamente e localizzarli nelle immagini o nei frame video. |
Applicazioni della segmentazione di istanze#
La segmentazione di istanze con YOLO26 ha numerose applicazioni pratiche in diversi settori:
Gestione e riciclo dei rifiuti#
YOLO26 può essere utilizzato negli impianti di gestione dei rifiuti per identificare e smistare diversi tipi di materiali. Il modello può segmentare con grande precisione rifiuti di plastica, cartone, metallo e altri materiali riciclabili, consentendo ai sistemi di smistamento automatizzati di trattare i rifiuti in modo più efficiente. Questo è particolarmente importante se si considera che viene riciclato solo circa il 10% dei 7 miliardi di tonnellate di rifiuti di plastica prodotti ogni anno nel mondo.
Veicoli autonomi#
Nelle auto a guida autonoma, la segmentazione di istanze aiuta a identificare e tracciare pedoni, veicoli, segnali stradali e altri elementi della strada 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 ai tempi.
Imaging medico#
La segmentazione di istanze può identificare e delineare tumori, organi o strutture cellulari nelle scansioni mediche. La capacità di YOLO26 di delimitare con precisione i contorni degli oggetti lo rende utile per la diagnostica medica e la pianificazione dei trattamenti.
Monitoraggio dei cantieri#
Nei cantieri, la segmentazione di istanze può tracciare macchinari pesanti, lavoratori e materiali. Aiuta a garantire la sicurezza monitorando la posizione delle attrezzature e rilevando quando i lavoratori entrano in aree pericolose, oltre a ottimizzare il flusso di lavoro e l'allocazione delle risorse.
Domande frequenti#
Per eseguire la segmentazione di istanze con Ultralytics YOLO26, inizializza il modello YOLO con una versione di YOLO26 per la segmentazione ed elabora i frame video. Ecco un semplice esempio di codice:
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("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Inizializza InstanceSegmentation isegment = solutions.InstanceSegmentation( show=True, # visualizza l'output model="yolo26n-seg.pt", # model="yolo26n-seg.pt" per la segmentazione degli oggetti con YOLO26. ) # Elabora il 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 a Ultralytics YOLO26.
La segmentazione di istanze identifica e delinea singoli oggetti all'interno di un'immagine, assegnando a ciascun oggetto un'etichetta e una maschera univoche. Il tracking degli oggetti estende questa funzionalità assegnando ID coerenti agli oggetti nei diversi frame video e consentendo di seguirli continuamente nel tempo. Combinando le due funzionalità, come nell'implementazione di YOLO26, puoi analizzare in modo efficace il movimento e il comportamento degli oggetti nei video, mantenendo al contempo informazioni precise sui contorni.
Ultralytics YOLO26 offre prestazioni in tempo reale, accuratezza superiore e semplicità d'uso rispetto ad altri modelli come Mask R-CNN o Faster R-CNN. YOLO26 elabora le immagini in un solo passaggio (rilevamento a una fase), risultando notevolmente più veloce e mantenendo un'elevata precisione. Inoltre, si integra perfettamente con la piattaforma Ultralytics, consentendo agli utenti di gestire in modo efficiente modelli, dataset e pipeline di addestramento. Per le applicazioni che richiedono sia velocità sia accuratezza, YOLO26 offre un equilibrio ottimale.
Sì, Ultralytics offre diversi dataset adatti ad addestrare 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 dataset includono le annotazioni a livello di pixel necessarie per le attività di segmentazione di istanze. Per applicazioni più specifiche, puoi anche creare dataset personalizzati seguendo il formato Ultralytics. Puoi trovare informazioni complete sui dataset e istruzioni per l'uso nella documentazione dei dataset Ultralytics.

