いよいよAIを使ってみることに挑戦です。今回も教えてくれるのは、日本マイクロソフトテクニカルエバンジェリスト大田昌幸（おおたまさゆき）先生。APIを使って、初めて「AIを使う」体験をしてみます。使うのは、Microsoftが公開している「Face API」。これを使えば、写真から年齢と性別が認識できるようになるそうです。

「Postman」をダウンロード

APIを使う前に、まず「Postman」をダウンロードします。Postmanは、APIを試したいときに便利なツール。REST API Call用のプログラムを自分で書かなくて済むし、試したあとに各言語用のサンプルプログラムを自動生成してくれるのでとても便利です。インストールしたPostmanを起動したら準備は完了です。

「Face API」を使ってみる

「Face API」の公式ページを見ると、「API Reference」と書かれたボタンがあります。これをクリックすると、APIを使うための仕様や操作方法などが書かれたページに行きます。そのページで少しスクロールしたところに「APIを使うために必要な作業」が全て書かれています。ここに書かれているRequest URL、ヘッダー情報（Request headers）、ボディ情報（Request body）などをPostmanに入れていきます。

まず、「Request URL」の「https://westus.api.cognitive.microsoft.com/face/v1.0/detect」を、PostmanのURL記入用の場所にコピー＆ペーストします。このとき、「[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes]」この部分はコピーしなくて大丈夫です。[]で囲われている部分はそのあとに続く記述例なので、必要になったときに入れましょう。その部分の詳細は、「Request parameters」のカ所に書かれているのでのちほど見ていきます。

POST MethodなのでPOSTを指定し、URLを入れて実行すると以下のような画面になります。

「Request parameters」の「returnFaceId」は、検出された顔のIDを返すというものです。デフォルト値はtrueになっていて、写真に何人か映っていた場合1人1人の顔にIDを振ります。例えば、ある写真に複数人映っていた場合、右に映っている女性はID「001」、左に映っている男性はID「002」といった形でIDが振られ、そのIDが返ってきます。これを利用すると、「同じ人かどうか」が判断できるようになりますが、今回は使いません。

「returnFaceLandmarks」は、写真の中のどこに顔があるか、目や口の位置はどこかといった「位置情報」を返してくれます。ただ、こちらも今回は使いません。

今回使うのは「returnFaceAttributes」。returnFaceAttributesは、指定された1つ以上の顔属性（年齢・性別・髪型・表情など）を分析するパラメーターで、例えば年齢と性別を認識したければ「returnFaceAttributes=age,gender」のように記載すると年齢と性別が返ってきます。Postmanで先ほど記載したRequest URLの後ろに「?」を付け、そのあとに「returnFaceAttributes=age,gender」と書きます。

https://westus.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceAttributes=age,gender

returnFaceAttributesでは、年齢と性別以外にも、髪型「headPose」、笑顔「smile」、髭「facialHair」、眼鏡「glasses」がサポートされており、年齢・性別と同様に「returnFaceAttributes=」のあと「headPose」「smile」とカンマで区切って並べれば、それぞれほしいデータが返ってきます。

続いて、「Request headers」のリファレンスを見ます。「Ocp-Apim-Subscription-Key」は、APIにアクセスするためのサブスクリプションキーを作って入力してくださいという項目です。サブスクリプションキーとは、利用に応じて料金を払うためのキー。ガッツリ使うのであれば（2万件以上が目安）有償版が必要になりますが、とりあえずは無償版でOKです。

無償版のサブスクリプションキーを作りたい場合には、まず、Cognitive Servicesのページ右上にある「Get started for free」ボタンをクリックして、GitHubのアカウントなどでログインします（GitHubアカウントの場合、E-mailが公開されている必要があるみたいです）。有料版を使いたい人は、AzureとCognitive Servicesのアカウントを作ります。

ログインが完了すると、メールアドレスの右側に「unverified」という記載があります。その右側に「Send email verification」というボタンがあるのでそれをクリックします。すると登録メールアドレス宛にメールが来るので、リンクを踏んで「Get started for free」をクリック。「Face - Preview」の項目のチェックボックスと利用規約にチェックを入れて「Subscribe」を押します。キーの一覧（「Key 1:XXXXXXXXXXXXXXXXXXXXXXXXXXX」など）が出てくるので、その隣にあるCopyをクリックします。

キーを作ったら、PostmanのHeadersの「Ocp-Apim-Subscription-Key」と書かれている横の欄にペーストします。「Content-Type」には、送信するBodyのデータがJSON形式なので「application/json」と入れます。ここまでの操作をするとこんな画面になるはずです。

最後にPostmanの「Body」をクリックし、ラジオボタンで「raw」を選び、認識したい画像のURLをJSON形式で入れます。今回はこの写真（/news/articles/1702/15/l_tomomi_3000profile00.jpg）を使ってみます。「Send」を押すと、写真のどこに顔があるのかと、その顔の年齢と性別情報が返ってきます。

Face APIは一番シンプルです。Computer Vision APIの場合は、写真に何が映っているのかという情報を全部返してくれます。例えば、海が映っている、犬が建物の前でご飯を食べているといった情報も返してくれるのがComputer Vision APIです。そのためFace APIをまず触ってみて、慣れてきたらComputer Vison APIを触れるといった順序で勉強していくといいかもしれません。

ちなみに、PostmanはAPIコール用のコードを自動生成してくれるので、ハッカソンなどチームメンバーとの言語が違うときにも便利。codeをクリックして、プルダウンメニューから言語を選ぶと、Postmanが自動でその言語のコードに書き変えてくれます。コピペすれば動くのでとてもありがたい機能です。

ということで、30分ではじめてのAI、使えるようになりました！ 次回は感情認識を行う「Emotion API」に挑戦します。

【次回予告】感情認識APIを使って、年齢・性別を認識してみよう！

（太田智美）

まさゆき先生のおすすめ図書

今回説明に出てきたヘッダーとかBodyとかの用語が分からない人は、「HTTPの教科書」を読んでみるといいです。