Android 向け顔のスタイル設定ガイド

<ph type="x-smartling-placeholder">

MediaPipe Face Stylizer タスクを使用すると、画像内の顔に顔のスタイルを適用できます。 このタスクでは、さまざまなスタイルの仮想アバターを作成できます。

この手順で説明するコードサンプルは、 GitHub。 機能、モデル、構成オプションの詳細については、 概要をご覧ください。

サンプルコード

MediaPipe Tasks のサンプルコードは、顔スタイライザーの基本的な実装です。 アプリこの例は、 。

独自の Android アプリの出発点としてアプリを使用することも、アプリ自体に言及することもできます。 変更する際の注意点があります。顔スタイライザーのサンプルコードは次の場所でホストされています: GitHub

コードをダウンロードする

次の手順では、サンプルのローカルコピーを作成する方法を示します。 git コマンドライン ツールを使用してコードを実行します。

サンプルコードをダウンロードするには:

  1. 次のコマンドを使用して Git リポジトリのクローンを作成します。
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. 必要に応じて、スパース チェックアウトを使用するように Git インスタンスを構成し、 Face Stylizer サンプルアプリのファイルのみを表示します。
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

サンプルコードのローカル バージョンを作成したら、プロジェクトをインポートできます。 アプリを実行します。手順については、セットアップ ガイド: Android

主要コンポーネント

次のファイルには、この顔のスタイル設定の例に不可欠なコードが含まれています。 アプリケーション:

  • FaceStylizationHelper.kt: 顔スタイルを初期化し、モデルとデリゲートの選択を処理します。
  • MainActivity.kt: 結果と出力が提供され、エラーがあれば処理されます。

セットアップ

このセクションでは、開発環境をセットアップする主な手順と コード プロジェクトを作成することにしました。一般的な情報については、 MediaPipe タスクを使用するための開発環境の設定 プラットフォーム バージョンの要件については、 Android

依存関係

顔スタイライザー タスクは com.google.mediapipe:tasks-vision ライブラリを使用します。追加 これを Android アプリの build.gradle ファイルに追加します。

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

モデル

MediaPipe Face Stylizer タスクには、以下と互換性のあるトレーニング済みモデルバンドルが必要です。 できます。顔スタイライザーで利用可能なトレーニング済みモデルについて詳しくは、 タスクの概要のモデル セクションをご覧ください。

モデルを選択してダウンロードし、プロジェクト ディレクトリに保存します。

<dev-project-root>/src/main/assets

ModelAssetPath パラメータ内でモデルのパスを指定します。

val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)

タスクを作成する

MediaPipe Face Stylizer タスクは、createFromOptions() 関数を使用して タスクを実行します。createFromOptions() 関数は構成の値を受け入れます。 。構成オプションの詳細については、構成 オプションをご覧ください。

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)

構成オプション

このタスクには、Android アプリ用に次の構成オプションがあります。

オプション名 説明 値の範囲 デフォルト値
errorListener オプションのエラーリスナーを設定します。 N/A Not set

データの準備

顔スタイライザーは静止画像に対応しています。タスクはデータ入力を処理し、 これには、サイズ変更、回転、値の正規化などの前処理が含まれます。「 次のコードは、処理のためにデータを引き渡す方法を示しています。

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()

タスクを実行する

入力画像に対して FaceStylizer.stylize() メソッドを使用して、スタイルを実行します。

val result = FaceStylizer.stylize(mpImage)

結果の処理と表示

顔スタイライザーは、FaceStylizerResult オブジェクトを返します。このオブジェクトには、 入力内で最も目立つ顔のスタイルが設定された MPImage オブジェクト 説明します。

このタスクからの出力データの例を次に示します。

上記の出力は、カラースケッチを適用して作成されました。 次の入力画像にマッピングします。