ITmedia NEWS > STUDIO >
連載
2017年04月04日 14時51分 UPDATE

はじめてのAI:感情を読み取る人工知能「Emotion API」を20分で学んでみる

前回、画像から年齢や性別を認識する「Face API」を30分で使えるようになった筆者。次は感情を認識する「Emotion API」に挑戦します。

[太田智美,ITmedia]

 AIについて本気で学び始めて約1カ月。「AIってなぁに?」からはじまった私も、日本マイクロソフトテクニカルエバンジェリスト大田昌幸(おおたまさゆき)先生に手とり足とり教えてもらって、ついにAIが使えるようになりました。

 最初に挑戦したのは、Microsoftが公開している「Face API」。これを使うと、写真から年齢と性別が認識できるようになります。しかも勉強時間は30分! これまで「へー」と見ていたものを、自分の手で作れるようになると楽しくなります。そんなわけで、一通りのAPIをいじってみたいと思います。


Emotion API 春になりました

 今回学ぶのは、同じくMicrosoftが公開している「Emotion API」です。Emotion APIは、顔を認識し感情を分析してくれるAPI。Emotion APIに画像を送ると、平常状態、怒り、軽蔑、嫌気、恐怖、幸福、悲しみ、驚きの8種類の感情を認識してくれます。

 これらの感情は、文化が違っても普遍的に伝達される表情とされているようです。「Face API」同様、今回も「Emotion API」の「API Reference」を見ながら勉強していきます。

連載一覧

第1回:AIってなぁに?

第2回:Amazon、Google、IBM、Microsoftが公開する「AIを使うための手段」一覧

第3回:30分でAIが使えるようになる 写真から年齢と性別を認識する「Face API」を試してみた

第4回(今回):感情を読み取る人工知能「Emotion API」を20分で学んでみる

第5回(予定):「Face API」と「Emotion API」を使ってどんなことができるの? 取材してきた


 前回と同じく、APIを試すのに「Postman」を使いたいと思います。「Postman? なにそれおいしいの?」という方は、前回の記事を参考にインストールしてみてください。

「Emotion API」を使ってみる

 Face API同様、「Emotion API」の公式ページを見ると、「API Reference」と書かれたボタンがあります。これをクリックすると、APIを使うための仕様や操作方法などが書かれたページに行きます。ここに書かれているRequest URL、ヘッダー情報(Request headers)、ボディ情報(Request body)などをPostmanに入れていきます。

 まず、「Request URL」の「https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize」を、PostmanのURL記入用の場所にコピー&ペーストします。POST MethodなのでPOSTを指定し、実行すると以下のような画面になります。


はじめてのAI「Emotion API」

 続いて、「Request headers」のリファレンスを見ます。「Ocp-Apim-Subscription-Key」は、APIにアクセスするためのサブスクリプションキーを作って入力してくださいという項目です。こちらのキーの作り方は前回の記事に細かく記載しているので、詳しい説明は省きますが(前回記事参照)、「Emotion - Preview」の項目のチェックボックスと利用規約にチェックを入れて「Subscribe」を押します。キーの一覧(「Key 1:XXXXXXXXXXXXXXXXXXXXXXXXXXX」など)が出てくるので、その隣にあるCopyをクリックします。。

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


はじめてのAI「Emotion API」

 最後にPostmanの「Body」をクリックし、ラジオボタンで「raw」を選び、認識したい画像のURLをJSON形式で入れます。今回もおなじみの海苔をくわえた水着写真を使ってみます。

 「Send」を押して成功すると(HTTPステータスコードがResponse 200の場合)、画像から認識された顔の位置情報と、それぞれの顔の“感情スコア”が数値として返ってきます。解析が失敗してしまうと、エラーコード「Response 400 Bad Request」(解析エラー)、「Response 401 Unauthorized」(認証が必要)、「Response 403 Forbidden」(アクセスの禁止)、「Response 429 Too Many Requests」(指定した時間内に多くのリクエストがあり解析不能)のいずれかが返ってきます。今回は"neutral"の数値が高い(95%)という結果が返ってきました。つまり、この水着写真の表情は「平常状態」ということになります。

[
  {
    "faceRectangle": {
      "height": 148,
      "left": 52,
      "top": 93,
      "width": 148
    },
    "scores": {
      "anger": 0.000478341826,
      "contempt": 0.00760934362,
      "disgust": 0.000534534454,
      "fear": 0.000138350166,
      "happiness": 0.009713962,
      "neutral": 0.9521246,
      "sadness": 0.02834625,
      "surprise": 0.00105463516
    }
  }
]
成功した場合このような数値が返ってきます

はじめてのAI「Emotion API」 こんな画面になります

 それぞれの数値は「確率」を表していて、開発者はこの数値を使って感情情報をサービスなどに組み込んでいます。例えば、「angerとsadnessがいずれも70%を超えていた場合、怒っていて悲しい」などです。このしきい値を「70%」にするのか「50%」にするのかという確率の部分は、開発者の判断にゆだねられています。

 次回は、これまで勉強して使えるようになった「Face API」や「Emotion API」を使って監視カメラ録画サービスを提供しているアロバに取材に行きます。これらのAPIは実際の社会でどんなふうに利用されているのでしょうか……?

 【次回予告】「Face API」「Emotion API」を使っている企業を取材!

太田智美

筆者プロフィール:太田智美

プロフール画像

 小学3年生より国立音楽大学附属小学校に編入。小・中・高とピアノを専攻し、大学では音楽学と音楽教育(教員免許取得)を専攻し卒業。その後、慶應義塾大学大学院メディアデザイン研究科に入学。人と人とのコミュニケーションで発生するイベントに対して偶然性の音楽を生成するアルゴリズム「おところりん」を生み出し修了した。

 大学院を修了後、2011年にアイティメディアに入社。営業配属を経て、2012年より@IT統括部に所属し、技術者コミュニティ支援やイベント運営・記事執筆などに携わり、2014年4月から2016年3月までねとらぼ編集部に所属。2016年4月よりITmedia ニュースに配属。プライベートでは2014年11月から、ロボット「Pepper」と生活を共にし、ロボットパートナーとして活動している。2016年4月21日にヒトとロボットの音楽ユニット「mirai capsule」を結成。


教えてくれた先生:大田昌幸(おおたまさゆき)先生

AI

 スタートアップでのWeb開発経験を経て、2011年に日本マイクロソフトに入社。現在はソリューション開発企業向けのテクニカル エバンジェリストとして活動。東京工業大学や慶應義塾大学にて非常勤講師の経験も持つ。AzureなどのMicrosoft製品に加えて、社外の技術も加えた新規ソリューション開発を企業とともに企画・実現する活動に取り組んでいる。Twitterアカウントは@masota0517



Copyright© 2017 ITmedia, Inc. All Rights Reserved.