L'attività Stilizzazione del volto di MediaPipe consente di applicare stilizzazioni dei volti ai volti in un'immagine. Puoi utilizzare questa attività per creare avatar virtuali in vari stili.
L'esempio di codice descritto in queste istruzioni è disponibile su GitHub. Per ulteriori informazioni su funzionalità, modelli e opzioni di configurazione di questa attività, consulta la Panoramica.
Esempio di codice
Il codice di esempio di MediaPipe Tasks è un'implementazione di base di uno stilizzatore di volti per Android. L'esempio applica la stilizzazione dei volti alle immagini fornite ai dell'app.
Puoi utilizzare l'app come punto di partenza per la tua app per Android o fare riferimento all'app quando modifichi un'app esistente. Il codice di esempio Face Stylizer è ospitato su GitHub.
Scarica il codice
Le seguenti istruzioni mostrano come creare una copia locale dell'esempio utilizzando lo strumento a riga di comando git.
Per scaricare il codice di esempio:
- Clona il repository git utilizzando il comando seguente:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Facoltativamente, configura la tua istanza Git per l'utilizzo di un pagamento sparso, in modo da avere
solo i file per l'app di esempio Face Stylizer:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Dopo aver creato una versione locale del codice di esempio, puoi importare il progetto in Android Studio ed eseguire l'app. Per istruzioni, consulta la Guida alla configurazione per Android.
Componenti chiave
I seguenti file contengono il codice fondamentale per questo esempio di stilizzazione dei volti applicazione:
- FaceStylizationHelper.kt: Inizializza lo stilizzatore del volto e gestisce il modello e la selezione del delegato.
- MainActivity.kt: Fornisce risultati, output e gestisce eventuali errori.
Configurazione
Questa sezione descrive i passaggi chiave per configurare l'ambiente di sviluppo e di codice per usare specificatamente Face Stylizer. Per informazioni generali su configurare l'ambiente di sviluppo per l'utilizzo delle attività di MediaPipe, tra cui: i requisiti di versione della piattaforma, consulta la Guida alla configurazione per Android.
Dipendenze
L'attività Stilizzazione del volto utilizza la raccolta com.google.mediapipe:tasks-vision
. Aggiungi
questa dipendenza dal file build.gradle
della tua app per Android:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Modello
L'attività Stilizzazione del viso di MediaPipe richiede un bundle di modelli addestrato che siano compatibili con questa attività. Per ulteriori informazioni sui modelli addestrati disponibili per Face Stylizer, consulta la sezione Modelli della panoramica delle attività.
Seleziona e scarica il modello e archivialo nella directory del progetto:
<dev-project-root>/src/main/assets
Specifica il percorso del modello all'interno del parametro ModelAssetPath
.
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
Crea l'attività
L'attività Stilizzatore del viso di MediaPipe utilizza la funzione createFromOptions()
per configurare
dell'attività. La funzione createFromOptions()
accetta i valori per la configurazione
le opzioni di CPU e memoria disponibili. Per ulteriori informazioni sulle opzioni di configurazione, vedi Configurazione
opzioni.
val baseOptionsBuilder = BaseOptions.builder().setModelAssetPath(modelName)
val baseOptions = baseOptionBuilder.build()
val optionsBuilder =
FaceStylizer.FaceStylizerOptions.builder()
.setBaseOptions(baseOptionsBuilder.build())
val options = optionsBuilder.build()
FaceStylizer =
FaceStylizer.createFromOptions(context, options)
Opzioni di configurazione
Questa attività include le seguenti opzioni di configurazione per le app per Android:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
errorListener |
Imposta un listener di errori facoltativo. | N/A |
Not set |
Preparazione dei dati
Lo Stilizzatore del viso funziona con le immagini fisse. L'attività gestisce l'input dei dati pre-elaborazione, tra cui il ridimensionamento, la rotazione e la normalizzazione dei valori. La il seguente codice mostra come trasferire i dati per l'elaborazione.
import com.google.mediapipe.framework.image.BitmapImageBuilder
import com.google.mediapipe.framework.image.MPImage
// Convert the input Bitmap object to an MPImage object to run inference
val mpImage = BitmapImageBuilder(image).build()
Esegui l'attività
Usa il metodo FaceStylizer.stylize()
sull'immagine di input per eseguire lo stilizzatore:
val result = FaceStylizer.stylize(mpImage)
Gestire e visualizzare i risultati
Lo Stilizzatore dei volti restituisce un oggetto FaceStylizerResult
, che contiene un
MPImage
oggetto con una stilizzazione della faccia più evidente all'interno dell'input
dell'immagine.
Di seguito è riportato un esempio dei dati di output di questa attività:
L'output precedente è stato creato applicando lo schizzo a colori modello alla seguente immagine di input: