Panduan gaya wajah untuk Android

Tugas Stylizer Wajah MediaPipe memungkinkan Anda menerapkan gaya wajah ke wajah dalam gambar. Anda dapat menggunakan tugas ini untuk membuat avatar virtual dengan berbagai gaya.

Contoh kode yang dijelaskan dalam petunjuk ini tersedia di GitHub. Untuk mengetahui informasi selengkapnya terkait kemampuan, model, dan opsi konfigurasi. tugas ini, lihat Ringkasan.

Contoh kode

Kode contoh Tugas MediaPipe adalah implementasi dasar dari Face Stylizer untuk Android. Contoh ini menerapkan gaya wajah ke gambar yang diberikan pada .

Anda dapat menggunakan aplikasi ini sebagai titik awal untuk aplikasi Android Anda sendiri, atau merujuk ke sana saat memodifikasi aplikasi yang ada. Kode contoh Stylizer Wajah dihosting di GitHub.

Mendownload kode

Petunjuk berikut menunjukkan cara membuat salinan lokal dari contoh kode menggunakan alat command line git.

Untuk mendownload kode contoh:

  1. Clone repositori git menggunakan perintah berikut:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. Secara opsional, konfigurasikan instance git Anda untuk menggunakan checkout sparse, sehingga Anda memiliki hanya file untuk aplikasi contoh Face Stylizer:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

Setelah membuat versi lokal dari kode contoh, Anda dapat mengimpor project ke Android Studio dan menjalankan aplikasi. Untuk petunjuk, lihat Panduan Penyiapan untuk Android.

Komponen utama

File berikut berisi kode penting untuk contoh gaya visual wajah ini aplikasi:

Penyiapan

Bagian ini menjelaskan langkah-langkah utama untuk menyiapkan lingkungan pengembangan dan membuat kode project secara khusus untuk menggunakan Stylizer Wajah. Untuk informasi umum tentang menyiapkan lingkungan pengembangan untuk menggunakan tugas MediaPipe, termasuk persyaratan versi platform, lihat Panduan penyiapan untuk Android.

Dependensi

Tugas Stylizer Wajah menggunakan library com.google.mediapipe:tasks-vision. Tambah dependensi ini ke file build.gradle aplikasi Android Anda:

dependencies {
    implementation 'com.google.mediapipe:tasks-vision:latest.release'
}

Model

Tugas Stylizer Wajah MediaPipe memerlukan paket model terlatih yang kompatibel dengan untuk melakukan tugas ini. Untuk mengetahui informasi selengkapnya tentang model terlatih yang tersedia untuk Stylizer Wajah, lihat ringkasan tugas bagian Model.

Pilih dan download model, lalu simpan dalam direktori project Anda:

<dev-project-root>/src/main/assets

Tentukan jalur model dalam parameter ModelAssetPath.

val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)

Membuat tugas

Tugas MediaPipe Face Stylizer menggunakan fungsi createFromOptions() untuk menyiapkan tugas Anda. Fungsi createFromOptions() menerima nilai untuk konfigurasi lainnya. Untuk informasi selengkapnya mengenai opsi konfigurasi, lihat Konfigurasi lainnya.

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)

Opsi konfigurasi

Tugas ini memiliki opsi konfigurasi berikut untuk aplikasi Android:

Nama Opsi Deskripsi Rentang Nilai Nilai Default
errorListener Menetapkan pemroses error opsional. N/A Not set

Menyiapkan data

Stylizer Wajah berfungsi dengan gambar diam. Tugas ini menangani input data pra-pemrosesan, termasuk pengubahan ukuran, rotasi, dan normalisasi nilai. Tujuan kode berikut menunjukkan cara menyerahkan data untuk diproses.

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

Menjalankan tugas

Gunakan metode FaceStylizer.stylize() pada gambar input untuk menjalankan stylizer:

val result = FaceStylizer.stylize(mpImage)

Menangani dan menampilkan hasil

Stylizer Wajah menampilkan objek FaceStylizerResult, yang berisi Objek MPImage dengan gaya wajah yang paling terlihat dalam input gambar.

Berikut ini contoh data output dari tugas ini:

Output di atas dibuat dengan menerapkan Sketsa warna ke gambar input berikut: