V1.0 2022/6/1

抜粋版
はじめての映像ＡＩ開発キット
nvidia deepstreamを使って映像ＡＩ開発の体験と開発期間短縮

学習編（deepstream版）

スペクトラム・テクノロジー株式会社
https://spectrum-tech.co.jp
sales@spectrum-tech.co.jp
all rights reserved 2022 spectrum technology co.

1

開発キット目次• ubuntu運用マニュアル• ubuntuについて• Linux基本コマンド• ubuntu基本操作• 日常運用（ウイルススキャン、更新）

ページ
4
4
6
7

• 開発キット 概念図• 開発キット 全体像• ハード概要• ソフト概要• Deepstream SDK

9
10
11
12

①
②
③
④
⑤

13
13
14
16
16

1.

2.

抜粋版のため目次と異な
ります

概要

概要
利用方法
アプリ一覧 基本, tao連携
python仮想環境
Deepstream 動作方法

事例：基本アプリ(python版）
①
②
③
④
⑤
⑥
⑦
⑧
⑨
⑩
⑪
⑫
⑬

deepstream-test1
17
deepstream-test2
18
deepstream-test3
19
deepstream-test1-usbcam
21
deepstream-test1-rtsp-out
22
deepstream-imagedata-multistream
23
deepstream-ssd-parser
24
deepstream-opticalflow
25
deepstream-segmentation
26
deepstream-nvdsanalytics
27
runtime_source_add_delete
28
deepstream-imagedata-multistream-redaction
29
deepstream-rtsp-in-rtsp-out all rights reserved 2022 spectrum technology
30 co.

2

開発キット 目次• Deepstream SDK
3.
事例：基本アプリ(c++版）①
deepstream-test1②
deepstream-test2③
deepstream-app:カメラ④
deepstream-app:ビデオ⑤
deepstream-ssd-parser⑥
objectDetector_FasterRCNN⑦
objectDetector_Yolo⑧
deepstream-dewarper-test⑨
deepstream-opticalflow⑩
deepstream-user-metadata-test⑪
deepstream-image-decode-test⑫
deepstream-segmentation⑬
deepstream-gst-metadata-test⑭
deepstream-infer-tensor-meta-app⑮
deepstream-perf-demo⑯
deepstream-preprocess-test⑰
deepstream-3d-action-recognition⑱
deepstream-nvdsanalytics⑲
deepstream-opencv-test⑳
deepstream-image-meta-test
21
deepstream-appsrc-test
22
deepstream-transfer-learning-app
23
deepstream-mrcnn-test

•

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

Deepstream SDK
4.
事例：TAO連携①
TrafficCamNet②
PeopleNet-ResNet34③
Dashcamnet④
FaceDetectIR⑤
VehicleMakeNet⑥
vehicletypenet⑦
License plate detection⑧
License plate recognition net
5.
事例：TAO応用①
2D Body Pose Estimation②
Facial Landmark③
emotionnet④
Gazenet⑤
Gesturenet⑥
MaskRCNN⑦
DetectNet_V2⑧
image_classification⑨
PeopleSegNet⑩
People Semantic Segmentation

6.

Graph composer

①
②
③
④
⑤
⑥
⑦
⑧

all rights reserved 2022 spectrum technology co.

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

アプリ ワークフローdeepstream-test1
72
アプリ作成方法：deepstream-test1 その２ 78
deepstream-test2
80
deepstream-test3
81
deepstream-runtime-src-add-del82
deepstream-app
83
deepstream-audio
84
deepstream-camera
85
3

Ubuntu運用マニュアル
1. UbuntuについてＬｉｎｕｘの中でも一番シェアの高いＯＳです。２００４年にＤｅｂｉａｎ系から派生。

2. Linux基本コマンド① システム関係• 起動：電源を入れると自動で起動します。
• 再起動：$ reboot
又は、左上のメニューの「ゲストを再起動• 終了：$ shutdown
又は、左上のメニューの「ゲストをシャットダウン」• ログアウト $ exit
ルートからログアウトします• 日本語／英語の入力切替：半角／全角のボタン（ＥＳＣボタンの下）

all rights reserved 2022 spectrum technology co.

4

Ubuntu運用マニュアル
2.

Linux基本コマンド② ディレクトリ操作、コピー、移動、削除
masa@ubuntu:~$cd /home/masa/Documents
ディレクトリの切り替え
masa@ubuntu :/home/masa/Documents$ ls ファイルとディレクトリの表示（表示したら操作したいファイルを右クリック
でコピペして操作します
masa@ubuntu:~$ cp ファイル名 ディレクトリ 配下のディレクトリのファイルを別のディレクトリへコピー
masa@ubuntu:~$ mv ファイル名 ディレクトリ
配下のディレクトリのファイルを別のディレクトリへ移動
masa@ubuntu:~$ rm ファイル名
ファイルの削除
便利な機能
rm –help
コマンドのオプションが分からない場合は、ヘルプで問い合わせる。すべてのコマンド共通(マイナスを２個とhelp)③ ユーザ権限、プロセス他
masa@ubuntu :~ $ su スーパーユーザ（root)に切り替え、パスワードを入力
masa@Ubuntu:~$ sudo
ルート権限で各種コマンドを実施します。
masa@ubuntu:~$ ps a
現状の動いているプロセスを表示
masa@ubuntu:~$ kill
特定のプロセスを強制終了
masa@ubuntu:~$ apt-get install pkg
パッケージのインストールなどに使用
masa@ubuntu:~$ date
日付、時間の設定を行います。
masa@ubuntu:~$ leafpad /etc/network/interfaces
インタフェースに記述してい内容を変更します。Viよりも使いやすいです。

④ モジュール、usb、メモリ、ＨＤＤなどの表示
masa@ubuntu:~$ lsmod
masa@ubuntu:~$ lsusb
masa@ubuntu:~$ free –mt
masa@ubuntu:~$ df

linuxのモジュールリスト表示
usbのデバイス表示
メモリ使用状態表示
ＨＤＤ（マイクロＳＤ）の使用状態表示
all rights reserved 2022 spectrum technology co.

5

Ubuntu運用マニュアル
3. 基本操作① 表示画面と内容
主に使用するもの
・ブラウザ：Ｃｈｒｏｍｅ・フォルダ：Ｄｏｃｕｍｅｎｔｓ内に必要なファイルがあります。
・コマンド：コマンド画面を立ち上げて、
python3のプログラムを動作させます。

all rights reserved 2022 spectrum technology co.

6

Ubuntu運用マニュアル
4. 日常運用①

セキュリティ対策（アンチウイルス更新、スキャン）• アンチウイルス対策として無料のclamAVをインストールしてます。
• 手動での運用を基本としてます。

パターンファイル更新$ sudo freshclam
手動スキャン時にも更新されます
手動でスキャン
$ sudo clamscan --infected --remove --recursive
自動化可能ですが、バックグランドで重くなる可能性大。コマンド入力後時間がかります。

all rights reserved 2022 spectrum technology co.

7

Ubuntu運用マニュアル
4. 日常運用②

インストール済パッケージの更新リスト、アップグレード• Linuxの場合は、頻繁に更新が発生します。アップグレードを定期的に実施してください。
• 更新前には、バックアップを取ることをお勧めします。特にアップグレードはまれに動作不良、戻せない状態が発生します。自己責任で実施してください。

更新リスト取得$ sudo apt-get update
アップグレード実施$ sudo apt-get upgrade

all rights reserved 2022 spectrum technology co.

8

開発キット 概念図(deepstream版）

all rights reserved 2022 spectrum technology co.

9

開発キット 全体像(deepstream版）
ハードウエアGPUCPU
8 core cpu,32GB
RAM+

Nvidia A100,
V100, RTX30シ
リーズに対応USBメモリＯＳ

ＡＩ系

ソフトウエアGraph composer
画像系

プログラム言語グラヒック

all rights reserved 2022 spectrum technology co.

10

１．ハードウエア概要①必要なハードウエア仕様
ハードウエアの概要です。
区分

プロダクツ

メーカ

USBメモリ（deepstream版）

32GB USB3.0
deepstream 関連ソフト

備考

お客様準備品

PC本体

cpu

Intel i9, i7,amd Ryzen 9,7など
8 core cpu

GPU

A100, V100
RTX30シリーズ

メモリ

32GB以上SSD

512GB以上

ＧＰＵが搭載できるものに限ります。

nvidiaJetsonにも搭載可能ですが、今回は、Ubuntu
x86_64で紹介

all rights reserved 2022 spectrum technology co.

11

２．ソフトウエア概要①ソフトウエア一覧
ソフトウエアの概要です。
区分

ソフト名

バージョン

OS

ubuntu18.04.3 LTS

GPU用

cuDNN

8.2.4+cuda11.4

プログラム言語

python3

3.6.9

deepstream

deepstream

6.0.1

Graph composer

1.0.0

ドライバ

Nvidia-driver

470

ＡＩ用プログラム

tensorRT

8.0.1

映像

Gstreamer

1.14.5

各種モジュール

Jupyter notebook、
matplotlibなど多数のpipラ
イブラリ

all rights reserved 2022 spectrum technology co.

備考
Nvidia用,搭載するGPUに依存

ローコード・ツール

12

Deepstream SDK

公式サイト
https://developer.nvidia.com/ja-jp/deepstream-sdk

１．概要
①

概要
• 開発者は、DeepStreamを使用して、AIベースのビデオ、オーディオ、および画像分析のためのシームレスなスト
リーミングパイプラインを構築できます。 DeepStreamは、開発者にC / C ++、Pythonで開発するオプションを提供することで開発の柔軟性をもたらします。 DeepStreamには、さまざまなハードウェアアクセラレーションプラグインと拡張機能が付属しています。

②

利用方法

• DeepStreamは、開発者と企業の両方向けに構築されており、最先端のSSD、YOLO、FasterRCNN、MaskRCNNなどの一
般的なオブジェクト検出およびセグメンテーションモデルに対して広範なAIモデルのサポートを提供します。カスタム
関数とライブラリをDeepStreamに統合することもできます。
• Deepstreamは、ラピッドプロトタイピングから完全な生産レ
ベルのソリューションまでの柔軟性を提供します。また、推論パスを選択することもできます。 NVIDIA Triton Inference
Serverとのネイティブ統合により、推論のためにPyTorchやTensorFlowなどのネイティブフレームワークにモデルをデプロイできます。マルチGPU、マルチストリーム、およびバッ
チ処理のサポートオプションのオプションを備えた高ス
ループットの推論にNVIDIA TensorRTを使用すると、可能な限り最高のパフォーマンスを実現できます。
• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Overview.html
all rights reserved 2022 spectrum technology co.

13

Deepstream SDK
１．概要③．アプリ一覧 その１ 基本
iddeepstream版
python
番号は、目次
●1

区分

アプリ名

概要

1物体認識

deepstream-test1

2物体認識

deepstream-test2

3物体認識

deepstream-test3

4usbcamdeepstream-test1-usbcam

5rtsp

deepstream-test1-rtsp-out

物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary
detector) → nvdsosd → rendererの順で実施
物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary
detector) → nvtracker → nvinfer (secondary classifier) → nvdsosd → rendererの順で実施。2 ●2
段階識別
物体識別は、 single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary●3
detector) → nvdsosd → rendererの順で実施。複数ファイルを同時処理
物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary●4
detector) → nvdsosd → rendererの順で実施。Test1のusbcameraのバージョン
物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary
detector) → nvdsosd → rendererの順で実施。Test1のrtspのバージョン
●5

6rtsp
7物体認識

物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary
deepstream-imagedata-multistream detector) → nvdsosd → rendererの順で実施。Test3の複数画面のバージョン
物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary
deepstream-ssd-parser
detector) → nvdsosd → rendererの順で実施。tritonサーバを使って推論

8光の流れ

deepstream-opticalflow

9

セグメンテーション
10動線
11動画編集12物体認識deepstream版
c++
番号は目次
●1
●2

使用モデル
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel●6

ssd model
nvofvisual gstreamer
pluginnvinfer▲7エラー●5

nvofvisual gstreamer pluginを使って、光の流れに変換●8●9deepstream-segmentationindustrial,semanticの2つパターンを使って、物体をセグメンテーション

●9

●12
●18

13rtsp14物体認識deepstream-nvdsanalytics
runtime_source_add_delete
deepstream-imagedatamultistream-redaction
deepstream-rtsp-in-rtsp-out
deepstream-app

動きの方向を分析●10
nvstreammux -> nvinfer -> nvtracker -> nvtiler -> nvvideoconvert-> nvdsosd -> displaysink、●11
動画を加えたり、削除したりして表示

汎用モデル、カメラ、ビデオによる物体認識●3,4

15物体認識objectDetector_FasterRCNN

物体識別は、 FasterRCNNによる識別●616物体認識17物体認識18メタデータ
19物体認識20メタデータ
21メタデータ
22物体認識23物体認識24物体認識25物体認識26メタデータ
27物体認識28物体認識セグメンテー
29
ション

物体識別は、 Yolov3, yolov3_tinyによる識別objectDetector_Yolo
物体識別は、 ３６０度カメラ対応、ｃｓｖ出力による識別deepstream-dewarper-test
１６byteのメタデータを出力
deepstream-user-metadata-test
mjpegの物体認識
deepstream-image-decode-test
Gst-nvstreammux pluginを使って、メタデータを出力
deepstream-gst-metadata-test
deepstream-infer-tensor-meta-app nvinfer tensor を、メタデータとして出力
single channel cascadeと二次認識のデモ
deepstream-perf-demo
画面を分割して試験
deepstream-preprocess-test
deepstream-3d-action-recognition 3d,2dでの物体認識
opencvを使った物体認識、認識するとぼかしが入る
deepstream-opencv-test
meta dataを検出し、検出部分をjpegで保存
deepstream-image-meta-test
AppSrc and AppSink 利用し、i420で出力
deepstream-appsrc-test
deepstream-transfer-learning-app 転移学習を行い、正解率の低いものを抽出

●7
●8
●10
●11
●13
●14
▲15エラー●16▲17エラー
●19
●20
●21
●22

nvinferresnet_int8
VGG16_faster_rcnn_fi
nal.caffemodel
yolo
不明
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet18
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel
resnet10.caffemodel

deepstream-mrcnn-test▲23未実施resnet10.caffemodel

mp4の複数をh264変換しストリーム、顔を検出して、ぼかしを入れる
ファイルをストリームして、ｖｌｃでモニタする

mask rcnnを使用したセグメンテーション

all rights reserved 2022 spectrum technology co.

resnet10.caffemodel
nvstreammux

●12
●13

14

Deepstream SDK
１．概要③．アプリ一覧 その２ tao連携
id

区分

アプリ名

1物体検出

DetectNet_V2

2

FasterRCNN

3

SSD

4
5

YOLOV3YOLOV46

yolo_v4_tiny

7RetinaNet8
efficientdet
9DSSD
10セグメンテーション MaskRCNN
11
UNET
12個別事例
action_recognition_net
13
bpnet
14
image_classification
15
emotionnet
16
facenet17
fpenet18
gazenet19
gesturenet
20
heartratenet
21
lprnet22
multitask_classification23
dashcamnet
24
FaceDetectIR
25
VehicleMakeNet
26
vehicletypenet
27
PeopleNet-ResNet34
28
TrafficCamNet
29
LPD
30
Facial Landmark
31
PeopleSegNet
32
People Semantic Segmentation
33
2D Body Pose Estimation
34
imagedata-multistream

概要

tao版

車、バン、トラック、歩行者、サイクリストのデータからresnet18の学習モデル
を使って、検出対象を３個（車、サイクリスト、歩行者）に絞り、学習モデルを作成。その後、prune, 量子化などを使い、最終的にtensorRT用のモデルとし ●て出力。Taoで最初に使ったモデルに比べて、12倍に高速化し、正解率もほぼ同じを実現同上のデータセット、事前学習モデルで、Faster RCNNモデルで学習する。正
●解率は、高いが、処理が遅い
SSD（single shot detector)は、画像中の物体を単一のディープニューラルネッ
トワークで検出する。一般には、認識精度も高く高速といわれているが？結 ●果は、反対。
darknetで有名なyolo、高速認識が売り●
darknetで有名なyolo、高速認識が売り、新たな開発者が担当●
darknetで有名なyolo、高速認識が売り、新たな開発者が担当、小型モデル●
版（軽い）
一般的には、２段階で検出していたものを、速度を維持したままで、精度が高●
い一段階検出モデルができないかと考え、RetinaNetが発表されました
efficient detを使った物体認識●
deconvolutional single shot detector(DSSD)●
物体のセグメンテーションして、背景をマスクする。
▲エラー
医療系の画像を使って、血管などをセグメンテーションする●ビデオから行動認識を行います▲エラー
body pose netは、からだの目、耳、手首などの位置を検出します。
●
物体の検出します
●
感情分類
●
顔検出
●
顔の部位検出●顔から視線を推測●
指の動作を検出●
心電図による推測▲データ未入手
ナンバープレートの文字認識●
ファッション用品の分類●
車種、メーカ名などを識別
顔識別
車種、メーカの認識
車種の認識：クーペ、suv,ban
人認識：deepstreamer使用
車両認識：deepstreamer使用
ナンバープレート検出
顔の細部の位置を認識
人体セグメンテーション
人体セグメンテーション
all rights reserved 2022 spectrum technology co.
２D人体のポーズ認識
２画面ストリーミング

deepstream版
先頭数字は、目次、二つ目が細分
●5_7

●3_6
●3_5
●3_7

deepstream版のエラーは、 engine生成の問題。Taoconverterのエラー
不明●5_6▲3_17エラー▲5_8エラー▲5_3エラー▲5_4エラー▲5_5エラー▲4_8エラー
●4_3
●4_4
●4_5
●4_6
●4_2
●4_1
▲4_7エラー
●5_2
●5_9
●5_10
●5_1
●2_12

15

Deepstream SDK
1. 概要
事前準備と動作方法④ python仮想環境

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/deepstream_python_apps/apps/deepstre
am-test1$ python3 deepstream_test_1.py tokyo_keiba1.h264$ cd /opt/nvidia/deepstream/deepstream6.0/sources/apps/sample_apps/deepstream-test1$ deepstream-test1-app tokyo_keiba1.h264• 仮想環境は使用しません。

⑤ Deepstream SDKの動作方法• 動作方法には以下の二つがあります。
A) Python• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Python_Sample_Apps.html• python3で動作させます。以下例です。
$ cd /opt/nvidia/deepstream/deepstream6.0/sources/deepstream_python_apps/apps/deepstream-test1$ python3 deepstream_test_1.py tokyo_keiba1.h264

他にgraph composerがノンコード用としてあります
が、省略します。

エラー発生の場合は、同フォルダ内のdstest1_pipe_config.txtのモデルなどの位置を要チェック

B) C++• https://docs.nvidia.com/metropolis/deepstream/6.0.1/dev-guide/text/DS_C_Sample_Apps.html$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps/deepstream-test1$ deepstream-test1-app tokyo_keiba1.h264
all rights reserved 2022 spectrum technology co.

16

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/deepstream_python_apps/apps/deepstre
am-test1$ python3 deepstream_test_1.py tokyo_keiba1.h26

Deepstream SDK
2.事例：基本アプリ（python版）① deepstream-test1：ビデオ物体認識• 概要：物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer(primary detector) → nvdsosd → rendererの順で実施。
• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Python_Sample_Apps.html• 識別対象：Vehicle , RoadSign, TwoWheeler,Person• 使用モデル：resnet10.caffemodel$ cd /opt/nvidia/deepstream/deepstream6.0/sources/deepstream_python_apps/apps/deepstream-test1$ python3 deepstream_test_1.py tokyo_keiba1.h264

all rights reserved 2022 spectrum technology co.

17

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/deepstream_python_apps/apps/deepstream-segmentation$ python3 deepstream_segmentation.py
dstest_segmentation_config_industrial.txt dog.jpg output$ python3 deepstream_segmentation.py
dstest_segmentation_config_semantic.txt dog.jpg output1

Deepstream SDK
2.事例：基本アプリ（python版）⑨ deepstream-segmentation：写真物体認識• 概要：industrial,semanticの2つパターンを使って、物体をセグメンテーション• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Python_Sample_Apps.html
mjpegも対応• 使用モデル： nvinfer$ cd /opt/nvidia/deepstream/deepstream6.0/sources/deepstream_python_apps/apps/deepstream-segmentation$ python3 deepstream_segmentation.py dstest_segmentation_config_industrial.txt dog.jpg
output$ python3 deepstream_segmentation.py dstest_segmentation_config_semantic.txt dog.jpg
output1 originalindustrial

semantic

all rights reserved 2022 spectrum technology co.

18

Deepstream SDK
3.事例：基本アプリ（c++版）

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/apps/sample_apps/deepstream-test1$ deepstream-test1-app tokyo_keiba1.h264① deepstream-test1：ビデオ物体認識• 概要：物体識別は、single H.264 stream: filesrc → decode → nvstreammux → nvinfer(primary detector) → nvdsosd → rendererの順で実施。
• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_C_Sample_Apps.html• 識別対象：Vehicle , RoadSign, TwoWheeler,Person• 使用モデル：resnet10.caffemodel$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps/deepstream-test1$ deepstream-test1-app tokyo_keiba1.h264

Pythonより
高速

all rights reserved 2022 spectrum technology co.

19

Deepstream SDK
3.事例：基本アプリ（c++版）⑦ objectDetector_Yolo：ビデオ物体認識

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/objectDetector_Yolo$ deepstream-app -c
deepstream_app_config_yoloV3.txt$ deepstream-app -c
deepstream_app_config_yoloV3_tiny.txt• 概要：物体識別は、 Yolov3, yolov3_tinyによる識別• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_ref_app_deepstream.html• 識別対象：80分類（人、車など）• 使用モデル： yolo
$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/objectDetector_Yolo$ deepstream-app -c deepstream_app_config_yoloV3.txt$ deepstream-app -c deepstream_app_config_yoloV3_tiny.txt
事前に、
nvdsinfer_custom_impl_Yolo内でcuda ver=11.4としてsudo -E make -C
nvdsinfer_custom_impl_Yolo

Yolov3
Yolov3_tiny

all rights reserved 2022 spectrum technology co.

20

Deepstream SDK
3.事例：基本アプリ（c++版）

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/apps/sample_apps/deepstreamnvdsanalytics-test$ deepstream-nvdsanalytics-test
file:///opt/nvidia/deepstream/deepstream6.0/samples/streams/sample_720p.mp4⑱ deepstream-nvdsanalytics-test：ビデオ物体認識• 概要：動態の進行方向を表示するの物体認識• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_ref_app_deepstream.html• 識別対象： Vehicle , RoadSign, TwoWheeler,Person,車の場合は、色、メーカ、車種を二次認
識• 使用モデル： resnet10.caffemodel$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps/deepstreamnvdsanalytics-test$ deepstream-nvdsanalytics-test file:///opt/nvidia/deepstream/deepstream6.0/samples/streams/sample_720p.mp4
事前に、makefileのcuda_ver=11.4としsudo
make

all rights reserved 2022 spectrum technology co.

21

Deepstream SDK
3.事例：基本アプリ（c++版）

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/apps/sample_apps/deepstream-imagemeta-test$ deepstream-image-meta-test
file:///opt/nvidia/deepstream/deepstream6.0/samples/streams/sample_720p.mp4⑳ deepstream-image-meta-test：ビデオ物体認識• 概要：meta dataを検出し、検出部分をjpegで保存• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_ref_app_deepstream.html
事前に、makefileのcuda_ver=11.4としsudo• 識別対象： Vehicle , RoadSign, TwoWheeler,Person,
make• 使用モデル： resnet10.caffemodel$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps/deepstream-imagemeta-test$ deepstream-image-meta-test file:///opt/nvidia/deepstream/deepstream6.0/samples/streams/sample_720p.mp4

all rights reserved 2022 spectrum technology co.

22

Deepstream SDK
4.事例：TAO連携

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/apps/sample_apps/trafficcamnet-ondeepstream$ deepstream-app -c
deepstream_app_source1_trafficcamnet.txt① trafficcamnet：カメラ物体認識• 概要：Webカメラで車、人などを識別• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devエラーの場合は、guide/text/DS_TAO_integration.html
config_infer_primary_traf
ficcamnet.txtなどのモデ• 識別対象：トラック、クルマ、人など４種類
ルなどの位置を要確認• 使用モデル： DetectNet_v2-ResNet18$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps/trafficcamnet-ondeepstream$ deepstream-app -c deepstream_app_source1_trafficcamnet.txt
前出のdeepstreamapp（c++)を使用した応用編になります。

all rights reserved 2022 spectrum technology co.

23

Deepstream SDK
4.事例：TAO連携

入力コマンド$ cd /opt/nvidia/deepstream/deepstream6.0/sources/apps/sample_apps/peoplenet-ondeepstream$ deepstream-app -c
deepstream_app_source1_peoplenet.txt② peoplenet：カメラ物体認識• 概要：Webカメラを使って人を認識し、ヒートマップ、社会的距離計算に応用• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devエラーの場合は、guide/text/DS_TAO_integration.html
config_infer_ｘｘｘ.txtなどのモデルなどの位置を要• 識別対象：顔など3種類
確認• 使用モデル： DetectNet_v2-ResNet18/34$ cd /opt/nvidia/deepstream/deepstream-6.0/sources/apps/sample_apps/peoplenet-ondeepstream$ deepstream-app -c deepstream_app_source1_peoplenet.txt
前出のdeepstreamapp（c++)を使用した応用編になります。

all rights reserved 2022 spectrum technology co.

24

Deepstream SDK
5.事例：TAO応用① bodypose2：物体認識

入力コマンド$ cd/home/masa/Documents/deepstream_tao_apps/apps/tao_others/deepstrea
m-bodypose2d-app$ export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nvidia/deepstream/deepstrea
m/lib/cvcore_libs$ ./deepstream-bodypose2d-app
1 ../../../configs/bodypose2d_tao/sample_bodypose2d_model_config.txt
file:///home/masa/Documents/deepstream_tao_apps/apps/tao_others/dee
pstream-bodypose2d-app/000000000241.jpg ./body2dout• 概要：人体の１８か所を認識して出力（画像、カメラなど）• https://github.com/NVIDIA-AIIOT/deepstream_tao_apps/tree/master/apps/tao_others/deepstream-bodypose2d-app• 識別対象：人体の１８か所（鼻、首、肩、膝など）識別
インストール方法は、よく確認のこと。
• 使用モデル： nvstreammux$ cd /home/masa/Documents/deepstream_tao_apps/apps/tao_others/deepstream実施前に環境変数を設定するか、.bashrcなどへ
bodypose2d-app$ export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nvidia/deepstre$ ./deepstream-bodypose2d-app
am/deepstream/lib/cvcore_libs
1 ../../../configs/bodypose2d_tao/sample_bodypose2d_model_config.txt
file:///home/masa/Documents/deepstream_tao_apps/apps/tao_others/deepstreambodypose2d-app/000000000241.jpg ./body2dout

all rights reserved 2022 spectrum technology co.

25

Deepstream SDK
5.事例：TAO応用

入力コマンド$ cd /home/masa/Documents/deepstream_tao_apps$ ./apps/tao_segmentation/ds-tao-segmentation -c
configs/unet_tao/pgie_unet_tao_config.txt -i/opt/nvidia/deepstream/deepstream6.0/samples/streams/sample_720p.h264 -d⑥ ds-tao-segmentation：物体認識• 概要：動画セグメンテーション（画像、カメラなど）• https://github.com/NVIDIA-AI-IOT/deepstream_tao_apps• 識別対象：セグメンテーション
実施前に環境変数を設定するか、.bashrcなどへ$ export• 使用モデル：
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nvidia/deepstre
am/deepstream/lib/cvcore_libs$ cd /home/masa/Documents/deepstream_tao_apps$ ./apps/tao_segmentation/ds-tao-segmentation -c configs/unet_tao/pgie_unet_tao_config.txt-i /opt/nvidia/deepstream/deepstream-6.0/samples/streams/sample_720p.h264 -d

all rights reserved 2022 spectrum technology co.

26

②

Deepstream SDK
6.Graph composer

入力コマンド$ sudo composer
File:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4

アプリ作成方法：deepstream-test1 その２• グラフ作成方法• https://docs.nvidia.com/metropolis/deepstream/6.0.1/dev-guide/text/DS_GraphComposer_Create_Graph.html• グラフの起動$ sudo composer• 各コンポーネットの作成• 右側のコンポーネント一覧からドラッグアンドドロップします。

• NvDsSingleSrcInput•••

NvDsSourceExtの配下からdrag and dropします。
Prioritiesのところに入力のビデオファイルのパスを入力
file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4••

NvDsMuxDemuxExt配下から
properties
batch size: 1,width:1920, height:1080を設定

•
•
•
•

NvDsInferenceExt配下から使用するモデルを設定
NvDsResnet10_4ClassDetectorModelをNvDsSampleModelsExt配下からドラッグ
上記とinfer model configとを接続• NvDsStreamMux• NvDsInferVideo•

NvDsOSD•

NvDsVideoRenderer•

NvDsPerClassObjectCounting•

NvDsScheduler

•
•
•
•

NvDsVisualizationExt配下から
NvDsOutputSinkExt配下から
NvDsInferenceUtilsExt配下から
NvDsBaseExt配下から• 各コンポーネント接続•

各コンポーネントのvideo-outとvideo-inをドラッグして接続、右の図のとおり• 保存•

File>save asでエラーなしで保存できれば完了

all rights reserved 2022 spectrum technology co.

27

Deepstream SDK
6.Graph composer

入力コマンド$ sudo composer
File:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4② アプリ作成方法：deepstream-test1 その２• グラフ作成方法• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_GraphComposer_Create_Graph.html• グラフの起動$ sudo composer• 各コンポーネットの作成• 各コンポーネント接続• 各コンポーネントのvideo-outとvideo-inをドラッグして接続、右の図のとおり• 保存• File>save asでエラーなしで保存できれば完了• ラン• deepstream-test1と同じ結果がでます。

all rights reserved 2022 spectrum technology co.

28

Deepstream SDK
6.Graph composer

入力コマンド$ sudo composer/opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstreamtest3
DISPLAY=:0④ アプリ事例：deepstream-test3• C++と同様の事例• ３つのモデル識別：車、人、自転車。画面を４分割
https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Zero_Coding_Sample_Graphs.html• $ sudo composer• グラフを開く• /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-test3/• ラン• コンフィグファイルの設定：platform config file
• /opt/nvidia/graph-composer/config/target_x86_64_cuda_11_4.yaml を選択• 環境変数：DISPLAY=:0 を入力• ラン

all rights reserved 2022 spectrum technology co.

29

Deepstream SDK
6.Graph composer

入力コマンド$ sudo composer/opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-app
DISPLAY=:0⑥ アプリ事例：deepstream-app• C++と同様の事例• 画面を30分割• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Zero_Coding_Sample_Graphs.html• $ sudo composer• グラフを開く• /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-app/• source30_1080p_dec_infer-resnet_tiled_display_int8.yaml を選択• ラン• コンフィグファイルの設定：platform config file
• /opt/nvidia/graph-composer/config/target_x86_64_cuda_11_4.yaml を選択• 環境変数：DISPLAY=:0 を入力• ラン

all rights reserved 2022 spectrum technology co.

30

Deepstream SDK
6.Graph composer

入力コマンド$ sudo composer/opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstreamcamera
DISPLAY=:0⑧ アプリ事例：deepstream-camera• C++と同様の事例• Webカメラで物体を識別。３分類：車、人、自転車• https://docs.nvidia.com/metropolis/deepstream/6.0.1/devguide/text/DS_Zero_Coding_Sample_Graphs.html• $ sudo composer• グラフを開く• /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-camera/• ラン• コンフィグファイルの設定：platform config file
• /opt/nvidia/graph-composer/config/target_x86_64_cuda_11_4.yaml を選択• 環境変数：DISPLAY=:0 を入力• ラン

all rights reserved 2022 spectrum technology co.

31