MS の Emotion Recognition を ATPニュースに適用してみた

深層学習 (機械学習プロフェッショナルシリーズ)

深層学習 (機械学習プロフェッショナルシリーズ)

深層学習: Deep Learning

深層学習: Deep Learning

深層学習が流行ってきているようでいろいろなサービスが出てきてますね。

どれも学習元のデータが異なるので、分類の粒度は異なりますが面白いものばかりなので試してみてください。

今回はMS の Emotion Recognitionを試してみたいと思います。 題材はATPニュースの画像です。 テニスプレイヤーの表情がどう判別されるかを見てみます。

MS の Emotion Recognition

Emotion Recognition では画像を入力として、入力された画像に写っている顔の表情をスコア化します。 表情は以下の8つです。

  • 怒り (anger)
  • 軽蔑 (contempt)
  • 苛立ち (disgust)
  • 恐怖 (fear)
  • 幸福 (happiness)
  • 普通 (neutral)
  • 悲しみ (sadness)
  • 驚き (surprise)

各々のスコアは [0,1] で、すべての表情のスコアを足すと1になります。

Djokovic Leads The Establishment's Dominance Of Year-End Emirates ATP Rankings | ATP World Tour | Tennis

ATPの年末ランキングの記事です。 写真はジョコビッチがトロフィーを持っている写真です。


[
  {
    "scores": {
      "anger": 0.000176769914,
      "contempt": 0.0007099141,
      "disgust": 0.00004961539,
      "fear": 1.318392e-7,
      "happiness": 0.996703446,
      "neutral": 0.00235439371,
      "sadness": 0.00000385898147,
      "surprise": 0.00000185366548
    }
  }
]

導出された表情のスコアを見ると、幸福が99.6%超えとかなりの値になっていて他の値がかなり小さくなっていますね。 確かに、ジョコビッチの表情も笑っているので期待通りですね!

Murray Goffin Davis Cup Final 2015 Sunday | ATP World Tour | Tennis

マレーがデビスカップでイギリスの優勝を決めた時の記事です。 写真はマレーが英国旗を肩にかけて両手を上げている写真です。


[
  {
    "scores": {
      "anger": 0.63786906,
      "contempt": 0.00334465457,
      "disgust": 0.1597193,
      "fear": 0.0009787302,
      "happiness": 0.000420434633,
      "neutral": 0.141241238,
      "sadness": 0.0000432042325,
      "surprise": 0.05638338
    }
  }
]

  スコアを見ると、怒りが 63.7%と最も高く、次いで苛立ち、普通と続きます。 確かに笑っている画像ではないのですが、怒り...なんですかね? 表情だけでは怒りに見えるときもあるので文脈を考慮すると見方も変わりそうです。

Nishioka Wins 2015 Toyota Title | ATP World Tour | Tennis

西岡がDunlop Srixon World Challengeで優勝した時の記事です。 写真は西岡がトロフィーと賞金額が書かれたプレートを持っている写真です。


[
  {
    "scores": {
      "anger": 0.00001021484,
      "contempt": 0.003572685,
      "disgust": 0.0001357352,
      "fear": 5.446197e-7,
      "happiness": 0.260283738,
      "neutral": 0.730899155,
      "sadness": 0.005095525,
      "surprise": 0.00000237378822
    }
  }
]

スコアは、普通が73%で幸福が26%という具合で、無表情そうな中にも幸福感が出ている感じ何でしょうかね。 ニッコリ笑っているわけではない時でも幸福のスコアが上がるのは流石ですね。

McEnroe Beats Wilander at Royal Albert Hall 2015 | ATP World Tour | Tennis

マッケンロー vs. ビランデルの試合についての記事です。 写真はバックハンドを打つ瞬間の写真です。


[
  {
    "scores": {
      "anger": 0.2914376,
      "contempt": 0.001388494,
      "disgust": 0.0959314853,
      "fear": 0.00193129736,
      "happiness": 0.0003508002,
      "neutral": 0.19187513,
      "sadness": 0.00387728168,
      "surprise": 0.4132079
    }
  }
]

スコアは、驚き41%、怒り29%、普通19%、とだいぶ分散してますね。 ボールを打つ瞬間の表情って何かを物語るんですかね... プレー中の真面目な顔は怒りや驚きに寄りつつ他の表情を含んでいるようです。

Rafa Bullish In Paris | ATP World Tour | Tennis

個人的にナダルが好きなので、最後はナダルです。 Paribas Mastersの時の記事で、写真はアンダーソンとの対戦時のものです。


[
  {
    "scores": {
      "anger": 0.008408292,
      "contempt": 0.0415971,
      "disgust": 0.00362344878,
      "fear": 0.0002790429,
      "happiness": 0.000903555949,
      "neutral": 0.938155055,
      "sadness": 0.0033940156,
      "surprise": 0.00363946264
    }
  }
]

マッケンローの時とは違いナダルは普通が93.8%とほぼ無表情でプレーをしてるんですね。 表情だけで何かを読み取るのは難しそうです...

さいごに

深層学習をつかったAPIやサービスは今後ますます増えてくるでしょう。 今回は最近注目されているMSのEmotion Recognitionを試してみました。 人の表情がスコア化されるのは面白いですね!

今回はテニスプレイヤーを題材に適用してみましたが、他にいろいろためしてみると面白そうです。 利用も簡単にできるので、思いついたら試してみてはどうですか?