AWS DeepLens
開発者ガイド

AWS DeepLens サンプルプロジェクトの概要

AWS DeepLens の使用を開始するには、サンプルプロジェクトテンプレートを使用します。AWS DeepLens のサンプルプロジェクトではモデルが事前トレーニング済みであるため、残る作業はプロジェクトを作成してモデルをインポートし、プロジェクトをデプロイして実行するだけです。このガイドの他のセクションでは、サンプルプロジェクトの機能を拡張する方法について説明します。この拡張により、指定したタスクをイベントに応じて実行したり、元のサンプルとは異なる動作を行うようにサンプルプロジェクトをトレーニングしたりします。

画風の転写

このプロジェクトでは、絵画などの画風を AWS DeepLens でキャプチャした動画シーケンス全体に転写します。

このプロジェクトでは、畳み込みニューラルネットワーク (CNN) により、AWS DeepLens デバイスからストリーミングした絵画の画風を周囲に適用する方法を示します。プロジェクトで使用するトレーニング済みのモデルは最適化されており、AWS DeepLens デバイスにデプロイする準備が完了しています。デプロイすると、画風を適用した動画ストリームを確認できます。

独自のイメージを使用することもできます。イメージのモデルをチューニングした後で、CNN でイメージの画風を適用した動画ストリームを確認できます。

  • プロジェクトモデル: deeplens-artistic-style-transfer

  • プロジェクト関数: deeplens-artistic-style-transfer

オブジェクトの認識

このプロジェクトでは、ディープラーニングモデルで室内のオブジェクトを検出して認識する方法を示します。

プロジェクトで使用するシングルショットマルチボックスディテクタ (SSD) フレームワークでは、トレーニング済みの resnet_50 ネットワークのオブジェクトを検出します。このネットワークは、Pascal VOC データセットでトレーニング済みであり、20 個の異なる種類のオブジェクトを認識できます。このモデルは、AWS DeepLens デバイスからの動画ストリームを入力として受け取り、識別したオブジェクトをラベル付けします。プロジェクトで使用するトレーニング済みのモデルは最適化されており、AWS DeepLens デバイスにデプロイする準備が完了しています。デプロイすると、AWS DeepLens モデルが周囲のオブジェクトを認識する様子を確認できます。

注記

Amazon SageMaker でトレーニングした SSD モデルをデプロイするときは、最初に deploy.py (https://github.com/apache/incubator-mxnet/tree/master/example/ssd/ から入手可能) を実行して、モデルアーティファクトをデプロイ可能モードに変換する必要があります。

このモデルが認識できるオブジェクトは、飛行機、自転車、鳥、ボート、ビン、バス、車、猫、椅子、牛、食卓、犬、馬、バイク、人、鉢植え、ヒツジ、ソファー、電車、および TV モニターです。

  • プロジェクトモデル: deeplens-object-dectection

  • プロジェクト関数: deeplens-object-dectection

顔の検出と認識

このプロジェクトでは、顔の検出モデルと AWS DeepLens デバイスを使用して室内の人々の顔を検出します。

このモデルは、AWS DeepLens デバイスからの動画ストリームを入力として受け取り、検出した顔のイメージをマークします。プロジェクトで使用するトレーニング済みのモデルは最適化されており、AWS DeepLens デバイスにデプロイする準備が完了しています。

  • プロジェクトモデル: deeplens-face-detection

  • プロジェクト関数: deeplens-face-detection

ホットドッグの認識

テレビの人気番組からヒントを得たこのプロジェクトでは、食品をホットドッグとホットドッグ以外に分類します。

このプロジェクトで使用するモデルは、SqueezeNet ディープニューラルネットワークに基づいています。このモデルは、AWS DeepLens デバイスからの動画ストリームを入力として受け取り、イメージをホットドッグまたはホットドッグ以外としてラベル付けします。プロジェクトで使用するトレーニング済みのモデルは最適化されており、AWS DeepLens デバイスにデプロイする準備が完了しています。モデルをデプロイすると、ライブ表示機能を使用してモデルがホットドッグを認識する様子を確認できます。

このモデルを編集する場合は、Lambda 関数を作成し、これをモデルの出力でトリガーします。たとえば、モデルがホットドッグを検出した場合に、Lambda 関数から SMS メッセージを送信できます。Lambda 関数を作成する方法については、「Amazon SageMaker を使用して、サンプルプロジェクトの事前トレーニング済みモデルをプロビジョニングします。」を参照してください。

猫と犬の認識

このプロジェクトでは、ディープラーニングを使用して猫または犬を認識する方法を示します。

このプロジェクトは畳み込みニューラルネットワーク (CNN) アーキテクチャに基づいており、トレーニング済みの Resnet-152 トポロジを使用してイメージを猫または犬として分類します。プロジェクトで使用するトレーニング済みのモデルは最適化されており、AWS DeepLens デバイスにデプロイする準備が完了しています。デプロイすると、AWS DeepLens がモデルを使用してペットを認識する様子を確認できます。

  • プロジェクトモデル: deeplens-cat-and-dog-recognition

  • プロジェクト関数: deeplens-cat-and-dog-recognition

アクションの認識

このプロジェクトでは、30 種類を超えるアクティビティを認識します。

Apache MXNet フレームワークを使用し、ImageNet でトレーニングした SqueezeNet の学習内容を新しいタスクに転送します。このネットワークは、UCF101 データセットのサブセットでチューニングされていて、30 種類を超えるアクティビティを認識できます。このモデルは、AWS DeepLens デバイスからの動画ストリームを入力として受け取り、識別したアクションをラベル付けします。プロジェクトで使用するトレーニング済みのモデルは最適化されており、AWS DeepLens デバイスにデプロイする準備が完了しています。

モデルをデプロイすると、AWS DeepLens がモデルを使用して 37 種類のアクティビティを認識する様子を確認できます。認識されるアクティビティは、口紅を塗る、アーチェリーをする、バスケットボールをする、ベンチプレスをする、サイクリングをする、ビリヤードをする、ドライヤーで髪を乾かす、ろうそくの火を吹き消す、ボーリングをする、歯を磨く、台所で包丁を使う、ドラムをたたく、髪を切る、ハンマーで打つ、逆立ちで歩く、頭をマッサージする、乗馬をする、フラフープをする、ジャグリングをする、なわとびをする、ジャンピングジャックをする、突きの動作をする、ヌンチャクを使う、チェロを弾く、フルートを吹く、ギターを弾く、ピアノを弾く、シタールを弾く、バイオリンを弾く、腕立て伏せをする、ひげを剃る、スキーをする、タイプを打つ、犬を散歩させる、黒板に書く、ヨーヨーで遊ぶなどです。

  • プロジェクトモデル: deeplens-action-recognition

  • プロジェクト関数: deeplens-action-recognition

頭部姿勢の検出

このサンプルプロジェクトでは、TensorFlow フレームワークで生成されたディープラーニングモデルを使用して、人間の頭の向きを正確に検出します。

このプロジェクトでは、ResNet-50 ネットワークアーキテクチャを使用して頭の向きを検出します。このネットワークは Prima HeadPose データセットでトレーニング済みです。これは 15 人の顔の 2,790 の画像 (-90~90 度までの傾いた位置および回した位置の動きのバリエーションを含む) で構成されます。これらの頭部姿勢の角度は、右下、右、右上、下、中央、上、左下、左、左上の 9 個の頭部姿勢クラスに分類されています。

作業を開始できるように、事前トレーニングおよび最適化済みのモデルを用意しました。このモデルはすぐに AWS DeepLens デバイスにデプロイできます。モデルをデプロイすると、AWS DeepLens がさまざまな頭部姿勢を認識する動作を確認できます。

鳥類分類

このプロジェクトでは、予測の上位 5 鳥の静的鳥の AWS DeepLens カメラでキャプチャされた写真から種類が指定されます。

このプロジェクトでは、ResNet-18 ニューラルネットワークアーキテクチャを使用して、CUB-200 データセットでモデルをトレーニングしています。トレーニング済みのモデルでは、200 種類の異なる鳥を識別することができます。カテゴリの数が多いため、プロジェクトでは確率が最も高い 5 つの推論結果のみ出力されます。バックグラウンドノイズを低減して精度が向上するように、推論には、カメラ画像の中央に位置するクロップされたゾーンが使用されます。プロジェクトのビデオストリーミングからクロップされたゾーンを表示できます。静的な鳥の写真をボックスゾーンに配置すると、推論結果がプロジェクトビューの左上に表示されます。

  • プロジェクトモデル: deeplens-bird-detection

  • プロジェクト関数: deeplens-bird-detection