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: