MediaPipe Face Detector タスクを使用すると、画像や動画内の顔を検出できます。このタスクを使用すると、フレーム内の顔と顔の特徴を特定できます。このタスクでは、単一の画像または連続した画像ストリームを処理する機械学習(ML)モデルを使用します。このタスクは、顔の位置と、左目、右目、鼻先、口、左目の耳珠、右目の耳珠という顔のキーポイントを出力します。
使ってみる
このタスクの使用を開始するには、対象プラットフォームのいずれかの実装ガイドに沿って操作します。これらのプラットフォーム固有のガイドでは、推奨モデルや推奨構成オプションを含むコード例など、このタスクの基本的な実装について説明します。
タスクの詳細
このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。
機能
- 入力画像処理 - 処理には、画像の回転、サイズ変更、正規化、色空間変換が含まれます。
- スコアのしきい値 - 予測スコアに基づいて結果をフィルタします。
| タスク入力 | タスク出力 |
|---|---|
顔検出器は、次のいずれかのデータ型の入力を受け入れます。
|
顔検出器は次の結果を出力します。
|
構成オプション
このタスクには、次の構成オプションがあります。
| オプション名 | 説明 | 値の範囲 | デフォルト値 |
|---|---|---|---|
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 ミリ秒 |