<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:
- Klonen Sie das Git-Repository mit dem folgenden Befehl:
git clone https://github.com/google-ai-edge/mediapipe-samples
- 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:
- FaceStylizationHelper.kt: Initialisiert den Gesichtsstil und übernimmt die Modell- und Delegationsauswahl.
- MainActivity.kt: Liefert Ergebnisse, Ausgaben und verarbeitet Fehler.
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: