Android için yüz biçimlendirme rehberi

MediaPipe Yüz Stiliz Aracı görevi, bir resimdeki yüzlere yüz stillendirmeleri uygulamanıza olanak tanır. Bu görevi çeşitli stillerde sanal avatarlar oluşturmak için kullanabilirsiniz.

Bu talimatlarda açıklanan kod örneğine GitHub'dan ulaşabilirsiniz. Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel Bakış'a bakın.

Kod örneği

MediaPipe Görevleri örnek kodu, Android için Yüz Stil Aracı uygulamasının temel bir uygulamasıdır. Örnekte, uygulamaya sağlanan resimlere yüz stili 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 Stilisti örnek kodu GitHub'da barındırılır.

Kodu indirme

Aşağıdaki talimatlar, git komut satırı aracını kullanarak örnek kodun yerel bir kopyasını nasıl oluşturacağınızı göstermektedir.

Ö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 az ödeme yöntemini kullanacak şekilde yapılandırın. Böylece yalnızca Yüz Stilisti örnek uygulamasına ait dosyalara 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 Kurulum Kılavuzu'na bakın.

Temel bileşenler

Aşağıdaki dosyalar, bu yüz biçimlendirme örnek uygulaması için önemli kodu içerir:

Kurulum

Bu bölümde, geliştirme ortamınızı kurmanın temel adımları açıklanmaktadır ve projelerinizi özellikle Yüz Stiliz Aracı'nı kullanacak şekilde kodlamalısınız. Platform sürümü gereksinimleri de dahil olmak üzere, MediaPipe görevlerini kullanmak amacıyla geliştirme ortamınızı ayarlama hakkında genel bilgiler için Android için kurulum kılavuzuna bakın.

Bağımlılıklar

Yüz Stilisti görevi com.google.mediapipe:tasks-vision kitaplığını kullanır. Bu bağımlılığı Android uygulamanızın build.gradle dosyasına ekleyin:

dependencies {
    implementation 'com.google.mediapipe:tasks-vision:latest.release'
}

Model

MediaPipe Yüz Stilisti görevi, bu görevle uyumlu, eğitilmiş bir model paketi gerektirir. Yüz Stilisti için eğitilmiş modellerle ilgili daha fazla bilgi için göreve genel bakış Modeller bölümüne bakın.

Modeli seçip indirin ve proje dizininizde depolayı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şturma

MediaPipe Yüz Stilisti 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 edinmek için Yapılandırma seçenekleri bölümüne bakın.

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çeneklerine sahiptir:

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; yeniden boyutlandırma, döndürme ve değer normalleştirmesi gibi veri girişlerinin ön işlemesini gerçekleştirir. Aşağıdaki kod, verilerin işlenmek üzere nasıl aktarılacağını gösterir.

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

Şekillendiriciyi çalıştırmak için giriş görüntüsünde FaceStylizer.stylize() yöntemini kullanın:

val result = FaceStylizer.stylize(mpImage)

Sonuçları işleme ve görüntüleme

Yüz Stilisti, giriş resmindeki en belirgin yüzün stilize edildiği bir MPImage nesnesi içeren bir FaceStylizerResult nesnesi döndürür.

Aşağıda, bu görevden alınan çıkış verilerinin bir örneği gösterilmektedir:

Yukarıdaki çıkış, aşağıdaki giriş resmine Renk çizimi modeli uygulanarak oluşturulmuştur: