Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Kinesis Video Streams × Deep Learning

toshitanian
December 14, 2017

Amazon Kinesis Video Streams × Deep Learning

toshitanian

December 14, 2017
Tweet

More Decks by toshitanian

Other Decks in Technology

Transcript

  1. Amazon Kinesis Video Streams
    × Deep Learning
    JAWS-UG AI #6
    2017/12/14
    ABEJA, Inc
    Toshiya Kawasaki

    View full-size slide

  2. 河崎 敏弥 @toshitanian
    ABEJA, Inc.
    Platform Division
    Lead Engineer
    •創業1年の時にABEJAに参画
    •バックエンドエンジニア
    •クラウド上でシステム構築
    •IoTデバイスとのシステム連携
    •コンテナ
    •エッジコンピューティング

    View full-size slide

  3. 社名 株式会社ABEJA
    設立 2012年9月10日
    住所 東京都港区虎ノ門4-1-20 田中山ビル10F
    資本金
    (資本準備金含む)
    1,148,518,043円
    企業理念 イノベーションで世界を変える
    事業内容
    ディープラーニングを活用した
    産業構造変革

    View full-size slide

  4. ABEJA Platform Ecosystem "

    View full-size slide

  5. • エンジニア・デザイナが色々な話を書いてます
    • ML/DL
    • AWS・インフラ
    • IoT
    • デザイン
    ABEJA Tech Blog
    5
    http://tech-blog.abeja.asia/

    View full-size slide

  6. •Kinesis Video Streams
    •Overview
    •How to use
    •Integrating with deep learning applications
    Agenda
    6

    View full-size slide

  7. Kinesis Video Streams
    Overview

    View full-size slide

  8. 8
    re:Invent 2017でデモってきた
    https://www.youtube.com/watch?v=rjBXbktBxBg

    View full-size slide

  9. • コーデック・コンテナ
    • ビデオの保存・管理方法
    • ストリーミングプロトコル
    • カメラとの接続
    • ffmpeg/gstreamer
    • etc…
    画像系MLをやった事ある人
    ビデオで苦しんだ事ありますよねʁ!
    Kinesis Video Streamsが、そのツラミを一部
    吸収してくれます

    View full-size slide

  10. • 映像版Kinesis Streams
    • 従来のKinesis StreamsはKinesis Data Streamsに改名
    • 映像ストリームデータの保存・リアルタイムな取得ができる
    • フレーム単位でのデータ転送
    • ミリ秒単位の遅延でデータの処理が可能
    • 過去データの管理・検索・取得もできる
    • 数百万のデバイスからのビデオストリームにも対応
    Kinesis Video Streams
    10

    View full-size slide

  11. • Computer Vision / Machine Learningでの解析を主用途にしている
    • Consumer側のSDKはJava
    • PythonからビデオストリームにアクセスできるハイレベルSDKはまだ無い
    • Kinesis Video Streams readyなカメラデバイスが今後出て来るハズ
    • Control Plane APIとData Plane APIを提供
    • ストリームの管理用API
    • 暗号化、リテンションピリオド
    • ビデオデータのIngest/Consumeを実際に行うAPI
    Kinesis Video Streams (cont.)
    11

    View full-size slide

  12. • スマートホーム
    • ペット、老人の見守りカメラ
    • Amazon Key 的なシステム
    • スマートシティ
    • 犯罪防止
    • 自動運転、自動車のナンバープレート検出
    • リテール
    • リピーター検知、来店者属性推定
    • 無人コンビニ
    • 製造
    • 検品、異常検知
    Use cases
    12

    View full-size slide

  13. Data flow
    13
    https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works.html
    • Producer
    • データの送信元
    • Java/C++ SDK
    • Video Stream
    • Consumer
    • データを取得・処理をするアプリ
    • streams-parser-library

    View full-size slide

  14. • フレーム単位でのIngest/Consume
    • コンテナフォーマット
    • mkv (matroska)
    • Video/Audio以外でも乗せられる
    • 各トラックのデータ
    • 基本的に何でもOK
    • h264だとコンソールで確認できる
    • デコードはユーザがやる
    Data format
    14
    https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works-kinesis-video-api-producer-sdk.html

    View full-size slide

  15. Price
    15
    σʔλͷIngest σʔλͷConsume σʔλอଘ
    Kinesis Video Streams $0.01097/GB $0.01097/GB $0.02500/GB-mo
    ※追加でEC2に準じたデータ転送料金がかかります
    ※Tokyo regionの価格です
    •データ保存料金 + データのIngest/Consume
    •データ保存料金はS3と同じ
    •通常の利用用途の場合、S3の価格の2倍と考えてよさそう

    View full-size slide

  16. Kinesis Video Streams
    How to use

    View full-size slide

  17. • GitHub
    • awslabs / amazon-kinesis-video-streams-producer-sdk-cpp
    • awslabs/amazon-kinesis-video-streams-produscer-sdk-java
    • aws / amazon-kinesis-video-streams-parser-library
    • Kinesis Video Streams - Management console
    • quick start for C++ and Java Producer SDK
    • Developer Guide
    • Java / C++ producer library sample
    • Stream parser library sample
    現在公開されているリソース
    17
    Consumerとして
    動かしてみる
    Producerとして
    動かしてみる

    View full-size slide

  18. • MacBookのカメラ映像をリアルタイムにKinesis Video Streamに送る
    • 今公開されているproducerでは一番安定している
    GStreamer Producer Sample Application
    18

    View full-size slide

  19. $ git clone https://github.com/awslabs/amazon-kinesis-
    video-streams-producer-sdk-cpp.git
    $ cd amazon-kinesis-video-streams-producer-sdk-cpp
    $ cd kinesis-video-native-build
    $ ./install-script
    $ export AWS_ACCESS_KEY_ID=[KEY]
    $ export AWS_SECRET_ACCESS_KEY=[SECRET]
    $ ./kinesis_video_gstreamer_sample_app [stream-name]
    Running gst-sample
    19

    View full-size slide

  20. •Developer Guideのサンプルにはデータの取得部分は書いてない
    •putMedia APIからリアルタイムにデータを取得するサンプルはまだ公開
    されていないみたいですね
    •AWS Java SDKと組み合わせるといいです
    Stream parser library sample (consumer)
    20
    https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/parser-library.html

    View full-size slide

  21. Kinesis Video Streams
    Integrating with deep learning applications

    View full-size slide

  22. re:Inventで実施したデモ
    22
    https://www.youtube.com/watch?v=rjBXbktBxBg&t=46m47s

    View full-size slide

  23. re:Inventで実施したデモの構成
    23
    • MacBook上でGStreamerのアプリケーションを動かす
    • ECS上でVideo Processing
    • 1) Stream Parsing Library (Java)を使ってフレームの取得、JCodecでデコード、bitmapで保存
    • 2) PythonのEstimatorが推論・レンダリング・結果の保存(yuv)
    • 3) gstramerのアプリケーションが別のStreamに送信
    • Web Consoleで確認

    View full-size slide

  24. • リアルタイム(ミリ秒レベルの遅延!)でデータが処理できる
    • 過去データの取得も可能
    • トレーニングデータを作るのに必要
    • 過去データへのモデルの再適用も結構やる
    • ビデオストリームのインフラを考えなくて良い
    • ビデオストリームの管理をやってくれる
    • 暗号化、保存期間設定、Management Consoleでの映像チェック
    使ってみてわかった良さ
    24

    View full-size slide

  25. • Producer SDKの使い方が難しい
    • C++/Java SDK: Inputはエンコード済みフレームデータ
    • Android SDK: coming soon…
    • GStreamerサンプル: GStreamerの勉強 ✏
    使ってみてわかったツラミ
    25

    View full-size slide

  26. • Consumer側のプログラムを作るのが難しかった
    • Java… mkv…
    • http clientからstream parser libraryに非同期でデータを渡す方法
    • streaming parser libraryでFrameデータを取れない時のデバッグ
    • 取得したFrameのDecodeは自分でやる必要がある
    • 僕はDeep Learningをしたいだけなのに…
    • 今後、ラッパーライブラリが出てくると思います
    使ってみてわかったツラミ (cont.)
    26

    View full-size slide


  27. Kinesis Video Stream + Rekognition Video
    27
    http://docs.aws.amazon.com/rekognition/latest/dg/streaming-video.html
    • 試したかったけど、間に合いませんでした。
    • Rekognition Video側でstreamのARNを指定するだけでOKっぽい
    • $0.12 per 1 min of live stream video analyzed (Oregon)
    • $0.12 /min × 60 min x 24hour x 30 days = $5,184 /mo
    • ご利用は計画的に

    View full-size slide

  28. • YouTube: AWS re:Invent 2017: NEW LAUNCH! Introducing Amazon Kinesis Video
    Streams (ABD216)
    • https://www.youtube.com/watch?v=rjBXbktBxBg
    • YouTube: AWS re:Invent Launchpad 2017 - Amazon Kinesis Video Streams
    • https://www.youtube.com/watch?v=P0O3zBNbtk0
    • Kinesis Video Streams - Developer Guide
    • https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html
    • Kinesis Video Stream + Rekognition Video
    • http://docs.aws.amazon.com/rekognition/latest/dg/streaming-video.html
    What’s next?
    28

    View full-size slide

  29. 告知: ABEJA Cloud AI Night
    29
    http://eventregist.com/e/1222_abejanight

    View full-size slide