ウェブ向けの顔のスタイル設定ガイド

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

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

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

サンプルコード

顔スタイライザーのサンプルコードでは、 タスクを示しています。このコードは、このタスクのテストと 独自の顔スタイル設定アプリを作成してみましょう。特定のリソースを表示、実行、 顔スタイライザーのサンプルを編集 ウェブだけを使用してコーディング できます。

セットアップ

このセクションでは、開発環境を設定するための主な手順について説明します。 顔スタイライザーの使用が 推奨されます設定に関する一般的な情報については、 プラットフォーム バージョンを含む、ウェブおよび JavaScript 開発環境。 ウェブ用の設定ガイドをご覧ください。

JavaScript パッケージ

顔スタイライザーのコードは MediaPipe @mediapipe/tasks-vision から入手できます。 NPM パッケージ。こちらの プラットフォームのセットアップ ガイドをご覧ください。

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

次のコマンドを使用して、NPM を介して必要なパッケージをインストールできます。

npm install @mediapipe/tasks-vision

コンテンツ配信ネットワーク(CDN)を使用してタスクコードをインポートする場合 追加するには、次のコードを <head>タグを追加します。

<!-- You can replace JSDeliver with another CDN if you prefer -->
<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/vision_bundle.js"
    crossorigin="anonymous"></script>
</head>

モデル

MediaPipe Face Stylizer タスクには、このインターフェースに対応するトレーニング済みモデルが必要です タスクを実行します。顔スタイライザーで利用可能なトレーニング済みモデルについて詳しくは、以下をご覧ください。 タスクの概要のモデル セクションをご覧ください。

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

<dev-project-root>/app/shared/models/

タスクを作成する

顔スタイライザーの createFrom...() 関数のいずれかを使用して、タスクを準備します。 推論を実行できますcreateFromModelPath() 関数を相対値または トレーニング済みモデルファイルの絶対パスです。モデルがすでに Google Cloud Storage に createFromModelBuffer() メソッドを使用します。

以下のコードサンプルは、createFromOptions() 関数を使用して以下を行う方法を示しています。 タスクを設定します。createFromOptions 関数を使用すると、 設定オプションがある顔スタイライザー。

次のコードは、カスタム関数でタスクをビルドして構成する方法を示しています。 オプション:

const vision = await FilesetResolver.forVisionTasks(
  // path/to/wasm/root
  "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
const facestylizer = await FaceStylizer.createFromOptions(
    vision,
    {
      baseOptions: {
        modelAssetPath: "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
      },
    });

データの準備

顔スタイライザーでは、ホストがサポートしているすべての形式の画像内の顔のスタイルを設定できます できます。このタスクでは、サイズ変更、変換、読み込みなどのデータ入力の前処理も ローテーションと値の正規化の 2 つです

タスクを実行する

顔スタイライザーは、stylize() メソッドを使用して推論をトリガーします。タスク はデータを処理し、顔のスタイルを設定して、結果を報告します。 顔スタイライザーの stylize() メソッドの呼び出しは同期的に実行され、 ユーザー インターフェース スレッドです。

次のコードは、タスクモデルを使用して処理を実行する方法を示しています。

const image = document.getElementById("image") as HTMLImageElement;
const faceStylizerResult = faceStylizer.stylize(image);

結果の処理と表示

Face Stylizer は、MPImage オブジェクトを 主な顔の文字を検索できます。

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

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