評価キットで終わらせない、実環境へのデプロイに適したNVIDIA Jetson Orin NX 8GBを搭載したVIA Technologies社の製品「AMOS-9100」
NVIDIA Jetson Orin NX 8GBを搭載した VIA Technologies社が誇る「AMOS-9100」 ですが、この度、ご縁がありまして無事購入することができました。AMOS-9100はJetson Orin NXと互換を持ちながらファンレス、つまり ファンを搭載していないという、非常に産業用途に向いたエッジデバイスです。 デバイス背面にはレガシーな機器と統合できるよう「RS-232/RS-422/RS-485」「CAN/UART」のポートが設けられています。
本記事では、「AMOS-9100」のセットアップ方法 について紹介します。
初のJetson Orin NX!楽しみです!
必要な機材(ターゲット)
開発には以下の機材が必要になります。M.2 SSDは必須というわけではありませんが、折角、ハイパフォーマンスのJetson Orin NXを利用するので、メモリスワップ等のコストを考えて M.2 SSD
を搭載しました。
- VIA Technologies社 AMOS-9100 ... ターゲット本体
- M.2 SSD ... メインストレージ(本体内蔵)
- USB Type-Cケーブル ... ホストとターゲットを接続するためのType-Cケーブル
- 4Kモニタ、HDMIケーブル、キーボード、マウス ... 操作用のUI
- LANケーブル ... ターゲットをネットワークへ接続するために利用
セットアップ
AMOS-9100は NVIDIA Jetson Orin NX 8GBを搭載した機材 ですが、ブートローダーやVIA独自の拡張機能が搭載されているため、OSをフラッシュするには VIAのサポートデスクから固有の追加ファームウェアを入手する必要があります。
必要なパッケージを入手する
NVIDIAのサイトと、VIAのサポートデスクから、以下のファイルを入手します。 VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip
は公開されていないファイルのため、AMOS-9100購入後にVIAへ問い合わせをし、入手しました。
- Jetson_Linux_R36.4.0_aarch64.tbz2
- Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
- VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip
$ mkdir ~/jetson
$ cd ~/jetson
$ wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.0/release/Jetson_Linux_R36.4.0_aarch64.tbz2
$ wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.0/release/Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
######
### Download "VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip"
### from VIA Customer Support
######
$ ls
# Jetson_Linux_R36.4.0_aarch64.tbz2
# VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip
# Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
NVIDIA Jetson Linux Driver Package (L4T) を展開する
入手したNVIDIA Jetson Linux Driver Package (L4T) を展開します。続いて、Jetsonのルートファイルシステムも展開し、OSのフラッシュに必要なバイナリを ./tools/l4t_flash_prerequisites.sh
と ./apply_binaries.sh
コマンドで生成します。
$ tar xf Jetson_Linux_R36.4.0_aarch64.tbz2
$ export L4T=$PWD/Linux_for_Tegra
$ sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2 \
-C $L4T/rootfs/
$ cd $L4T/
$ sudo ./tools/l4t_flash_prerequisites.sh
$ sudo ./apply_binaries.sh
VIA AMOS-9100専用のドライバを展開する
NVIDIA Jetson Orin NXを制御しているVIA AMOS-9100固有のハードウェアドライバをL4Tのディレクトリ内に展開し、結合します。
$ cd $L4T/..
$ ls
# Jetson_Linux_R36.4.0_aarch64.tbz2
# Linux_for_Tegra
# VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip
# Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
$ unzip VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip
$ tar xvf ./VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113/Firmware/VIA_AMOS-9000_Ubuntu_22.04_EVK.tgz
$ ls
# Jetson_Linux_R36.4.0_aarch64.tbz2
# VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113
# Linux_for_Tegra
# VIA_AMOS-9000_Ubuntu_22.04_EVK_v1.0.0_250113.zip
# Tegra_Linux_Sample-Root-Filesystem_R36.4.0_aarch64.tbz2
ホストPCとAMOS-9100を接続する
AMOS-9100の側面に Flash
とかかれたUSB Type-Cポートがあるので、これをホストPCと接続してください。接続後、下記の写真にある FW更新ボタン
を押しながら Resetボタン
を押すと、ホストPCと接続した状態になります。 なお、 FW更新ボタン
と Resetボタン
は共に埋没したボタンのため、ペーパークリップ等を用意して押すと良いです。私はスマホのSIMカード取り外し用のピンを利用しました。
接続に成功すると、ホストPC上で lsusb
コマンドを実行した際に、以下のように NVIDIA Corp. APX
のデバイスが検出されます。
$ lsusb
# ...
# Bus 001 Device 018: ID 0955:7423 NVIDIA Corp. APX
# ...
AMOS-9100にOSを書き込む
ホストPC上で Linux_for_Tegra
ディレクトリへ移動し ./flash.sh
コマンドを実行する ことで、AMOS-9100へのOS書き込みが開始されます。書き込みには5-10分程度かかります。 USB Type-C接続になるため、ホストPC上の比較的速度の速いポートと、USB3.2/3.1に対応した速度の出るケーブルを利用すると良いでしょう。
$ cd ~/jetson/Linux_for_Tegra
$ sudo ./flash.sh -r amos_9k internal
# ...
# [ 694.7173 ] [................................................] 100%
# [ 697.7592 ] tegradevflash_v2 --write B_MEM_BCT mem_coldboot_sigheader.bct.encrypt
# [ 697.7603 ] Bootloader version 01.00.0000
# [ 697.9576 ] Writing partition B_MEM_BCT with mem_coldboot_sigheader.bct.encrypt [ 243712 bytes ]
# [ 697.9584 ] [................................................] 100%
# [ 700.9983 ] Flashing completed
#
# [ 700.9984 ] Coldbooting the device
# [ 700.9996 ] tegrarcm_v2 --chip 0x23 0 --ismb2
# [ 701.0007 ] MB2 version 01.00.0000
# [ 701.1980 ] Coldbooting the device
# [ 701.1992 ] tegrarcm_v2 --chip 0x23 0 --reboot coldboot
# [ 701.2001 ] MB2 version 01.00.0000
# *** The target generic has been flashed successfully. ***
# Reset the board to boot from internal eMMC.
OSをフラッシュした後に、自動的にインストールスクリプトがAMOS-9100のベンダー固有の部分のセットアップが開始されます。HDMI上にOSフラッシュ後のセットアップメッセージが表示されます。 完了まで待ちたいところですが、私の手元の環境では、この画面が2時間半近く続いていたため、電源を抜去し、再起動してしまいました。現状特に問題なく動いています。
AMOS-9100上でのセットアップ
以降は、OSを書き込んだAMOS-9100上での操作となります。
Ubuntu22.04をセットアップする
セットアップスクリプトが完了し、電源を抜去、再度挿入しAMOS-9100を再起動すると、Ubuntuのインストール画面が表示されます。 ここでキーボード配列やユーザー名を選択できます。 セットアップを完了させましょう
便利に使うためのパッケージをインストールする
以下のコマンドを実行し、AMOS-9100を使いやすくする、またはリモートから利用できるようにする設定を行います。SSH周りについては下記の記事をご参照ください。
###
$ sudo apt update
###
$ sudo apt install openssh-server vim
$ sudo systemctl start ssh
$ sudo systemctl enable ssh
###
$ sudo vim /etc/sudoers
# 以下の行を設定ファイルの最後に追加
# via ALL=(ALL:ALL) NOPASSWD:ALL
### Ubuntu上での操作
$ mkdir -p /home/via/.ssh
$ touch /home/via/.ssh/authorized_keys
$ sudo chmod 700 /home/via/.ssh
$ sudo chmod 640 /home/via/.ssh/authorized_keys
### 公開鍵を登録する
$ vi /home/via/.ssh/authorized_keys
# -->> Windows上の "id_rsa.pub" の内容を書き込む
Jetsonのセットアップ進捗を確認するツールをインストールする
Jetsonの環境をセットアップし、Aiアプリケーションを開発するには CUDA
や cuDNN
などいくつものパッケージをインストールする必要があります。 インストール状況を確認するためのツール jetson-stats
を入手しておきましょう。 実行すると、現時点では、何もツールがインストールされていないことがわかります。
###
$ sudo apt install python3-pip
$ sudo -H pip3 install jetson-stats
###
$ jetson_release
# Software part of jetson-stats 4.3.1 - (c) 2024, Raffaello Bonghi
# Model: NVIDIA Jetson Orin NX Engineering Reference Developer Kit - Jetpack 6.1 [L4T 36.4.0]
# NV Power Mode[2]: 15W
# Serial Number: [XXX Show with: jetson_release -s XXX]
# Hardware:
# - P-Number: p3767-0001
# - Module: NVIDIA Jetson Orin NX (8GB ram)
# Platform:
# - Distribution: Ubuntu 22.04 Jammy Jellyfish
# - Release: 5.15.148-tegra
# jtop:
# - Version: 4.3.1
# - Service: Inactive
# Libraries:
# - CUDA: Not installed
# - cuDNN: Not installed
# - TensorRT: Not installed
# - VPI: Not installed
# - Vulkan: 1.3.204
# - OpenCV: 4.5.4 - with CUDA: NO
$ sudo reboot
JetPackをインストールする
上記の結果からわかるようにOSインストール直後は CUDA
や cuDNN
、TensorRT
などGPUを利用して高速な計算を実現するために必要なライブラリが入っていない状態となっています。 JetPack
はこれらのライブラリを一括でインストールすることのできるパッケージです。NVIDIA Orin NX向けには2025年3月現在、JetPack6.1がリリースされています。 apt install nvidia-jetpack
を実行し、JetPackをインストールした後、jetson_release
を実行するとすべてのツールがインストールされていることを確認できます。また、ツールを利用するためには環境変数の設定も必要ですので ~/.bashrc
に設定を追記しましょう。
###
$ sudo apt update
$ sudo apt install nvidia-jetpack
###
$ vi ~/.bashrc
# 以下の行をファイル末尾に追加
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
# 環境変数を更新
$ source ~/.bashrc
### ツールにパスが通っていることを確認する
$ nvcc --version
# nvcc: NVIDIA (R) Cuda compiler driver
# Copyright (c) 2005-2024 NVIDIA Corporation
# Built on Wed_Aug_14_10:14:07_PDT_2024
# Cuda compilation tools, release 12.6, V12.6.68
# Build cuda_12.6.r12.6/compiler.34714021_0
###
$ jetson_release
# Software part of jetson-stats 4.3.1 - (c) 2024, Raffaello Bonghi
# Model: NVIDIA Jetson Orin NX Engineering Reference Developer Kit - Jetpack 6.1 [L4T 36.4.0]
# NV Power Mode[2]: 15W
# Serial Number: [XXX Show with: jetson_release -s XXX]
# Hardware:
# - P-Number: p3767-0001
# - Module: NVIDIA Jetson Orin NX (8GB ram)
# Platform:
# - Distribution: Ubuntu 22.04 Jammy Jellyfish
# - Release: 5.15.148-tegra
# jtop:
# - Version: 4.3.1
# - Service: Active
# Libraries:
# - CUDA: 12.6.68
# - cuDNN: 9.3.0.75
# - TensorRT: 10.3.0.30
# - VPI: 3.2.4
# - Vulkan: 1.3.204
# - OpenCV: 4.8.0 - with CUDA: NO
###
$ sudo reboot
念のため、再起動します。
DeepStreamをインストールする
以下の記事で紹介した「DeepStream」をインストールします。「DeepStream」はGStreamerを拡張したミドルウェアであり、動画に対して、ONNX形式/TensorRT形式の推論を適用することができます。
以下のドキュメントを参考にインストールします。
まず、DeepStreamに必要なパッケージをインストールします。必要なパッケージは meson
ninja
glib
librdkafka
gstreamer*
等です。
$ pip3 install meson
$ pip3 install ninja
$ vi ~/.bashrc
export PATH="/home/via/.local/bin:$PATH"
$ source ~/.bashrc
$ sudo -i
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py
$ python3 -m pip install meson
$ exit
$ git clone https://github.com/GNOME/glib.git
$ cd glib
$ git checkout 2.76.6
$ meson build --prefix=/usr
$ ninja -C build/
# ninja: Entering directory `build/'
# [613/1392] Compiling C object gio/libgio-2.0.so.0.7600.6.p/gbytesicon.c.o
# ...
$ cd build
$ ninja install
# [0/1] Installing files
# Installing glib/gversionmacros.h to /usr/include/glib-2.0/glib
# Installation failed due to insufficient permissions.
# Attempt to use /usr/bin/sudo to gain elevated privileges? [y/n] y
# ...
###
$ pkg-config --modversion glib-2.0
# 2.76.6
###
$ sudo apt install libssl3 libssl-dev libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstreamer-plugins-base1.0-dev libgstrtspserver-1.0-0 libjansson4 libyaml-cpp-dev
###
cd ~
git clone https://github.com/confluentinc/librdkafka.git
cd librdkafka
git checkout tags/v2.2.0
./configure --enable-ssl
make
sudo make install
続いて、NGC (NVIDIA GPU Cloud) からDeepStreamをダウンロードしてインストールします。 Jetsonはarm64アーキテクチャのため deepstream-7.1_7.1.0-1_arm64.deb
を選択しましょう。 パッケージ名の横にある「…」をクリックするとダウンロードするためのwgetのコマンドを入手することができますので、そのコマンドを使ってDeepStreamをダウンロードし、apt
コマンドを使ってインストールします。
####
# https://catalog.ngc.nvidia.com/orgs/nvidia/resources/deepstream
$ cd ~
$ wget --content-disposition 'https://api.ngc.nvidia.com/v2/resources/org/nvidia/deepstream/7.1/files?redirect=true&path=deepstream-7.1_7.1.0-1_arm64.deb' -O deepstream-7.1_7.1.0-1_arm64.deb
###
$ sudo apt-get install ./deepstream-7.1_7.1.0-1_arm64.deb
# ...
# ---------------------------------------------------------------------------------------
# NOTE: sources and samples folders will be found in /opt/nvidia/deepstream/deepstream-7.1
# ---------------------------------------------------------------------------------------
# Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
# ...
インストール後、以下のコマンドを実行することにより、DeepStreamによって動画に対して推論が適用される様子を見ることができます。
### サンプルが格納されているディレクトリへ移動する
$ cd /opt/nvidia/deepstream/deepstream-7.1/samples
### NVIDIA DeepStreamにより動画に対して推論を実行する
$ sudo deepstream-app -c configs/deepstream-app/source30_1080p_dec_infer-resnet_tiled_display_int8.txt
# ...
# (TensorRT形式のモデルに変換するために30分ぐらいかかります)
NGCから入手したPeopleNetモデルを実行する
最後に、DeepSteamのデモに含まれていないモデルを利用して推論をしてみましょう。デモ以外のモデルはNGC Model Catalogから入手することができます。 今回は、PeopleNetのモデルを利用しました。
NGC CLI をセットアップする
NGCからモデルを入手するためのツール ngc
を取得して、設定します。 JetsonはArm64アーキテクチャのため Arm64 Linux
のセクションを選択し、下部に表示された手順を参考にダウンロードとセットアップをします。
$ wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions/3.60.2/files/ngccli_arm64.zip -O ngccli_arm64.zip && unzip ngccli_arm64.zip
$ find ngc-cli/ -type f -exec md5sum {} + | LC_ALL=C sort | md5sum -c ngc-cli.md5
# -: OK
$ sha256sum ngccli_arm64.zip
# 908c20f331fdece1f5335234001f7cd15575a0bdfa967603b80b439f5b441e7b ngccli_arm64.zip
$ chmod u+x ngc-cli/ngc
$ echo "export PATH=\"\$PATH:$(pwd)/ngc-cli\"" >> ~/.bashrc && source ~/.bashrc
続いて、 ブラウザでNGCにアクセス し、アクセストークンと呼ばれる NGCへログインするための鍵を取得して ngc config set
コマンドを利用してNGC CLIに鍵を登録 します。NGCへログインするための鍵は、下記の手順で入手することが可能です。 本手順を行うには、NGCのユーザー登録[無料]が必要です。
作成したNGCへログインするための鍵を ngc
へ登録します。
$ ngc config set
# Enter API key [no-apikey]. Choices: [<VALID_APIKEY>, 'no-apikey']: dGdzM3EwYW0zcWUwaGtua2IyMmo4bHExNXE6Y2MyNDBjZGItZDU3ZS00M2Q0L...
# Enter CLI output format type [ascii]. Choices: ['ascii', 'csv', 'json']:
# Enter org [no-org]. Choices: ['xtrize (063599...)']: xtrize (0635990...)
# Enter team [no-team]. Choices: ['no-team']:
# Enter ace [no-ace]. Choices: ['no-ace']:
# Validating configuration...
# Successfully validated configuration.
# Saving configuration...
# Successfully saved NGC configuration to /home/via/.ngc/config
NGCからモデルをダウンロードする
以上で ngc
コマンドを利用できるようになりましたので、以下の手順により、Jetson上にNGCからPeopleNetをダウンロードしましょう。
### ngcコマンドによりNGC Model CatalogからPeopleNetをダウンロードする
$ ngc registry model download-version "nvidia/tao/peoplenet:pruned_quantized_decrypted_v2.3.4"
# -----------------------------------------------------------------------------------------------------------
# Download status: COMPLETED
# Downloaded local path model: /home/shino/sandbox_deepstream/peoplenet_vpruned_quantized_decrypted_v2.3.4
# Total files downloaded: 4
# Total transferred: 8.4 MB
# Started at: 2025-02-13 11:30:46
# Completed at: 2025-02-13 11:30:49
# Duration taken: 2s
# -----------------------------------------------------------------------------------------------------------
### ダウンロードしたモデルの内容を確認する
$ ls peoplenet_vpruned_quantized_decrypted_v2.3.4/
# labels.txt nvinfer_config.txt resnet34_peoplenet_int8.onnx resnet34_peoplenet_int8.txt
NGCから入手したモデルで推論する
NGCから入手したモデルを使って推論を行うために、動画を処理するための設定が含まれたファイルを git
で NVIDIA-AI-IOT/deepstream_tao_apps
から取得します。この中にはPeopleNetの推論に必要な以下のファイルが含まれています。
- deepstream_app_source1_peoplenet.txt
- config_infer_primary_peoplenet.txt
- labels_peoplenet.txt
$ cd ~
$ mkdir -p ~/sandbox/deepstream
$ cd ~/sandbox/deepstream/
### githubからNVIDIA TAO Toolkit x DeepStream向けのサンプルスクリプトを入手する
$ git clone https://github.com/NVIDIA-AI-IOT/deepstream_tao_apps.git
# Cloning into 'deepstream_tao_apps'...
# remote: Enumerating objects: 2930, done.
# remote: Counting objects: 100% (2930/2930), done.
# remote: Compressing objects: 100% (1140/1140), done.
# remote: Total 2930 (delta 1744), reused 2803 (delta 1681), pack-reused 0 (from 0)
# Receiving objects: 100% (2930/2930), 97.70 MiB | 24.07 MiB/s, done.
# Resolving deltas: 100% (1744/1744), done.
# Updating files: 100% (389/389), done.
### サンプルが含まれているディレクトリへ移動する
$ cd deepstream_tao_apps/deepstream_app_tao_configs/
###
$ mkdir ~/sandbox/deepstream/peoplenet
###
$ cp deepstream_app_source1_peoplenet.txt ~/sandbox/deepstream/peoplenet/
$ cp nvinfer/config_infer_primary_peoplenet.txt ~/sandbox/deepstream/peoplenet/
$ cp labels_peoplenet.txt ~/sandbox/deepstream/peoplenet/
$ cd ~/sandbox/deepstream/peoplenet/
$ ls
# config_infer_primary_peoplenet.txt
# deepstream_app_source1_peoplenet.txt
# labels_peoplenet.txt
ngc
コマンドでダウンロードしたディレクトリからモデルを、推論に利用する動画ファイルをWebから、AMOS-9100上にコピーします。今回はShutterStock様のサンプル動画に対して推論ができるかも試してみました。 有償動画販売サイトは高品質で推論に適した動画を入手しやすいため、とても使いやすいです。サンプルをダウンロードできるので、試してみたい方は是非お試しください。
推論結果も掲載したいところですが、有償動画の取り扱いは難しいため、以降はDeepStreamに付属している /opt/nvidia/deepstream/deepstream-7.1/samples/streams/sample_1080p_h265.mp4
の動画を例に手順を紹介します。
- 1033798799-preview.mp4
- labels.txt
- nvinfer_config.txt
- resnet34_peoplenet_int8.onnx
- resnet34_peoplenet_int8.txt
######
### x86-64のngcコマンドで取得したPeopleNetのモデルをコピーする
######
######
### 推論に利用する動画データを準備する
### -->> テスト用に以下を利用しました
### -->> https://www.shutterstock.com/video/clip-1033798799-kids-playing-soccer-on-big-stadium-dribbling
######
$ ls
# 1033798799-preview.mp4
# config_infer_primary_peoplenet.txt
# deepstream_app_source1_peoplenet.txt
# labels.txt
# labels_peoplenet.txt
# nvinfer_config.txt
# resnet34_peoplenet_int8.onnx
# resnet34_peoplenet_int8.txt
### 起動用スクリプトを編集
### -->> 記入内容は次の節に記載
$ vi config_infer_primary_peoplenet.txt
### PeopleNetの設定用スクリプトを編集
### -->> 記入内容は次の節に記載
$ vi deepstream_app_source1_peoplenet.txt
スクリプト内の設定内容
入手した設定ファイルの config_infer_primary_peoplenet.txt
と deepstream_app_source1_peoplenet.txt
のファイルパスと設定値を変更します。
推論の設定をするスクリプト
config_infer_primary_peoplenet.txt の設定例
[property]
gpu-id=0
net-scale-factor=0.0039215697906911373
#tlt-model-key=tlt_encode
######
### -->> ファイルパスを変更する
onnx-file=./resnet34_peoplenet_int8.onnx
######
### -->> ファイルパスを変更する
labelfile-path=./labels_peoplenet.txt
######
### -->> ファイルパスを変更する
### -->> resnet34_peoplenet_int8.onnxから自動生成される (ファイル不要)
model-engine-file=./resnet34_peoplenet_int8.onnx_b1_gpu0_int8.engine
######
### -->> ファイルパスを変更する
int8-calib-file=./resnet34_peoplenet_int8.txt
######
input-dims=3;544;960;0
uff-input-blob-name=input_1:0
batch-size=1
process-mode=1
model-color-format=0
## 0=FP32, 1=INT8, 2=FP16 mode
network-mode=1
num-detected-classes=3
cluster-mode=2
interval=0
gie-unique-id=1
output-blob-names=output_bbox/BiasAdd:0;output_cov/Sigmoid:0
#Use the config params below for dbscan clustering mode
#[class-attrs-all]
#detected-min-w=4
#detected-min-h=4
#minBoxes=3
#eps=0.7
#Use the config params below for NMS clustering mode
[class-attrs-all]
topk=20
nms-iou-threshold=0.5
pre-cluster-threshold=0.2
## Per class configurations
[class-attrs-0]
topk=20
nms-iou-threshold=0.5
pre-cluster-threshold=0.4
#[class-attrs-1]
#pre-cluster-threshold=0.05
#eps=0.7
#dbscan-min-score=0.5
起動用スクリプト
deepstream_app_source1_peoplenet.txt の設定例
[application]
enable-perf-measurement=1
perf-measurement-interval-sec=1
[tiled-display]
enable=1
rows=1
columns=1
width=1280
height=720
gpu-id=0
[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=3
num-sources=1
######
### -->> ファイルパスを変更する
# uri=file:///home/via/sandbox/deepstream/peoplenet/1033798799-preview.mp4
uri=file:///opt/nvidia/deepstream/deepstream-7.1/samples/streams/sample_1080p_h265.mp4
######
gpu-id=0
[streammux]
gpu-id=0
batch-size=1
batched-push-timeout=40000
## Set muxer output width and height
width=1920
height=1080
[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=1
source-id=0
gpu-id=0
[osd]
enable=1
gpu-id=0
border-width=3
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Arial
[primary-gie]
enable=1
#(0): nvinfer; (1): nvinferserver
plugin-type=0
gpu-id=0
# Modify as necessary
batch-size=1
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
gie-unique-id=1
######
### -->> ファイルパスを変更する
config-file=./config_infer_primary_peoplenet.txt
######
[sink1]
enable=0
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4
codec=1
#encoder type 0=Hardware 1=Software
enc-type=0
sync=0
bitrate=2000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
profile=0
output-file=out.mp4
source-id=0
[sink2]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming 5=Overlay
type=4
#1=h264 2=h265
codec=1
#encoder type 0=Hardware 1=Software
enc-type=0
sync=0
bitrate=4000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
profile=0
# set below properties in case of RTSPStreaming
rtsp-port=8554
udp-port=5400
[tracker]
enable=1
# For NvDCF and DeepSORT tracker, tracker-width and tracker-height must be a multiple of 32, respectively
tracker-width=640
tracker-height=384
######
### -->> ファイルパスを変更する
ll-lib-file=/opt/nvidia/deepstream/deepstream-7.1/lib/libnvds_nvmultiobjecttracker.so
######
# ll-config-file required to set different tracker types
# ll-config-file=/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_tracker_IOU.yml
######
### -->> ファイルパスを変更する
ll-config-file=/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml
######
# ll-config-file=/opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml
# ll-config-file=/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_tracker_NvDCF_accuracy.yml
# ll-config-file=/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_tracker_DeepSORT.yml
gpu-id=0
enable-batch-process=1
enable-past-frame=1
display-tracking-id=1
[tests]
######
### -->> ループ再生を有効にする
file-loop=1
######
スクリプトを実行する
スクリプトを実行すると、動画に対して推論が実行され、人物が検出されます。
### DeepStreamでスクリプトを実行する
$ cd ~/sandbox/deepstream/peoplenet/
$ sudo deepstream-app -c deepstream_app_source1_peoplenet.txt
以上がNVIDIA Jetson Orin NX 8GBを搭載したAMOS-9100の
セットアップ方法と推論のデモの紹介となります!
ほぼ x86-64 x GeForceのように開発できるので
とても快適に活用することができます
気になる方は是非お試しください!
お疲れ様でした!また何か実装したら更新します!