Leitfaden zur Gesichtsstilisierung für Python

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

Das in dieser Anleitung beschriebene Codebeispiel ist auf GitHub verfügbar. Weitere Informationen zu den Funktionen, Modellen und Konfigurationsoptionen dieser Aufgabe finden Sie in der Übersicht.

Codebeispiel

Der Beispielcode für Face Stylizer bietet eine vollständige Implementierung dieser Aufgabe in Python. Mit diesem Code können Sie die Aufgabe testen und Ihren eigenen Gesichtssylizer erstellen. Sie können den Beispielcode für den Face Stylizer nur mit Ihrem Webbrowser ansehen, ausführen und bearbeiten.

Einrichtung

In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten der Entwicklungsumgebung und Programmierprojekte speziell für die Verwendung des Face Stylizers beschrieben. Allgemeine Informationen zum Einrichten der Entwicklungsumgebung für die Verwendung von MediaPipe-Aufgaben, einschließlich der Anforderungen an die Plattformversion, finden Sie im Einrichtungsleitfaden für Python.

Pakete

Für die MediaPipe Face Stylizer-Aufgabe ist das MediaPipe-PyPI-Paket erforderlich. Sie können diese Abhängigkeiten so installieren und importieren:

$ python -m pip install mediapipe

Importe

Importieren Sie die folgenden Klassen, um auf die Aufgabenfunktionen für das Gesichtsstylisting zuzugreifen:

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

Modell

Für die MediaPipe Face Stylizer-Aufgabe ist ein trainiertes Modell erforderlich, das mit dieser Aufgabe kompatibel ist. Weitere Informationen zu verfügbaren trainierten Modellen für 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 dann in einem lokalen Verzeichnis:

model_path = '/absolute/path/to/face_stylizer.task'

Verwenden Sie den model_asset_path-Parameter des BaseOptions-Objekts, um den Pfad des zu verwendenden Modells anzugeben. Ein Codebeispiel finden Sie im nächsten Abschnitt.

Aufgabe erstellen

Die MediaPipe Face Stylizer-Aufgabe verwendet die Funktion create_from_options, um die Aufgabe einzurichten. Die Funktion create_from_options akzeptiert Werte für Konfigurationsoptionen, die verarbeitet werden sollen.

Im folgenden Codebeispiel wird gezeigt, wie diese Aufgabe erstellt und konfiguriert wird.

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.
  # ...

Daten vorbereiten

Bereiten Sie die Eingabe als Bilddatei oder NumPy-Array vor und konvertieren Sie sie in ein mediapipe.Image-Objekt. Wenn Ihre Eingabe eine Videodatei oder ein Livestream von einer Webcam ist, können Sie eine externe Bibliothek wie OpenCV verwenden, um Ihre Eingabeframes als NumPy-Arrays zu laden.

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)

Task ausführen

Der Face Stylizer nutzt die Funktion stylize, um Inferenzen auszulösen. Bei der Gesichtsstilisierung umfasst dies die Vorverarbeitung von Eingabedaten und die Stilisierung der Gesichter im Bild.

Der folgende Code zeigt, wie die Verarbeitung mit dem Aufgabenmodell ausgeführt wird.

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

Ergebnisse verarbeiten und anzeigen

Der Face Stylizer gibt ein Image-Objekt mit einer Stilisierung des auffälligsten Gesichts im Eingabebild zurück.

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

Die obige Ausgabe wurde erstellt, indem das Modell Color sketch auf das folgende Eingabebild angewendet wurde: