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 zadań MediaPipe to podstawowa implementacja aplikacji Face Stylizer na Androida. W tym przykładzie stylizacja twarzy jest stosowana do obrazów dostarczonych aplikacji.
Możesz użyć tej aplikacji jako punktu wyjścia do stworzenia własnej aplikacji na Androida lub skorzystać z niej podczas modyfikowania istniejącej aplikacji. Przykładowy kod Face Stylizer jest hostowany na GitHub.
Pobieranie kodu
Z tych instrukcji dowiesz się, jak utworzyć lokalną kopię przykładowego kodu za pomocą narzędzia wiersza poleceń git.
Aby pobrać przykładowy kod:
- Sklonuj repozytorium Git za pomocą tego polecenia:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Opcjonalnie skonfiguruj instancję git, aby używać rzadkiego sprawdzania, dzięki czemu będziesz mieć tylko pliki aplikacji przykładowej Face Stylizer:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Po utworzeniu lokalnej wersji przykładowego kodu możesz zaimportować projekt do Android Studio i uruchomić aplikację. Instrukcje znajdziesz w przewodniku konfiguracji Androida.
Kluczowe komponenty
Te pliki zawierają kluczowy kod aplikacji przykładowej stylizacji twarzy:
- FaceStylizationHelper.kt: inicjalizuje stylizator twarzy i obsługuje model oraz wybór delegata.
- MainActivity.kt: zwraca wyniki i dane wyjściowe oraz obsługuje błędy.
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 do korzystania z zadań MediaPipe, w tym wymagania dotyczące wersji platformy, znajdziesz w przewodniku konfiguracji na Androida.
Zależności
Zadanie Stylizera twarzy korzysta z biblioteki com.google.mediapipe:tasks-vision
. Dodaj tę zależność do pliku build.gradle
aplikacji na Androida:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Model
Zadanie MediaPipe Face Stylizer wymaga pakietu wytrenowanych modeli, które są zgodne 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 projektu:
<dev-project-root>/src/main/assets
W parametrze ModelAssetPath
podaj ścieżkę do modelu.
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
Tworzenie zadania
Zadanie MediaPipe Face Stylizer do konfiguracji zadania używa funkcji createFromOptions()
. Funkcja createFromOptions()
akceptuje wartości opcji konfiguracji. Więcej informacji o opcjach konfiguracji znajdziesz w artykule Opcje konfiguracji.
val baseOptionsBuilder = BaseOptions.builder().setModelAssetPath(modelName)
val baseOptions = baseOptionBuilder.build()
val optionsBuilder =
FaceStylizer.FaceStylizerOptions.builder()
.setBaseOptions(baseOptionsBuilder.build())
val options = optionsBuilder.build()
FaceStylizer =
FaceStylizer.createFromOptions(context, options)
Opcje konfiguracji
W tym zadaniu dostępne są te opcje konfiguracji aplikacji na Androida:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
errorListener |
Ustawia opcjonalny odbiornik błędów. | N/A |
Not set |
Przygotuj dane
Face Stylizer działa z nieruchomymi obrazami. Zadanie obsługuje dane wejściowe wstępny przetwarzanie, w tym zmianę rozmiaru, obrót i normalizację wartości. Poniższy kod pokazuje, jak przekazywać dane do przetwarzania.
import com.google.mediapipe.framework.image.BitmapImageBuilder
import com.google.mediapipe.framework.image.MPImage
// Convert the input Bitmap object to an MPImage object to run inference
val mpImage = BitmapImageBuilder(image).build()
Uruchamianie zadania
Użyj metody FaceStylizer.stylize()
na obrazie wejściowym, aby uruchomić stylizer:
val result = FaceStylizer.stylize(mpImage)
Obsługa i wyświetlanie wyników
Stylizator twarzy zwraca obiekt FaceStylizerResult
, który zawiera obiekt MPImage
ze stylizacją najbardziej widocznej 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: