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:
Wynik powyżej został utworzony przez zastosowanie modelu Rysunek kolorem do tego obrazu wejściowego: