顔検出と顔属性

この記事では、顔検出と顔属性のデータの概念について説明します。 顔検出は、画像内の人間の顔を特定し、必要に応じて顔に関連するさまざまなデータを返すアクションです。

画像内の顔を検出するには、Face - Detect (顔 - 検出) 操作を使用します。 少なくとも、検出されたそれぞれの顔は応答の faceRectangle フィールドに対応します。 左、上、幅、高さを示すこのピクセル座標のセットによって、特定された顔がマークされます。 これらの座標を使用して、顔の位置とそのサイズを取得できます。 API 応答では、顔はサイズの大きいものから小さいものの順に一覧表示されます。

顔 ID

顔 ID は、画像内で検出されたそれぞれの顔に対する一意識別子文字列です。 顔 ID は、Face - Detect (顔 - 検出) API 呼び出しで要求することができます。

顔のランドマーク

顔のランドマークとは、瞳孔、鼻の先端など、顔の中の見つけやすいポイントのセットのことです。 既定では、27個 の定義済みランドマーク ポイントがあります。 次の図は、27 か所のポイントを示したものです。

顔のランドマーク (全 27 か所) とラベルを示した図

ポイントの座標はピクセル単位で返されます。

現在、Detection_03 モデルには、最も正確なランドマーク検出があります。 返される目と瞳孔のランドマークの正確さは、顔の視線追跡を可能にするのに十分です。

属性

属性は、Face - Detect (顔 - 検出) API で必要に応じて検出できる特徴のセットです。 次の属性を検出できます。

  • アクセサリ。 特定の顔にアクセサリがあるかどうか。 この属性は、帽子、眼鏡、マスクなどの考えられるアクセサリと、それぞれのアクセサリの 0 から 1 の信頼度スコアを返します。

  • 年齢。 特定の顔の推定年齢。

  • ぼかし。 画像内の顔のぼかしの程度。 この属性は、0 から 1 までの間の値と、非公式の評価 (低、中、または高) を返します。

  • 感情。 感情のリストと、特定の顔に対する検出の信頼度。 信頼度スコアは正規化され、すべての感情スコアの合計は 1 になります。 返される感情は、喜び、悲しみ、中立、怒り、軽蔑、嫌悪感、驚き、恐怖です。

  • 露出。 画像内の顔の露出の程度。 この属性は、0 から 1 までの間の値と、非公式の評価 (underExposure、goodExposure、または overExposure) を返します。

  • 顔ひげ。 特定の顔について推定される顔ひげの有無と長さ。

  • 性別。 特定の顔について推定される性別。 可能な値は、男性、女性、および性別なしです。

  • 眼鏡。 特定の顔に眼鏡があるかどうか。 可能な値は、NoGlasses、ReadingGlasses、Sunglasses、および Swimming Goggles です。

  • 髪の毛。 顔の髪質。 この属性は、髪の毛が見えるかどうか、はげが検出されたかどうか、どのような髪の色が検出されたかを示します。

  • 頭部姿勢。 3 次元空間での顔の向き。 この属性は、右側の規則に従って定義されている、ロール、ヨー、ピッチの角度で記述されます。 3 つの角度の順序は、ロール、ヨー、ピッチで、各角度の値の範囲は -180 度から 180 度です。 表面の 3D の向きは、ロール、ヨー、ピッチの角度によって推定されます。 角度のマッピングについては以下の図を参照してください。

    ピッチ、ロール、およびヨーの軸のラベルが付いた頭部

  • 化粧。 顔に化粧があるかどうか。 この属性は eyeMakeup および lipMakeup についてのブール値を返します。

  • マスク。 顔にマスクを付けているかどうか。 この属性は、考えられるマスクの種類と、鼻と口が覆われているかどうかを示すブール値を返します。

  • ノイズ。 顔の画像で検出された視覚ノイズ。 この属性は、0 から 1 までの間の値と、非公式の評価 (低、中、または高) を返します。

  • オクルージョン。 顔のパーツをブロックするオブジェクトがあるかどうか。 この属性は、eyeOccluded、foreheadOccluded、および mouthOccluded についてのブール値を返します。

  • 笑顔。 特定の顔の笑顔表現。 この値は、0 (笑顔なし) から 1 (鮮明な笑顔) までです。

  • QualityForRecognition 検出で使用されている画像が顔認識を試行するのに十分な品質かどうかに関する全体的なイメージ品質。 値は、低、中、または高の非公式評価です。 個人の登録には "高" 品質の画像のみ、識別シナリオでは "中" 以上の品質をお勧めします。

    注意

    各属性の可用性は、指定された検出モデルによって異なります。 QualityForRecognition 属性は、現在、検出モデル detection_01 または detection_03 と認識モデル recognition_03 または recognition_04 の組み合わせを使用する場合にのみ使用できる認識モデルに依存します。

重要

顔属性は統計的アルゴリズムを使用して予測されます。 必ずしも正確とは限りません。 属性データに基づいて意思決定を行う場合は、注意が必要です。

入力データ

次のヒントを使用して、入力画像から最も正確な検出結果が得られるようにしてください。

  • サポートされている入力画像形式は、JPEG、PNG、GIF (最初のフレーム)、BMP です。
  • 画像ファイル サイズは 6 MB 以内であることが必要です。
  • 検出可能な最小の顔のサイズは、1920 x 1080 ピクセル以下の画像では 36 x 36 ピクセルです。 1920 x 1080 ピクセルより大きい画像では、最小の顔のサイズも比例して大きくなります。 顔のサイズを小さくすると、検出可能な最小の顔のサイズより大きい場合でも、一部の顔が検出されない可能性があります。
  • 検出可能な最大の顔のサイズは、4096 x 4096 ピクセルです。
  • 36 x 36 から 4096 x 4096 ピクセルのサイズ範囲外の顔は検出されません。
  • 次のような技術的な課題のために、一部の顔を認識できない場合があります。
    • 強すぎる照明を含む画像 (強烈な逆光照明など)
    • 一方または両方の目を遮っている障害物
    • 髪質や顔の毛の違い
    • 年齢による顔立ちの変化
    • 極端な表情

方向情報を含む入力データ:

JPEG 形式の入力イメージには、Exchangeable Image File Format (Exif) のメタデータの方向情報が含まれている場合があります。 Exif の方向を使用できる場合、画像は顔検出の送信前に自動的に正しい方向に回転されます。 検出された各顔の四角形、目印、頭部姿勢は、回転したイメージに基づいて推定されます。

顔の四角形と目印を正しく表示するには、イメージが正しく回転されていることを確認する必要があります。 ほとんどの画像視覚化ツールでは、既定で、Exif の向きに応じて画像が自動的に回転します。 その他のツールでは、独自のコードを使用して回転を適用することが必要になる場合があります。 次の例では、回転した画像 (左) と回転していない画像 (右) の顔の四角形を示しています。

回転している、および回転していない、2 つの顔の画像

ビデオ入力

ビデオ フィードから顔を検出する場合は、ビデオ カメラの特定の設定を調整することによってパフォーマンスを改善できる場合があります。

  • スムージング:多くのビデオ カメラではスムージング効果が適用されます。 これによりフレーム間にぼかしが発生して鮮明さが失われるため、可能な場合はオフにしてください。

  • シャッター速度:シャッター速度が速いほど、フレーム間の動きが少なくなり、各フレームがより鮮明になります。 1/60 秒よりも速いシャッター速度をお勧めします。

  • シャッター角度:一部のカメラでは、シャッター速度の代わりにシャッター角度を指定します。 可能であれば低いシャッター角度を使用してください。 これにより、ビデオ フレームがより鮮明になります。

    注意

    シャッター角度が小さいカメラは、各フレームで受ける光量が少なくなるため、画像が暗くなります。 使用する適切なレベルを決定する必要があります。

次のステップ

顔検出の概念が理解できたので、特定の画像内の顔を検出するスクリプトを作成する方法について説明します。