Guida alla segmentazione delle immagini

L'attività Segmentazione delle immagini di MediaPipe consente di dividere le immagini in regioni in base a categorie. Puoi usare questa funzionalità per identificare oggetti specifici o texture e applicare effetti visivi come la sfocatura dello sfondo. Questa attività include diversi modelli addestrati specificamente per segmentare le persone e i loro all'interno dei dati immagine, tra cui:

  • Persona e sfondo
  • Solo capelli della persona
  • Capelli, viso, pelle, abbigliamento e accessori della persona

Questa attività opera sui dati di immagine con un modello di machine learning (ML) con o in uno stream video continuo. Restituisce un elenco di regioni segmentate, che rappresentano oggetti o aree in un'immagine, a seconda del modello che scegliere.

Fai una prova!

Inizia

Inizia a utilizzare questa attività seguendo una di queste guide all'implementazione per il tuo piattaforma di destinazione. Queste guide specifiche per piattaforma ti illustreranno una procedura di base implementazione di questa attività, tra cui un modello consigliato ed esempio di codice con le opzioni di configurazione consigliate:

Dettagli attività

Questa sezione descrive le funzionalità, gli input, gli output e la configurazione opzioni di questa attività.

Funzionalità

  • Elaborazione dell'immagine di input. L'elaborazione include la rotazione, il ridimensionamento delle immagini, normalizzazione e conversione dello spazio colore.
Input per le attività Output delle attività
L'input può essere uno dei seguenti tipi di dati:
  • Immagini statiche
  • Fotogrammi video decodificati
  • Feed video in diretta
La funzionalità di segmentazione delle immagini restituisce dati di immagini segmentati, che possono includere uno o entrambi i valori seguenti, a seconda delle opzioni di configurazione impostate:
  • CATEGORY_MASK: un elenco contenente una maschera segmentata come immagine in formato uint8. Ogni valore pixel indica se fa parte di una categoria specifica di segmento supportata dal modello.
  • CONFIDENCE_MASK: un elenco di canali contenenti un maschera segmentata con valori dei pixel in formato float32. Ogni valore pixel indica il livello di confidenza con cui fa parte di una categoria specifica supportate dal modello.

Opzioni di configurazione

Questa attività include le seguenti opzioni di configurazione:

Nome opzione Descrizione Intervallo di valori Valore predefinito
running_mode Imposta la modalità di esecuzione per l'attività. Esistono tre tipi di modalità:

IMAGE: la modalità per gli input di immagini singole.

VIDEO: la modalità per i fotogrammi decodificati di un video.

LIVE_STREAM: la modalità per un live streaming di input dati, ad esempio quelli di una videocamera. In questa modalità, resultListener deve essere per impostare un listener in modo che riceva risultati in modo asincrono.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
output_category_mask Se impostato su True, l'output include una maschera di segmentazione come un'immagine uint8, in cui ogni valore di pixel indica la categoria vincente valore. {True, False} False
output_confidence_masks Se impostato su True, l'output include una maschera di segmentazione come immagine con valore in virgola mobile, in cui ogni valore in virgola mobile rappresenta la confidenza la mappa dei punteggi della categoria. {True, False} True
display_names_locale Imposta la lingua delle etichette da utilizzare per i nomi visualizzati forniti nel metadati del modello dell'attività, se disponibili. Il valore predefinito è en per Inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato Utilizzando l'API TensorFlow Metadata Writer Codice impostazioni internazionali it
result_callback Imposta il listener di risultati per ricevere i risultati della segmentazione in modo asincrono quando il segmento di immagini è in modalità LIVE_STREAM. Può essere utilizzato solo quando la modalità di corsa è impostata su LIVE_STREAM N/D N/D

Modelli

La funzionalità di segmentazione delle immagini può essere utilizzata con più modelli ML. La maggior parte dei seguenti I modelli di segmentazione vengono creati e addestrati per eseguire la segmentazione con immagini di persone. Tuttavia, il modello DeepLab-v3 è creato a livello generale di segmentazione delle immagini con scopo specifico. Seleziona il modello più adatto alla tua applicazione.

Modello di segmentazione dei selfie

Questo modello può segmentare il ritratto di una persona e può essere utilizzato per sostituire o la modifica dello sfondo di un'immagine. Il modello genera due categorie: sfondo con indice 0 e persona con indice 1. Questo modello ha versioni con diverse forme di input, tra cui una versione quadrata e una versione orizzontale potrebbe essere più efficiente per le applicazioni in cui l'input è sempre in quel formato, come le videochiamate.

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versioni
SelfieSegmenter (quadrato) 256 x 256 numero in virgola mobile 16 informazioni Più recenti
SelfieSegmenter (orizzontale) 144 x 256 numero in virgola mobile 16 informazioni Più recenti

Modello di segmentazione dei capelli

Questo modello prende l'immagine di una persona, individua i capelli sulla sua testa e visualizza una mappa di segmentazione delle immagini per i suoi capelli. Puoi usare questo modello per ricolorare i capelli o applicare altri effetti. Il modello restituisce quanto segue: categorie di segmentazione:

0 - background
1 - hair
Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versioni
HairSegmenter 512 x 512 Nessuno (float32) informazioni Più recenti

Modello di segmentazione selfie multiclasse

Questo modello prende l'immagine di una persona e individua aree per diverse aree, come capelli, pelle e abbigliamento e genera una mappa di segmentazione dell'immagine per questi articoli. Puoi usare questo modello per applicare vari effetti alle persone nelle immagini o video. Il modello restituisce le seguenti categorie di segmentazione:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versioni
SelfieMulticlass (256 x 256) 256 x 256 Nessuno (float32) informazioni Più recenti

Modello DeepLab-v3

Questo modello identifica i segmenti per una serie di categorie, tra cui background, persona, gatto, cane e pianta in vaso. Il modello utilizza una piramide spaziale atra per acquisire informazioni a lungo raggio. Per ulteriori informazioni, vedi DeepLab-v3

Nome modello Forma di input Tipo di quantizzazione Versioni
DeepLab V3 257 x 257 Nessuno (float32) Più recenti

Benchmark delle attività

Ecco i benchmark delle attività per l'intera pipeline basati sugli strumenti preaddestrati di grandi dimensioni. Il risultato della latenza è la latenza media su Pixel 6 utilizzando CPU / GPU.

Nome modello Latenza CPU Latenza GPU
SelfieSegmenter (quadrato) 33,46 ms 35,15 ms
SelfieSegmenter (orizzontale) 34,19 ms 33,55 ms
HairSegmenter 57,90 ms 52,14 ms
SelfieMulticlass (256 x 256) 217,76 ms 71,24 ms
DeepLab V3 123,93 ms 103,30 ms