Amazon Web Services ブログ
IoT@Loft #9 IoTにおけるカメラ・動画の扱い方
IoT@Loft の第9回目は「IoTにおけるカメラ・動画の扱い方」をテーマに、初のオンライン開催を行いました。
見守りカメラや監視カメラ、ドライブレコーダーやロボットなど、IoTではカメラや動画を扱う様々なユースケースが存在します。一方で、デバイスやメディアを取り扱う際には、セキュリティやスケーラビリティなどのIoTならではの課題があります。また、Webカメラの普及や低価格化により、デバイスだけではなくサービスとしての差別化が必要になってきており、例えばクラウド側やエッジ側での認識技術などと組み合わせることによる付加価値の提供も重要です。
この回では、エッジAI処理カメラやIoT通信プラットフォームを提供されているソラコム様、防犯カメラのクラウドサービスを提供されているセーフィー様に登壇いただき、カメラデバイスや動画を扱うサービスやソリューションにおけるAWSのユースケースや課題についてお話しいただきました。また、AWSからは、IoTにおける動画ソリューションの構築方法やその事例について紹介しました。
IoT@Loft とは ?
IoT 関連ビジネスで開発を担当するデベロッパーのためのイベントです。IoT の分野は、「総合格闘技」と呼ばれるほど、必要な技術分野が非常に多岐に渡ること、ビジネスモデルが複雑なケースが多く、全体を理解することは難しいと言われています。その結果、実証実験 (Proof of Concept : PoC) から商品への導入が進まないケースや、PoC でさえ十分に実現できていないケースも多々あります。
IoT@Loft は、そういった IoT 特有の課題と向き合い、情報共有・意見交換を行う場として、参加者の事業や製品開発を成功に近づけることができれば幸いです。この勉強会では、膨大な IoT 関連の情報の見通しを良くするために、各回ごとにテーマを定め、それに沿った形で登壇者に事例や技術のご紹介を頂きます。テーマは、インダストリー、ソリューション、テクノロジー、開発フェーズなどを軸に決めていきます。
LT セッション
各LTの内容をダイジェストで紹介してまいります。
LT1 – エッジ処理AIカメラとクラウドで実現する画像解析と現場のデジタル化
株式会社ソラコム様には、エッジ処理AIカメラS+Camera Basicのご紹介とクラウドと組み合わせることにより実現する画像解析のユースケースについてご紹介いただきました。
特定の要素を計測するセンサーに対して、カメラは目としての機能と、機械学習を組み合わせることで、多種多様な計測をすることができます。例えば、在庫の有無を知る、通行している人を数える、計測器のメーターを読むということを実現します。
ソラコム様では大手物流業者の倉庫の混雑状況を数値化して分析することにカメラを活用され、これまでは人手を介して判断していたことを遠隔かつ機械で判断できるようにサポートされました。
この経験により、システム開発におけるカメラ開発の困りごとを一掃するためにエッジAIカメラS+Camera Basicが開発されました。S+Camera Basicには容易な設置、コンピューティング、通信、遠隔制御という4つの特長があります。
カメラがどのように設置できるかという点は、性能や特長として重要視されることが少ないですが、S+Camera Basicはアクションカメラのマウントを利用でき、247gと軽量なので適切な場所にカメラを設置して良いアングルから撮影することができます。カメラにはコンピュート機能が備わっていて、Python3.6、OpenCV、Tensorflowを使用しエッジで画像補正、画像解析、物体認識を行うことができます。これによって、例えばマルチオブジェクトトラッキングをする場合に画像をクラウドに送らずに計算結果のみを送ることが出来ます。
遠隔制御、通信という観点では、S+Camera BasicではLTEを用いた通信機能を利用しています。これによって、SORACOM Mosaicでカメラの状態把握ができたり、今写っている画像の確認、オフライン状態の把握、メモリの空き容量、ファームウェアのバージョンを確認することができます。
S+Camera Basicで利用できるアプリケーションはアルゴリズムと呼びます。アルゴリズムパッケージのインストールもSORACOM Mosaic上から行うことができます。例えば、画像サイズをパラメーターとして指定して、ソラコム様のストレージサービスであるSORACOM Harvestに定期的に画像をアップデートすることができます。
S+Camera BasicはAWSのサービスとも連携可能でSoracom Funkを使用してAWS Lambdaを起動し、Amazon Rekognitionで人物の情報を取得してAmazon Elasticseach Serviceで可視化することができます。これによってカメラの前を通った人の年齢、性別、人数を分析することができます。このようにエッジ処理とクラウドを連携させることでデータ転送量を抑えつつ高度な分析が可能になります。
ご登壇資料: https://pages.awscloud.com/rs/112-TZM-766/images/SUM_awsloft-tko-iotloft-9-lt1_Apr-2020.pdf
LT2 – Safieのビデオストリーム制御システムについて
セーフィー株式会社様にはクラウド録画サービスSafieにおけるビデオストリームの制御についてご紹介していただきました。
Safieにおける開発要素としてはデバイスのファームウェア、インフラ、AIサービス、WEB/モバイルアプリケーションがあります。これらを組み合わせて、カメラからクラウドへの動画アップロード、サーバー上での管理、クライアントアプリケーションへの配信の3要素で動画ストリーム制御システムを構成しています。
カメラからクラウドへの動画アップロードでは専用プロトコルを開発しエンドツーエンドでの暗号化を行っています。この専用プロトコルはTCPベースで極力シンプルにすることでオーバーヘッドをなくして即時にデータの転送を可能にしています。送信時には帯域をモニタリングしてダイナミックにビットレート、フレームレートを調整して動画を途切れないようにしています。
サーバー側ではトランスコードを出来る限り行わないことで低コストな動画の管理を可能にしていて、全ての動画をユーザー毎カメラ毎に暗号化を行っておりセキュアに保管しています。更に変換することを視野にいれて扱いやすいMP4フォーマットでの保存を行っています。また、カメラの台数が増えてもスケールアウトする仕組みを実現しています。
配信側ではLiveとVODの配信に関しても低コストかつセキュアに視聴できるようにしています。HLSとWebRTCのハイブリッド配信を可能にしていて、WebRTCの配信ではレイテンシ1秒以内を実現しており、WebRTCが視聴できない場合は自動でHLSに切り替わるようになっています。RTMPでの送信機能をサポートしており、Youtubeなどの一般的な配信サービスへ配信できるようになっています。
システム全体構成のスライドにもあるように、これらの動画ストリーム制御システムをAmazon EC2やAmazon S3などのサービスを用いて構築されています。
今後はSafieの解析機能の充実を計画していて、解析、推論エンジンを管理、駆動させる仕組みを整備してユーザーがアノテーションやモデル構築、チューニングを行いモデルを推論エンジンへのアップロードを行ったり、その結果の通知を可能にすることを考えられているそうです。
ご登壇資料: https://pages.awscloud.com/rs/112-TZM-766/images/SUM_awsloft-tko-iotloft-9-lt2_Apr-2020.pdf
LT3 – カメラ・動画のIoTユースケースにおけるAWSの活用
AWSからは、IoT スペシャリスト ソリューションアーキテクトの三平より、IoT におけるカメラ・動画のユースケースやその課題、課題解決のためのAWSサービスや構成例をご紹介しました。ここでは登壇内容のダイジェストをお送りします。
IoTにおけるカメラ・動画のユースケースと課題
ビジネス的なニーズの高まりやデバイスやストレージの価格低下、画像認識技術の一般化などに伴い、IoTにおけるカメラや動画のユースケースが拡大を見せています。具体的には、ペットカメラ、見守りカメラ、インターホンなどのスマートホームでのユースケースや、ドローン、ロボットの遠隔制御、監視カメラやドライブレコーダーなどのスマートシティでのユースケース、スマートファクトリーでの機器監視などのユースケースでカメラや動画が利用されています。
これらのIoTの動画ユースケースに共通する構成要素として、以下の要素が現れます。
- 動画の収集と保存
- ライブ・オンデマンドでの再生
- 双方向コミュニケーション・遠隔制御
- 動画の分析
そして、動画ソリューションを実際に構築しようとすると以下のような課題があります。
- スケーラビリティ・セキュリティ
- 動画やストリーミングの専門知識
- 再生や遠隔制御のリアルタイム性
- デバイスの管理・制御
- 機械学習に関する専門知識
AWSサービスを用いた課題解決方法
Amazon Kinesis Video Streams, AWS IoT Core, Amazon Rekognition Video などのAWSサービスを活用することで、これらの課題を解決することができます。
まず、Amazon Kinesis Video Streams は、数百万台規模のデバイスからの動画のストリーミングを行うことができるマネージドサービスです。大きく2つの方式で動画のストリーミングを行うことが可能です。
1つ目が、メディア形式で収集する方式です。この方式を用いると、カメラデバイスから動画データを収集、クラウドに保存し、ライブやオンデマンドで再生したり分析のためのサービスと連携したりすることができます。こちらの方式を用いる場合には Amazon Kinesis Video Streams の Producer SDK という SDK を利用して、デバイスから動画をクラウドにアップロードします(C, C++, Java, Android の SDK が利用可能です)。クラウドに収集された動画はストリームという単位で管理され、期間を指定して保存することが可能です。再生する場合は、AWSのマネジメントコンソール上からの再生だけでなく、HLS、DASHなどの方式でストリーミングすることができます。そして、Amazon Rekonigition Video や Amazon SageMaker などのサービスと連携して、動画のストリーミング分析や画像認識などを行うことができます。
2つ目が、re:Invent 2019 で発表された WebRTC を用いる方式です。WebRTC を用いることで、低遅延での双方向ストリーミングを行うことができ、デバイスとアプリ間でリアルタイムな動画再生やコミュニケーションを実現できます。Amazon Kinesis Video Streams では WebRTC の通信のために必要な、シグナリング、STUN、TURN といったリソースをマネージドで提供しています。また、カメラデバイス向けの組み込みの C SDK と、ウェブ向けの JavaScript SDK、モバイル向けの Android、iOS の SDK を提供しており、デバイスやアプリ間ですぐに WebRTC によるストリーミングを試していただくことができます。
Amazon Kinesis Video Streams やその SDK を用いることで、専門知識がなくても動画のストリーミングでの収集や保存、再生などを行うことができます。
続いて、AWS IoT Core はデバイスを簡単かつ安全にクラウドに接続し、クラウドのアプリケーションや他のデバイスとの通信を行えるようにするためのマネージドサービスです。AWS IoT Core を用いることで、MQTT などのプロトコルでデバイスとのメッセージングを行うことができ、デバイスの状態取得や遠隔制御を行うことができます。また、デバイスの状態を保存し検索するための機能などを有しているため、大量のデバイスを容易に管理することができます。
そして、Amazon Rekognition Video は、保存された動画データに対して人物やオブジェクトなどを識別したり、ストリーミングのビデオに対して顔の検出や識別を行えるマネージドサービスです。Amazon Rekognition Video を用いることで、機械学習に関する専門知識やコーディング不要で、すぐに動画の分析を始めていただくことが可能です。
動画ユースケースの構成例
最後に、登壇中に紹介した動画ユースケースの構成例のうち、双方向コミュニケーションを行う例をご紹介します。その他の構成例については登壇スライドをご参照ください。
例えば、インターホンや見守りカメラではライブ再生だけでなく、アプリ側からの音声をカメラデバイス側のスピーカーで再生し、双方向でのコミュニケーションを行いたいというユースケースがあります。Amazon Kinesis Video Streams
の WebRTC を用いて双方向のストリーミングを行うことで、これを実現できます。
Amazon Kinesis Video Streams の WebRTC SDKを用いると、カメラデバイス側は WebRTC の接続を待ち受けておき、モバイルアプリから接続のリクエストが届くと Peer to Peer の接続を確立するといった仕組みを簡単に実現することができます。また、Amazon Kinesis Video Streams の Producer SDK を併用することで、WebRTC で双方向のコミュニケーションを行いながら、必要に応じて動画をクラウドに保存するといったユースケースにも対応可能です。
このようなユースケースでは、デバイスとのメッセージングには、Amazon Kinesis Video Streams の WebRTC のデータチャンネルを使う方法と、AWS IoT Core を用いる方法の2つが考えられます。デバイスとアプリ間でのみメッセージングが行えれば良い場合は WebRTC のデータチャンネル、他のAWSサービスやデバイスと連携したい場合には AWS IoT Core をお使いいただくことができます。
登壇資料: https://www.slideshare.net/AmazonWebServicesJapan/iotloft-9-aws-iot-aws
登壇動画: https://youtu.be/6nca5Z39xq4
Q&A
ご質問いただいた内容のうち、Q&Aのお時間で回答できなかったものについてこちらで回答いたします。
Q. AWS Elemental MediaServiceとAmazon Kinesis Video Streamsの違いについて、配信規模、レイテンシについての違いは分かりましたが、ほかに違いはありますか? AWS Elemental MediaConnectからAmazon Rekognition Videoに接続することができるかもお教えいただけると助かります。
AWS Elemental はブロードキャストグレードのメディア配信のためのサービス群で、テレビ放送やインターネット接続のマルチスクリーンデバイス (インターネット接続対応の TV、タブレット、スマートフォン、PC、セットトップボックス) での配信用に高品質なビデオストリームを作成できます。AWS Elemental メディアサービスを組み合わせることで、ファイルベースのトランスコーディング、エンコーディングやパッケージングの詳細な設定、広告の挿入といったライブやオンデマンドの動画配信のワークフローを柔軟に構築できます。
一方で、Amazon Kinesis Video Streams は、百万台規模のデバイスからの動画をセキュアに取り込み保存し、再生や分析のために利用したり、WebRTCを用いて双方向のストリーミングを行ったりするためのサービスです。Amazon Kinesis Video Streams を用いることでスマートホームやスマートシティ、産業オートメーションなどの動画アプリケーションを容易に実現することができます。
また、Amazon Rekognition Videoは Amazon S3 の動画ファイルもしくは Amazon Kinesis Video Streams からのストリーミングビデオを入力として利用可能です。AWS Elemental MediaConnect からの動画を直接 Amazon Rekognition Video に入力することはできません。
Q. AWS IoT Greengrassを使用したデバイスでのDL推論にはGPUのサポートはされていますか? 例えばラズパイで推論させる場合、AWS IoT Greengrassを使う使わないで速度に差はありますか?
AWS IoT Greengrass による GPU による推論は、利用するフレームワークが GPU をサポートしている場合は可能です。また、推論に CPU を用いる場合、AWS IoT Greengrass のソフトウェアもCPUリソースを消費しますので、推論を行うデバイスのリソースに余裕がない場合にはパフォーマンスに影響が出る可能性があります。推論を高速化させたいという目的に対しては、Amazon SageMaker Neo を用いてモデルを最適化することで、精度を低下させることなく最大 2 倍の速度でモデルを実行することができます。
Amazon SageMaker Neo: https://thinkwithwp.com/jp/sagemaker/neo/
Q. カメラデバイスからAmazon Kinesis Video Streamsに送る場合のフレームレートや画像サイズの制限はあるのでしょうか?
メディア形式で収集する方式では、PutMedia API の帯域幅制限が 100Mbps となっております。また、WebRTC の TURN ではビットレートの上限が 5Mbps です。
詳細な仕様については、下記ドキュメントをご覧ください。
メディア形式で収集: https://docs.thinkwithwp.com/ja_jp/kinesisvideostreams/latest/dg/limits.html
WebRTC: https://docs.thinkwithwp.com/ja_jp/kinesisvideostreams-webrtc-dg/latest/devguide/kvswebrtc-limits.html
次回 IoT@Loft のご案内
今回の IoT@Loft は初のオンライン開催となりましたが、今後もIoT@Loft はオンライン開催(もしくはLoft現地とオンラインの併催)を続けていく予定です。次回の IoT@Loft は、5/20(水)に「スマート工場(IIoT)に向けた課題と取り組み 〜見える化、予知保全、品質管理〜 vol.2」というテーマでオンライン開催予定です。また、connpass のグループに登録していただくと、イベントの開催情報や登壇資料のアップロードなどの通知が届きますので、是非ご登録ください。
著書について
渡邊 翼
AWSのソリューションアーキテクトとして自動車業界のお客様の支援をしています。好きなサービスはAWS IoT Coreです。好きな食べ物はプロテインです。
三平 悠磨
ソフトウェアエンジニアとして会話AIやロボット開発を経験しました。AWS では IoT スペシャリストソリューションアーキテクトとして、お客様の IoT 関連案件を支援しています。