0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NVIDIA Jetson Orin NX 8GBを搭載しながらも、まさかのファンレスを謳うVIA Technologies社のAMOS-9100をセットアップする

Last updated at Posted at 2025-03-05

評価キットで終わらせない、実環境へのデプロイに適した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」のポートが設けられています。

DSC01570.jpg

本記事では、「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カード取り外し用のピンを利用しました。

DSC01564.png

接続に成功すると、ホスト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時間半近く続いていたため、電源を抜去し、再起動してしまいました。現状特に問題なく動いています。

WIN_20250303_20_12_37_Pro.jpg

AMOS-9100上でのセットアップ

以降は、OSを書き込んだAMOS-9100上での操作となります。

Ubuntu22.04をセットアップする

セットアップスクリプトが完了し、電源を抜去、再度挿入しAMOS-9100を再起動すると、Ubuntuのインストール画面が表示されます。 ここでキーボード配列やユーザー名を選択できます。 セットアップを完了させましょう

WIN_20250303_19_15_35_Pro.jpg

便利に使うためのパッケージをインストールする

以下のコマンドを実行し、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アプリケーションを開発するには CUDAcuDNN などいくつものパッケージをインストールする必要があります。 インストール状況を確認するためのツール 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インストール直後は CUDAcuDNNTensorRT など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 コマンドを使ってインストールします。

image.png

####
# 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分ぐらいかかります)

WIN_20250304_01_30_59_Pro.jpg

NGCから入手したPeopleNetモデルを実行する

最後に、DeepSteamのデモに含まれていないモデルを利用して推論をしてみましょう。デモ以外のモデルはNGC Model Catalogから入手することができます。 今回は、PeopleNetのモデルを利用しました。

NGC CLI をセットアップする

NGCからモデルを入手するためのツール ngc を取得して、設定します。 JetsonはArm64アーキテクチャのため Arm64 Linux のセクションを選択し、下部に表示された手順を参考にダウンロードとセットアップをします。

image.png

image.png

$ 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のユーザー登録[無料]が必要です。

NGCCLI

作成した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から入手したモデルを使って推論を行うために、動画を処理するための設定が含まれたファイルを gitNVIDIA-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

スクリーンショット 2025-03-05 125814.png

######
### 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.txtdeepstream_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

WIN_20250305_12_54_33_Pro.jpg


以上がNVIDIA Jetson Orin NX 8GBを搭載したAMOS-9100の
セットアップ方法と推論のデモの紹介となります!

ほぼ x86-64 x GeForceのように開発できるので
とても快適に活用することができます
気になる方は是非お試しください!

お疲れ様でした!また何か実装したら更新します!

DSC01570.jpg


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?