顔検出、属性、入力データ
注意事項
Microsoft の責任ある AI の原則をサポートするために、Face サービスの利用は、適格性と使用基準に基づいて制限されています。 Face サービスは、Microsoft が管理する顧客とパートナーのみが利用できます。 顔認識受付フォームを使用して利用申請を行ってください。 詳細については、「Face の制限付きアクセス」ページを参照してください。
重要
顔属性は統計的アルゴリズムを使用して予測されます。 必ずしも正確とは限りません。 属性データに基づいて意思決定を行う場合は、注意が必要です。 スプーフィング対策には、これらの属性を使用しないようにしてください。 代わりに、Face Liveness 検出を使用することをお勧めします。 詳細については、「チュートリアル: 顔のライブネスを検出する」を参照してください。
この記事では、顔検出と顔属性のデータの概念について説明します。 顔検出は、画像内の人間の顔を特定し、必要に応じて顔に関連するさまざまなデータを返すプロセスです。
画像内の顔を検出するには、検出 API を使用します。 REST API またはクライアント SDK の使用を開始するには、Face サービスのクイック スタートに従います。 または、詳細なガイドについては、「検出 API を呼び出す」を参照してください。
顔四角形
検出されたそれぞれの顔は応答の faceRectangle フィールドに対応します。 これは、検出された顔の左、上、幅、高さのピクセル座標のセットです。 これらの座標を使用して、顔の位置とサイズを取得できます。 API 応答では、顔はサイズの大きいものから小さいものの順に一覧表示されます。
Azure AI Vision Studio を使用することで、すばやく簡単に顔検出の機能を試すことができます。
顔 ID
顔 ID は、画像内で検出されたそれぞれの顔に対する一意識別子文字列です。 Face ID には、申し込みフォームに入力することで申請できる、制限付きアクセスの承認が必要です。 詳細については、「Face API Limited Access」ページを参照してください。 顔 ID は、検出 API 呼び出しで要求することができます。
顔のランドマーク
顔のランドマークとは、瞳孔、鼻の先端など、顔の中の見つけやすいポイントのセットのことです。 既定では、27個 の定義済みランドマーク ポイントがあります。 次の図は、27 か所のポイントを示したものです。
ポイントの座標はピクセル単位で返されます。
現在、Detection_03 モデルには、最も正確なランドマーク検出があります。 返される目と瞳孔のランドマークの正確さは、顔の視線追跡を可能にするのに十分です。
属性
注意事項
Microsoft は、感情の状態や ID 属性の推測に使用できる顔認識機能を廃止または制限しています。この機能が誤って使用されると、人々が固定観念的な見方、差別、不当なサービス拒否にさらされる恐れがあります。 廃止された機能は、感情と性別です。 制限付き機能は、年齢、スマイル、顔ひげ、髪、メイクです。 制限付き機能のいずれかの使用によってメリットが得られる責任あるユースケースがある場合は、Azure Face API をメールで送信してください。 この決定について詳しくは、こちらをご覧ください。
属性は、検出 API で必要に応じて検出できる特徴のセットです。 次の属性を検出できます。
アクセサリ: 特定の顔にアクセサリがあるかどうかを示します。 この属性は、帽子、眼鏡、マスクなどの考えられるアクセサリと、それぞれのアクセサリの 0 から 1 の信頼度スコアを返します。
ぼかし: 画像内の顔のぼかしの程度を示します。 この属性は、0 から 1 までの間の値と、非公式の評価 (低、中、または高) を返します。
露出: 画像内の顔の露出の程度を示します。 この属性は、0 から 1 までの間の値と、非公式の評価 (underExposure、goodExposure、または overExposure) を返します。
メガネ: 特定の顔に眼鏡があるかどうかを示します。 可能な値は、NoGlasses、ReadingGlasses、Sunglasses、および Swimming Goggles です。
頭部姿勢: 3D 空間での顔の向きを示します。 この属性は、右側の規則に従って定義されている、ロール、ヨー、ピッチの角度で記述されます。 3 つの角度の順序は、ロール、ヨー、ピッチで、各角度の値の範囲は -180 度から 180 度です。 表面の 3D の向きは、ロール、ヨー、ピッチの角度によって推定されます。 角度のマッピングについては以下の図を参照してください。
これらの値の使用方法の詳細については、「HeadPose 属性を使用する」を参照してください。
マスク: 顔がマスクをしているかどうかを示します。 この属性は、考えられるマスクの種類と、鼻と口が覆われているかどうかを示すブール値を返します。
ノイズ: 顔の画像で検出された視覚ノイズを示します。 この属性は、0 から 1 までの間の値と、非公式の評価 (低、中、または高) を返します。
オクルージョン: 顔のパーツをブロックするオブジェクトがあるかどうかを示します。 この属性は、eyeOccluded、foreheadOccluded、および mouthOccluded についてのブール値を返します。
QualityForRecognition 検出で使用されている画像が顔認識を試行するのに十分な品質かどうかを決定する全体的なイメージ品質を示します。 値は、低、中、または高の非公式評価です。 個人の登録には高品質の画像のみ、識別シナリオでは中以上の品質をお勧めします。
Note
各属性の可用性は、指定された検出モデルによって異なります。 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 の向きに応じて画像が自動的に回転します。 その他のツールでは、独自のコードを使用して回転を適用することが必要になる場合があります。 次の例では、回転した画像 (左) と回転していない画像 (右) の顔の四角形を示しています。
ビデオ入力
ビデオ フィードから顔を検出する場合は、ビデオ カメラの特定の設定を調整することによってパフォーマンスを改善できる場合があります。
スムージング:多くのビデオ カメラではスムージング効果が適用されます。 これによりフレーム間にぼかしが発生して鮮明さが失われるため、可能な場合はオフにしてください。
シャッター速度: シャッター速度が速いほど、フレーム間の動きが少なくなり、各フレームがより鮮明になります。 1/60 秒よりも速いシャッター速度をお勧めします。
シャッター角度: 一部のカメラでは、シャッター速度の代わりにシャッター角度を指定します。 可能な場合は、シャッター角度を小さくすることでビデオ フレームをより明瞭にすることができます。
Note
シャッター角度が小さいカメラ センサーは、各フレームで受ける光量が少なくなるため、画像が暗くなります。 使用する適切なレベルを決定する必要があります。
次のステップ
顔検出の概念が理解できたので、特定の画像内の顔を検出するスクリプトを作成する方法について説明します。