Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Amazon Kinesis Video Streams × Deep Learning
toshitanian
December 14, 2017
Technology
1
5.9k
Amazon Kinesis Video Streams × Deep Learning
toshitanian
December 14, 2017
Tweet
Share
More Decks by toshitanian
See All by toshitanian
エッジデバイスでディープラーニング! AWSを活用したエッジデバイスマネジメントの紹介/ aws-edge-device-deeplearning
toshitanian
1
1.5k
機械学習プラットフォーム でのDocker利用事例 / DevSumiAbeja
toshitanian
1
390
nvidia-jetson-x-deep-learning
toshitanian
0
1.2k
急成長スタートアップのシステムの裏側 / ABEJA Innovation Meetup
toshitanian
0
1k
Docker入門 - Ruby on RailsアプリケーションをDockerで動かしてみる - / Introduction to Docker
toshitanian
7
2.5k
Other Decks in Technology
See All in Technology
1年間のポストモーテム運用とそこから生まれたツール sre-advisor / SRE NEXT 2022
fujiwara3
6
3.6k
家の明るさ制御 / Brightness Control in My House
1024jp
0
140
アルプの 認証/認可分離戦略と手法
ma2k8
PRO
2
360
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
oracle4engineer
PRO
0
140
Steps toward self-service operations in eureka
fukubaka0825
0
880
モダンデータスタックとかの話(データエンジニアのお仕事とは)
foursue
0
470
Oracle Content Management サービス概要 (2022年5月版)
oracle4engineer
PRO
0
120
⚡Lightdashを試してみた
k_data_analyst
0
220
ニフティでSRE推進活動を始めて取り組んできたこと
niftycorp
2
670
[SRE NEXT 2022]KaaS桶狭間の戦い 〜Yahoo! JAPANのSLI/SLOを用いた統合監視〜
srenext
0
520
[AKIBA.AWS] それ、t2.micro選んで大丈夫?
tsukuboshi
0
370
成長を続ける組織でのSRE戦略:プレモーテムによる信頼性の認識共有 SRE Next 2022
niwatakeru
7
2.9k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
103
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.3k
Documentation Writing (for coders)
carmenhchung
48
2.5k
Clear Off the Table
cherdarchuk
79
280k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
4
450
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
Adopting Sorbet at Scale
ufuk
63
7.5k
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
The Invisible Customer
myddelton
110
11k
Design by the Numbers
sachag
271
17k
Transcript
Amazon Kinesis Video Streams × Deep Learning JAWS-UG AI #6
2017/12/14 ABEJA, Inc Toshiya Kawasaki
河崎 敏弥 @toshitanian ABEJA, Inc. Platform Division Lead Engineer •創業1年の時にABEJAに参画
•バックエンドエンジニア •クラウド上でシステム構築 •IoTデバイスとのシステム連携 •コンテナ •エッジコンピューティング
社名 株式会社ABEJA 設立 2012年9月10日 住所 東京都港区虎ノ門4-1-20 田中山ビル10F 資本金 (資本準備金含む) 1,148,518,043円
企業理念 イノベーションで世界を変える 事業内容 ディープラーニングを活用した 産業構造変革
ABEJA Platform Ecosystem "
• エンジニア・デザイナが色々な話を書いてます • ML/DL • AWS・インフラ • IoT • デザイン
ABEJA Tech Blog 5 http://tech-blog.abeja.asia/
•Kinesis Video Streams •Overview •How to use •Integrating with deep
learning applications Agenda 6
Kinesis Video Streams Overview
8 re:Invent 2017でデモってきた https://www.youtube.com/watch?v=rjBXbktBxBg
• コーデック・コンテナ • ビデオの保存・管理方法 • ストリーミングプロトコル • カメラとの接続 • ffmpeg/gstreamer
• etc… 画像系MLをやった事ある人 ビデオで苦しんだ事ありますよねʁ! Kinesis Video Streamsが、そのツラミを一部 吸収してくれます
• 映像版Kinesis Streams • 従来のKinesis StreamsはKinesis Data Streamsに改名 • 映像ストリームデータの保存・リアルタイムな取得ができる
• フレーム単位でのデータ転送 • ミリ秒単位の遅延でデータの処理が可能 • 過去データの管理・検索・取得もできる • 数百万のデバイスからのビデオストリームにも対応 Kinesis Video Streams 10
• 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
• スマートホーム • ペット、老人の見守りカメラ • Amazon Key 的なシステム • スマートシティ
• 犯罪防止 • 自動運転、自動車のナンバープレート検出 • リテール • リピーター検知、来店者属性推定 • 無人コンビニ • 製造 • 検品、異常検知 Use cases 12
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
• フレーム単位での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
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倍と考えてよさそう
Kinesis Video Streams How to use
• 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として 動かしてみる
• MacBookのカメラ映像をリアルタイムにKinesis Video Streamに送る • 今公開されているproducerでは一番安定している GStreamer Producer Sample Application
18
$ 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
•Developer Guideのサンプルにはデータの取得部分は書いてない •putMedia APIからリアルタイムにデータを取得するサンプルはまだ公開 されていないみたいですね •AWS Java SDKと組み合わせるといいです Stream parser
library sample (consumer) 20 https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/parser-library.html
Kinesis Video Streams Integrating with deep learning applications
re:Inventで実施したデモ 22 https://www.youtube.com/watch?v=rjBXbktBxBg&t=46m47s
re:Inventで実施したデモの構成 23 • MacBook上でGStreamerのアプリケーションを動かす • ECS上でVideo Processing • 1) Stream
Parsing Library (Java)を使ってフレームの取得、JCodecでデコード、bitmapで保存 • 2) PythonのEstimatorが推論・レンダリング・結果の保存(yuv) • 3) gstramerのアプリケーションが別のStreamに送信 • Web Consoleで確認
• リアルタイム(ミリ秒レベルの遅延!)でデータが処理できる • 過去データの取得も可能 • トレーニングデータを作るのに必要 • 過去データへのモデルの再適用も結構やる • ビデオストリームのインフラを考えなくて良い
• ビデオストリームの管理をやってくれる • 暗号化、保存期間設定、Management Consoleでの映像チェック 使ってみてわかった良さ 24
• Producer SDKの使い方が難しい • C++/Java SDK: Inputはエンコード済みフレームデータ • Android SDK:
coming soon… • GStreamerサンプル: GStreamerの勉強 ✏ 使ってみてわかったツラミ 25
• Consumer側のプログラムを作るのが難しかった • Java… mkv… • http clientからstream parser libraryに非同期でデータを渡す方法
• streaming parser libraryでFrameデータを取れない時のデバッグ • 取得したFrameのDecodeは自分でやる必要がある • 僕はDeep Learningをしたいだけなのに… • 今後、ラッパーライブラリが出てくると思います 使ってみてわかったツラミ (cont.) 26
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 • ご利用は計画的に
• 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
告知: ABEJA Cloud AI Night 29 http://eventregist.com/e/1222_abejanight