Ultralytics YOLO27:
Get Started

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 istanzeSegmentazione di istanze + tracking degli oggetti
Segmentazione di istanze UltralyticsSegmentazione di istanze Ultralytics con 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.

Segmentazione di istanze con 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 di InstanceSegmentation#

Ecco una tabella con gli argomenti di InstanceSegmentation:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso a un file modello Ultralytics YOLO.
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 sfruttare gli argomenti track nella soluzione InstanceSegmentation:

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 disponibili i seguenti argomenti di visualizzazione:

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.
show_boxesboolTrueDisegna 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.

Commenti