顔検出ガイド

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 情報 最新

BlazeFace Sparse(フルレンジ)

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

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

タスクのベンチマーク

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

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