L'attività MediaPipe Image Segmenter consente di suddividere le immagini in regioni in base a categorie predefinite. Puoi utilizzare questa funzionalità per identificare oggetti o texture specifici e 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 i capelli della persona
- Capelli, viso, pelle, abbigliamento e accessori di una persona
Questa attività opera sui dati delle immagini con un modello di machine learning (ML) con singole immagini o uno stream video continuo. Viene visualizzato un elenco di regioni segmentate, che rappresentano oggetti o aree in un'immagine, a seconda del modello scelto.
Inizia
Per iniziare a utilizzare questa attività, segui una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per la piattaforma illustrano un'implementazione di base di questa attività, incluso un modello consigliato e 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 delle immagini di input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore delle immagini.
Input delle attività | Output delle attività |
---|---|
L'input può essere uno dei seguenti tipi di dati:
|
Image Segmenter genera dati sulle immagini segmentate, che possono includere uno o entrambi i seguenti elementi, a seconda delle opzioni di configurazione impostate:
|
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
running_mode |
Imposta la modalità di esecuzione dell'attività. Esistono tre
modalità: IMMAGINE: la modalità per l'inserimento 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 ascoltatore 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 del pixel indica il valore della categoria migliore. |
{True, False } |
False |
output_confidence_masks |
Se impostato su True , l'output include una maschera di segmentazione
come immagine del valore float, in cui ogni valore float 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 disponibile. Il valore predefinito è en per
l'inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato
utilizzando l'API TensorFlow Lite Metadata Writer |
Codice delle impostazioni internazionali | it |
result_callback |
Imposta l'ascoltatore dei risultati in modo da ricevere i risultati della segmentazione
in modo asincrono quando lo segmentatore di immagini è in modalità LIVE_STREAM .
Può essere utilizzato solo quando la modalità di esecuzione è impostata su LIVE_STREAM |
N/D | N/D |
Modelli
Lo strumento di segmentazione delle immagini può essere utilizzato con più di un modello di ML. La maggior parte dei seguenti modelli di segmentazione viene creata e addestrata per eseguire la segmentazione con immagini di persone. Tuttavia, il modello DeepLab-v3 è stato creato come segmentatore di immagini per uso generale. 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 modificare lo sfondo di un'immagine. Il modello restituisce due categorie: sfondo all'indice 0 e persona all'indice 1. Questo modello ha versioni con forme di input diverse, tra cui una quadrata e una orizzontale, che possono essere più efficienti per le applicazioni in cui l'input è sempre di quella forma, ad esempio le videochiamate.
Nome modello | Forma di input | Tipo di quantizzazione | Scheda del modello | Versioni |
---|---|---|---|---|
SelfieSegmenter (quadrato) | 256 x 256 | float 16 | informazioni | Ultime notizie |
SelfieSegmenter (orizzontale) | 144 x 256 | float 16 | informazioni | Ultime notizie |
Modello di segmentazione dei capelli
Questo modello acquisisce un'immagine di una persona, individua i capelli sulla sua testa e genera una mappa di segmentazione dell'immagine per i capelli. Puoi utilizzare questo modello per ridipingere i capelli o applicare altri effetti. Il modello genera le seguenti 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 | Ultime notizie |
Modello di segmentazione dei selfie multiclasse
Questo modello acquisisce un'immagine di una persona, individua aree per parti diverse come capelli, pelle e abbigliamento 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 genera 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 | Ultime notizie |
Modello DeepLab-v3
Questo modello identifica i segmenti per una serie di categorie, tra cui sfondo, persona, gatto, cane e pianta in vaso. Il modello utilizza la concatenazione piramidale spaziale atrous per acquisire informazioni su un intervallo più lungo. Per ulteriori informazioni, consulta DeepLab-v3.
Nome modello | Forma di input | Tipo di quantizzazione | Versioni |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Nessuno (float32) | Ultime notizie |
Benchmark delle attività
Ecco i benchmark delle attività per l'intera pipeline in base ai modelli preaddestrati sopra indicati. Il risultato della latenza è la latenza media su Pixel 6 che utilizza CPU / GPU.
Nome modello | Latenza della 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 |