顔検出ガイド

MediaPipe Face Detector タスクを使用すると、画像や動画内の顔を検出できます。このタスクを使用して、フレーム内の顔や顔の特徴を特定できます。このタスクでは、単一の画像または画像の連続ストリームを操作する機械学習(ML)モデルを使用します。このタスクは、顔の位置と、顔のキーポイント(左目、右目、鼻先、口、左目による悲惨、右目の悲劇)を出力します。

試してみる

使ってみる

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

タスクの詳細

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

機能

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

構成オプション

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

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

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

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

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 Face Detector がライブ ストリーム モードのときに検出結果を非同期で受け取るように結果リスナーを設定します。実行モードが LIVE_STREAM に設定されている場合にのみ使用できます。 N/A Not set

モデル

顔検出モデルは、意図するユースケース(短距離検出、長距離検出など)によって異なります。また、モデルでは通常、パフォーマンス、精度、解像度、リソース要件の間でトレードオフがあり、場合によっては追加機能が含まれていることもあります。

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

BlazeFace(ショートレンジ)

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

モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
BlazeFace(ショートレンジ) 128×128 浮動小数点数 16 情報 最新

Blaze Face(フルレンジ)

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

モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
Blaze Face(フルレンジ) 128×128 浮動小数点数 16 情報 準備中

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

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

モデル名 入力シェイプ 量子化タイプ モデルカード バージョン
BlazeFace スパース(フルレンジ) 128×128 浮動小数点数 16 情報 準備中

タスク ベンチマーク

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

モデル名 CPU レイテンシ GPU レイテンシ
BlazeFace(ショートレンジ) 2.94 ミリ秒 7.41 ミリ秒