顔検出のコンセプト

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

ML Kit の顔検出機能に関して使用される用語をいくつか紹介します。

  • 顔追跡により、顔認識を動画シーケンスに拡張できます。動画内に表示されるすべての時間の顔をフレームごとに追跡できます。つまり、連続する動画フレームで検出された顔は、同一人物であると判断できます。これは、顔認識の 1 つの形態ではありません。顔トラッキングは、動画シーケンス内の顔の位置と動きのみに基づいて推論を行います。

  • ランドマークとは、顔の中のスポットのことです。ランドマークとして、左目、右目、鼻の底があります。ML Kit では、検出された顔のランドマークを確認できます。

  • 輪郭は、顔の特徴の形に従う点のセットです。ML Kit を使用すると、顔の輪郭を検出できます。

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

顔の向き

以下の用語は、カメラに対する顔の向きの角度を表します。

  • オイラー X: オイラー X の正の角度で顔が上向きになっている。
  • Euler Y: オイラー Y の角度が正の顔は、カメラの右側を向いており、負の場合は左を向いています。
  • オイラー Z: オイラー Z の正の角度を持つ顔は、カメラに対して反時計回りに回転します。

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

Landmarks

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

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 アプリで顔検出を使用する