L'attività Stilizzazione facciale di MediaPipe consente di applicare stilizzazioni dei volti ai volti di 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 sulle funzionalità, sui modelli e sulle opzioni di configurazione di questa attività, consulta la Panoramica.
Esempio di codice
Il codice di esempio di MediaPipe Tasks è un'implementazione di base di un'app Face Stylizer per Android. L'esempio applica la stilizzazione dei volti alle immagini fornite all'app.
Puoi utilizzare l'app come punto di partenza per la tua app per Android o farvi riferimento quando modifichi un'app esistente. Il codice di esempio per lo stilista per il viso è ospitato su GitHub.
Scarica il codice
Le seguenti istruzioni mostrano come creare una copia locale del codice di esempio utilizzando lo strumento a riga di comando git.
Per scaricare il codice di esempio:
- Clona il repository git utilizzando il seguente comando:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Facoltativamente, configura la tua istanza Git in modo da utilizzare un pagamento sparse, in modo da avere solo i file dell'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 le istruzioni, consulta la Guida alla configurazione per Android.
Componenti chiave
I seguenti file contengono il codice fondamentale per questa applicazione di esempio di stilizzazione dei volti:
- FaceStylizationHelper.kt: inizializza lo stilizzazione del volto, gestisce il modello e delega la selezione.
- MainActivity.kt: fornisce risultati e output e gestisce eventuali errori.
Configurazione
In questa sezione vengono descritti i passaggi fondamentali per configurare l'ambiente di sviluppo e codificare i progetti in modo specifico per l'utilizzo di Face Stylizer. Per informazioni generali sulla configurazione dell'ambiente di sviluppo per l'utilizzo delle attività di MediaPipe, inclusi i requisiti di versione della piattaforma, consulta la Guida alla configurazione per Android.
Dipendenze
L'attività Stilista del viso utilizza la raccolta com.google.mediapipe:tasks-vision
. Aggiungi
questa dipendenza al file build.gradle
della tua app Android:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Modello
L'attività MediaPipe Face Stylizer richiede un bundle di modelli addestrato compatibile con questa attività. Per ulteriori informazioni sui modelli addestrati disponibili per lo stilizzazione del viso, consulta la sezione Modelli della panoramica dell'attività.
Seleziona e scarica il modello e archivialo all'interno della 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)
Creare l'attività
L'attività MediaPipe Face Stylizer utilizza la funzione createFromOptions()
per configurarla. La funzione createFromOptions()
accetta i valori per le opzioni di configurazione. Per maggiori informazioni sulle opzioni di configurazione, consulta
Opzioni di configurazione.
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à prevede 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 stilo per il viso funziona con le immagini statiche. L'attività gestisce la pre-elaborazione dell'input, tra cui ridimensionamento, rotazione e normalizzazione dei valori. Il seguente codice mostra come trasferire i dati per il trattamento.
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à
Per eseguire lo stilizzazione, utilizza il metodo FaceStylizer.stylize()
nell'immagine di input:
val result = FaceStylizer.stylize(mpImage)
Gestire e visualizzare i risultati
Lo stilista del viso restituisce un oggetto FaceStylizerResult
, che contiene un oggetto MPImage
con una stilizzazione del volto più in evidenza all'interno dell'immagine di input.
Di seguito è riportato un esempio dei dati di output di questa attività:
L'output riportato sopra è stato creato applicando il modello Schizzo a colori alla seguente immagine di input: