« Windows 11が登場!? | トップページ | ディスプレイアームを買ってみた »

2021年6月21日 (月)

Jetson Nano 2GBを購入しました

先日、NVIDIAの人と打ち合わせる機会があって、そのNVIDIAの方の話を聞いていたら、なんだか急にJetsonが欲しくなって、思わず買ってしまいました。

Img_0444

といっても、Nanoの2GBという、Jetsonでも一番安いやつ。お値段は、7千円弱。Raspberry Pi 4とはいい勝負くらいの価格です。

Img_0448

開封すると、出てきました。2GB版Jetson Nanoの開発キット。

Img_0449

4GB版と比べると、いろいろなものが省かれてます。まず、USB-Aの端子が3つしかないし、AC電源コネクターもなし。その代わり、USB-Cコネクターがついてます。なお、その名の通り、メモリーが2GBしかありません。

もっとも、必要最小限なものはあるので、十分かと。

で、早速いじろうかと思ったのですが。

そういえばこれ、モニターどうしようか?となりまして。

Img_0445

しょうがないので、デスクトップ機で使っていたあの23インチモニターを復活させました。

う……せっかく作ったスペースが、丸つぶれに。

Img_0446

何よりも気になったのは、このUSB-HDDと干渉すること。

あと1センチ高ければ干渉しないというのに、ほんのわずかガチ当たりです。仕方がないので、机を少しスライドするなどして、モニターを無理矢理収めます。

Img_0447

いろいろと配置を変えて、どうにかすっきりさせました。

さて、この先少し、備忘録も兼ねて、Jetson Nanoのセットアップから、物体検出を動かすまでをまとめます。

以下、ちょっと長いので、簡単に目次をつけてみました。

準備

Img_0450_20210620142801

他ではあまり書かれてませんが、Jetson Nanoだけでは動きません。

まず、Jetson Nanoって、Wi-Fiがありません。

うちでは、そこらへんに転がっていたWi-Fiドングルをぶっ挿しておきました。

他にもキーボード、マウス、そしてモニター、画像認識的なことをやらせるには、さらにUSBカメラも必要です。USBが3つしかないので、キーボード、マウスは一体型のドングルを使うやつがいいですね。

また、電源にはUSB-C PD対応電源も必要。

上の画像の左端にUSB-Cコネクターがついてますが、ここに最低でも5V 3A(15W)を供給しなきゃいけないようです。

私はこの間買った、Aukey製の20WのUSB-C電源を使いました。最近はPD対応電源も安いし、iPhone/Androidスマホの急速充電もできるので、一つは持っておいた方が便利かと。

SDカードですが、UHS-I対応のmicroSDXC 64GB以上が推奨。ですが、私は東芝製32GBを使ってます。

環境インストール

(1) OS (JetPack)のインストール

まず、microSDカードにOSを入れます。

「JetPack」という、Ubuntu + 必要環境があらかじめ収められたイメージファイルを落として使うのが便利です。

このあたりは、Raspberry Piよりは親切です。

ダウンロード元は、以下。

Jetson Download Center | NVIDIA Developer

ですが、ここでひとつ注意が。

ここで「JETSON NANO DEVELOPER KITS」の「For Jetson Nano 2GB Developer Kit:」の下にある「Download the SD Card Image」を押してしまいそうになりますが、そこではなく、下にスクロールして現れる「> Jetson Nano 2GB Developer Kit SD Card Image 4.5」というのをクリックします。

普通にクリックすると最新のバージョンが4.5.1が入手できるのに対し、以下のリンク先を見る限りでは、どうやら4.5を選ばないといけない模様('21/6/21現在)。

jetson-inference/aux-docker.md at master · dusty-nv/jetson-inference · GitHub

ここを見ると、JetPack 4.5、4.4.1、4.4の3種類しか書かれてません。

いや、もしかしたら4.5.1でもいけたのかもしれませんが、やり直しとなると、とんでもなくめんどくさいことになるので、ここは無難に4.5にしておきました。

Jetnano01

なお、すごく時間がかかりました。3時間以上かかりましたかね。

ダウンロードしたZipファイルを展開し、イメージファイルを取り出します。

で、このイメージファイルを、以下のサイトから入手した「balenaEtcher」というソフトでSDカードに書き込みます。

balenaEtcher - Flash OS images to SD cards & USB drives

この時、間違ってもOSのドライブや外付けの記憶デバイスなどを選択しないように注意しましょう(一度やらかしました)。

書き込みが終わったら、Jetson Nano本体に挿し込みます。

なお、バカでかいヒートシンクの裏側辺りに、SDカードスロットがあります。そこにカチッとはめればOK。

(2) Dockerなどの導入

物体認識、物体検出を動かすための、Dockerイメージを導入します。

やり方は、先に載せたリンク「jetson-inference/aux-docker.md at master · dusty-nv/jetson-inference · GitHub 」にも載ってますが、ターミナルを開いて、以下のようなコマンドを打ち込みます。

$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ docker/run.sh

最初のgit cloneに時間がかかりますが、しばらく頑張って待ちます。

なお、この「cd jetson-inferene」と「docker/run.sh」は、電源を入れなおすたびに実行が必要です(この環境を使いたい場合)。

これでとりあえず、Jetson Nano 2GB版を動作できるところまで来ました。

テスト動作(物体検出)

さて、いよいよ動作です。

USBカメラをつけた状態で、以下を実行します。

ターミナルでは「jetson-inference」というディレクトリにいると思うので、その状態で

$ cd build/aarch64/bin

と入力。

「ls」と打ち込むと、たくさんコードらしきものが入ってますが、物体検出を動かします。

動かし方は、簡単。ここで、以下のコマンド

$ ./detectnet.py /dev/video0

を入力し、Enterキー。

Img_0457

初回実行だけ、なにかを構築しているみたいで、えらく時間がかかります。が、

Jetnano02

そのうち、こんな風に物体検出の画面が出てきます。

私が「person」として認識されてますね。

Jetnano03

カメラをメインPCに向けると、見事「laptop」と「mouse」で認識されてます。

Jetnano05

なお、この状態のSurface Goも「laptop」時々「book」と認識されました。

Jetnano04

iPhone 7 Plusとダイソー製Bluetoothスピーカー。

iPhoneの「cell phone」はともかく、スピーカーの「suitcase」はなんやねん?

Jetnano06

という具合に、結構遊べます。

速度はだいたい、20fps出てますね。エッジ端末でこの速度はなかなかすごい。

ちなみにこの物体検出のアルゴリズムはSSD(Single Shot multibox Detect)+mobileNetだそうです。いわゆるYoloよりはちょっと劣る感じかなぁと。

Img_0465

そうそう、これを動かしてる最中に、このバカでかいヒートシンクに触れると、めちゃくちゃ熱いです。

多分ですが、60度以上はありそう。

安定動作には、ファンは必須でしょうね。

とまあ、お手軽Jetson Nano 2GBを入手して、お手軽に物体検出をさせてみました。

以前は、ここまで到達するだけでも一苦労だったんですけどね……楽になりました。

問題は、これをどう応用するか、なんですけどね。


NVIDIA Jetson Nano 2GB 開発者キット

« Windows 11が登場!? | トップページ | ディスプレイアームを買ってみた »

Raspberry Pi・Arduino・電子工作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Windows 11が登場!? | トップページ | ディスプレイアームを買ってみた »

無料ブログはココログ

スポンサード リンク

ブログ村