キーワード:Face API、Cognitive Services、Media Services、Microsoft Azure、顔認証
Microsoft Azureの顔検出・認証系のAPIをいくつか触ってみて、種類が多くてそれぞれのAPIの機能、使い分けが少しややこしく感じたので調査してみました。各APIの機能を書き連ねていきます。
Azure Cognitive Services
・Computer Vision:Analyze Image - Faces
https://docs.microsoft.com/ja-jp/azure/cognitive-services/computer-vision/concept-detecting-faces
入力:画像ファイル(JPEG、PNG、GIF、BMP)
機能:
イメージ内の人物の顔を検出し、検出された各顔の座標、性別及び年齢を返す。顔検出と基本的な情報の取得はできるが、さらなる操作を顔データに対して実行したい場合は後述のFace APIを使用することが推奨されている。
・Face API
https://docs.microsoft.com/ja-jp/azure/cognitive-services/face/overview
・Face - Detect
入力:画像ファイル(JPEG、PNG、GIF、BMP)
機能:
イメージ内の人物の顔を検出し、顔の座標を返す。また、オプションでfaceIdや、ランドマーク及び属性情報を取得することもできる。
*faceId:検出された顔に割り当てられる一意のId。Face API内で保持され24時間有効。
・Face - Identify
入力:faceId(Face - Detectで取得したもの)
機能:
あらかじめ登録された人物グループの中から、検出された顔と一致率の高い人物を特定し、一致率の高い人物のId(personId)とconfidence(信用度、正確性)を返す。
・Face - Verify
入力:2種類のfaceId、あるいはfaceIdとpersonId
機能:
2つのfaceIdが同じ人物かどうか、またはfaceIdが指定されたpersonIdの人物かどうかを確認する。
・Azure Media Services - Media Analytics
・Azure Media Face Detector(プレビュー)
入力:動画ファイル(MP4、MOV、WMV)
機能:
ビデオ内で複数の人物の顔を検出して追跡し、Idと時間,位置のメタデータを JSON ファイルで返す。 追跡中、画面内を移動する同じ人物の顔には同じ Id を設定する。
まとめ
ざっくりと顔検出・認証系のAPIの機能について調査してみました。
簡単に調べただけでも顔検出・認証系のAPIがたくさんあり、使い慣れていないチームでは単に「Face APIを叩く部分実装して」というような指示だと正確に伝わらないことがあるので気をつけたいですね。
またこれらのAPIの使い分けとしては、
・画像処理の一環として人物の顔の位置や性別などの簡単な情報だけが欲しい場合はComputer Visionを使用。
・更に詳しい情報の取得や、人物の特定、顔認証などを行う場合は、Face APIのDetectでfaceIdを取得し、必要に応じてIdentifyやVerifyをPOSTする。
・同一人物の追跡などが必要な場合はAzure Media Face Detectorの使用を検討する。
というのがいいと思います。