Android için yüz biçimlendirme rehberi

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:

  1. Aşağıdaki komutu kullanarak git deposunu klonlayın:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. İ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:

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: