Leitfaden zur Gesichtsstilisierung für Python

Mit der MediaPipe-Aufgabe „Gesichtsstilisierung“ können Sie Gesichter in einem Bild stilisieren. Mit 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 den Face Stylizer enthält eine vollständige Implementierung dieser Aufgabe in Python. Mit diesem Code können Sie diese Aufgabe testen und mit dem Erstellen Ihres eigenen Gesichts-Stylizers beginnen. Sie können den Beispielcode für Face Stylizer nur mit Ihrem Webbrowser ansehen, ausführen und bearbeiten.

Einrichtung

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

Pakete

Für die MediaPipe-Aufgabe „Face Stylizer“ ist das PyPI-Paket „mediapipe“ erforderlich. Sie können diese Abhängigkeiten mit den folgenden Befehlen installieren und importieren:

$ python -m pip install mediapipe

Importe

Importieren Sie die folgenden Klassen, um auf die Aufgabenfunktionen von Face Stylizer zuzugreifen:

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

Modell

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

Wählen Sie das Modell aus, laden Sie es herunter und speichern Sie es in einem lokalen Verzeichnis:

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

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

Aufgabe erstellen

Für die MediaPipe-Aufgabe „Gesichtsstilisierung“ wird die Funktion create_from_options verwendet, um die Aufgabe einzurichten. Die Funktion create_from_options akzeptiert Werte für zu verarbeitende Konfigurationsoptionen.

Im folgenden Code 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 als Numpy-Array vor und wandeln Sie sie dann in ein mediapipe.Image-Objekt um. 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)

Aufgabe ausführen

Der Face-Styler verwendet die Funktion stylize, um Inferenzen auszulösen. Bei der Gesichtsstilisierung werden die Eingabedaten vorverarbeitet und die Gesichter im Bild stilisiert.

Im folgenden Code wird gezeigt, 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 Gesichtsstilizer gibt ein Image-Objekt mit einer Stilisierung des auffälligsten Gesichts im Eingabebild zurück.

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

Eine generierte Nahaufnahme einer Frau, die im Stil einer Bleistift- und Markierungsskizze gezeichnet wurde.

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

Foto der Frau, deren Bild für die vorherige Ausgabe verwendet wurde