Guide de stylisation des visages pour Android

<ph type="x-smartling-placeholder">

La tâche MediaPipe "Face Stylizer" (Stylet de visage MediaPipe) vous permet d'appliquer des stylisations aux visages dans 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 MediaPipe Tasks est une implémentation de base d'un styliseur de visage pour Android. L'exemple applique le stylisation des visages aux images fournies au l'application.

Vous pouvez utiliser l'application comme point de départ pour votre propre application Android ou vous y référer. lorsque vous modifiez une application existante. L'exemple de code pour le stylet de visage est hébergé sur GitHub

Télécharger le code

Les instructions suivantes vous expliquent comment créer une copie locale de l'exemple à l'aide de l'outil de ligne de commande git.

Pour télécharger l'exemple de code:

  1. Clonez le dépôt Git à l'aide de la commande suivante:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. Si vous le souhaitez, vous pouvez configurer votre instance Git pour utiliser le paiement creuse. Seuls les fichiers de l'exemple d'application de stylisation faciale:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

Après avoir créé une version locale de l'exemple de code, vous pouvez importer le projet dans Android Studio et exécuter l'application. Pour obtenir des instructions, consultez le Guide de configuration Android

Composants clés

Les fichiers suivants contiennent le code essentiel pour cet exemple de stylisation de visage application:

  • FaceStylizationHelper.kt: Initialise le styliseur de visage, et gère la sélection du modèle et du délégué.
  • MainActivity.kt: Fournit des résultats et des sorties, et gère les erreurs éventuelles.

Configuration

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

Dépendances

La tâche de stylisation de visage utilise la bibliothèque com.google.mediapipe:tasks-vision. Ajouter cette dépendance au fichier build.gradle de votre application Android:

dependencies {
    implementation 'com.google.mediapipe:tasks-vision:latest.release'
}

Modèle

La tâche MediaPipe Face Stylizer nécessite un bundle de modèles entraînés compatible avec cette tâche. Pour en savoir plus sur les modèles entraînés disponibles pour le styliseur de visage, consultez 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 le répertoire de votre projet:

<dev-project-root>/src/main/assets

Spécifiez le chemin d'accès du modèle dans le paramètre ModelAssetPath.

val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)

Créer la tâche

La tâche MediaPipe Face Stylizer utilise la fonction createFromOptions() pour configurer le tâche. La fonction createFromOptions() accepte les valeurs pour la configuration options. Pour plus d'informations sur les options de configuration, consultez la section Configuration options.

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)

Options de configuration

Cette tâche comporte les options de configuration suivantes pour les applications Android:

Nom de l'option Description Plage de valeurs Valeur par défaut
errorListener Définit un écouteur d'erreurs facultatif. N/A Not set

Préparer les données

Le styliseur de visage fonctionne avec les images fixes. La tâche gère la saisie des données le prétraitement, y compris le redimensionnement, la rotation et la normalisation des valeurs. La le code suivant montre comment transférer les données pour traitement.

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

Exécuter la tâche

Utilisez la méthode FaceStylizer.stylize() sur l'image d'entrée pour exécuter le styliseur:

val result = FaceStylizer.stylize(mpImage)

Gérer et afficher les résultats

Le styliseur de visage renvoie un objet FaceStylizerResult, qui contient un Objet MPImage avec stylisation du visage le plus proéminent dans l'entrée l'image.

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

La sortie ci-dessus a été créée en appliquant le croquis des couleurs. à l'image d'entrée suivante: