顔検出ガイド

境界ボックスで顔がハイライト表示された 3 人

MediaPipe Face Detector タスクを使用すると、画像や動画内の顔を検出できます。このタスクを使用すると、フレーム内の顔と顔の特徴を検出できます。このタスクでは、単一の画像または連続した画像ストリームを処理する ML モデルを使用します。このタスクは、顔の位置と、左目、右目、鼻先、口、左目の耳珠点、右目の耳珠点の顔のキーポイントを出力します。

試してみる

使ってみる

このタスクを使用するには、対象プラットフォーム向けの次のいずれかの実装ガイドに沿って操作します。以下のプラットフォーム固有のガイドでは、推奨モデルや、推奨構成オプションを含むコード例など、このタスクの基本的な実装について説明します。

タスクの詳細

このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。

機能

  • 入力画像の処理 - 処理には、画像の回転、サイズ変更、正規化、色空間変換が含まれます。
  • スコアしきい値 - 予測スコアに基づいて結果をフィルタします。
タスク入力 タスクの出力
顔検出機能は、次のいずれかのデータ型の入力を受け入れます。
  • 静止画像
  • デコードされた動画フレーム
  • ライブ動画フィード
顔検出器は次の結果を出力します。
  • 画像フレーム内で検出された顔の境界ボックス。
  • 検出された顔ごとに 6 つの顔ランドマークの座標。

構成オプション

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

オプション名 説明 値の範囲 デフォルト値
running_mode タスクの実行モードを設定します。モードは次の 3 つです。

IMAGE: 単一画像入力のモード。

動画: 動画のデコードされたフレームのモード。

LIVE_STREAM: カメラなどからの入力データのライブ配信モード。このモードでは、resultListener を呼び出して、結果を非同期で受信するリスナーを設定する必要があります。
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence 顔検出が成功とみなされるための最小信頼スコア。 Float [0,1] 0.5
min_suppression_threshold 顔検出が重複と見なされる最小の非最大抑制しきい値。 Float [0,1] 0.3
result_callback 顔検出器がライブ配信モードの場合に、検出結果を非同期で受信するように結果リスナーを設定します。実行モードが LIVE_STREAM に設定されている場合にのみ使用できます。 N/A Not set

モデル

顔検出モデルは、近距離検出や遠距離検出など、想定されるユースケースによって異なります。また、モデルでは通常、パフォーマンス、精度、解像度、リソース要件の間でトレードオフが行われ、場合によっては追加機能が含まれます。

このセクションに記載されているモデルは、モバイル GPU 推論用に最適化された軽量で正確な顔検出機能である BlazeFace のバリエーションです。BlazeFace モデルは、3D 顔のキーポイントの推定、表情の分類、顔領域のセグメンテーションなどのアプリケーションに適しています。BlazeFace は、MobileNetV1/V2 に似た軽量な特徴抽出ネットワークを使用します。

BlazeFace(近距離)

スマートフォンのカメラやウェブカメラから自撮り写真のような画像内の 1 つ以上の顔を検出するための軽量モデル。このモデルは、近距離で撮影したスマートフォンの前面カメラ画像用に最適化されています。モデルのアーキテクチャでは、カスタム エンコーダを備えたシングル ショット検出(SSD)畳み込みネットワーク手法を使用しています。詳細については、Single Shot MultiBox Detector に関する研究論文をご覧ください。

モデル名 入力シェイプ 量子化のタイプ モデルカード バージョン
BlazeFace(近距離) 128 x 128 float 16 情報 最新

BlazeFace(全範囲)

スマートフォンのカメラやウェブカメラから取得した画像内の 1 つまたは複数の顔を検出するための比較的軽量なモデル。このモデルは、スマートフォンの背面カメラで撮影した画像など、フルレンジの画像用に最適化されています。モデル アーキテクチャは、カスタム エンコーダを使用した CenterNet 畳み込みネットワークに似た手法を使用します。

モデル名 入力シェイプ 量子化のタイプ モデルカード バージョン
BlazeFace(全範囲) 128 x 128 float 16 info 準備中

BlazeFace スパース(フルレンジ)

通常のフルレンジ BlazeFace モデルの軽量バージョンで、サイズは約 60% 小さくなっています。このモデルは、スマートフォンの背面カメラで撮影した画像など、フルレンジの画像用に最適化されています。モデル アーキテクチャは、カスタム エンコーダを使用した CenterNet 畳み込みネットワークに似た手法を使用します。

モデル名 入力シェイプ 量子化のタイプ モデルカード バージョン
BlazeFace スパース(フルレンジ) 128 x 128 float 16 info 準備中

タスクのベンチマーク

上記の事前トレーニング済みモデルに基づくパイプライン全体のタスクのベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。

モデル名 CPU レイテンシ GPU レイテンシ
BlazeFace(近距離) 2.94 ミリ秒 7.41 ミリ秒