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 MediaPipe Tasks to podstawowa implementacja stylizatora twarzy na Androida. W przykładzie zastosowano stylizację twarzy do obrazów przesłanych do funkcji .
Możesz użyć tej aplikacji jako punktu wyjścia dla własnej aplikacji na Androida lub odnieść się do niej podczas modyfikowania istniejącej aplikacji. Przykładowy kod Stylizatora twarzy jest hostowany na GitHub
Pobieranie kodu
Poniżej znajdziesz instrukcje tworzenia lokalnej kopii przykładu. 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 możesz skonfigurować instancję git tak, aby wykorzystywała rozproszony proces płatności, aby
Tylko pliki przykładowej aplikacji Stylizator twarzy:
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 w Android Studio i uruchom aplikację. Odpowiednie instrukcje znajdziesz w Przewodniku po konfiguracji na urządzeniu z Androidem.
Kluczowe elementy
Poniższe pliki zawierają kluczowy kod dotyczący tego przykładu stylizacji twarzy aplikacja:
- FaceStylizationHelper.kt: Inicjuje stylizację twarzy i obsługuje model oraz umożliwia wybór użytkownika.
- MainActivity.kt: Podaje wyniki i dane wyjściowe oraz obsługuje wszystkie błędy.
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 na urządzeniu z Androidem.
Zależności
Zadanie Stylizatora twarzy korzysta z biblioteki com.google.mediapipe:tasks-vision
. Dodaj
tę zależność od pliku build.gradle
aplikacji na Androida:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Model
Zadanie MediaPipe Face Stylizer wymaga wytrenowanego pakietu modeli zgodnego z w tym zadaniu. Więcej informacji o dostępnych wytrenowanych modelach dotyczących Stylizowania twarzy znajdziesz zapoznaj się z omówieniem zadania sekcją Modele.
Wybierz i pobierz model oraz zapisz go w katalogu projektu:
<dev-project-root>/src/main/assets
Określ ścieżkę modelu w parametrze ModelAssetPath
.
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 używa funkcji createFromOptions()
do skonfigurowania
zadanie. Funkcja createFromOptions()
akceptuje wartości konfiguracji
. Więcej informacji o opcjach konfiguracji znajdziesz w sekcji Konfiguracja
.
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
To zadanie zawiera te opcje konfiguracji aplikacji na Androida:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
errorListener |
Ustawia opcjonalny detektor błędów. | N/A |
Not set |
Przygotuj dane
Stylizacja twarzy działa z nieruchomymi obrazami. Zadanie obsługuje wprowadzanie danych w tym m.in. zmianę rozmiaru, obrót i normalizację wartości. ten kod pokazuje, jak przekazywać dane do przetworzenia.
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
Aby uruchomić stylizator, użyj metody FaceStylizer.stylize()
na obrazie wejściowym:
val result = FaceStylizer.stylize(mpImage)
Obsługa i wyświetlanie wyników
Styl twarzy zwraca obiekt FaceStylizerResult
, który zawiera
Obiekt MPImage
ze stylizacją najbardziej widocznej twarzy w danych wejściowych
.
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: