【レポート】NEW LAUNCH! AWS DeepLens workshop: コンピュータビジョンアプリケーション開発体験 #reinvent #MCL212

2017.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

原題

NEW LAUNCH! AWS DeepLens workshop: Building Computer Vision Applications

はじめに

こむろです。今朝のKeynoteで怒涛の新機能が発表されていた中、面白そうなデバイスが発表されていました。その名もDeepLens。 Keynoteでの発表時のブログはこちら

【速報】オンボードでディープラーニング可能なビデオカメラ「AWS DeepLens」が発表されました! #reinvent

ワークショップに参加するとこちらのデバイスが配布されるということで早速ワークショップに参加してみました。

DeepLensについて

見た目と大きさはちょっとした外付けHDDといった大きさです。基本的はスペックについては以下になります。

ワークショップに参加してみてびっくりしたのですが、中でUbuntuベースのOSが動いているらしく、UbuntuのGUIがそのまま動いていました。そのため、ちょっとした小型のPCといった趣です。HDMIケーブルでディスプレイに接続され画面が表示されています。今回のワークショップはすべてDeepLensの中でプログラミングやAWSの設定などを行いました。

ワークショップの初めに高らかに宣言していたように、DeepLensは単なるVideo Cameraではなく、DeepLearningなどの要素技術をComputer Visionとシームレスに接続し、開発できるDeveloper Kitだということがよくわかります。

内容について

DeepLensを利用して、簡単な動体検出やこれまた本日アナウンスされたAmazon SageMakerを使い物体認識について体感してみるという内容です。2時間という長い時間だったにも関わらず、非常に情報量の多いワークショップでした。

Lesson.1 動体検出

まずは動体検出。その前にDeepLensの動作の全体概要の解説です。

基本的にプログラミングや各AWSサービスとの連携などに関してはAWS Console上で行います。Deployと言う形でDeepLensへ最終的なコードをダウンロードさせて展開することでDeepLensを制御することができるようです。DeepLensの中にはGreenhouseが含まれており、そのためLambdaを実行することができます。

Deployされたプロジェクトが展開されたDeepLensはカメラから入力されるシーンに応じて、Lambdaが実行され事前に定義されたモデルに基づいて様々なOutputを行います。今回やってみた限り、DeepLensの中にDeployできるのはプロジェクト1つだけに限られるようです。

予め用意されていたテンプレートからプロジェクトを作成し、DeepLensへDeployを実行します。

若干の遅延がありますが、十分実用に耐えうるレベルの速度で動体検出がされていました。簡単すぎてすごい。

Lesson.2

Amazon SageMakerを使う上での機械学習等に関する知識はある程度必要になります。かくいう自分もこのあたりは初心者ですので、なかなか簡単にとはいきません。

きちんと学習させたモデルを用意し、プロジェクトを作成すると魔法のようなことができますよというお話。

Lesson.3

Amazon SageMakerを使いモデルを作成し、ホットドッグかそうでないかを判別するプロジェクトを作成しました。Githubのリンクがすでに用意されており、こちらの手順に沿って進めていきます。

この課題から難易度がとても上がり、学習モデルの作成から物体を認識させるための機能の実装まで、とても手数の多い作業でした。 *1自分はDeploy後に確認したところうまくカメラが動作せずに、壊れたファミコンのような画面が作成されてしまいました。恐らくLambdaの内容かモデルの作りがおかしかったのかもしれません。

この課題で利用した技術は以下でした。

  • Amazon SageMaker
  • AWS Lambda
  • Amazon S3
  • AWS DeepLens

Lesson.4

Lesson.3の内容をさらに複雑にし、ホットドッグと認識したらSMSへ通知するようにMQTTとSNS、AWS IoTなどのサービスをつなげます。IoT Rulesを使いクエリを定義し、MQTTへその結果を通知、さらにLambdaをキックしてSMSを通知させるというマネージドサービスの多段構成てんこ盛りのDeepLensプロジェクトを作成します。

残念ながら、SMSを受信できるSIMの刺さった端末がなかったため、最後まで行き着きませんでした。 *2残念。AWSのマネージドサービスを組み合わせるだけで、かなり縦横無尽に様々なComputer Visionのプログラミングが可能であることがわかりました。

まとめ

DeepLensのハンズオンに参加して、はじめは単に面白そうなガジェットをもらえるなら行こうくらいだったのですが、思った以上に工夫次第で様々なことができそうなポテンシャルを秘めたガジェットであることが分かりました。なかなか機械学習系の知識がないと本当に使いこなすには難しいとは思いますが、今回発表された新しいAmazon SergeMakerなどの機能を使った現実世界への新しいインタフェースということで今後とても期待できそうです。

おまけ

折角開封してみましたのでフォトジェニックなDeepLensの姿を御覧ください(写真が下手なのはご愛嬌・・・)

入力インタフェースは、マイクロSDカード、ミニHDMI、USB等がありました。

脚注

  1. 恐らく同じ機能を以前作ろうと思ったらもっとかかるのでしょうが・・・
  2. メールアドレスの場合はこちらという案内はあるのですが、明らかにコードの修正も必要なはずが書いていなかったため、当然ながら動きませんでした。