Tugas MediaPipe Face Stylizer memungkinkan Anda menerapkan gaya wajah ke wajah dalam gambar. Anda dapat menggunakan tugas ini untuk membuat avatar virtual dalam berbagai gaya.
Contoh kode yang dijelaskan dalam petunjuk ini tersedia di GitHub. Untuk 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 disediakan ke aplikasi.
Anda dapat menggunakan aplikasi ini sebagai titik awal untuk aplikasi Android Anda sendiri, atau merujuknya saat mengubah aplikasi yang ada. Kode contoh Face Stylizer dihosting di GitHub.
Mendownload kode
Petunjuk berikut menunjukkan cara membuat salinan lokal contoh kode 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 jarang, sehingga Anda hanya
memiliki file untuk aplikasi contoh Face Stylizer:
cd mediapipe-samples git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Setelah membuat versi lokal kode contoh, Anda dapat mengimpor project ke Android Studio dan menjalankan aplikasi. Untuk mendapatkan petunjuk, lihat Panduan Penyiapan untuk Android.
Komponen utama
File berikut berisi kode penting untuk aplikasi contoh gaya wajah ini:
- FaceStylizationHelper.kt: Melakukan inisialisasi gaya visual wajah dan menangani pemilihan model dan delegasi.
- MainActivity.kt: Memberikan hasil dan output, serta menangani error apa pun.
Penyiapan
Bagian ini menjelaskan langkah-langkah utama untuk menyiapkan lingkungan pengembangan dan project kode Anda secara khusus untuk menggunakan Face Stylizer. Untuk informasi umum tentang menyiapkan lingkungan pengembangan 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 Face Stylizer, lihat bagian Model ringkasan tugas.
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. 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
Face Stylizer berfungsi dengan gambar diam. Tugas ini menangani prapemrosesan 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 penyetel gaya:
val result = FaceStylizer.stylize(mpImage)
Menangani dan menampilkan hasil
Face Stylizer menampilkan objek FaceStylizerResult
, yang berisi
objek MPImage
dengan gaya wajah yang paling mencolok dalam gambar
input.
Berikut adalah contoh data output dari tugas ini:
Output di atas dibuat dengan menerapkan model Sketsa warna ke gambar input berikut: