Leitfaden zur Gesichtsstilisierung für Android

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

Mit der Aufgabe „MediaPipe Face Stylizer“ können Sie Gesichterstilisierungen auf Gesichter in einem Bild anwenden. Mit dieser Aufgabe können Sie virtuelle Avatare in verschiedenen Stilen erstellen.

Das in dieser Anleitung beschriebene Codebeispiel ist auf GitHub Weitere Informationen zu Funktionen, Modellen und Konfigurationsoptionen Sehen Sie sich die Übersicht an.

Codebeispiel

Der Beispielcode von MediaPipe Tasks ist eine einfache Implementierung eines Gesichtsstilvollzugs. für Android. Im Beispiel wird die Gesichtsstilisierung auf Bilder angewendet, die für die

Du kannst die App als Ausgangspunkt für deine eigene Android-App verwenden oder darauf verweisen wenn Sie eine vorhandene App ändern. Der Beispielcode für Face Stylizer wird auf GitHub

Code herunterladen

In der folgenden Anleitung erfahren Sie, wie Sie eine lokale Kopie des Beispiels erstellen. mit dem Befehlszeilentool git erstellen.

So laden Sie den Beispielcode herunter:

  1. Klonen Sie das Git-Repository mit dem folgenden Befehl:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. Konfigurieren Sie optional Ihre Git-Instanz für den Sparse-Checkout, damit Sie nur die Dateien für die Beispiel-App „Face Stylizer“:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

Nachdem Sie eine lokale Version des Beispielcodes erstellt haben, können Sie das Projekt importieren in Android Studio ein und führen die App aus. Anweisungen hierzu finden Sie im Einrichtungsleitfaden für Android-Geräte

Schlüsselkomponenten

Die folgenden Dateien enthalten den wichtigen Code für dieses Beispiel zur Gesichtsstilisierung Anwendung:

Einrichtung

In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten Ihrer Entwicklungsumgebung und für die Nutzung von Face Stylizer. Allgemeine Informationen zu Einrichten Ihrer Entwicklungsumgebung für die Verwendung von MediaPipe-Aufgaben, einschließlich Anforderungen an die Plattformversion finden Sie im Einrichtungsleitfaden für Android-Geräte

Abhängigkeiten

Bei der Aufgabe „Face Stylizer“ wird die com.google.mediapipe:tasks-vision-Bibliothek verwendet. Hinzufügen diese Abhängigkeit zur build.gradle-Datei deiner Android-App:

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

Modell

Für die Aufgabe „MediaPipe Face Stylizer“ ist ein trainiertes Modell-Bundle erforderlich, das mit für diese Aufgabe. Weitere Informationen zu verfügbaren trainierten Modellen für den Face Stylizer finden Sie in der Aufgabenübersicht im Abschnitt „Modelle“.

Wählen Sie das Modell aus, laden Sie es herunter und speichern Sie es in Ihrem Projektverzeichnis:

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

Geben Sie den Pfad des Modells innerhalb des Parameters ModelAssetPath an.

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

Aufgabe erstellen

In der Aufgabe „MediaPipe Face Stylizer“ wird mit der Funktion createFromOptions() der für die Aufgabe. Die Funktion createFromOptions() akzeptiert Werte für die Konfiguration Optionen. Weitere Informationen zu Konfigurationsoptionen finden Sie unter Konfiguration Optionen.

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)

Konfigurationsoptionen

Diese Aufgabe bietet die folgenden Konfigurationsoptionen für Android-Apps:

Option Beschreibung Wertebereich Standardwert
errorListener Legt einen optionalen Fehler-Listener fest. N/A Not set

Daten vorbereiten

Der Gesichtsstilmacher funktioniert mit Standbildern. Die Aufgabe verarbeitet die Dateneingabe Vorverarbeitung, einschließlich Größenanpassung, Rotation und Wertnormalisierung. Die Der folgende Code zeigt, wie Daten zur Verarbeitung übergeben werden.

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

Aufgabe ausführen

Verwenden Sie die Methode FaceStylizer.stylize() für das Eingabebild, um den Stilisierer auszuführen:

val result = FaceStylizer.stylize(mpImage)

Ergebnisse verarbeiten und anzeigen

Der Face Stylizer gibt ein FaceStylizerResult-Objekt zurück, das ein MPImage-Objekt mit einer Stilisierung des auffälligsten Gesichts innerhalb der Eingabe Bild.

Im Folgenden sehen Sie ein Beispiel für die Ausgabedaten dieser Aufgabe:

Die obige Ausgabe wurde durch Anwenden der Farbskizze erstellt. in das folgende Eingabebild ein: