MediaPipe Face Stylizer görevi, bir resimdeki yüzlere yüz stilizasyonları uygulamanıza olanak tanır. Çeşitli stillerde sanal avatarlar oluşturmak için bu görevi kullanabilirsiniz.
Bu talimatlarda açıklanan kod örneğini GitHub'da bulabilirsiniz. Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel bakış bölümüne bakın.
Kod örneği
MediaPipe Tasks örnek kodu, Android için bir Yüz Stilizörü uygulamasının temel bir uygulamasıdır. Örnekte, uygulamaya sağlanan resimlere yüz stilizasyonu uygulanmaktadır.
Uygulamayı kendi Android uygulamanız için başlangıç noktası olarak kullanabilir veya mevcut bir uygulamayı değiştirirken referans olarak kullanabilirsiniz. Yüz Stilizörü örnek kodu GitHub'da barındırılır.
Kodu indirme
Aşağıdaki talimatlarda, git komut satırı aracını kullanarak örnek kodun yerel bir kopyasının nasıl oluşturulacağı gösterilmektedir.
Ö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 kontrol kullanacak şekilde yapılandırın. Böylece yalnızca Face Stylizer örnek uygulamasının dosyalarına sahip olursunuz:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Örnek kodun yerel bir sürümünü oluşturduktan sonra projeyi Android Studio'ya aktarabilir ve uygulamayı çalıştırabilirsiniz. Talimatlar için Android için Kurulum Kılavuzu'na bakın.
Temel bileşenler
Aşağıdaki dosyalar, bu yüz stilizasyonu örnek uygulamasının önemli kodunu içerir:
- FaceStylizationHelper.kt: Yüz stilleştiriciyi başlatır, modeli ve temsilci seçimini yönetir.
- MainActivity.kt: Sonuçları ve çıkışları sağlar ve hataları yönetir.
Kurulum
Bu bölümde, geliştirme ortamınızı ve kod projelerinizi özellikle Face Stylizer'ı kullanacak şekilde ayarlamayla ilgili temel adımlar açıklanmaktadır. Platform sürümü gereksinimleri dahil olmak üzere, geliştirme ortamınızı MediaPipe görevlerini kullanmak için ayarlama hakkında genel bilgi için Android için kurulum kılavuzuna bakın.
Bağımlılıklar
Yüz Stilize Etme görevi com.google.mediapipe:tasks-vision
kitaplığını kullanır. Bu bağımlılık, Android uygulamanızın build.gradle
dosyasına eklenmelidir:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Model
MediaPipe Face Stylizer görevi, bu görevle uyumlu bir eğitimli model paketi gerektirir. Yüz Stilisti için kullanılabilen eğitilmiş modeller hakkında daha fazla bilgi edinmek istiyorsanız göreve genel bakıştaki Modeller bölümüne bakın.
Modeli seçip indirin ve proje dizininizde saklayın:
<dev-project-root>/src/main/assets
ModelAssetPath
parametresinde 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şturun
MediaPipe Face Stylizer görevi, görevi ayarlamak için createFromOptions()
işlevini kullanır. createFromOptions()
işlevi, yapılandırma seçenekleri için değerleri kabul eder. Yapılandırma seçenekleri hakkında daha fazla bilgi için Yapılandırma seçenekleri başlıklı makaleyi inceleyin.
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örevde, Android uygulamaları için aşağıdaki yapılandırma seçenekleri bulunur:
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 stilleştirici, hareketsiz resimlerle çalışır. Görev, yeniden boyutlandırma, döndürme ve değer normalleştirme dahil olmak üzere veri girişi ön işleme işlemlerini yönetir. Aşağıdaki kodda, verilerin işleme için nasıl aktarılacağı gösterilmektedir.
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
Stilizörü ç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 Stilize Etme işlevi, giriş resmindeki en belirgin yüzün stilize edilmiş halini içeren bir MPImage
nesnesini içeren bir FaceStylizerResult
nesnesi döndürür.
Aşağıda, bu görevin çıkış verilerine örnek verilmiştir:
Yukarıdaki çıkış, Renk taslağı modeli aşağıdaki giriş resmine uygulanarak oluşturulmuştur: