顔検出のコンセプト

顔検出は、デジタル画像や動画などのビジュアル メディアから人の顔を検出します。顔が検出されると、位置、サイズ、向きが関連付けられ、目や鼻などのランドマークを検索できます。

ML Kit の顔検出機能に関する用語は次のとおりです。

  • 顔トラッキングは、顔検出を動画シーケンスに拡張します。動画に現れる時間に関係なく、すべての顔をフレーム間で追跡できます。つまり、連続する動画フレームで検出された顔を同じ人物と識別できます。これは顔認識の形式ではありません。顔トラッキングは、動画シーケンス内の顔の位置と動きに基づいて推論のみを行います。

  • ランドマークは顔内のスポットです。左目、右目、鼻底はすべてランドマークの例です。ML Kit には、検出された顔のランドマークを見つける機能があります。

  • 輪郭は、顔の特徴の形状に沿った点の集合です。ML Kit には、顔の輪郭を検出する機能が用意されています。

  • 分類は、顔の特定の特徴が存在するかどうかを判断します。たとえば、顔は、目が開いているか閉じているか、あるいは笑っているかどうかによって分類できます。

顔の向き

以下の用語は、カメラを基準として顔が向く角度を表します。

  • オイラー X: オイラー X の角度が正の顔は上を向いています。
  • オイラー Y: オイラー Y の角度が正の顔は、カメラの右を向いています。負の場合は左を向いています。
  • オイラー Z: オイラー Z の角度が正の面は、カメラに対して反時計回りに回転します。

ML Kit は、LANDMARK_MODE_NONECONTOUR_MODE_ALLCLASSIFICATION_MODE_NONEPERFORMANCE_MODE_FAST が設定されているときに、検出された顔のオイラー X、オイラー Y、オイラー Z の角度を報告しません。

ランドマーク

ランドマークは、顔内のスポットです。左目、右目、鼻底はすべてランドマークの例です。

ML Kit は、ランドマークを検索せずに顔を検出します。ランドマーク検出はオプションの手順であり、デフォルトでは無効になっています。

次の表は、関連付けられた顔のオイラー Y 角度に応じて検出可能なすべてのランドマークをまとめたものです。

オイラー Y 角 検出可能なランドマーク
-36 度未満 左目、左口、左耳、鼻底、左ほう
-36 度~-12 度 左の口、鼻底、口の下側、右目、左目、左ほう、左耳
-12 度~ 12 度 右目, 左目, 鼻底, 左チーク, 右胸, 口の左, 口の右, 口の下
12 度~ 36 度 右口、鼻底、口下部、左目、右目、右チーク、右耳の先端
36 度超 右目、右口、右耳、鼻底、右ほう

検出された各ランドマークには、画像内の関連付けられた位置が含まれます。

輪郭

輪郭は、顔の特徴の形状を表す点の集合です。次の図は、これらのポイントが顔にどのようにマッピングされるかを示しています。画像をクリックすると拡大されます。

ML Kit が検出する各特徴の輪郭は、固定数のポイントで表されます。

顔(楕円形) 36 ポイント 上唇(上縁) 11 ポイント
左眉(上) 5 ポイント 上唇(下) 9 ポイント
左眉(下) 5 ポイント 下唇(上) 9 ポイント
右眉(上) 5 ポイント 下唇(下) 9 ポイント
右眉(下) 5 ポイント 鼻ブリッジ 2 ポイント
左目 16 ポイント 鼻の下 3 ポイント
右目 16 ポイント
左チーク(中央) 1 点
右肘(中央) 1 ポイント

顔のすべての輪郭を一度に取得すると、133 個のポイントの配列が返されます。これは、次のように対象物の輪郭にマッピングされます。

特徴量の輪郭のインデックス
0-35 顔(楕円形)
36-40 左眉(上)
41-45 左眉(下)
46-50 右眉(上)
51-55 右眉(下)
56-71 左目
72-87 右目
88-96 上唇(下)
97-105 下唇(上)
106-116 上唇(上縁)
117-125 下唇(下)
126、127 鼻ブリッジ
128-130 鼻の下(中心点はインデックス 128 になります)
131 左チーク(中央)
132 右肘(中央)

分類

分類は、特定の顔の特徴が存在するかどうかを判断します。ML Kit は現在、目を開く笑顔の 2 つの分類をサポートしています。

分類は確実性の値です。これは、顔の特徴が存在する信頼度を示します。たとえば、笑顔の分類の値が 0.7 以上の場合は、人物が笑顔である可能性が高いことを示します。

これらの分類はどちらもランドマーク検出に基づいています。

また、「目を開いて」と「笑顔」の分類は、正面顔、つまりオイラー Y 角度が小さい(-18 ~ 18 度)顔に対してのみ機能します。

最小顔サイズ

最小顔サイズは目的の顔サイズであり、画像の幅に対する頭の幅の比率で表されます。たとえば、値を 0.1 に設定すると、検索対象の最小の顔が検索対象の画像の幅の約 10% になります。

最小顔サイズは、パフォーマンスと精度のトレードオフです。最小サイズを小さく設定すると、検出機能で小さい顔が検出されますが、検出に時間がかかります。大きい顔を設定すると、小さい顔を除外できますが、実行速度は速くなります。

顔の最小サイズはハードリミットではありません。検出機能では、指定したものより若干小さい顔が検出されることがあります。

次のステップ

iOS アプリまたは Android アプリで顔検出を使用します。