Przewodnik po stylizacji twarzy w Pythonie

Zadanie MediaPipe Stylizer pozwala stosować style twarzy do twarzy na zdjęciu. Możesz używać tego zadania do tworzenia wirtualnych awatarów w różnych stylach.

Przykładowy kod opisany w tych instrukcjach jest dostępny na GitHub. Więcej informacji o funkcjach, modelach i opcjach konfiguracji zapoznaj się z Przeglądem.

Przykładowy kod

Przykładowy kod Stylizatora twarzy zapewnia pełną implementację tego w Pythonie. Ten kod pomoże Ci przetestować to zadanie i uzyskać zaczęło się od zbudowania własnego stylizatora twarzy. Możesz wyświetlać, uruchamiać i edytować Przykładowy kod stylizatora twarzy korzystając tylko z przeglądarki.

Konfiguracja

W tej sekcji opisujemy najważniejsze czynności związane z konfigurowaniem środowiska programistycznego oraz projekty kodu, w których będą używane Stylizatory twarzy. Ogólne informacje na temat: skonfigurować środowisko programistyczne do korzystania z zadań MediaPipe, w tym wymagań wersji platformy znajdziesz w przewodniku konfiguracji dla Pythona.

Pakiety

Zadanie MediaPipe Face Stylizer wymaga pakietu PyPI mediapipe. Możesz zainstalować zaimportuj te zależności z tym kodem:

$ python -m pip install mediapipe

Importy

Aby uzyskać dostęp do funkcji zadań Stylizatora twarzy, 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 zgodnego z tym zadanie. Więcej informacji o dostępnych wytrenowanych modelach dotyczących stylizacji twarzy znajdziesz tutaj zapoznaj się z omówieniem zadania sekcją Modele.

Wybierz i pobierz model, a następnie zapisz go w katalogu lokalnym:

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

Użyj parametru model_asset_path obiektu BaseOptions, aby określić ścieżkę wybierz model. Przykładowy kod znajdziesz w następnej sekcji.

Tworzenie zadania

Zadanie MediaPipe Face Stylizer używa funkcji create_from_options do skonfigurowania zadanie. Funkcja create_from_options akceptuje wartości konfiguracji różnych opcji.

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 graficzny lub tablicę numpy, a następnie przekonwertuj je na mediapipe.Image obiekt. Jeśli dane wejściowe to plik wideo lub transmisja na żywo z kamery internetowej, możesz użyć zewnętrznej biblioteki, takiej jak OpenCV, który wczytuje klatki wejściowe w formacie numpy tablice.

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

Styl twarzy używa funkcji stylize do aktywowania wnioskowania. Do twarzy stylizacji, obejmuje wstępne przetwarzanie danych wejściowych i dobieranie stylizacji twarzy .

Ten kod pokazuje, jak wykonać przetwarzanie za pomocą zadania model atrybucji.

# 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ą o największej wyraźną twarz na obrazie wejściowym.

Poniżej znajdziesz przykładowe dane wyjściowe tego zadania:

Powyższy wynik został utworzony przez zastosowanie szkicu kolorów. do następującego obrazu wejściowego: