Guide de stylisation des visages pour Python

La tâche MediaPipe Face Sylizer vous permet d'appliquer des styles aux visages sur une image. Vous pouvez utiliser cette tâche pour créer des avatars virtuels de différents styles.

L'exemple de code décrit dans ces instructions est disponible sur GitHub. Pour en savoir plus sur les fonctionnalités, les modèles et les options de configuration de cette tâche, consultez la présentation.

Exemple de code

L'exemple de code pour Face Sylizer fournit une implémentation complète de cette tâche en Python à titre de référence. Ce code vous aide à tester cette tâche et à créer votre propre styliseur de visage. Vous ne pouvez afficher, exécuter et modifier l' exemple de code de Face Stylizer qu'à l'aide de votre navigateur Web.

Préparation

Cette section décrit les étapes clés de la configuration de votre environnement de développement et de vos projets de code spécifiquement pour l'utilisation de Face Stylizer. Pour obtenir des informations générales sur la configuration de votre environnement de développement pour l'utilisation des tâches MediaPipe, y compris sur les exigences concernant les versions de la plate-forme, consultez le guide de configuration de Python.

Colis

La tâche MediaPipe Face Sylizer nécessite le package PyPI MediaPipe. Vous pouvez installer et importer ces dépendances avec les éléments suivants:

$ python -m pip install mediapipe

Importations

Importez les classes suivantes pour accéder aux fonctions des tâches de stylisation de visages:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

Modèle

La tâche MediaPipe Face Sylizer nécessite un modèle entraîné compatible avec cette tâche. Pour en savoir plus sur les modèles entraînés disponibles pour Face Sylizer, consultez la section Modèles de la présentation des tâches.

Sélectionnez et téléchargez le modèle, puis stockez-le dans un répertoire local:

model_path = '/absolute/path/to/face_stylizer.task'

Utilisez le paramètre model_asset_path de l'objet BaseOptions pour spécifier le chemin d'accès du modèle à utiliser. Pour obtenir un exemple de code, consultez la section suivante.

Créer la tâche

La tâche MediaPipe Face Sylizer utilise la fonction create_from_options pour configurer la tâche. La fonction create_from_options accepte les valeurs à gérer pour les options de configuration.

Le code suivant montre comment créer et configurer cette tâche.

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.
  # ...

Préparation des données

Préparez votre entrée en tant que fichier image ou tableau Numpy, puis convertissez-la en objet mediapipe.Image. Si votre entrée est un fichier vidéo ou une diffusion en direct depuis une webcam, vous pouvez utiliser une bibliothèque externe telle que OpenCV pour charger vos images d'entrée sous forme de tableaux Numpy.

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)

Exécuter la tâche

Le stylet de visage utilise la fonction stylize pour déclencher des inférences. Pour la stylisation des visages, cela implique de prétraiter les données d'entrée et de styliser les visages dans l'image.

Le code suivant montre comment exécuter le traitement avec le modèle de tâche.

# 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)

Gérer et afficher les résultats

Face Sylizer renvoie un objet Image stylisé le visage le plus proéminent dans l'image d'entrée.

Voici un exemple des données de sortie de cette tâche:

La sortie ci-dessus a été créée en appliquant le modèle Color sketch à l'image d'entrée suivante: