Tugas MediaPipe Face Stylizer 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 tentang kemampuan, model, dan opsi konfigurasi tugas ini, lihat Ringkasan.
Contoh kode
Kode contoh MediaPipe Tasks adalah implementasi dasar aplikasi Face Stylizer untuk Android. Contoh ini menerapkan gaya wajah ke gambar yang diberikan ke aplikasi.
Anda dapat menggunakan aplikasi sebagai titik awal untuk aplikasi Android Anda sendiri, atau merujuk ke aplikasi tersebut saat memodifikasi aplikasi yang sudah ada. Kode contoh Face Stylizer dihosting di GitHub.
Mendownload kode
Petunjuk berikut menunjukkan cara membuat salinan lokal dari kode contoh menggunakan alat command line git.
Untuk mendownload kode contoh:
- Clone repositori git menggunakan perintah berikut:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Secara opsional, konfigurasikan instance git untuk menggunakan checkout sparse, sehingga Anda hanya memiliki
file untuk aplikasi contoh Stylizer Wajah:
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 mengetahui petunjuknya, lihat Panduan Penyiapan untuk Android.
Komponen utama
File berikut berisi kode penting untuk aplikasi contoh gaya wajah ini:
- FaceStylizationHelper.kt: Melakukan inisialisasi gaya stylizer wajah dan menangani pemilihan model dan delegasi.
- MainActivity.kt: Memberikan hasil dan output, serta menangani error.
Penyiapan
Bagian ini menjelaskan langkah-langkah utama untuk menyiapkan lingkungan pengembangan dan project kode khusus untuk menggunakan Stylizer Wajah. Untuk informasi umum tentang menyiapkan lingkungan pengembangan Anda untuk menggunakan tugas MediaPipe, termasuk persyaratan versi platform, lihat Panduan penyiapan untuk Android.
Dependensi
Tugas Face Stylizer menggunakan library com.google.mediapipe:tasks-vision
. Tambahkan
dependensi ini ke file build.gradle
aplikasi Android Anda:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Model
Tugas MediaPipe Face Stylizer memerlukan paket model terlatih yang kompatibel dengan tugas ini. Untuk mengetahui informasi selengkapnya tentang model terlatih yang tersedia untuk Stylizer Wajah, lihat bagian Model ringkasan tugas.
Pilih dan download model, serta 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. Fungsi createFromOptions()
menerima nilai untuk opsi
konfigurasi. Untuk informasi selengkapnya tentang opsi konfigurasi, lihat Opsi
konfigurasi.
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 pra-pemrosesan input data, termasuk pengubahan ukuran, rotasi, dan normalisasi nilai. 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 gambar
input.
Berikut ini contoh data output dari tugas ini:
Output di atas dibuat dengan menerapkan model Sketsa warna ke gambar input berikut: