こんにちは、ソリューション開発部の柴崎です。

Microsoft Cognitive Services の Face API を使った顔認識を調べましたのでご紹介します。今回は、事前に顔写真を登録した人が指定の写真に含まれているかを、Pepper が撮影した顔写真を使って Face API に問い合わせます。さらに、正しく識別できた場合は BLOB に顔写真をアップロードするシナリオとします。

Face API を使うには、あらかじめ Azure にて Cognitive Services APIs の新規作成が必要です。新規に作成すると、キーが発行されます。以降の Ocp-Apim-Subscription-Key リクエストヘッダの値には、このキーを使います。

Face API の種類

大きく分けて、学習のために画像や人・グループを登録する API と学習したモデルを使った処理を行う API があります。

学習のための API

Face List

今回のシナリオでは使わないので省略します。永続化した顔写真をひとまとめにするものです。後述の学習したモデルを使う Face のうち Find Similar で利用されます。

Person

1人につき複数の顔写真を登録できます。顔写真は永続化されます。今回主に使う API は以下の2つです。

Person Group

1グループにつき複数の人を登録できます。学習の単位がこの Person Group となります。今回主に使う API は以下の2つです。

学習したモデルを使う API

Face

指定の写真から実際に顔を認識します。今回主に使う API は以下の2つです。

実際に試してみる

今回は、ある写真に含まれる人が、あらかじめ登録してある人にどれくらい近いかを識別する必要があります。

学習のために画像や人・グループを登録する

顔を識別する前に、事前に学習が必要となります。ここでは、学習に必要な人や顔写真の登録を行います。

グループの作成

作成できた場合は 200 OK が返ってきます。以下のようにして内容を確認できます。

以下のようなレスポンスが返されます。

人の追加

それぞれ、以下のようなレスポンスが返されます。以降の API ではこの personId を利用します。必要な回数を繰り返してください。また、登録された人と personId が分かるように管理してください。

以下のようにして内容を確認できます。

以下のようなレスポンスが返されます。(フォーマットを整形しています)

登録された人の顔写真を登録する

以下の「{personId}」部分を先ほど登録した personId の値に置き換えて実行してください。一人に対して複数の顔写真を登録することができます。必要な回数を繰り返してください。

成功した場合は、以下のようなレスポンスが返されます。

顔が認識できない画像であると、以下のようなエラーとなります。

以下のようにして内容を確認できます。

以下のようなレスポンスが返されます。顔写真が3枚登録されていることが分かります。(フォーマットを整形しています)

学習する

成功すると、202 Accepted が返ってきます。以下のようにして学習の状況を確認できます。

以下のようなレスポンスが返ってきます。この例ではすでに学習が完了しています。(フォーマットを整形しています)

以上で下準備が完了しました。もし顔写真を追加したり変更した場合は、再度学習が必要となります。

学習したモデルを使い実際に顔を識別する

さて、贅沢に Pepper をカメラとして使い撮影した人物の写真が識別されることを確認してみましょう。以下のソースような Python Script ボックスを作成します。変数も併せて作成してください。

  • FaceApiKey
  • FacePersonGroupId
  • StorageName
  • StorageAccessKey
  • BlobBasePath
  • ImageUrl

実行してみましょう。撮影された写真がうまく識別されると BLOB ストレージにファイルが保存されます。

なぜかログの出力が前後してますが、うまく識別されたようです。
BLOBストレージにアップロードされたファイルの一覧
BLOB ストレージにアップロードされています。

まとめ

Pepper で撮影した写真でも人物を識別することができました。Pepper 単体でなく外部のサービスも利用することで可能性が広がります。今回利用した Face API の Identify 以外にも API はありますので他の API と組み合わせても面白いかと思います。ぜひ試してみてください。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter で「株式会社アークシステム」をフォローしよう!

Pepper で撮影した画像を Face API を使って顔認識をしてみる話https://devlog.arksystems.co.jp/wp-content/uploads/2016/12/pepper_face_api.pnghttps://devlog.arksystems.co.jp/wp-content/uploads/2016/12/pepper_face_api-150x150.pngshibasakiソリューション開発部Pepperプログラミング分科会クラウド利用技術Microsoft,Azure,Python,Face API,Microsoft Cognitive Servicesこんにちは、ソリューション開発部の柴崎です。 Microsoft Cognitive Services の Face API を使った顔認識を調べましたのでご紹介します。今回は、事前に顔写真を登録した人が指定の写真に含まれているかを、Pepper が撮影した顔写真を使って Face API に問い合わせます。さらに、正しく識別できた場合は BLOB に顔写真をアップロードするシナリオとします。 Face API を使うには、あらかじめ Azure にて Cognitive Services APIs の新規作成が必要です。新規に作成すると、キーが発行されます。以降の Ocp-Apim-Subscription-Key リクエストヘッダの値には、このキーを使います。 Face API の種類 大きく分けて、学習のために画像や人・グループを登録する API と学習したモデルを使った処理を行う API があります。 学習のための API Face List 今回のシナリオでは使わないので省略します。永続化した顔写真をひとまとめにするものです。後述の学習したモデルを使う Face のうち Find Similar で利用されます。 Person 1人につき複数の顔写真を登録できます。顔写真は永続化されます。今回主に使う API は以下の2つです。Create a Person Add a Person FacePerson Group 1グループにつき複数の人を登録できます。学習の単位がこの Person Group となります。今回主に使う API は以下の2つです。Create...ARK Solution Development Division Developers Blog.