AIコラムー第11回 ADVANTECH社製MIC-710IVX上で、マルチカメラDeepStream SDKを用いたサンプルアプリケーションを実行する

今回から以下の2部構成で、ADVANTECH社から販売されている “MIC-710IVX” の紹介をしていきたいと思います。
今回:ADVANTECH社製MIC-710IVX上で、マルチカメラDeepStream SDKを用いたサンプルアプリケーションを実行する
次回:ADVANTECH社製MIC-710IVX上で、弊社で開発したナンバープレート検出のモデルを使用したベンチマークを実施する

MIC-710IVXとは?


NVIDIA社のJetson Xavier NX embeddedが搭載、8チャンネルのPoE Video Inputがサポートされているため、複数台のIPカメラの映像解析を高スループット、低レイテンシで処理出来るエッジAI用のプラットフォームになります。
主な製品スペックは以下の通りです。

CPU6 cores NVIDIA Carmel ARM®v8.2 64bit CPU
GPUVolta GPU, 384 CUDA core, 48 Tensor cores
Memory8GB LPDDR4
Flash16GB eMMC
Storage2x 3.5” HDD
DisplayHDMI (Max Resolution 3840×2160 @ 60Hz)
USB1x USB 3.0, 1x USB 2.0
Ethernet10/100/1000 Mbps
OtherSupports 8ch PoE Video input

詳細は、製品ページのデータシート[https://advdownload.advantech.com/productfile/PIS/MIC-710IVX/file/MIC-710IVX_DS(050420)20200505144651.pdf]をご確認ください。

映像解析アプリを動かしてみる

前述した通り、複数の映像解析が可能なプラットフォームということで、以前、本コラムでも紹介したNVIDIA社のDeepStream SDKを用いることで、簡単に複数映像を解析するアプリケーションを動かすことが可能です。
実際に複数映像に対して人間、車、自転車を物体検出するサンプルのアプリケーションを動かしてみたいと思います。

開発用キットのJetpackでの手順とは少し異なるので、セットアップ方法から紹介します。

セットアップでは、パッケージダウンロードのためインターネットへのアクセスが必要です。
事前にネットワーク接続をご確認ください。

尚、eMMCが16GBのため、apt installコマンドのみでパッケージのインストールを行うと途中で容量不足になってしまいます。
その対策として、途中、キャッシュファイルの削除とDeepStream SDK をeMMC以外のストレージにインストールするための手順を含んでおります。


1. Jetson用のパッケージリポジトリを有効化し、パッケージリストを更新する
以下のコメントアウトされた行を有効化し、レポジトリを有効化します
$ sudo vim /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
# deb https://repo.download.nvidia.com/jetson/common r32.4 main
# deb https://repo.download.nvidia.com/jetson/t194 r32.4 main
deb https://repo.download.nvidia.com/jetson/common r32.4 main
deb https://repo.download.nvidia.com/jetson/t194 r32.4 main
 次のコマンドを実行し、レポジトリの情報を更新します。
$ sudo apt update
2.CUDAのインストール
$ sudo apt install nvidia-cuda
3.TensorRTのインストール
$ sudo apt install tensorrt
4.キャッシュファイルの削除
$ sudo apt clean
5.DeepStream SDKのインストール場所変更
$ sudo mkdir /media/mic-710ivx/vms_storage_0/deepstream
$ sudo ln –s /media/mic-710ivx/vms_storage_0/deepstream /opt/nvidia/deepstream
6. DeepStream SDKのインストール
ここまででDeepStream SDKが使用出来るようになりました。
$ sudo apt install deepstream-5.0
続いて、同梱されているサンプルアプリの設定ファイルを、IPカメラ8台分の映像解析が出来るように変更します。
予め、PoEのポートにRTSPに対応したIPカメラを接続してください。
また、IPカメラの設定でエンコーディングをH.264としてください。
当コラムではHIKVISION社製のネットワークカメラを利用しております。
他メーカ製品での設定方法は、メーカの製品説明書をご確認ください。
1. ベースにする設定ファイルをコピーする
$ cd /opt/nvidia/deepstream/deepstream-5.0/samples/configs/deepstream-app
$ sudo cp source30_1080p_dec_infer-resnet_tiled_display_int8.txt source8_1080p_dec_infer-resnet_tiled_display_int8.txt
$ vim source8_1080p_dec_infer-resnet_tiled_display_int8.txt
2. 8台分のIPカメラの映像を取り込めるように変更する
タイル表示する列数と行数を変更します。
今回は8台ですが、3×3で9の方が縦横比が合うので、rows=3, columns=3とします。
[tiled-display]
enable=1
rows=5
columns=6
width=1280
height=720
gpu-id=0
[tiled-display]
enable=1
rows=3
columns=3

width=1280
height=720
gpu-id=0
次に8台分の入力映像の設定を行います。
下記の[source(N)]のブロックを8台分コピーしてください。
(N)は、他と被らないようにしてください。今回の場合は、分かりやすくsource0~source7の連番とします。
※尚、既に[source1]が存在しているかと思いますが、消してしまって問題ありません。
[source0]
enable=1
#Type – 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=file://../../streams/sample_1080p_h264.mp4
num-sources=15
#drop-frame-interval=2
[source0]
enable=1
** 省略 **
[source1]
enable=1
** 省略 **
** 省略 **
[source6]
enable=1
** 省略 **
[source7]
enable=1
** 省略 **
各[source(N)]ブロックの設定を変更します。
type=4 (RTSPを入力ソースにする設定) に変更し、uriに入力ソースのIPカメラのURIを指定します。
また、各[source(N)]ブロックのストリーム数は1なので、num-sources=1に変更します。
※URIなどは、IPカメラの説明書に記載されています。
[source0]
enable=1
#Type – 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=file://../../streams/sample_1080p_h264.mp4
num-sources=15
#drop-frame-interval=2
[source0]
enable=1
#Type – 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=4
uri=rtsp://user:pass@192.168.11.13
num-sources=1

#drop-frame-interval=2
ここまでで設定ファイルの変更は完了しました。
それでは実際に実行してみます。
$ deepstream-app -c source8_1080p_dec_infer-resnet_tiled_display_int8.txt
弊社の環境のカメラはフレームレートが25となっていますが、全ての映像で秒間25フレーム分の処理が出来ています。
以下、各映像のフレームレートを示すログになります。
**PERF: 25.01 (25.01) 25.17 (25.10) 25.01 (25.01) 25.01 (25.10) 25.20 (25.08) 24.96 (25.08) 25.20 (25.08) 24.96 (25.08)
**PERF: 24.97 (25.03) 24.82 (25.11) 24.97 (25.03) 24.97 (25.11) 24.79 (25.11) 25.01 (25.11) 24.79 (25.11) 25.01 (25.11)
**PERF: 25.00 (25.03) 25.00 (25.10) 25.00 (25.03) 25.00 (25.10) 25.00 (25.10) 25.00 (25.10) 25.00 (25.10) 25.00 (25.10)
また、レイテンシに関しても問題なく、ほとんど遅延がありません。
いかがでしたでしょうか。Jetson Xavier NXが搭載されているだけあって、かなりのパフォーマンスが出ていたと思います。
今回は、DeepStream SDKのサンプルに同梱されているリファレンスモデルを使用したアプリケーションの確認でしたが、
次回は、冒頭でも記載した通り、弊社が開発しているナンバープレート検出を使用したベンチマークも実施してみたいと思います。

最後までお読みいただき、ありがとうございました。

お問い合わせ

名古屋本社

東京本社

【受付時間】9:00~18:00

pagetop

お客様のお悩み承ります。