« 国内でWindows 10 Mobileデバイスがフルラインナップ揃ってしまった件 | トップページ | Microsoft Cognitive ServicesのEmotion APIを使ってみた (使って色々思いを馳せた編) »

2016年4月 2日 (土)

Microsoft Cognitive ServicesのEmotion APIを使ってみた (サンプルをビルドする編)(追記あり)

最近、ディープラーニングを勉強し始めていて、画像から感情を検出するという技術(Emotion API)に興味をそそられています。ということで、Emotion APIを簡単に使ってみたという話。まず、APIを準備してサンプルをビルドする編。

Microsoft Cognitive Servicesとは

Microsoftが提供するWebサービスです。 Build 2016(Microsoftの開発者イベント、2016/03/30-04/01にサンフランシスコで開催)で発表されました。どういうものかを一言で説明するのは難しいんだけど(いや、一応それらしい説明はあるんだけど)、以下のビデオのような世界を実現するために必要となるもの、と考えるのが分かりやすいのではないかと思います。これは、Buildの初日キーノートの最後に流されたビデオです。

Microsoft Cognitive Services: Introducing the Seeing AI app (「字幕」を有効にすると字幕を見ることができます。英語だけど)

Webサイトは以下。

Microsoft Cognitive Services

去年、画像から人の顔を特定して年齢を推測するWebサイトが話題になったのを覚えているでしょうか? Project Oxfordというやつですね。それが進化したものです。

Emotion APIとは

Microsoft Cognitive Servicesを構成するAPI群の一つで、画像やビデオから人の顔が写っている部分を特定し、そこから読み取れる感情を推測して返します。

Emotion APIのページに載っている以下のデモを見れば、どういうものか想像できるのではないでしょうか。

Emotion APIページのキャプチャ

Emotion APIのリファレンスを見ると、 4個のAPIが定義されています。今回ここで使ってみるのは、 "Emotion Recognition"です。

Emotion APIを使うには

ちょっと試してみるだけなら、先のページのデモ機能でも十分ですが、せっかくなのでもう少しまじめに使ってみます。

Emotion APIを使うには、以下の手順が必要です。

  • Microsoft Cognitive Servicesを利用するためにアカウントを登録する。
  • Emotion APIを呼び出す。その際には、登録した際に割り当てられるキーを使う。

「Emotion APIを呼び出す」はcurlコマンド一発でもいいのですが、サンプルアプリが用意されているようなので、それを使ってみます。

以下、その手順の説明です。次回のブログでは、そのサンプルアプリを「使ってみた編」を書く予定。

Microsoft Cognitive Servicesを利用するためにアカウントを登録する

Microsoft Cognitive Servicesのページの"Get started for free tody"ボタンから登録できます。その飛び先のページに説明がありますが、

  1. Microsoftアカウントでサインインし、
  2. 使いたいAPIの種類にチェックをつけ、同意事項をチェックして"Subscribe"ボタンを押す

すると、登録処理が行われ、 Cognitive Servicesのサブスクリプション管理ページに飛びます。ここで、"Emotion - Preview"の項目を見てみましょう。

Cognitive Servicesのサブスクリプション管理ページのキャプチャ

こんな感じです。時刻表示はGMTのようですね。現状、無料コースでは「30,000トランザクション/月 かつ 20トランザクション/分」までのようです。

さて、ここで重要なのはキー(Key)です。キーはCognitive Servicesの各API毎に用意される文字列で、この文字列が後でAPIへのアクセスをするための鍵になります。アカウントにはキーが二つ(Key 1, Key2)が割り当てられています。どちらも等しく有効です。

後にサンプルをビルドして実際に動かしてみる段になると、このキーが必要になります。その際には、このページからキーをコピーします。

キーの文字列は、最初"XXXXXXXXXXXXXXXXXXXXXXXXXXX"のように隠されています。、 "Show"をクリックして実際の文字列を表示させ、文字列をコピーし、 "Hide"をクリックして再び文字列を隠します。

言うまでも無いとは思いますが、キーは秘密にしなければなりません。キーがばれてしまうと、他の人がサービスを自分のアカウントで使うことができてしまいます。キーがばれてしまった場合は、 "Regenerate"をクリックしてキーを「取り替え」ます。

Emotion APIのサンプルをビルドする

Emotion APIのサンプルはGitHubにあります。 GitHubのMicrosoft/ProjectOxford-ClientSDKプロジェクト下の、 Emotion/Windows/Sample-WPFにある Windows版サンプルを使います。

単純に、 GitHubからサンプルをとってきて、 Visual Studio 2015で"EmotionAPI-WPF-Samples.sln"開いて、ビルドすればできあがります。

ただ、ビルドの最初にNuGetパッケージの復元が行われますが、私の環境ではNuGet動かず、ビルドエラーになりました。しかし、これはサンプルの問題では無く、 NuGetが全体的に動いていなかったので、私の環境の問題のようです。つい最近までNuGet動いていたと思うんだけどな? Visual Studio 2015の「ツール」-「オプション」の「NuGetパッケージマネージャー」-「パッケージソース」でチェックがオフになっていたv2パッケージソースを有効にしたらビルドできました。

【2016/04/07追記: これはどうやら、NuGetの問題のようでした。「NuGet 3.4 Known Issues」を参照のこと。 4/09あたりに修正が公開されるとあるので、待っていれば直るんじゃないかな。急ぐ人は前記ページに載っているwork-aroundをどうぞ。】

サンプルコードも特にトリッキーなことはありません。 Asyncスタイルで用意されているEmotion APIのクライアントライブラリを非同期呼び出しで呼び出しているだけです。まあ、このAPIの場合、重要なところはすべてサーバー側の方だろうし。

サンプルを起動すると、以下の画面が現れます。

サンプルアプリの画面

この"Subscription Key:"に先ほどのキーを記入し、 "Save Key"を押せば準備完了。

次回、これを使って画像を色々読み取らせてみます。

« 国内でWindows 10 Mobileデバイスがフルラインナップ揃ってしまった件 | トップページ | Microsoft Cognitive ServicesのEmotion APIを使ってみた (使って色々思いを馳せた編) »

Deep Learning」カテゴリの記事

その他」カテゴリの記事

作業記録」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/595179/63430132

この記事へのトラックバック一覧です: Microsoft Cognitive ServicesのEmotion APIを使ってみた (サンプルをビルドする編)(追記あり):

« 国内でWindows 10 Mobileデバイスがフルラインナップ揃ってしまった件 | トップページ | Microsoft Cognitive ServicesのEmotion APIを使ってみた (使って色々思いを馳せた編) »