Guide de stylisation des visages pour Python

La tâche "Styleur de visage MediaPipe" vous permet d'appliquer des stylisations aux visages d'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 section Présentation.

Exemple de code

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

Configuration

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

Colis

La tâche MediaPipe Face Stylizer nécessite le package PyPI mediapipe. Vous pouvez installer et importer ces dépendances avec les commandes suivantes:

$ python -m pip install mediapipe

Importations

Importez les classes suivantes pour accéder aux fonctions de la tâche Face Stylist:

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

Modèle

La tâche de stylisation du visage MediaPipe 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 Stylist, consultez la section Modèles de la présentation de la tâche.

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 au modèle à utiliser. Pour obtenir un exemple de code, consultez la section suivante.

Créer la tâche

La tâche de stylisation du visage MediaPipe utilise la fonction create_from_options pour configurer la tâche. La fonction create_from_options accepte les valeurs des options de configuration à gérer.

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éparer les 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 un flux en direct à partir d'une webcam, vous pouvez utiliser une bibliothèque externe telle que OpenCV pour charger vos frames d'entrée en tant que 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 styliseur 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

Le styliseur de visage renvoie un objet Image avec une stylisation du visage le plus proéminent dans l'image d'entrée.

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

Gros plan généré sur une femme dessinée au crayon et au marqueur.

Le résultat ci-dessus a été créé en appliquant le modèle Croquis de couleur à l'image d'entrée suivante:

Photographie de la femme dont l'image a été utilisée pour générer le résultat précédent