Amazon Rekognition! AWSの画像認識サービスを試してみよう! – AIは「こけし」を判別できたのか? –

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/amazon_rekognition.jpg

 こんにちは。サーバーワークス こけし部 部長でCS課の坂本(@t_sakam)です。
 今回は先日おこなわれた「re:Invent」で発表があった新サービス、「Amazon Rekognition」を試してみました。
 マネジメントコンソールからいくつかデモを試せるようになっています、まずはどのようなことができるのかを確認してみました。

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/demo.jpg

  1. Amazon Rekognitionとは?
    1. モノやシーンを検知(DetectLabels)
    2. 顔の分析(DetectFaces)
    3. 顔の比較(CompareFaces)
  2. CLIについて
  3. 基本情報
    1. ユースケース
    2. 料金
    3. 利用できるリージョン
  4. おまけ
  5. まとめ
     

Amazon Rekognitionとは?

 Amazon Rekognitionとは、AWSの「ディープラーニングをベースとした画像認識サービス」です。
 画像に写っているモノやシーンを検知したり、顔の分析や比較、顔認識をおこなうことができます。
 Amazon Polly,Amazon Lexと一緒に「Amazon AI」の一つとして先日のre:Inventで発表されました。
 

1. モノやシーンを検知(DetectLabels)

 まずは、「Rekognition」のマネジメントコンソールの左のメニューで「Object and scene detection」を選択します。
 以下の画像は元々設定されているサンプル画像の結果です。「Skateboard」、「Sport」、「People」など画像に写っているモノやシーンを表す単語が画像の右側に表示されています。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_01.jpg

 ファイルをアップロードできるようになっているので、今度は好きな画像をアップロードしてみます。アップロードするだけで、画像に写っているモノやシーンを特定してくれます。
 今回は、re:Inventにつれていった、「こけし」の「kokexa」の画像をアップロードしました。これは、re:Inventの会場にあったBig Echoの前で撮った写真です。
 
※kokexaについてはこちらへ
【re:Invent 2016 直前企画】Alexaの予習でAmazon EchoをDIY! kokexa誕生編
[re:Invent 2016]現地レポートにSNSをつかったことで起きたアメージングな出来事 #reinvent – amazing kokexa –
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_04.jpg

 「Lighting」は、98.2%で「照明」で照らされた写真であることは確信しているようです。そのあとの「Toy(おもちゃ)」、「Head(頭)」、「Portrait(肖像)」、「Face(顔)」、「Selfie(セルフィー)」はそれぞれ50%くらいで、正しい判定か確信がもてないようです。
 「こけし」は元々、東北地方の温泉地の「おみやげ」や、こどもの「おもちゃ」としてつくられていたので、「Toy」でも間違いではありません。
 

2. 顔の分析(DetectFaces)

 次は、顔の分析(DetectFaces)を試してみます。笑っているのか? 目は開いているか? メガネをかけているか? などの結果が表示されます。
 「Rekognition」のマネジメントコンソールの左のメニューで「Facial analysis」を選択します。
 以下の画像は、元々設定されているサンプル画像の結果です。「appears to be happy」という項目もあって、「幸せそうにみえる」ということまで結果にでてきています。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_02.jpg

 今度も先程の「Big Echo」の画像をアップロードしてみます。「appears to be female」が100%で「女性と思われる」という結果。「not smiling」が70.6%で、この写真の「こけし」の「kokexa」は「笑顔ではない」と判断したようです。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_05.jpg

 同じ「こけし」の「kokexa」の写真でも以下の写真は、「smiling」が87.3%で「笑顔」と判定されました。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_10.jpg

 こちらの「こけし」、前から笑っているように見えたり、そうでもなかったりするな、と思っていました。それは、見たときの角度によって口角が上がって見えたり、目元が下がって見えたりするからだったんですね。
 人間は口元や目元などの要素の状態をみて、顔の表情をよみとり、「笑顔」かどうか判断しています。よくよく考えるとあたりまえのことですが、普段は意識していないことですよね。
 「Rekognition」も写真によって、同じ「こけし」でも「笑顔」と判断したり、そうでなかったりと判定に違いがあります。それは、AIが人間と同じ要素で顔の表情をよみとり、判断しているからなのですね。
 

3. 顔の比較(CompareFaces)

 最後は顔の比較(CompareFaces)です。一人ずつ同一人物かどうかを確かめられます。画像の中にいくつも顔があった場合でも、同じ顔があるかどうかを確かめられます。
 「Rekognition」のマネジメントコンソールの左のメニューで「Face comparison」を選択します。
 こちらもまずは、元々設定されているサンプル画像から確認します。顔の角度や表情もちがっていて、何人も写っている右側の写真の中からであっても、同一人物をきちんと判別しています。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_03.jpg

 次は、また先程の「Big Echo」の画像で検証します。まずは、一人ずつ同一人物という結果がでるか確かめてみます。比べた画像は「こけし」の顔の大きさがだいぶ小さく写っていますが、「Similarity」が97%となり、ちゃんと同一人物(こけし)と判断されました。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_06.jpg

 最後にいくつかの「こけし」の画像を組み合わせた画像と比べてみます。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_07.jpg

 比べた画像の中の左下のみ顔が下向きで暗くなっていたためか、顔と判断されず、正しい判定ができませんでしたが、正面ではなく、少し右を向いている右下の画像を含むその他の3つの顔はちゃんと「Similarity」が90%以上となり、ほぼ同一人物(こけし)と判断されました。
 

CLIについて

 「Rekognition」のマネジメントコンソールでデモを試してみましたが、もちろんCLIで使うことができます。S3に画像をアップロードして、コマンドでバケットや画像を指定すれば、結果が返ってきます。
※以下は、「DetectLabels」を試したところ。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/cli.jpg

コマンド

 

基本情報

ユースケース

  1. 「旅行サイト」でユーザーがアップロードした画像をシーン別に自動で分類
  2. 「写真を印刷するサービス」でベストな写真を自動で選択
  3. 写真でメガネをかけていたらメガネ関係の広告をだす、レコメンド広告システム
  4. 顔認証で通った人のみ建物に入れるようにするセキュリティシステム
    などなど

料金

最初の1年の無料枠がありますので、まずは気軽に試せますね。
 
最初の1年の無料枠:50000 image per month
 

Image Analysis Tiers Price per 1,000 Images Processed
First 1 million images processed* per month $1.00
Next 9 million images processed* per month $0.80
Next 90 million images processed* per month $0.60
Over 100 million images processed* per month $0.40

 

現在(2016/12/09)利用できるリージョン

  1. 米国東部(バージニア北部)
  2. 米国西部(オレゴン)
  3. EU(アイルランド)
     

おまけ

 もう一つのRaspberry Piを背負った話す方の「kokexa」の画像を「DetectLabels」でどんな結果がでるか確かめてみたところ、先程の結果ででてきた「Toy(こけし)」ではなく、「Machine」と判断されました。こちらは、「こけし」より「マシン」の要素のほうが多いようです。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2016/12/rekognition_example_08.jpg
 

まとめ

 今回は、「Amazon Rekognition」というAWSの新しい画像認識サービスをマネジメントコンソールのデモ機能で試してみました。
 
 モノやシーンを検知する「DetectLabels」を試したときは少し迷いが見られる結果でした。ただ、「Big Echo」の画像はかなり特殊なシーン。人間でも何のシーンなのか判断がつきにくいところです。50%前後の迷いがある結果が多かったのは当然かと思います。
 
 顔の分析をおこなう「DetectFaces」に関しても、今回の人間でも笑っているのかそうではないのかがわかりのくい、なんともいえない表情の「こけし」だと、少々表情をよみとるのは難しかったかもしれません。
 
 そんな悪条件の中でも、顔の要素の位置で同一人物(こけし)かどうか判断する「CompareFaces」はほぼ正しい結果となりました。ちゃんと明るい場所で正面で撮った写真同士であれば、ほぼ間違えることはないのでは? という印象を持ちました。既に現段階で顔認証システムに取り込んでもよさそうですよね。
 
 こんな風に簡単にマネジメントコンソールでデモが試せて最初の一年は無料枠もある「Amazon Rekognition」。みなさんも試してみてはいかがでしょうか?
 
 いや〜、Amazon Rekognitionって本当にいいものですね!
 

AWS運用自動化サービス「Cloud Automator」