狠狠撸

狠狠撸Share a Scribd company logo
大串 正矢, 2020.11.26
DEEPSTREAM AZURE IoT
2
コンパスに記載のセットアップの確認
Connpassに記載のハードウェアの準備ができていますか
ハードウェアの準備ができていない場合は参加できません。申し訳ありませんが、聴講のみになり
ます。
Connpassに記載のソフトウェアの準備ができていますか
ソフトウェアの準備ができていない方はこのプレゼンの時間に準備お願いします。
分からない点があればTAに確認お願いします。
3
AI REVOLUTION
空間の利用率はより重要に
交通マネジメント 小売り 医療工場
小売りと配送 スタジアムとカジノ 空港アクセス制御
$2T INDUSTRY —AIを使用して、多くの業界で運用効率と安全性を向上
4
ビデオ分析の課題
高精度な AI 高いスループットを実現 大规模な展开
5
BUILD WITH DEEPSTREAM
6
インテリジェントビデオ分析 アプリケーション
ピクセル 洞察
収集, デコード 前処理
より深い分析、
可視化
推論:検知、分類、
追尾
メタデータ受信
IoTセンサー
エッジ クラウド
7
DEEPSTREAM SOFTWARE STACK
CUDA-X
Kubernetes ON GPUsNVIDIA Containers RT
TensorRT
DEEPSTREAM SDK
JETSON | TESLA | EGX
NVIDIA COMPUTING PLATFORM - EDGE TO CLOUD
Triton Inference Server? Multimedia
Hardware Accelerated
Plugins
Bi-directional IoT
Messaging
OTA model update
Applications and Services
Reference Applications
& Helm Charts
Python C/C++
? - Formerly TensorRT Inference Server
8
GSTREAMER
DeepStreamはGSTREAMERをベースで構成。
GSTREAMERのプラグイン機能を組み合わせて提供
PLUGINS – メディア処理パイプラインの基本的な構成要
素
PADS – プラグインの入力と出力であり、他のプラグインを
接続。 これらは、リンクとデータフローを制御するために使
用。
BINS – 複数のプラグインを組み合わせて機能を実現した
もの
PIPELINE – トップレベルのBINS。 アプリケーションと連携を
取るためのbusを提供し、子プラグインの同期を管理
9
GSTREAMER
Buffers – パイプライン内のプラグイン間でストリー
ミングデータを渡すためのオブジェクト
Events – イベントは、プラグイン間またはアプリケー
ションからプラグインに送信されるオブジェクト
Messages – プラグインによってパイプラインのメッ
セージバスに投稿されたオブジェクト。アプリケーショ
ンに送られる
Queries - アプリケーションがパイプラインから情報
を要求
10
DEEPSTREAMで良く使用する単語
1) Multi-Stream – DeepStreamパイプラインへの入力ソース数
2) Multi-GPU – 同一システム内の複数のGPUカード間でのパイプラインの同時実行
3) Metadata – 分析のためにプラグイン(オブジェクトタイプなど)およびアプリケーション(人数カウント
など)によって生成された情報
4) PGIE(Primary GPU Inference Engine) – TensorRTを使用した最初に推論するGPU推論エンジ
ン
5) SGIE (Secondary GPU Inference Engine) – TensorRTを使用した2番目に推論するGPU推論エ
ンジン
11
マルチストリームバッチ処理
1. 最適なパフォーマンスを提供するにはNvInferプラグインにバッチ入力が必要。バッチ入力がモデル
推論に使用するTensorRTのGPUコアの使用率を向上させるため
2. 複数の入力ソースを組み合わせるか、単一の入力をバッファリングして、連続するフレームのバッチ
を形成
3. 複数のソース(カメラ/デコーダー)からのバッファーのフローを制御
4. バッチ制御用の連続したバッファーを形成-変換/スケーリング/オンスクリーンディスプレイ
5. メタデータを添付して、異なるソースのバッファーを区別
12
DEEPSTREAM パイプライン
GST-NvInfer
(Car-Detect)
Gst-uridecode GST-
NvTracker
(Car-LPR)
(Car-Color)
(Car-Model)
GST-NvInfer
(Car-Make)
GST-
NvEglglessink
GST- nvosd
GST-
nvmultistrea
mtiler
ビデオデコード
Primary
Detector
オブジェクトト
ラッカー Secondary Classifiers
On Screen
Display
Tiler Renderer
Gst-uridecode
Gst-uridecode
Gst-uridecode
N ストリーム
GST-
nvstreammux
StreamMux
13
DECODER プラグイン
マルチストリーム同時デコードをサポート
NVDECODE API を使用
H.264
H.265
エンコード機能も持っている
Name - nvvideo4linux2 decoder
nvvideo4linux2
libv4l2
NVDEC/NVENC/
NVJPEG(Jetson)
エンコードされ
たストリーム
YUV
Low Level API
HW
14
VIDEO AGGREGRATOR
「n」入力ストリームを受け入れ、シーケンシャルバッ
チフレームに変換するプラグイン
スケーリングのサポート–ビデオ入力の解像度がモデ
ルの解像度と異なる場合、またはその逆の場合に
スケーリングを変更する
Name - nvstreammux
nvstreammux
CPU + GPU /
VIC (Jetson)
YUV/
RGBA
バッチ化された
YUV/RGBA +
metadata
HW
15
VIDEO AGGREGRATOR
Contiguous buffer of
size W x H x N allocated
by GstNvStreamMuxer
Async Cuda
Memcpy
Queue for S1 buffers
Queue for S2 buffers
Queue for SM buffers
Batching algorithm
Batch of N buffers
of size (W x H)
Decoder / Camera 1
Decoder / Camera 2
Decoder / Camera M
GST - NvInfer
Round Robin then
FCFS
16
推論
検出と分類
Primary & Secondary モード
Caffe, ONNXモデルサポート
TensorRTで検出、分類モデルが動作
バッチ推論
複数の検出がされるのでそれらをクラスタリング
Triton Inference ServerとTensorRTモデルの切
り替え可能
Name - nvinfer
nvinfer
GPU/
DLA(Jetson)/
VIC(DLA)
Low Level API
HW
YUV/RGBA +
[Meta]
YUV/RGBA + Meta
nvds_inferutils nvds_infer
17
OBJECT トラッカー
KLT、IOU, NvDCFをサポート
https://docs.nvidia.com/metropolis/deep
stream/5.0DP/plugin-
manual/index.html#page/DeepStream%20
Plugins%20Development%20Guide/deepstr
eam_plugin_details.3.02.html#
スケーリングとフォーマット変換のために内部的に
CUDAカーネルを使用
Name - nvtracker
nvtracker
Tracker API
GPU + CPU +
VIC(Jetson)
Low Level API
HW
YUV/RGBA
+ meta
YUV/RGBA
+ meta
18
スクリーン TILER
ビデオウォールの作成に使用
複数の入力ソースをビデオタイル出力に配置
構成可能なウィンドウサイズを設定
Name - nvmultistreamtiler
nvmultistreamtiler
VIC(Jetson)/
GPU + CPU
HW
YUV/RGBA
+ All Meta
YUV/RGBA
+ All Meta
19
スクリーンディスプレイ
色付きの線とバウンディングボックス
テキスト/ラベル
矢印、線、円
Name - nvosd
nvosd
OSD API
CPU + GPU/
VICJetson()
Low Level API
HW
RGBA
+ All Meta
RGBA
+ All Meta
20
スクリーンディスプレイ
21
DEEPSTREAMのメタデータ
メタデータには、グラフ内のプラグインによって生成された情報が含まれる
各プラグインは、メタデータ構造に追加情報を付与
すべての段階で生成されたメタデータは、後続の処理で使用可能
Gstreamerバッファーに添付された新しいメタデータタイプを作成できるため、Gstreamerでカスタムメタデータ拡
張が可能
詳細:
https://docs.nvidia.com/metropolis/deepstream/5.0DP/dev-
guide/DeepStream_Development_Guide/baggage/group__metadata__structures.html
22
[application]
enable-perf-measurement=1 # パフォーマンスを計測するかどうかの設定
perf-measurement-interval-sec=5 # パフォーマンスを計測するためのサンプリング間隔
kitti-track-output-dir =/home/kitti_data_tracker # KITTI メタデータの出力先を変更可能
詳細
https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#application-group
Application Group
DEEP STREAM 設定ファイル
23
[source0]
enable=1 # sourceを使用するかどうかの設定
type=3 # 入力ソースのタイプ設定。3の場合は複数のURI(ファイルパスなど)
uri=file://./videos/drones_0%d.mp4 # URIの設定(ファイルパス、ウェブリンクなど)
num-sources=1 # 入力ソースの数
gpu-id=0 # sourceで使用するGPUの指定
詳細:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#source-group
Source Group
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
24
[streammux]
gpu-id=0 # streammuxで使用するGPUの指定
live-source=0 # ソースがライブであるかどうかを設定
batch-size=4 # 推論で使用する際のバッチサイズ
batched-push-timeout=40000 # バッチが作成されるまでの最大待ち時間。この時間を過ぎると自動的に次の処理へ
width=1280 # トータルの幅のピクセルサイズ
height=720 # トータルの高さのピクセルサイズ
enable-padding=0 # アスペクト比を保つためにパディングを許可するかどうか
nvbuf-memory-type=0 # メモリ確保方法を指定。0はプラットフォームで指定されているデフォルトの方法
詳細: https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#streammux-group
StreamMux Group
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
25
[primary-gie]
enable=1 # primary-gieを使用するかどうかの設定
gpu-id=0 # primary-gieで使用するGPUの指定
gie-unique-id=1 # 生成されたメタデータがどのモデルで分類、検出されたかを識別するためのユニークIDの設定
nvbuf-memory-type=0 # メモリ確保方法を指定。0はプラットフォームで指定されているデフォルトの方法
config-file=infer_config.txt # Gst-nvinferプラグインのプロパリティを指定するファイルのパス
詳細: https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#primary-gie-
and-secondary-gie-group
Primary GIE Group (GPU Inference Engine)
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
26
[property]
gpu-id=0 # 使用するGPUの指定
net-scale-factor=0.017352074 # ピクセル正規化のための値
offsets=123.675;116.28;103.53 # 各ピクセルから差し引かれる色成分の平均値、実際は平均値にnet-scale-factorをかけた後に引かれる
model-engine-file=./stanford_resnext_batch4.plan # 使用するモデルファイルのパス
labelfile-path=./stanford.names # モデルの識別結果を把握するためのラベルファイル
batch-size=4 # バッチサイズ
network-mode=2 # 推論の際の数値精度。0:FP32、1: INT8、2: FP16
num-detected-classes=80 # モデルで検出できるクラス数
interval=2 # 推論のためにスキップされる連続のバッチ数
gie-unique-id=1 #生成されたメタデータがどのモデルで分類、検出されたかを識別するためのユニークIDの設定
output-blob-names=boxes;scores;classes # 出力レイヤー名
parse-bbox-func-name=NvDsInferParseRetinaNet # カスタムバウンディングボックスをパースする関数。指定しなければGst-nvinferのresnetモデルのものを使用
custom-lib-path=./libnvdsparsebbox_retinanet.so # カスタムモデルで使用されるカスタムメソッドを含むライブラリを指定
詳細: https://docs.nvidia.com/metropolis/deepstream/4.0/DeepStream_Plugin_Manual.pdf (Gst-nvinfer File Configuration Specifications章)
Primary GIE Config File (infer_config.txt)
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
27
[class-attrs-all]
threshold=0.3 # 検出の閾値
eps=0.5 # グループ化する際のDBSCANアルゴリズムに使用される値
group-threshold=0 # グループ化するための閾値
detected-min-w=4 # 検出するための最小幅
detected-min-h=4 # 検出するための最小高さ
detected-max-w=0 # 検出するための最大幅
detected-max-h=0 # 検出するための最大高さ
詳細: https://docs.nvidia.com/metropolis/deepstream/4.0/DeepStream_Plugin_Manual.pdf (Table 3. Gst-nvinfer
plugin, [class-attrs-...] groups, supported keys)
Primary GIE Config File (infer_config.txt)
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
28
[tracker]
enable=1 # Trackerを使用するかどうかの指定
tracker-width=1280 # トラッキングする幅のピクセルサイズ
tracker-height=720 # トラッキングする高さのピクセルサイズ
ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_iou.so # 低レベルのトラッカー実装ライブラリパスを指定
ll-config-file=iou_config.txt # IoU処理をする際に設定ファイルパスを指定
gpu-id=0 #使用するGPUの指定
enable-batch-process=1 # 複数のストリームにわたるバッチ処理を有効にするかどうかの指定
詳細:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#tracker-group
Tracker Group
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
29
[osd]
enable=1 # On Screen Displayを使用するかどうかの指定
gpu-id=0 # 使用するGPUの指定
border-width=1 # バウンディングボックスの線のサイズ
text-size=12 # テキストサイズ
text-color=1;1;1;1; # テキストカラー
text-bg-color=0.3;0.3;0.3;1 # テキストの背景色
font=Arial # テキストのフォント
clock-x-offset=800 # クロックのx位置
clock-y-offset=820 # クロックのy位置
clock-text-size=12 # クロックのテキストサイズ
clock-color=1;0;0;0 # クロックのカラー
nvbuf-memory-type=0 # メモリ確保方法を指定。0はプラットフォームで指定されているデフォルトの方法
詳細:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#osd-group
On Screen Display Group
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
30
[sink0]
enable=1 # sinkを使用するかどうかの指定。sinkは複数指定可能
type=2 # 1=FakeSink:出力はせずに仮の出力先を指定。 クラウド連携で使用。2=EglSink: レンダリングAPIを使用するための設定。
3=File: ファイル出力するための設定。4=RTSP: RTSP出力するための設定
sync=1 # レンダリングの際に同期するかどうかの設定。0の場合は同期しない
source-id=0 # ソースグループのID を設定
gpu-id=0 # 使用するGPUの指定
nvbuf-memory-type=0 # メモリ確保方法を指定。0はプラットフォームで指定されているデフォルトの方法
詳細:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#sink-group
On Screen Display Group
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
31
[tiled-display]
enable=1 # tiled-displayを使用するかどうかの設定
rows=2 # 行数
columns=2 # 列数
width=1280 # トータルの幅のピクセルサイズ
height=720 # トータルの高さのピクセルサイズ
gpu-id=0 # この機能を制御するGPUを指定
nvbuf-memory-type=0 # メモリ確保方法を指定。0はプラットフォームで指定されているデフォルトの方法
詳細:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_deepstream.html#tiled-display-
group
Tiled Display Group (オプション)
DEEP STREAM 設定ファイル
RTSP/RAW DECODE BATCHING TRACKING VIZ
DISPLAY/
STORAGE/
CLOUD
DNN(s)
IMAGE
PROCESSING
32
リアルタイムパフォーマンスの実現
8
16
32
42
8
32
64
84
0 10 20 30 40 50 60 70 80 90
Nano
Xavier NX
AGX
Xavier
T4
Performance in streams
Number of 1080p, 30fps streams processed with DeepStream
H265 H264
Data generated using DeepStream reference app
Full performance data in DeepStream performance documentation
Watch the performance optimization video tutorial
33
DEEPSTREAM5の特徴
34
PYTHON サポート
C/C++ Python
https://github.com/NVIDIA-AI-IOT/deepstream_python_apps
35
DEEPSTREAM WITH TRITON INFERENCE SERVER
AI Inference
NVIDIA Triton
Inference
Server
DeepStream Application
TensorRT
Triton Inference
Server
Pros 高いスループット 高い柔軟性
Cons
カスタムレイヤーの場合プ
ラグインの記述が必要
TensorRTに比べてパ
フォーマンスが低い
36
TRITON – DEEPSTREAM アーキテクチャ
Gst-nvinferserver
Application (C++/Python)
nvds_infer_server
前処理
カラー変換 & スケーリング
中央値差分
Tensor正規化
後処理
物体検出
クラス識別
セグメンテーション
Triton Lib (C API)
Inference model
NV12/RGBA buffers
Batch Metadata
NV12/RGBA buffers
Modified Batch Metadata
NV12/RGBA buffers
Input Tensors
(CUDA mem)
Tensor output
(CUDA mem)
Metadata
37
MASK R-CNN アプリケーションのデプロイ
SOURCE DECODE STREAMMUX TRACKER MSGCONV MSGBROKERINFERENCE
DeepStream app
TensorRT OSD
Use mask for
tracking
Add mask to message
Draw mask
38
GETTING STARTED WITH
DEEPSTREAM
39
GETTING STARTED APPLICATIONS
Available in C and Python
Name Function
deepstream-test1
DeepStream Hello worldアプリケーション。
ビデオファイルを解析して物体検出の結果を
表示
deepstream-test2
test1上に構築し、検出されたオブジェクトに
オブジェクト分類を追加します
deepstream-test3
test1上に構築し、複数のビデオ入力を追加し
ます
deepstream-test4
test1上に構築し、nvmsgbrokerプラグインを
介してIoTサービスへの接続を追加します
Object
detection
Classific-
ation
BatchingDecode
Object
detection
BatchingDecode
Object
detection
Object
detection
Message
Broker
Message
Converter
C/C++ apps | Python apps
40
END-TO-END APPS
41
DEEPSTREAM APPLICATION
BATCHINGDECODE
OBJECT
DETECTION
TRACKER VIZ
EDGE CLOUD
ANALYTICS –
COUNT PEOPLE
RULES
PeopleNet Model: https://ngc.nvidia.com/catalog/models/nvidia:tlt_peoplenet
GitHub: TBD
PeopleNet
42
Demo
人数カウントアプリ
43
DEPLOY
44
デプロイメントのスケール
DeepStream
container
IoT edge device
DeepStream
container
IoT edge device
DeepStream
container
IoT edge device
CLOUD
Download the Demo to deploy DeepStream application using Helm charts and Kubernetes on NGC
45
双方向 IOT コミュニケーション
メタデータ、状態、マル
チメディアの送信
アプリケーションのオーケストレー
ション、OTAアップデート、情報
のリクエスト、イベントのレコード
DeepStream
container
IoT edge device
46
ユースケース: 頻繁なモデル変更が必要なエッジ展開
ダウンタイムゼロのオンザフライモデル更新
SDKで提供される
OTA モデルアップデート
NGC
PUBLISH
TLT
DeepStream
container
TRAIN
47
スマートレコード
RECORD
METADATA
ユースケース:
? トリガーベースのイベントレコード
? 異常の記録
利点:
? 选択的な记録によりディスク容量を节约
48
セキュリティ
DeepStream
Application
IoT edge device
Secure authentication with SSL certificates and SASL/Plain
認証局(CA)
クライアント証明書
サーバー証明書
リクエスト
サーバーの証明書を送信
クライアント証明書を送信
サーバーの証明書を検証 クライアントの証明書を検証
49
クラウド連携
AWS
How to integrate NVIDIA DeepStream on Jetson Modules with AWS IoT Core and AWS IoT Greengrass | The Internet of Things on AWS – Official Blog
https://aws.amazon.com/blogs/iot/how-to-integrate-nvidia-deepstream-on-jetson-modules-with-aws-iot-core-and-aws-iot-greengrass/
50
クラウド連携
Azure
Azure-Samples/NVIDIA-Deepstream-Azure-IoT-Edge-on-a-NVIDIA-Jetson-Nano: This is a sample showing how to do real-time video analytics with
NVIDIA DeepStream connected to Azure via Azure IoT Edge. It uses a NVIDIA Jetson Nano device that can process up to 8 real-time video streams
concurrently. https://github.com/Azure-Samples/NVIDIA-Deepstream-Azure-IoT-Edge-on-a-NVIDIA-Jetson-Nano
IoT Edge Agent
IoT Edge Runtime
IoT Hub
Container Registry
VLC media player
ネットワーク
ストリーミング
Visual Studio Code
ImageのPull
IoT Edge の
管理、指示
Module配置情報の転送
Azure
Deep Stream
51
GET STARTED TODAY
Pre-trained Models
Powerful End to End Intelligent Video Analytics Made Easy
Transfer Learning Toolkit DeepStream SDK
Transfer Learning ToolkitPre-trained models on NGC
TLT Object Detection
TLT DetectNet_v2 Object
Detection
TLT classification
TLT Instance segmentation
DeepStream SDK
Documentation
Documentation
Developer Forums
Getting started resources, sample apps,
webinars & tutorials
Developer Forums
Free Online DLI Course
Getting started resources, sample
apps, webinars & tutorials
Developer Forums
Sign up for our new webinar:
CREATE INTELLIGENT PLACES USING NVIDIA PRE-TRAINED VISION MODELS AND DEEPSTREAM SDK
52
NEW DEVELOPER CONTENT
TutorialTutorial Developer blog
Tutorial Video Tutorial Tutorial
Tutorial
Tutorial
Enroll in the NVIDIA Developer Program to get the latest developer updates
Implementing real-time AI-based
face mask detection
53
Azure IoT Edge
54
Azure IoT Edgeの利点(一部)
エッジデバイスの死活監視
dockerコンテナ(Azure IoT Edgeのドキュメントに準拠すると“モジュール“と表記されているため以降は”モジュールに統一”)のデプロイ、監視
エッジのモジュールとクラウドのコミュニケーション(クラウド側にデータ保存も可能)
IoT hubでコンテナを管理できる
参考:https://docs.microsoft.com/en-us/azure/iot-edge/iot-edge-runtime
55
Azure IoT Edge
IoT Edge モジュール: Azureのサービス、独自のコードを実行するコンテナ、IoT Edgeデバイスにデプロイされそのデバイスのローカルで実行
IoT Edge ランタイム: 個々のIoT Edgeデバイス上で動作し、各デバイスにデプロイされたモジュールを管理
クラウドベースのインターフェース: IoT Edgeデバイスをリモートから監視して管理
参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/about-iot-edge
IoT Edge モジュール
56
IoT Edgeモジュール
IoT Edge モジュール
実行単位となるものでDocker互換のコンテナとして実装される
互いに通信を行う複数のモジュールを構成することでデータ処理パイプラインの作成可能
Azureのサービスが利用可能: 今回はDeep Streamのコンテナを使用
参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/about-iot-edge
IoT Edge モジュール
57
IoT Edge ランタイム
IoT Edgeランタイム
個々のIoT Edgeデバイス上で動作し、各デバイスにデプロイされたモジュールを管理
モジュールの正常性をクラウドにレポートしてリモート監視可能に
参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/about-iot-edge
58
クラウドベースのインターフェース
IoT Hub
クラウドベースのインターフェース
IoT Edgeデバイスをリモートから監視して管理
まとまったデバイスに対してワークロード(コンテナに搭載した機能)を送信して実行
参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/about-iot-edge
59
Azure IoT Edge Hub
エッジデバイスとクラウドをつなぐProxyのような役割
MQTT(Message Queuing Telemetry Transport)を用いた接続により必要な多数の接続があっても対応可能にしている
参考:https://docs.microsoft.com/en-us/azure/iot-edge/iot-edge-runtime
60
MQTT(Message Queuing Telemetry Transport)
HTTPのデメリット
同期プロトコル
メッセージのブロードキャストコストが高い
ヘッダーのサイズが大きい
MQTT
ヘッダーが小さい
パブリッシュ?サブスクライブモデル
多数のクライアントがあることが想定
ブローカーがクライアントからのメッセージを管理
Sensor
Sensor
Sensor
Sensor
Sensor
Publish sensor data
Subscribe config change
Broker
Data processing
and storage
Admin console
Publish config change
Subscribe sensor data
61
Azure IoT Edge Hub: Module Communication
モジュール間のコミュニケーションを操作、管理可能
この機能によって、データのパイプラインの作成を可能に
参考:https://docs.microsoft.com/en-us/azure/iot-edge/iot-edge-runtime
62
Azure IoT Edge Agent
エッジデバイスの死活監視
エッジデバイス上のモジュールの状態監視
参考:https://docs.microsoft.com/en-us/azure/iot-edge/iot-edge-runtime
IoT Edge Agent
Jetson x Azure ハンズオン DeepStream Azure IoT

More Related Content

Jetson x Azure ハンズオン DeepStream Azure IoT