#はじめに
会社の同僚とJetson Nanoを使用して、YOLOによる物体検出にチャレンジしてみました。
①【基本】Jetson Nanoの設定
②【基本】Jetson Nano上で物体検出YOLOの実行
③【発展】オリジナルモデルを作成して実行
今回は①Jetson Nanoの設定編となります。
実際に購入したもののリンクも貼り付けますので、参考にしてみてください。
#1. 用意するもの
- NVIDIA Jetson nano開発者kit
- Wifi 無線LAN 子機
→無線LANを使用するなら必要。こちらを購入しました。
- microSDカード
→64GBのものを使用 - USBカメラ
→Amazonで1,000円くらいのものを購入しました。
解像度が高すぎると、処理が重くなりますので、こんな感じの低いものでいいです。
- HDMIケーブル、HDMI接続可能なモニター
→モニターについては、TVがHDMI接続可能であれば、TVでも大丈夫です。
- 電源アダプター
→USB給電もできますが、物体検出を行うなら電力不足になります。
4A-5VのJ25電源アダプターが必要となります。 - USBマウス、USBキーボード
#2. ジャンパーピンのセッティング
電源アダプターからの給電を行うために、J48ヘッダーに2.54mmピッチのジャンパーピンを取り付ける必要があります。
ジャンパーピンは開発者キットに付属していました。
付属していないときもあるみたいなので、なければ購入が必要です。
#3.microSDへOSのインストール
Windowsパソコンを使用してmicroSDにOSをインストールしましょう。
##OS「JetPack」のダウンロード
NVIDIA公式サイトから「JetPack」をダウンロードします。NVIDIA社のJetPackページにパソコンでアクセスし、公式サイトから最新版のOSイメージをダウンロードします。下記画像のJETSON NANO DEVELOPER KITSのDownload the SD Card Imageをクリックを選択します。
zipファイルがダウンロードされますので、展開しておきましょう。
拡張子が.imgとなっているファイルがあるはずです。この後使用します。
https://developer.nvidia.com/embedded/jetpack
##SDカードのフォーマット
microSDカードを初期化(フォーマット)します。SD Associationが提供する「SDカードフォーマッター」をダウンロードしてインストール後、クイックフォーマットでフォーマットします。
https://www.sdcard.org/jp/downloads/formatter/
##SDカードに書き込む
balenaEtcherというソフトを使用するため、下記サイトからインストールをしてください。
balenaEtcherを起動後、Select imageをクリックして、先ほどダウンロードした「~.img」ファイルを選択します。
Select targetでは、先ほどのSDカードを選択します。
最後にFlash!を選択すれば、書き込みが開始されます。時間がかかるので、気長に待ちます。
https://www.balena.io/etcher/
#4. Jetson Nanoの初期設定
microSDカードを挿入し、USBポートにWifi無線LAN子機/キーボード/マウス、HDMIでディスプレイを接続した状態で電源アダプターを差し込むと電源が入ります。
あとは表示内容に従って、設定を行いましょう。
注意事項ですが、言語選択についてはEnglishを選択しましょう。
日本語にすると、ディレクトリが日本語になってしまい、余計なことで悩まされることになります。
#5. Swapの設定
Jetson Nanoには4GBのメモリが積まれていますが、物体検出を行うためには、不十分な容量となります。microSDを仮想メモリとして利用するために、Swapファイルを作成しましょう。
以下のコマンドを実行すれば、4GBのSwapファイルを作成することができます。
# Swapファイルの作成
sudo dd if=/dev/zero of=/var/swapfile bs=1G count=4 #4GB
sudo mkswap /var/swapfile #Swapファイルの初期化
sudo chmod 600 /var/swapfile #ファイル権限の変更(rootユーザーのみがアクセス可能)
countの値を変更することで、Swapファイルの大きさを変更することができます。
また、Jetson Nano起動時に、自動的にSwapファイルをマウントするためには/etc/fstabファイルを開き、末尾に下記の一行追加します。
/var/swapfile none swap swap 0 0
ここで再起動するか、再起動せずにSwapファイルを有効化するためには下記コマンドを実行してください。
# Swapファイルの有効化
sudo swapon /var/swapfile
free -m
コマンドを実行すれば割り当てられているSwap領域のサイズを確認することができます。(初期状態で2GBのSwap領域が割り当てられているので、6GBになるはずです。)
※参考:【Linux】スワップ領域の作成
#6. パフォーマンス最大化
最大パフォーマンスを発揮するために、パワーモードを変更しましょう。
下記を実行するだけでパフォーマンスを最大化することができます。
sudo nvpmodel -m 0
sudo jetson_clocks
#まとめ
以上でJetson Nanoの設定は完了です。
次回はJetson Nano上で物体検出を実行してみます。
⇒https://qiita.com/Kim_Burton/items/455d21c8eb9da687aecc
##参考文献
##謝辞
本内容については、会社の同僚の三原さんと一緒に検証した内容になります。
また、コネクタ周りは元同僚の崔さんに確認いたしました。
この場をお借りして御礼申し上げます。