NVIDIA社のJetson AGX Xavierを触る機会を得たので, 環境設定してデモを動かしてみた.
Jetson Nanoとは設定方法が少し異なるところもあるが, 基本的には公式サイトの手順に沿ってやれば問題ない.
一応, メモとしてまとめておく.
[関連記事]
・Jetson AGX Xavierを試してみる(1)
・Jetson AGX Xavierを試してみる(2)
1. セットアップ
Jetson AGX Xavierは, Ubuntu18.04がデフォルトでインストールされているが, 画像処理やDeep Learningなどの開発環境を整えるには, JetPackをインストールするのが手っ取り早い.
ちなみにJetPackとは, Jetson向けにCUDA, cuDNN, TensorRT, OpenCV, DeepSteamなどをパッケージ化したものである.
1. 1 JetPackインストール[1][2]
Jetson Nanoでは, SD Cardにイメージを焼き込んでいたが, Jetson AGX XavierではホストPCとUSB接続し, NVIDIA SDK Managerを使用して, 「JetPack SDK」のイメージを書き込む.
ただし, ホストPCは物理Linuxマシン(Ubuntu Linux x64 version 18.04 or 16.04) でないとダメなようだ.
インストールについては, 公式サイトの他に, いくつか記事[3][4]で紹介されており, 特にハマることなくインストールできたのでそちらを参照してほしい.
[ホストPC環境]
1.2 TensorFlowインストール[5]
こちらも公式サイトの手順で簡単にインストールできる.
依存するパッケージをインストールした後, 最新のTensorFlowをインストールした.
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow
TensorFlow : tensorflow 2.4.0+nv21.5
1.3 HELLO AI WORLD NVIDIA JETSONインストール[6]
HELLO AI WORLDには, DNNビジョンライブラリを使った多くのサンプルが含まれている.
TensorRTの使い方の参考となるので, インストールしてデモを動かし見ようと思う.
GitHubサイトの手順に沿って, ソースからビルドし, インストールを行った.
こちらも特に問題もなく, インストール完了!!
2. 動作確認
開発環境のセットアップ後, 簡単な動作確認を行ってみた.
2.1 OpenCV + GStreamer
JetPackに含まれているOpenCVはバックエンドにGStreamerを使用できるようにビルドされている.
そこで, 簡単に試してみる.
[コード:test_gst.py]
import cv2 src = 'videotestsrc ! videoconvert ! appsink' def main(): cap = cv2.VideoCapture(src) while(cap.isOpened()): ret, frame = cap.read() if not ret: break cv2.imshow('GStreamer Test',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() if __name__ == '__main__': main()
[実行結果]
2.2 Object Detection
HELLO AI WORLDのサンプルに含まれるObject Detectionを試してみる.
$ cd jetson-inference/python/examples $ ln -s ../../data/images . $ ./detectnet.py --network=ssd-mobilenet-v2 images/peds_0.jpg images/test/output.jpg
[実行結果]
デモなども大きな問題もなく, 動作している.
そして, 何よりも速い!!
----
参照URL:
[1] How to Install JetPack :: NVIDIA JetPack Documentation
[2] NVIDIA SDK Manager
[3] NVIDIA SDK Manager で Jetson をセットアップ
[4] NVIDIA AGX Xavierのセットアップ | ロボットシステムデザイン研究室
[5] Installing TensorFlow For Jetson Platform :: NVIDIA Deep Learning Frameworks Documentation
[6] dusty-nv/jetson-inference: Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.