COLUMN
【Vol.3】はじめよう!エッジAI~JetsonでNVIDIA®DeepStream SDK~
「はじめよう!エッジAI」ではエッジAIの必要性、エッジAIを取り巻く環境、さらに画像処理系エッジAIを始めるために必要な環境の解説やご紹介をしていきます。
★そもそも「エッジAIってなに?」という方にはこちらのコラムをおすすめします。
Vol.1は以下です。
※【Vol.1】はじめよう!エッジAI~エッジである必要性と最適な環境構築~
Vol.2は以下です。
※【Vol.2】はじめよう!エッジAI~NVIDIA® 開発者キットのインストール~
今回は、弊社がご提供しているエッジAIソリューションにてご提供させて頂いているNVIDIA®Jetson™ TX2 開発者キットを利用して、NVIDIA®DeepStream SDKのサンプルデザインを動かしていきます。
NVIDIA®DeepStream SDK は、GStreamerベースで構築されており、NVIDIA®提供ボードに実装されているLSIのハードIP(H.264やH.265)のデコーダーやエンコーダのポーティングもされており、ハードウェアの性能を引き出しながら使いやすくなっています。
GStreamerベースですので、ストリーミング形式の処理系に向いた実装となっているかと思います。
前回までで、NVIDIA®Jetson™ TX2にNVIDIA®DeepStream SDKの準備が完了しています。
Jetson™ TX2の準備
下記の様に、Jetson™ TX2と接続を行ってください。
① USBポート
USBハブとキーボード・マウス・USBカメラを接続します。
② HDMIポート
ディスプレイと接続します。
③ ETHポート
インターネットへ接続可能なケーブルを接続します。
④ 電源ポート
Jetson™ TX2 開発者キットに添付されている、電源アダプタと電源ケーブルを接続します。
DeepStream SDKを始めるためのインストールと設定
Jetson™ TX2を起動するとログイン画面が出てくるので、パスワードに「nvidia」を設定してください。
※Vol.2では、「ユーザ名:nvidia」「パスワード:nvidia」に設定しています。他の設定にした場合は、その設定にてログインしてください。
下記コマンドにてjetson-statsをインストールしてください。
後ほど、DeepStream SDK実行中にハードウェアの各種リソース率を確認しますので、あらかじめインストールします。必要ない方はインストールしなくても大丈夫です。
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py
$ sudo -H pip3 install jetson-stats
下記コマンドにて、USBカメラを使うためv4l-utilsをインストールします。
$ sudo apt-get install v4l-utils
$ v4l2-ctl ––list-devices
vi-output, ov5693 2-0036 (platform:15700000.vi:2):
/dev/video0
HD Pro Webcam C920 (usb-3530000.xhci-2.1):
/dev/video1
USBポートに接続したUSBカメラが/dev/video1で認識されています。
下記コマンドにて、DeepStream SDKのサンプルデザインの準備を行います。
$ mkdir ~/samples
$ cp -r /opt/nvidia/deepstream/deepstream-4.0/samples/ ~/samples
$ cd samples/configs/deepstream-app
$ vi source1_usb_dec_infer_resnet_int8.txt
29行目camera-v4l2-dev-nodeの値を「0」から「1」に変更します。
修正例を下記に示します。
#camera-v4l2-dev-node=0
camera-v4l2-dev-node=1
下記コマンドにて、DeepStream SDKのサンプルデザインの実行を行います。
$deepstream-app -c source1_usb_dec_infer_resnet_int8.txt
しばらく待つと、画面全体にUSBカメラ映像に人が移った時にバウンディングボックスが描かれます。
下記コマンドにて、DeepStream SDKのサンプルデザインの実行を行います。
$deepstream-app -c source12_1080p_dec_infer-resnet_tracker-tiled-display_fp16_tx2.txt
しばらく待つと、画面全体に下記の画面が表示されます。
ハードウェアの各種リソース率を確認の確認を行いたい場合は、Jetson™ TX2の準備でETHポートと同一LAN内に別のPCをルータやハブ等を利用して接続します。
別のPCのターミナルからSSHでJetson™ TX2へログインして下記コマンドを実行します。
$jtop
ハードウェアの各種リソース率を確認の確認の画面が表示されます。
終わりに
Jetson™ TX2にてDeepStream SDKのサンプルデザインの動作は比較的容易に動作できたかと思います。エッジAIでAI推論をストリーミングデータに対して扱いたいことが多いかと思います。
弊社ではAI処理だけでなく、GPUを利用する方法としてDeepStream SDKの利用方法を検討しています。
各種プラグインも用意されており、パブリッククラウドとの連携も可能なようです。是非色々と活用して頂ければと思います!
※本コラムに記載されている社名および製品名などの固有名詞は、各社の商標または登録商標です。
個別相談も承っております。下記よりお申し込みください。