MediaPipe Yüz Biçimlendirici görevi, bir resimdeki yüzlere yüz stili uygulamanızı sağlar. Bu görevi kullanarak çeşitli stillerde sanal avatarlar oluşturabilirsiniz.
Bu talimatlarda açıklanan kod örneğini şu adreste bulabilirsiniz: GitHub'a gidin. Özellikler, modeller ve yapılandırma seçenekleri hakkında daha fazla bilgi Bu görev hakkında daha fazla bilgi için Genel Bakış'ı inceleyin.
Kod örneği
MediaPipe Tasks örnek kodu, yüz stilize edici uygulamanın temel bir uygulamasıdır. Android için uygulama. Örnekte, uygulamasını indirin.
Uygulamayı kendi Android uygulamanız için başlangıç noktası olarak kullanabilir veya buna başvurabilirsiniz mevcut bir uygulamada değişiklik yaparken. Yüz Stilisti örnek kodu şurada barındırılır: GitHub'a gidin.
Kodu indirme
Aşağıdaki talimatlarda, örneğin yerel bir kopyasını nasıl oluşturacağınız gösterilmektedir kodu oluşturmak için git komut satırı aracını kullanın.
Örnek kodu indirmek için:
- Aşağıdaki komutu kullanarak git deposunu klonlayın:
git clone https://github.com/google-ai-edge/mediapipe-samples
- İsteğe bağlı olarak, git örneğinizi seyrek ödeme yöntemini kullanacak şekilde yapılandırın. Böylece,
yalnızca Yüz Stylizer örnek uygulaması için dosyalar:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Örnek kodun yerel sürümünü oluşturduktan sonra projeyi içe aktarabilirsiniz. Android Studio'ya gidip uygulamayı çalıştırın. Talimatlar için bkz. Android.
Temel bileşenler
Aşağıdaki dosyalar, bu yüz biçimlendirme örneği için önemli kodu içeriyor uygulama:
- FaceStylizationHelper.kt: Yüz stilizeyi başlatır, model ve yetki seçimi işlemlerini gerçekleştirir.
- MainActivity.kt: Sonuçları ve çıktıları sunar ve hataları ele alır.
Kurulum
Bu bölümde, geliştirme ortamınızı ve ayarlarınızı yönetmeyle ilgili ve Yüz Şekillendirici'yi kullanmak için özel olarak kod projeleri. Şu konularda genel bilgi için: dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı platform sürümü gereksinimleri hakkında daha fazla bilgi için Android.
Bağımlılıklar
Yüz Stilisti görevi, com.google.mediapipe:tasks-vision
kitaplığını kullanır. Ekle
bu bağımlılığı Android uygulamanızın build.gradle
dosyasına eklemeniz gerekir:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Model
MediaPipe Yüz Biçimlendirici görevi, aşağıdakilerle uyumlu olan eğitilmiş bir model paketi gerektirir: oluşturacağım. Yüz Şekillendirici için eğitilen modeller hakkında daha fazla bilgi için göreve genel bakışın Modeller bölümünü inceleyin.
Modeli seçin, indirin ve proje dizininizde depolayın:
<dev-project-root>/src/main/assets
ModelAssetPath
parametresi içinde modelin yolunu belirtin.
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
Görevi oluşturma
MediaPipe Yüz Stylizer görevi, createFromOptions()
işlevini kullanarak
görevi görebilir. createFromOptions()
işlevi, yapılandırma için değerleri kabul eder
seçenekleri vardır. Yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için Yapılandırma
seçenekleri bulabilirsiniz.
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)
Yapılandırma seçenekleri
Bu görev, Android uygulamaları için aşağıdaki yapılandırma seçeneklerini içerir:
Seçenek Adı | Açıklama | Değer Aralığı | Varsayılan Değer |
---|---|---|---|
errorListener |
İsteğe bağlı bir hata işleyici ayarlar. | N/A |
Not set |
Verileri hazırlama
Yüz Stilisti, hareketsiz resimlerle çalışır. Görev, veri girişini işler yeniden boyutlandırma, döndürme ve değer normalleştirmesi dahil olmak üzere ön işlemeyi içerir. İlgili içeriği oluşturmak için kullanılan aşağıdaki kod, verilerin işlenmek üzere nasıl aktarılacağını göstermektedir.
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()
Görevi çalıştırma
Stilisti çalıştırmak için giriş resminde FaceStylizer.stylize()
yöntemini kullanın:
val result = FaceStylizer.stylize(mpImage)
Sonuçları işleme ve görüntüleme
Yüz Stilist, bir FaceStylizerResult
nesnesi döndürür. Bu nesne
Girişteki en belirgin yüzün stilize edildiği MPImage
nesne
görüntüsüdür.
Aşağıda, bu görevdeki çıkış verilerinin bir örneği gösterilmektedir:
Yukarıdaki çıktı, Renk çizimi uygulanarak oluşturulmuştur modelini aşağıdaki giriş resmine ekleyerek: