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.
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:
- Android - Codice esempio - Guida
- Python - Esempio di codice Guida
- Web - Codice esempio - Guida
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:
|
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:
|
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 |