L'attività Segmenter di immagini MediaPipe consente di suddividere le immagini in regioni in base a categorie predefinite. Puoi utilizzare questa funzionalità per identificare oggetti o texture specifici, quindi applicare effetti visivi come la sfocatura dello sfondo. Questa attività include diversi modelli addestrati specificamente per segmentare le persone e le loro caratteristiche all'interno dei dati delle immagini, tra cui:
- Persona e sfondo
- Solo capelli delle persone
- Capelli, viso, pelle, abiti e accessori di una persona
Questa attività opera sui dati di immagine con un modello di machine learning (ML) con immagini singole o uno stream video continuo. Restituisce un elenco di regioni segmentate, che rappresentano oggetti o aree in un'immagine, a seconda del model scelto.
Inizia
Inizia a utilizzare questa attività seguendo una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per piattaforma illustrano un'implementazione di base di questa attività, inclusi un modello consigliato ed un esempio di codice con le opzioni di configurazione consigliate:
- Android - Esempio di codice - Guida
- Python - Esempio di codice Guida
- Web - Esempio di codice - Guida
Dettagli attività
Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.
Funzionalità
- Elaborazione dell'immagine in input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore delle immagini.
Input attività | Output attività |
---|---|
L'input può essere uno dei seguenti tipi di dati:
|
Il segmento di immagini restituisce dati di immagine segmentati, che possono includere uno dei seguenti elementi o entrambi, a seconda delle opzioni di configurazione impostate:
|
Opzioni di configurazione
Questa attività prevede 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
modalità: IMAGE: la modalità per gli input di singole immagini. VIDEO: la modalità per i fotogrammi decodificati di un video. LIVE_STREAM: la modalità per un live streaming di dati di input, ad esempio da una videocamera. In questa modalità, resultListener deve essere chiamato per configurare un listener per ricevere i risultati in modo asincrono. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Se impostato su True , l'output include una maschera di segmentazione
come immagine uint8, in cui ogni valore di pixel indica il valore della categoria
vincente. |
{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 mappa del punteggio di confidenza della categoria. |
{True, False } |
True |
display_names_locale |
Imposta la lingua delle etichette da utilizzare per i nomi visualizzati forniti nei metadati del modello dell'attività, se disponibili. Il valore predefinito è en per
l'inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato utilizzando l'API Metadata Writer di TensorFlow Lite
| Codice impostazioni internazionali | it |
result_callback |
Imposta il listener dei risultati per ricevere i risultati di segmentazione in modo asincrono quando il segmenter di immagini è in modalità live streaming.
Può essere utilizzato solo quando la modalità di esecuzione è impostata su LIVE_STREAM |
N/A | N/A |
ottimizzabili
Il segmento di immagini può essere utilizzato con più modelli ML. La maggior parte dei seguenti modelli di segmentazione è creata e addestrata per eseguire la segmentazione con immagini di persone. Tuttavia, il modello DeepLab-v3 è stato creato come segmenter di immagini per uso generico. Seleziona il modello più adatto alla tua applicazione.
Modello di segmentazione selfie
Questo modello può segmentare il ritratto di una persona e può essere utilizzato per sostituire o modificare lo sfondo di un'immagine. Il modello produce due categorie: sfondo all'indice 0 e persona all'indice 1. Questo modello ha versioni con diverse forme di input, tra cui la versione quadrata e una versione orizzontale, il che potrebbe essere più efficiente per le applicazioni in cui l'input è sempre questa forma, ad esempio le videochiamate.
Nome modello | Forma di input | Tipo di quantizzazione | Scheda del modello | Versions |
---|---|---|---|---|
Segmento per selfie (quadrato) | 256 x 256 | numero in virgola mobile 16 | informazioni | Più recente |
Segmento per selfie (orizzontale) | 144 x 256 | numero in virgola mobile 16 | informazioni | Più recente |
Modello di segmentazione dei capelli
Questo modello prende l'immagine di una persona, individua i capelli sulla testa e genera una mappa di segmentazione dell'immagine per i capelli. Puoi usare questo modello per ricolorare i capelli o applicare altri effetti. Il modello restituisce le seguenti categorie di segmentazione:
0 - background
1 - hair
Nome modello | Forma di input | Tipo di quantizzazione | Scheda del modello | Versions |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Nessuna (float32) | informazioni | Più recente |
Modello di segmentazione per selfie multiclasse
Questo modello scatta l'immagine di una persona, individua aree per diverse aree come capelli, pelle e indumenti, e genera una mappa di segmentazione dell'immagine per questi elementi. Puoi utilizzare questo modello per applicare vari effetti alle persone nelle immagini o nei 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 | Versions |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Nessuna (float32) | informazioni | Più recente |
Modello DeepLab-v3
Questo modello identifica i segmenti per varie categorie, tra cui sfondo, persona, gatto, cane e pianta in vaso. Il modello usa il pooling atroso delle piramidi spaziali per acquisire informazioni su intervalli più lunghi. Per maggiori informazioni, consulta DeepLab-v3.
Nome modello | Forma di input | Tipo di quantizzazione | Versions |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Nessuna (float32) | Più recente |
Benchmark attività
Ecco i benchmark delle attività per l'intera pipeline basati sui modelli preaddestrati precedenti. Il risultato della latenza è la latenza media su Pixel 6 con CPU / GPU.
Nome modello | Latenza CPU | Latenza GPU |
---|---|---|
Segmento per selfie (quadrato) | 33,46 ms | 35,15 ms |
Segmento per selfie (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 |