Przewodnik po stylizacji twarzy w Pythonie

Zadanie MediaPipe Face Stylizer umożliwia stylizowanie twarzy na obrazie. Za pomocą tego zadania możesz tworzyć wirtualnych awatarów w różnych stylach.

Przykładowy kod opisany w tych instrukcjach jest dostępny na GitHub. Więcej informacji o możliwościach, modelach i opcjach konfiguracji związanych z tym zadaniem znajdziesz w sekcji Omówienie.

Przykładowy kod

Przykładowy kod usługi Face Stylizer zawiera kompletną implementację tego zadania w Pythonie. Ten kod ułatwia testowanie tego zadania i rozpoczęcie tworzenia własnego stylizatora twarzy. Przykładowy kod Face Stylizera możesz wyświetlać, uruchamiać i edytować tylko w przeglądarce.

Konfiguracja

W tej sekcji opisaliśmy kluczowe kroki konfigurowania środowiska programistycznego i projektów kodu w celu korzystania z Face Stylizera. Ogólne informacje o konfigurowaniu środowiska programistycznego na potrzeby korzystania z zadań MediaPipe, w tym wymagania dotyczące wersji platformy, znajdziesz w przewodniku po konfigurowaniu Pythona.

Pakiety

Zadanie MediaPipe Face Stylizer wymaga pakietu mediapipe z PyPI. Te zależności możesz zainstalować i zaimportować za pomocą:

$ python -m pip install mediapipe

Importy

Aby uzyskać dostęp do funkcji zadania Face Stylizer, zaimportuj te klasy:

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

Model

Zadanie MediaPipe Face Stylizer wymaga wytrenowanego modelu, który jest zgodny z tym zadaniem. Więcej informacji o dostępnych wytrenowanych modelach usługi Face Stylizer znajdziesz w sekcji Modele w omówieniu zadania.

Wybierz i pobierz model, a potem zapisz go w katalogu lokalnym:

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

Aby określić ścieżkę do modelu, którego chcesz użyć, użyj parametru BaseOptions obiekt model_asset_path. Przykład kodu znajdziesz w następnej sekcji.

Tworzenie zadania

Zadanie MediaPipe Face Stylizer do konfiguracji zadania używa funkcji create_from_options. Funkcja create_from_options przyjmuje wartości opcji konfiguracji, które mają być obsługiwane.

Poniższy kod pokazuje, jak skompilować i skonfigurować to zadanie.

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

Przygotuj dane

Przygotuj dane wejściowe jako plik obrazu lub tablicę numpy, a potem przekonwertuj je na obiekt mediapipe.Image. Jeśli dane wejściowe to plik wideo lub transmisja na żywo z kamery internetowej, możesz użyć biblioteki zewnętrznej, takiej jak OpenCV, aby załadować ramki wejściowe jako tablice numpy.

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)

Uruchamianie zadania

Stylizator twarzy używa funkcji stylize do wywoływania wniosków. W przypadku stylizacji twarzy polega to na wstępnej obróbce danych wejściowych i stylizacji twarzy na obrazie.

Poniższy kod pokazuje, jak wykonać przetwarzanie za pomocą modelu zadania.

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

Obsługa i wyświetlanie wyników

Stylizator twarzy zwraca obiekt Image ze stylizacją najbardziej wyróżniającej się twarzy na obrazie wejściowym.

Poniżej znajdziesz przykład danych wyjściowych z tego zadania:

Wygenerowany zbliżenie na kobietę narysowaną ołówkiem i markerem.

Wynik powyżej został utworzony przez zastosowanie modelu Rysunek kolorem do tego obrazu wejściowego:

Zdjęcie kobiety, której obraz został użyty do wygenerowania poprzedniego wyniku