Azure Face APIを使って2つの顔が同一人物か判定する

2 min read読了の目安(約2500字

はじめに

2枚の写真に写っている人物が同一人物であるかどうかを判定する顔認識を、Azure Face APIを使って行ってみます。

公式ドキュメントはこちら。

https://docs.microsoft.com/ja-jp/azure/cognitive-services/face/concepts/face-recognition

Azure Face APIを使った顔認識ステップ

顔認識を行うには以下のステップを踏む必要があります。

  1. 顔検出APIを利用し、比較したい2枚の写真のFaceIDを取得する。
  2. 確認APIに2つのFaceIDを送り、同一人物かどうかを判定する。

今回利用するAPIはこちら

顔検出API

写真に写った顔を検出するためのAPIです。
検出された顔にはそれぞれFaceIDが割り振られ、確認APIの実行に必要です。

https://japaneast.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236/console

確認API

指定した2つのFaceIDの顔が同一人物かどうかを判定するAPIです。

https://japaneast.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523a/console

実際に試してみる

今回はこちらのガッキーが同一人物かどうか判定してみます。

Image from Gyazo

まずは、顔検出APIを使って、FaceIDを取得します。
APIキーの取得方法はこちら

Image from Gyazo

画面下部にあるSendボタンをクリックするとFaceIDが返ってきます。
今回はc2e933ef-8557-4306-a59f-7d86bc5ee30fでした。

Image from Gyazo

2枚目の画像に対しても同様にFaceIDを取得します。
2つ目のFaceIDは8729b426-700a-4901-96a9-0abb0c3d7320でした。

続いて、確認APIを使います。

APIキーを入力し、Request bodyには先程取得したFaceIDを以下のフォーマットで入力します。

{
  "faceId1": "c2e933ef-8557-4306-a59f-7d86bc5ee30f",
  "faceId2": "8729b426-700a-4901-96a9-0abb0c3d7320"
}

Image from Gyazo

画面下部にあるSendボタンをクリックすると、同一人物度合いが返ってきます。
今回は、96%くらい同一人物という結果が得られました。

Image from Gyazo

まとめ

Azure Face APIを使って、2枚のガッキーが同一人物か判定してみました。
顔検出API確認APIの2つのAPIを使わないといけませんが、手順自体はシンプルでわかりやすかったです。

とりあえず1パターンしか試していませんが、写真の明るさ、顔が写っている角度、距離などの条件を変えた場合、どれくらいの精度が出るかも見てみたいですね。