Microsoft Emotion APIを使ってみる
最近使ってみようと調べていたのでメモ(かなり雑ですみません)
マイクロソフトのProject Oxfordというプロジェクトの成果とかそういうのは他のサイトでみればいいのでググってください。最近はいっぱい情報がでているのでそれを参考にしてみいいかもしれません。
サービスへの登録
まずはサービスに登録してAPIのキーを取得します。 公式サイトに行きましょう。EmotionAPIはMicrosoftのCognitiveServiceに含まれています。
上記のURLにアクセスすると以下のような画面になります。
中ほどにある【Get Started for Free】というボタンをクリックします。すると次のような画面に遷移します。
画面の中ほどにある【Lets go】ボタンをクリックするとMicrosoft アカウントのログインを求められますのでログインをします。 予めログインが完了しているとボタンは表示されない画面になります。ログイン画面は表示されません。
ログインが完了するとどのサービスの試用をするか、選択する画面になります。
この画面内のリストで使用するAPIにチェックをしていくことになります。(かなり多くのサービスを試用することができます。)
そのなかで今回はEmotionAPIを試用するので以下のようにチェックを付けます。 以下のものにチェックをつけてください。
- Emotion - Preview 30,000 transactions per month, 20 per minute.
- I agree to the Microsoft Cognitive Services Terms and Microsoft Privacy Statement.
チェックを行うと【Submit】ボタンがアクティブになりクリックできるようになりますのでクリックします。
すると、EmotionAPIの試用が可能になります。試用制限は画面にも書いてありますが
30,000 transactions per month, 20 per minute.
なので20回/分で月に30000回の試用が可能になっています。
試用してみる
先程のページでKey1とKey2の2つがありますが、そのうちのKey1の下辺りにあるCopyをクリックします。これでAPIに必要なキーがクリップボードにコピーされます。
つづいて、EmotionAPIのページに移ります。
画面内にある【API Reference】をクリックします。 クリックするとEmotion APIのリファレンスページに遷移します。
リファレンスページがとても優秀なのでAPI制限やRequestURL、HTTPヘッダー、HTTPレスポンス、主要言語のソースコードも載っています。
とりあえず、動作を確認するには中ほどにある【Open API Testing Console】のボタンをクリックします。すると次のようなAPIをWebページ上でテストできるようなページに遷移します。
ページ中ほどにある【Ocp-Apim-Subscription-Key】の入力ボックスに先程入手したキーをペーストします。そして【Request body】のボックスにAPIの解析対象になる画像のURLをJSON形式で入力します。今回は画像処理でよく使用されているレナさんを対象にしたので以下のようにしてみました。
{ "url": "http://www.cs.cmu.edu/~chuck/lennapg/len_top.jpg" }
入力が完了すると以下のようになると思います。
入力が完了したら【Send】ボタンをクリックします。クリックするとResponse同じ画面の下の方に表示されます。
Pragma: no-cache apim-request-id: b47957e8-4dc7-4d32-8b35-97165b6bde41 Cache-Control: no-cache Date: Sun, 16 Oct 2016 15:23:03 GMT X-Powered-By: ASP.NET Content-Length: 257 Content-Type: application/json; charset=utf-8 Expires: -1 [ { "faceRectangle": { "height": 68, "left": 177, "top": 85, "width": 68 }, "scores": { "anger": 3.3987697E-05, "contempt": 0.000354579, "disgust": 2.710808E-07, "fear": 3.346522E-06, "happiness": 0.00406290637, "neutral": 0.995369, "sadness": 6.767311E-05, "surprise": 0.000108244079 } } ]
Responseの内容はJSONで帰ってきます。scoresの中にあるパラメータが解析結果となります。一番大きい値が解析された感情になります。今回はneutralの値が一番大きいので自然な表情だったことがでたようです。
終わりに
MicrosoftのCognitiveServiceの一つである、EmotionAPIの登録と試用をやってみました。ソースコードもあるのでとても親切なサービスのようです。今後はRaspberryPiなどでも実験して見る予定です。