MediaPipe 顔スタイライザー タスクを使用すると、画像内の顔に顔のスタイル化を適用できます。このタスクを使用して、さまざまなスタイルの仮想アバターを作成できます。
この手順で説明されているコードサンプルは、GitHub で入手できます。このタスクの機能、モデル、構成オプションの詳細については、概要をご覧ください。
サンプルコード
参照用に、顔スタイライザーのサンプルコードでは、Python でこのタスクの完全な実装が提供されています。このコードは、このタスクをテストして、独自のフェイス スタイライザーの作成を始めるのに役立ちます。ウェブブラウザのみを使用して、 顔スタイライザーのサンプルコードを表示、実行、編集できます。
セットアップ
このセクションでは、Face Stylizer 専用の開発環境とコード プロジェクトをセットアップする主な手順について説明します。プラットフォームのバージョン要件など、MediaPipe タスクを使用するための開発環境の設定に関する一般的な情報については、Python の設定ガイドをご覧ください。
パッケージ
MediaPipe Face Stylizer タスクには、mediapipe PyPI パッケージが必要です。これらの依存関係は、次のコマンドでインストールしてインポートできます。
$ python -m pip install mediapipe
インポート
顔スタイライザー タスク関数にアクセスするには、次のクラスをインポートします。
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
モデル
MediaPipe 顔スタイライザー タスクには、このタスクと互換性のあるトレーニング済みモデルが必要です。顔スタイライザーで利用可能なトレーニング済みモデルの詳細については、タスクの概要のモデル セクションをご覧ください。
モデルを選択してダウンロードし、ローカル ディレクトリに保存します。
model_path = '/absolute/path/to/face_stylizer.task'
BaseOptions
オブジェクトの model_asset_path
パラメータを使用して、使用するモデルのパスを指定します。コード例については、次のセクションをご覧ください。
タスクを作成する
MediaPipe 顔スタイライザー タスクは、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)
タスクを実行する
顔スタイライザーは、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)
結果を処理して表示する
顔スタイライザーは、入力画像内で最も目立つ顔のスタイル化された Image
オブジェクトを返します。
このタスクからの出力データの例を次に示します。
上記の出力は、カラースケッチ モデルを次の入力画像に適用して作成されました。