Vai al contenuto

Segmentazione e tracciamento delle istanze utilizzando Ultralytics YOLO11 🚀

Che cos'è la segmentazione delle istanze?

La segmentazione delle istanze è un'attività di computer vision che prevede l'identificazione e la delineazione di singoli oggetti in un'immagine a livello di pixel. A differenza della segmentazione semantica, che si limita a classificare i pixel per categoria, la segmentazione delle istanze etichetta in modo univoco e delinea con precisione ogni istanza dell'oggetto, rendendola cruciale per le applicazioni che richiedono una comprensione spaziale dettagliata, come l'imaging medico, la guida autonoma e l'automazione industriale.

Ultralytics YOLO11 offre potenti funzionalità di segmentazione delle istanze che consentono un rilevamento preciso dei confini degli oggetti, mantenendo la velocità e l'efficienza per cui i modelli YOLO sono noti.

Nel pacchetto Ultralytics sono disponibili due tipi di tracciamento della segmentazione delle istanze:

  • Segmentazione delle istanze con gli oggetti di classe: A ogni oggetto di classe viene assegnato un colore unico per una chiara separazione visiva.

  • Segmentazione delle istanze con tracce di oggetti: Ogni traccia è rappresentata da un colore distinto, che facilita l'identificazione e il tracciamento tra i fotogrammi del video.



Guarda: Segmentazione delle istanze con tracciamento degli oggetti utilizzando Ultralytics YOLO11

Campioni

Segmentazione delle istanze Segmentazione delle istanze + tracciamento degli oggetti
Ultralytics Segmentazione delle istanze Ultralytics Segmentazione delle istanze con tracciamento degli oggetti
Ultralytics Segmentazione dell'istanza 😍 Ultralytics Segmentazione di istanze con tracciamento di oggetti 🔥

Segmentazione delle istanze con Ultralytics YOLO

# Instance segmentation using Ultralytics YOLO11
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]"
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("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo11n-seg.pt",  # model="yolo11n-seg.pt" for object segmentation using YOLO11.
    # classes=[0, 2],  # segment specific classes i.e, person and car with pretrained model.
)

# 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 = isegment(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

InstanceSegmentation Argomenti

Ecco una tabella con i dati InstanceSegmentation argomenti:

Argomento Tipo Predefinito Descrizione
model str None Percorso del file del modelloYOLO Ultralytics .
region list [(20, 400), (1260, 400)] Elenco dei punti che definiscono la regione di conteggio.

Potete anche approfittare di track all'interno del file InstanceSegmentation soluzione:

Argomento Tipo Predefinito Descrizione
tracker str 'botsort.yaml' Specifica l'algoritmo di tracciamento da utilizzare, ad es, bytetrack.yaml o botsort.yaml.
conf float 0.3 Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare un maggior numero di oggetti, ma possono includere falsi positivi.
iou float 0.5 Imposta la soglia Intersection over Union (IoU) per il filtraggio dei rilevamenti sovrapposti.
classes list None Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] tiene traccia solo delle classi specificate.
verbose bool True Controlla la visualizzazione dei risultati del tracciamento, fornendo un output visivo degli oggetti tracciati.
device str None Specifica il dispositivo per l'inferenza (ad es, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, uno specifico GPU o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono disponibili i seguenti argomenti di visualizzazione:

Argomento Tipo Predefinito Descrizione
show bool False Se Truevisualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_width None or int None Specifica la larghezza della linea delle caselle di delimitazione. Se NoneLa larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza.

Applicazioni della segmentazione delle istanze

La segmentazione delle istanze con YOLO11 ha numerose applicazioni reali in vari settori:

Gestione dei rifiuti e riciclaggio

YOLO11 può essere utilizzato nelle strutture di gestione dei rifiuti per identificare e selezionare diversi tipi di materiali. Il modello è in grado di segmentare i rifiuti plastici, il cartone, il metallo e altri materiali riciclabili con un'elevata precisione, consentendo ai sistemi di selezione automatizzati di trattare i rifiuti in modo più efficiente. Ciò è particolarmente prezioso se si considera che solo il 10% circa dei 7 miliardi di tonnellate di rifiuti plastici generati 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 precisa comprensione dell'ambiente è fondamentale per le decisioni in materia di navigazione e sicurezza. Le prestazioni in tempo reale di YOLO11 lo rendono ideale per queste applicazioni sensibili ai tempi.

Imaging medico

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

Monitoraggio del cantiere

Nei cantieri, la segmentazione delle istanze può tracciare macchinari pesanti, lavoratori e materiali. Ciò contribuisce 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 esitate a postare le vostre domande nella sezione Problemi diUltralytics o nella sezione di discussione indicata di seguito.

FAQ

Come si esegue la segmentazione delle istanze utilizzando Ultralytics YOLO11 ?

Per eseguire la segmentazione dell'istanza utilizzando Ultralytics YOLO11 , inizializzare il modello YOLO con una versione di segmentazione di YOLO11 ed elaborare 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="yolo11n-seg.pt",  # model="yolo11n-seg.pt" for object segmentation using YOLO11.
)

# 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()

Per saperne di più sulla segmentazione delle istanze, consultare la guidaUltralytics YOLO11 .

Qual è la differenza tra la segmentazione delle istanze e il tracciamento degli oggetti in Ultralytics YOLO11 ?

La segmentazione delle istanze identifica e delinea i singoli oggetti all'interno di un'immagine, assegnando a ciascun oggetto un'etichetta e una maschera uniche. Il tracciamento degli oggetti estende questa funzione assegnando ID coerenti agli oggetti nei vari fotogrammi del video, facilitando il tracciamento continuo degli stessi oggetti nel tempo. Se combinate insieme, come nell'implementazione di YOLO11, si ottengono potenti capacità di analisi del movimento e del comportamento degli oggetti nei video, mantenendo informazioni precise sui confini.

Perché utilizzare Ultralytics YOLO11 per esempio per la segmentazione e il tracciamento rispetto ad altri modelli come Mask R-CNN o Faster R-CNN?

Ultralytics YOLO11 offre prestazioni in tempo reale, precisione superiore e facilità d'uso rispetto ad altri modelli come Mask R-CNN o Faster R-CNN. YOLO11 elabora le immagini in un unico passaggio (rilevamento in una sola fase), rendendolo significativamente più veloce pur mantenendo un'elevata precisione. Inoltre, si integra perfettamente con Ultralytics HUB, consentendo agli utenti di gestire in modo efficiente modelli, set di dati e pipeline di addestramento. Per le applicazioni che richiedono velocità e precisione, YOLO11 offre un equilibrio ottimale.

Esistono dataset forniti da Ultralytics adatti all'addestramento dei modelli di YOLO11 , ad esempio per la segmentazione e il tracciamento?

Sì, Ultralytics offre diversi set di dati adatti all'addestramento dei modelli YOLO11 per la segmentazione delle istanze, tra cui COCO-Seg, COCO8-Seg (un sottoinsieme più piccolo per un test rapido), Package-Seg e Crack-Seg. Questi set di dati sono dotati di annotazioni a livello di pixel necessarie per le attività di segmentazione delle istanze. Per applicazioni più specializzate, è possibile creare set di dati personalizzati secondo il formato Ultralytics . Le informazioni complete sui set di dati e le istruzioni d'uso si trovano nella documentazione sui set di datiUltralytics .

📅C reato 1 anno fa ✏️ Aggiornato 6 giorni fa

Commenti