Segmentazione e tracciamento di istanze tramite Ultralytics YOLO26#
Che cos'è la segmentazione delle istanze?#
La segmentazione delle istanze è un'attività di computer vision che consiste nell'identificare e delineare i singoli oggetti in un'immagine a livello di pixel. A differenza della segmentazione semantica, che classifica solo i pixel per categoria, la segmentazione delle istanze assegna un'etichetta univoca e delinea con precisione ogni singola istanza di oggetto, risultando 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 delle istanze, che consentono di rilevare con precisione i confini degli oggetti mantenendo la velocità e l'efficienza per cui sono noti i modelli YOLO.
Nel pacchetto Ultralytics sono disponibili due tipi di tracciamento della segmentazione delle istanze:
-
Segmentazione delle istanze con oggetti di classe: a ogni oggetto di classe viene assegnato un colore univoco per una chiara separazione visiva.
-
Segmentazione delle istanze con tracce degli oggetti: ogni traccia è rappresentata da un colore distinto, facilitando l'identificazione e il tracciamento attraverso i fotogrammi del video.
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
Campioni#
| Segmentazione delle istanze | Segmentazione delle istanze + tracciamento degli oggetti |
|---|---|
![]() | ![]() |
| Segmentazione delle istanze di Ultralytics 😍 | Segmentazione delle istanze di Ultralytics con tracciamento degli oggetti 🔥 |
Segmenta e traccia con YOLO26#
La soluzione InstanceSegmentation esegue un modello di segmentazione YOLO26 su ogni fotogramma, disegna le maschere per 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 tua sorgente tramite 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 InstanceSegmentation#
Ecco una tabella con gli argomenti InstanceSegmentation:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso al file del modello Ultralytics YOLO. |
line_width | int | 2 | Spessore delle linee per i riquadri, i punti chiave e i conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita 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 gli argomenti di track nella soluzione InstanceSegmentation:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare. 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 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_det | int | 300 | Numero massimo di rilevamenti conservati per fotogramma prima del tracciamento, limitando gli oggetti elaborati da una soluzione in scene dense. |
quantize | int or str | None | Precisione 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. |
Inoltre, sono disponibili i seguenti argomenti di visualizzazione:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se 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_conf | bool | True | Visualizza il punteggio di confidenza per ogni rilevazione accanto all'etichetta. Fornisce informazioni sul grado di certezza del modello per ogni rilevazione. |
show_labels | bool | True | Visualizza le etichette per ogni rilevazione nell'output visivo. Consente di comprendere immediatamente gli oggetti rilevati. |
show_boxes | bool | True | Disegna riquadri di delimitazione attorno agli oggetti rilevati. È essenziale per l'identificazione visiva e la localizzazione degli oggetti nelle immagini o nei fotogrammi video. |
Applicazioni della segmentazione delle istanze#
La segmentazione delle istanze con YOLO26 ha numerose applicazioni nel mondo reale in vari settori:
Gestione e riciclaggio 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 elevata precisione i rifiuti di plastica, il cartone, i metalli e altri materiali riciclabili, consentendo ai sistemi di smistamento automatizzato di trattare i rifiuti in modo più efficiente. Questo è particolarmente importante considerando che solo circa il 10% dei 7 miliardi di tonnellate di rifiuti di plastica prodotti a livello globale viene riciclato.
Veicoli autonomi#
Nelle auto a guida autonoma, la segmentazione delle 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 in cui i tempi sono critici.
Imaging medico#
La segmentazione delle 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#
Nei cantieri, la segmentazione delle istanze può tracciare macchinari pesanti, lavoratori e materiali. Questo contribuisce a garantire la sicurezza monitorando la posizione delle attrezzature e rilevando quando i lavoratori entrano in aree pericolose, ottimizzando al contempo il flusso di lavoro e l'allocazione delle risorse.
FAQ#
Per eseguire la segmentazione delle istanze con Ultralytics YOLO26, inizializza il modello YOLO con una versione di YOLO26 per la segmentazione ed elabora i fotogrammi video tramite il modello. 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 delle istanze nella guida di Ultralytics YOLO26.
La segmentazione delle istanze identifica e delinea i singoli oggetti all'interno di un'immagine, assegnando a ciascun oggetto un'etichetta e una maschera univoche. Il tracciamento degli oggetti estende questa funzionalità assegnando ID coerenti agli oggetti nei diversi fotogrammi video, facilitando il tracciamento continuo degli stessi oggetti nel tempo. Quando vengono combinate, come nell'implementazione di YOLO26, queste funzionalità consentono di analizzare efficacemente il movimento e il comportamento degli oggetti nei video, mantenendo al contempo informazioni precise sui confini.
Ultralytics YOLO26 offre prestazioni in tempo reale, una 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), risultando significativamente più veloce e mantenendo al contempo un'elevata precisione. Offre inoltre un'integrazione fluida 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 precisione, YOLO26 offre un equilibrio ottimale.
Sì, Ultralytics offre diversi dataset adatti all'addestramento di modelli YOLO26 per la segmentazione delle 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 delle istanze. Per applicazioni più specializzate, puoi anche creare dataset personalizzati seguendo il formato Ultralytics. Le informazioni complete sui dataset e le istruzioni per l'utilizzo sono disponibili nella documentazione sui dataset di Ultralytics.

