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:
- Clone repositori git menggunakan perintah berikut:
git clone https://github.com/google-ai-edge/mediapipe-samples
- 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:
- FaceStylizationHelper.kt: Melakukan inisialisasi pada stilus wajah serta 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 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: