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 per Face Stylizer fornisce un'implementazione completa un'attività in Python come riferimento. Questo codice ti consente di testare l'attività e ottenere a creare il tuo stilizzatore di volti. Puoi visualizzare, eseguire e modificare lo Esempio di codice dello Stilizzatore del volto usando solo il browser web.
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 Python.
Pacchetti
L'attività Stilizzazione del viso di MediaPipe richiede il pacchetto PyPI mediapipe. Puoi installare ed eseguire importa queste dipendenze con quanto segue:
$ python -m pip install mediapipe
Importazioni
Importa le seguenti classi per accedere alle funzioni attività Stilizzatore del volto:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Modello
L'attività Stilizzazione del viso di MediaPipe richiede un modello addestrato compatibile con dell'attività. Per ulteriori informazioni sui modelli addestrati disponibili per Face Stylizer, vedi la panoramica delle attività nella sezione Modelli.
Seleziona e scarica il modello, quindi archivialo in una directory locale:
model_path = '/absolute/path/to/face_stylizer.task'
Utilizza il parametro model_asset_path
dell'oggetto BaseOptions
per specificare il percorso dell'oggetto
il modello da utilizzare. Per un esempio di codice, consulta la sezione successiva.
Crea l'attività
L'attività Stilizzatore del viso di MediaPipe utilizza la funzione create_from_options
per configurare
dell'attività. La funzione create_from_options
accetta valori per la configurazione
e le opzioni da gestire.
Il codice seguente illustra come creare e configurare questa attività.
import mediapipe as mp
BaseOptions = mp.tasks.BaseOptions
Facestylizer = mp.tasks.vision.face_stylizer
FacestylizerOptions = mp.tasks.vision.FaceStylizerOptions
# Create a face stylizer instance with the image mode:
options = FacestylizerOptions(
base_options=BaseOptions(model_asset_path=model_path),
with Facestylizer.create_from_options(options) as stylizer:
# The stylizer is initialized. Use it here.
# ...
Preparazione dei dati
Prepara l'input come file immagine o array numpy, quindi convertilo in un
mediapipe.Image
oggetto. Se l'input è un file video o un live streaming da un
webcam, puoi utilizzare una libreria esterna come
OpenCV per caricare i frame di input come numpy
di grandi dimensioni.
import mediapipe as mp
# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')
# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
Esegui l'attività
Lo Stilizzatore del volto usa la funzione stylize
per attivare le inferenze. Per viso
la stilizzazione, che prevede la pre-elaborazione dei dati di input e la stilizzazione delle facce
dell'immagine.
Il codice seguente mostra come eseguire l'elaborazione con l'attività un modello di machine learning.
# Perform face stylization on the provided single image.
# The face stylizer must be created with the image mode.
face_stylizer_result = stylizer.stylize(mp_image)
Gestire e visualizzare i risultati
Lo Stilizzatore del volto restituisce un oggetto Image
con una stilizzazione delle
volto in evidenza nell'immagine di input.
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: