Python の顔スタイル設定ガイド

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

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

サンプルコード

Face Stylizer のサンプルコードには、このタスクの Python での完全な実装が示されています。このコードは、このタスクをテストし、独自の顔スタイル設定ツールの作成を開始するのに役立ちます。 Face Stylizer のサンプルコードは、ウェブブラウザのみを使用して表示、実行、編集できます。

セットアップ

このセクションでは、Face Stylizer を使用するように開発環境とコード プロジェクトを設定する主な手順について説明します。プラットフォーム バージョンの要件など、MediaPipe タスクを使用する開発環境の設定に関する一般的な情報については、Python の設定ガイドをご覧ください。

パッケージ

MediaPipe Face Stylizer タスクには、mediapipe PyPI パッケージが必要です。これらの依存関係は、次のようにインストールしてインポートできます。

$ python -m pip install mediapipe

インポート

Face Stylizer タスク関数にアクセスするには、次のクラスをインポートします。

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

モデル

MediaPipe Face Stylizer タスクには、このタスクに対応したトレーニング済みモデルが必要です。Face Stylizer で使用可能なトレーニング済みモデルの詳細については、タスクの概要のモデルセクションをご覧ください。

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

model_path = '/absolute/path/to/face_stylizer.task'

BaseOptions オブジェクトの model_asset_path パラメータを使用して、使用するモデルのパスを指定します。コード例については、次のセクションをご覧ください。

タスクを作成する

MediaPipe Face Stylizer タスクは、create_from_options 関数を使用してタスクを設定します。create_from_options 関数は、処理する構成オプションの値を受け入れます。

次のコードは、このタスクをビルドして構成する方法を示しています。

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
Facestylizer = mp.tasks.vision.face_stylizer
FacestylizerOptions = mp.tasks.vision.FaceStylizerOptions

# Create a face stylizer instance with the image mode:
options = FacestylizerOptions(
    base_options=BaseOptions(model_asset_path=model_path),
with Facestylizer.create_from_options(options) as stylizer:
  # The stylizer is initialized. Use it here.
  # ...

データの準備

入力を画像ファイルまたは NumPy 配列として準備し、mediapipe.Image オブジェクトに変換します。入力がウェブカメラからの動画ファイルまたはライブ配信の場合は、OpenCV などの外部ライブラリを使用して、入力フレームを numpy 配列として読み込むことができます。

import mediapipe as mp

# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')

# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)

タスクを実行する

Face Stylizer は、stylize 関数を使用して推論をトリガーします。顔のスタイル設定では、入力データを前処理し、画像内の顔をスタイル設定します。

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

# Perform face stylization on the provided single image.
# The face stylizer must be created with the image mode.
face_stylizer_result = stylizer.stylize(mp_image)

結果を処理して表示する

Face Stylizer は、入力画像内の最も目立つ顔のスタイル設定を含む Image オブジェクトを返します。

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

鉛筆とマーカーで描かれたスケッチ スタイルの女性の生成されたクローズアップ。

上記の出力は、次の入力画像にカラースケッチモデルを適用して作成されました。

前の出力の生成に使用された女性の写真