みなさんこんにちわ、こんばんわ。
SAIです。
今日からは、JetsonNanoでHelloAiWorldを動かしてみたいと思います。
今日の作業は、本当に”作業”です。
HelloAiWorldを動かすための儀式と思って、事前準備を頑張ってください。
まず、HelloAiWorldですが、
NVidiaが公開しているGitHubにDockerが用意されています。
それをなぞることで、画像認識などを理解しようというものです。
画像の認識のさせ方や、画像の認識するプロセス、プログラムが用意されているようです。
ここです↓
jetson-inference/README.md at master · dusty-nv/jetson-inference · GitHub
HelloAiWorldを動かすには、JetpackとdustyさんのGitHubに掲示されたデータが必要になります。
1.JetPackのInstall
まずはJetPackのInstallです。
![](https://stat.ameba.jp/user_images/20230903/21/saiduke/ba/86/j/o0303014115333632583.jpg?caw=800)
ここをクリックすると、JetPackのInstall方法の画面に飛びます。
早速Installしようと思ったのですが、
どうやらJetsonNanoの場合は最新盤のSDカードImageで起動している場合は、
既にJetpackがすでにInstallされた状態になっているようです。
![](https://stat.ameba.jp/user_images/20230903/21/saiduke/dc/b6/j/o0940034415333633163.jpg?caw=800)
ということは、
JetsonNanoはJetpackのInstall作業は不要ですね!
AGX Orin や Xavier の場合は、手動でInstallしないといけないようですね。
2.DockerContainerの起動
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/e6/7b/j/o0342015115333659580.jpg?caw=800)
HelloAiWorldを動かすためにはもう一つ、
GitHubから、NVidiaのHPに乗ってるDustyさんのGitから、
DockerContainerをダウンロードしておく必要があります。
GitHubの場合はCloneというらしい。
この手順に沿って、Closeしますよ!
Cloneは結構な容量をダウンロードしなければならないので、
結構時間がかかります。
余裕のある時や寝る前に実行する必要があります。
注意するのは、実行するのは後述の★まで実行して、放置です
↓
まず打ち込むコマンドはこれ
git clone https://github.com/dusty-nv/jetson-inference
このコマンドは、1回実施してしまえば以後はGitHubが更新されるまでは不要のはずですね。
ただ、これだけで結構時間がかかります。
しかしながら、初回はこの次のDockerContainerの起動の方が時間がかかるので、
このCloneはお風呂でも入って待ちます。
![](https://stat.ameba.jp/user_images/20230903/21/saiduke/01/84/j/o0536019615333639116.jpg?caw=800)
Cloneで各ファイルを落としたら、
次にDockreContainerを起動します。
CloneによってJetson-Interfaceというフォルダが作られています。
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/6c/62/j/o0413005115333646889.jpg?caw=800)
このフォルダの中にある、
DockerContainerを起動するわけです。
cd jetson-inference
docker/run.sh
初回は、ここで大量のダウンロードが開始されます。
めっちゃ時間がかかるんです。
時間がかかるのは初回だけなので、2回目以降は気にすることはないのですが、
初回はネット環境やSDカードの能力によっては数時間かかるので、
睡眠前に寝ながら放置が良いと思います。
一度DockerContainerを起動完了まで進めたら、
2回目以降は↓このようにすんなり起動できますよ
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/12/03/j/o0510026715333647614.jpg?caw=800)
3.マウントされたボリューム
先程のDockerContainerを実行したことで、いろいろダウンロードされました。
マウントされたデータボリュームは、以下のような役割の様です。
◆jetson-inference/data
ネットワークモデル、シリアル化されたTensorRTエンジン、およびテスト画像
◆jetson-inference/python/training/classification/data
分類トレーニングデータセットを格納するところ
◆jetson-inference/python/training/classification/models
PyTorch によってトレーニングされた分類モデルを格納するところ
◆jetson-inference/python/training/detection/ssd/data
機械学習に使うトレーニングデータセットを格納
◆jetson-inference/python/training/detection/ssd/models
PyTorch によってトレーニングされた検出モデルを格納
これらのマウントされたボリュームは、
モデルとデータセットがコンテナーの外部に格納され、コンテナーがシャットダウンされても失われることはありません。
逆に言うと、これら以外は改変してもDockerContainerを再起動すると消えちゃう感じですね。
4.AXG Orinの場合
Orinの場合、結局原因はよくわからないのですが、
どうもJetpackの最新化のやり方がよくわかりませんでした。
いわゆる、気がついたら動いていた というやつです・・・
SDK Managerで、Installを試みたのですが結局うまくいかず、
いろいろ調べてみたんですが、、
Getting Started with Jetson AGX Orin Developer Kit | NVIDIA Developer
JetsonOrinのセットアップ手順にあるこれ↓
sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install nvidia-jetpack
どうも、これで最新化できる臭いんですよね。もちろんaptしているので、めっちゃ時間がかかります。
JetsonNanoと比べたらダウンロード処理はかなり早いので、1時間かからない程度だったかな?
お買い物に行ったり、お風呂に入ったり、テレビを見つつ時間かけてる間に更新しました。
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/71/15/j/o0573017715333655784.jpg?caw=800)
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/ca/7d/j/o0510018115333655859.jpg?caw=800)
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/2d/bb/j/o0434028315333655889.jpg?caw=800)
![](https://stat.ameba.jp/user_images/20230903/22/saiduke/50/b8/j/o0435028215333655954.jpg?caw=800)
これを実行したら動くようになった気がするのですが、
正直半信半疑です。
この間色々実施したので、他にもクリアするためのキーがあったのかもしれないです。
5.ずっと古いJetsonNanoのSDImageの場合
実は、JetsonNanoで初回動作させたときは、やっぱり苦労しました。
UbuntsuにDockerがのっかっていなかったらしく、DockerをInstallして動かしたような気がします。
$ sudo apt install docker.io=17.12.1-0ubuntu1
$ sudo cgroupfs-mount
$ sudo usermod -aG docker $USER
$ sudo service docker start
この時も、やっぱりいろいろやってたら動くようになったってやつなんですよね。
ご存じの方がいたら是非教えてください。
それでは今日はこの辺で。
◆目次へ戻る◆