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

LINEで送る
Pocket

Michaelです。

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


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

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

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


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

 

<h2>スクリプトの説明 </h2>
1. Face APIキー情報
Face API作成時に取得したAPIキーとエンドポイントを設定します。

2. Face APIへのリクエスト
Face APIにリクエストし、画像内の顔を検出します。
今回は、関数でダウンロードした画像の顔検出を行うため、リクエストヘッダの「Content-Type」に「application/octet-stream」を指定し、関数が保持するバイナリデータを直接送信して顔検出を行います。

3. 顔検出結果の取得
Face APIで顔を検出し、検出結果を取得します。
Face APIの顔検出は個々の顔の情報を配列で返すため、配列の要素数を取得してメッセージとしてSlackに出力し、顔検出できていることを確認します。
<h2>実行結果 </h2>
Slackのチャンネルに画像のURLを投稿すると顔の検出数がBotのメッセージで返されました。

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


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

LINEで送る
Pocket