雑コラBOTを作ろう⑥: Face APIで顔検出をしてみる

LINEで送る
Pocket

Michaelです。

「雑コラBOT」の作成の過程からAzure Functionsの設定方法を紹介する「雑コラBotを作ろう」の6回目です。
今回からはいよいよ「雑コラ」を作る仕組みを作成していきます。まずは、「雑コラ」を作るうえで重要な顔の位置を特定するために、Face APIを追加して顔の検出をしてみます。

構成

画像処理用のPython関数にFace APIをつなぎ、顔の検出をできるようにします。

Face APIの作成

Face APIを登録して、APIキーを取得します。
Azureポータルの新規作成画面で「Face API」を検索してリソースの作成を開始します。

リソース名、場所を設定します。
東日本リージョンでもFace APIが使えるようになっているので、雑コラBotの構成と同じ「東日本」で作成します。

リソースの作成が完了したらFace APIのリソース画面を開き、APIキーとエンドポイントをコピーして控えておきます。

スクリプト

スクリプトは以下のように作成しました。

 

スクリプトの説明

  1. Face APIキー情報
    Face API作成時に取得したAPIキーとエンドポイントを設定します。
  2. Face APIへのリクエスト
    Face APIにリクエストし、画像内の顔を検出します。
    今回は、関数でダウンロードした画像の顔検出を行うため、リクエストヘッダの「Content-Type」に「application/octet-stream」を指定し、関数が保持するバイナリデータを直接送信して顔検出を行います。
  3. 顔検出結果の取得
    Face APIで顔を検出し、検出結果を取得します。
    Face APIの顔検出は個々の顔の情報を配列で返すため、配列の要素数を取得してメッセージとしてSlackに出力し、顔検出できていることを確認します。

 

実行結果

Slackのチャンネルに画像のURLを投稿すると顔の検出数がBotのメッセージで返されました。

同様に画像を5人の子供の写真に変更すると、顔の検出数は5となり、正しく顔を検出できていることが確認できました。

まとめ

Face APIを追加して顔検出ができるようになりました。あとは、検出した顔の情報をもとにコラ画像を作成すれば雑コラBotの完成です。
次回は、今回のコードに画像合成の処理を追加して雑コラBotを完成させます。

LINEで送る
Pocket