Microsoft Emotion APIを使ってみる

Microsoft Emotion APIを使ってみる

最近使ってみようと調べていたのでメモ(かなり雑ですみません)

マイクロソフトのProject Oxfordというプロジェクトの成果とかそういうのは他のサイトでみればいいのでググってください。最近はいっぱい情報がでているのでそれを参考にしてみいいかもしれません。

サービスへの登録

まずはサービスに登録してAPIのキーを取得します。 公式サイトに行きましょう。EmotionAPIはMicrosoftのCognitiveServiceに含まれています。

www.microsoft.com

上記のURLにアクセスすると以下のような画面になります。

f:id:ueponx:20161016230611j:plain

中ほどにある【Get Started for Free】というボタンをクリックします。すると次のような画面に遷移します。

f:id:ueponx:20161016231409j:plain

画面の中ほどにある【Lets go】ボタンをクリックするとMicrosoft アカウントのログインを求められますのでログインをします。 予めログインが完了しているとボタンは表示されない画面になります。ログイン画面は表示されません。

ログインが完了するとどのサービスの試用をするか、選択する画面になります。

f:id:ueponx:20161016232442j:plain

この画面内のリストで使用するAPIにチェックをしていくことになります。(かなり多くのサービスを試用することができます。)

f:id:ueponx:20161016232740j:plain

そのなかで今回はEmotionAPIを試用するので以下のようにチェックを付けます。 以下のものにチェックをつけてください。

  • Emotion - Preview 30,000 transactions per month, 20 per minute.
  • I agree to the Microsoft Cognitive Services Terms and Microsoft Privacy Statement.

f:id:ueponx:20161016233306j:plain

f:id:ueponx:20161016233302j:plain

チェックを行うと【Submit】ボタンがアクティブになりクリックできるようになりますのでクリックします。

f:id:ueponx:20161016233525j:plain

すると、EmotionAPIの試用が可能になります。試用制限は画面にも書いてありますが

30,000 transactions per month, 20 per minute.

なので20回/分で月に30000回の試用が可能になっています。

試用してみる

先程のページでKey1とKey2の2つがありますが、そのうちのKey1の下辺りにあるCopyをクリックします。これでAPIに必要なキーがクリップボードにコピーされます。

f:id:ueponx:20161016234444j:plain

つづいて、EmotionAPIのページに移ります。

www.microsoft.com

f:id:ueponx:20161017000521j:plain

画面内にある【API Reference】をクリックします。 クリックするとEmotion APIのリファレンスページに遷移します。

f:id:ueponx:20161017000734j:plain

リファレンスページがとても優秀なのでAPI制限やRequestURL、HTTPヘッダー、HTTPレスポンス、主要言語のソースコードも載っています。

とりあえず、動作を確認するには中ほどにある【Open API Testing Console】のボタンをクリックします。すると次のようなAPIをWebページ上でテストできるようなページに遷移します。

f:id:ueponx:20161017001215j:plain

ページ中ほどにある【Ocp-Apim-Subscription-Key】の入力ボックスに先程入手したキーをペーストします。そして【Request body】のボックスにAPIの解析対象になる画像のURLをJSON形式で入力します。今回は画像処理でよく使用されているレナさんを対象にしたので以下のようにしてみました。

{ "url": "http://www.cs.cmu.edu/~chuck/lennapg/len_top.jpg" }

入力が完了すると以下のようになると思います。

f:id:ueponx:20161017002713j:plain

入力が完了したら【Send】ボタンをクリックします。クリックするとResponse同じ画面の下の方に表示されます。

f:id:ueponx:20161017002849j:plain

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などでも実験して見る予定です。

/* -----codeの行番号----- */