サイトアイコン KOKENSHAの技術ブログ

Jetson nano 購入から物体認識(リンゴとミカン)までの手順

Jetson nanoが最近話題になっています。

私も、発表からずっと気になって、購入することになりました。

先日Jetson nanoが届いて、早速リポートさせていただきたいと思います。

目次

Jetson nanoの購入

私は、Physical Computing Labから購入しました。最近ですと、在庫が増えていて、秋葉原のお店でも購入できますし、ネット上でも、割と苦労せずに購入できます。

アマゾンも購入できるようになっています。こちらも手軽でいいかもしれません。

[amazonjs asin=”B07R6K7FF2″ locale=”JP” title=”NVIDIA JetpackがサポートするAI開発のための小型で強力なコンピュータ ジェットソン ナノデベロッパーキット”]

Physical Computing Labに注文した時に、5月分がすでになく、6月分の仕入れで、発送しますよと言うことだったのですが、結局予想より早く5月中届きました。

https://www.physical-computing.jp/product/1739

私が1万7000円のスタートキットを含むセットを購入しましたが、今考えれば、電源やLANケーブル、など全部個別に調達することも可能です。しかし、なるべくすぐ試したいので、スタートキットの方が、すぐ始められますので、特に電源の相性等もある程度保証されているので、いいかと思います。皆さんは周辺のものがあれば、Jetson nano本体のみ購入した方が経済的かもしれません。

ダンボールに「Physical Computing Lab」と書いています。

Jetson nano開封の儀

開封の儀ということで!早速開けてみましょう!

中は、箱が2つ入っています。

Jetson nano本体と、スタートキットですね。電源、microSDカード、LANケーブル、ジャンパーピンが入っています。

電源をつける前に、必ずジャンパーピンを設置してください。設置しないと電源が入らないです(試さない方がいいですよ、笑)。

スタートキットの箱です。

ジャンパーピンが見えますか?

続いて、Jetson nanoの本体です。黒いプラスチックの袋に入っています。しっかりカード!

この白いボードがあとで、Jetson nanoの台になります。

Jetson nanoの箱も廃棄しないで、この台をダンボールの箱に配置しますから、ネット上で、これを分からず、くちゃくちゃにしたケースがあります。笑。留意してください。

出てきました!

Jetson nanoをじっくりみましょう

もうちょっとしっかり見ていきましょう!(カメラモジュールが付いていますが、気にしないでください。笑)

熱シンクが大きいですね。

あとで、また触れますが、Jetson nano使用時結構発熱します。

好奇心に負けて、Jetson Nanoのモジュールを外してみました。

丁寧に、ネジを外して、分解しましょう。

熱シンクの付いていない、背面

写真の中に、私がすでにmicroSDカードを装着しています。

あと、OSの起動からサンプルプログラムを動かすまで、説明します。

写真にあるJetson Nanoのモジュールの右上、wifiのモジュールを設置する場所だそうです。でも今は早く市場に出すために、技適の申請を後にしたのかもしれないと言う推測もあります。

Jetson Nanoのモジュールだけでしたら、Raspberry Pi 3よりも小さいですが、本体と合体すると、Raspberry Piより一回り大きいです。

モジュールを外した本体のボードにはイーサネットのICとM2に見えるスロットがあります。

電源、HDMI、USB、LANなどの接続が可能です。

私がすでに、カメラモジュールを接続していますが、こちらは実はRaspberry Piのカメラモジュールです!刺してすぐ使えます!

カメラモジュールのスロットの右側、こちらはスタートキットの電源を使えるためのシャンパーピン。こう言うふうに設置しておいてください。

最後もう一枚、Jetson nanoモジュールのクローズアップ写真です。

一通り観察しましたので、Jetson nanoモジュールを本体に戻して固定します。しっかりネジを回しましょう!

戻りました!

Jetson nanoとRaspberry Pi 3Bの背比べ

サイズ感を把握するために、ちょっとRaspberry Pi 3Bと比較してみます。

隣において、こんな感じです(Raspberry PiにLoraWanのHATが付いていますが、気にしないでください)。

Jetson nano専用のOSを用意しましょう

Jetson nanoは実はUbuntuを使っています。

起動させる前には、microSDカードに、OSのイメージを焼く必要があります。

Jetson nano専用のmicroSDのイメージはこちらのページに記載されています。

https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write

SDカードのイメージを焼くに使っているのは、Etcherです。ダウンロードしたイメージファイルをEtcherを使って、microSDカードに書き込みます。

書き込みが完了したら、次のステップに進みます。

Raspberry Pi OSインストール

Jetson nano Power ON!

microSDカードをJetson nanoに挿入して、周辺のキーボード、マウス、LANケーブル、モニター全部接続したら、いよいよ電源をしれましょう!

そうすると、Ubuntuのインストール画面が表示されます!

 

Jetson nano Ubuntuの起動

ほぼ全てがそのままにインストールを完了させたら、初めて、Jetson nanoのOS(Ubuntu)が起動します!

Jetson nano OSの更新

いつも恒例の手順です。

sudo apt-get update
sudo apt-get upgrade

 

当たり前ですが Jetson nanoは普通にUbuntu/Linuxマシンとして使えます。しかもすごいGPUが付いています!これから機械学習、深層学習を勉強したい、あるいは、ちょっと遊びたい人にとっては専属のマシンがあるととても便利ですね。

 

Jetson nanoサンプルコード

Jetson nanoのみならず、Jetson家族のサンプルコードをNvidiaが用意してくれています。

今回は、まずこちらから、スタートしてみます!

https://github.com/dusty-nv/jetson-inference

最初は、サンプルを動かすために JetPackのインストールが必要云々があったのですが、実は今回使っているmicroSDカードのイメージにはすでに全て必要なパッケージ、ライブラリなどが含まれています!

いきなり、サンプルコードをコンパイルして、動かすことが可能です!

まずは

sudo apt-get install git cmake

gitとコンパイルに必要なcmakeをとってきます。

次は

git clone https://github.com/dusty-nv/jetson-inference
cd jetson-inference
git submodule update --init

レポジトリをcloneをします。場所はホームディレクトリで問題ないでしょう。

それから、cloneしたディレクトリに入って、依存するモジュールも全部とってきます。

次は

mkdir build
cd build
cmake ../

buildというビルド用のフォルダを作って、buildディレクトリに入って、cmakeでコンパイルの準備をします。

Jetson nanoサンプルコードのコンパイル

次は

cd jetson-inference/build
make
sudo make install

jetson-inference/buildのディレクトリにいることを確認して、makeでコンパイルします。その後、make installでインストールを完成させます。

コンパイルとインストールは割とすぐ終わります。数分程度だった気がします。

Jetson nanoサンプルコードを動かそう!

次は

cd jetson-inference/build/aarch64/bin

上のディレクトリに移動します。

ここにいくつかのプログラムがすでに(コンパイルとインストールで)用意されています。

まず1回目下記のコマンドを実行しましょう(Terminalで)

./imagenet-console orange_0.jpg output_0.jpg

orange_0.jpgという写真をインプットとして、認識した結果をoutput_0.jpgに書き込みます。

1回目の実行は、ニューラルネットワークの最適化で数分かかります。2回目からは早くなります。数秒で結果が出ます。

ミカンだけではなく、リンゴも認識できます!

Jetson nanoとRaspberry Piのカメラモジュール

前の写真にすでにネタバレしましたが、実はJetson nanoはそのままRaspberry Piのカメラモジュールが使えます!

実際に、Jetson nanoでビデオストリームから物体認識させるのは下記のコマンドとなります。すぐ試せます!

./imagenet-camera googlenet           # googlenetを使う場合
./imagenet-camera alexnet             # alexnetを使う場合

そうすると、画面に物体を認識する文字が表示されるはずです。

ちなみに、これ実行しっぱなしにすると、Jetson nanoの熱シンクが相当熱くなります!火傷しないように注意してください!

まとめ

いかがですか?

SDカードのイメージを用意することで、事前に様々なツールやライブラリなど用意してくれて、面倒な設定とインストールもほぼなしで、すぐサンプルコードを試すことができました。

また、Raspberry Piと比べて少し大きいですが、それでも人の手に収まる程度の大きさで、Raspberry Piを拡張する方法もありますが、こちらのNvidiaの技術も入って、4GBまでメモリが用意されて、Ubuntuの環境というメリットもあります。

また、Raspberry Piと同様に、40の 拡張ピンも用意されて、たくさんの可能性が秘めています。

これからも色々実験して、またその知見を共有したいと思います!

[amazonjs asin=”B07R6K7FF2″ locale=”JP” title=”NVIDIA JetpackがサポートするAI開発のための小型で強力なコンピュータ ジェットソン ナノデベロッパーキット”]

[amazonjs asin=”B06XPFH939″ locale=”JP” title=”NVIDIA Jetson tx2開発キット”]

[amazonjs asin=”B07BFH96M3″ locale=”JP” title=”RSコンポーネントRaspberry Pi 3 B +マザーボード”]

[amazonjs asin=”B01ER2SKFS” locale=”JP” title=”Raspberry Pi Camera Module V2 カメラモジュール (Daylight – element14)”]

モバイルバージョンを終了