Jetson NanoでYoloをすぐ利用する


Jetson NanoでYoloをすぐ利用する

Jetson Download Center でSD Card Imageをダウンロードする

この5GバイトISOファイルの中にCudaやOpenCv、TensorRTが既にインストールされおり、開発環境を整えずにOSをインストールすればすぐに利用することができます。(パスは設定する必要あり)

インストールされているソフトの中身はここから見ることができます
JetPack

  • TensorRT
  • cuDNN
  • CUDA
  • Multimedia API
  • Developer Tools
  • 他 DeepStrem SDK

Cudaのパスを設定する

# vimをインストール
sudo apt install vim

$ sudo vim ~/.bashrc

export PATH=/usr/local/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}

#保存する
$ source ~/.bashrc

# 確認する
$ nvcc -V

Yoloを試してみる

$ sudo apt install git

$ git clone https://github.com/AlexeyAB/darknet.git

$ cd darknet

darknet$ vim Makefile
#GPU CUDNN OEPNCVの設定を有効にする
GPU=1
CUDNN=1
OPENCV=1

darknet$ make

#weightsをダウンロード
$ wget https://pjreddie.com/media/files/yolov3.weights

#Yoloを実行してみる
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg


インストールでつまずくことなくYoloを試すことができました。

Cudaに元々あるサンプルプログラムを試してみる

Cudaのフォルダの中に試すようにサンプルファイルがあります。
このファイルをmakeでビルドし、Cudaが実行できるか試せします。

# 既にパスが通った状態でshファイルを実行する samplesのバージョンは確認ください
$ cuda-install-samples-10.0.sh フォルダ名

$ cd フォルダ名/NVIDIA_CUDA-10.0_Samples

$ make

$ cd NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release

$ ./deviceQuery

$ ./bandwidthTest

$ ./volumeRender 


簡単に実行できました。

Jetson RaspberryPi の画面をPCディスプレイに表示させる

感想

数学の知識が必須で難しいと思われていた機械学習、深層学習もNvidiaが提供してくれるソフトを使えば、関数を叩くだけである程度のことができてしまう。Webプログラマーやスマホアプリ開発者でも参入できる気がしてきました。物体検出を例に取れば、Yoloというソフトがあり、1から独自開発の検出プログラムを書かなくてもライブラリーの関数を組み合わせればできる気がする。Nividiaのライブラリー物体検出、物体分類、骨格検出、映像の配信などがあり、これらを中心に学んでいければ、難しいことをやらなくても、関数を組み合わせていけば開発できるのではないか?仕事にできるのではないか?そういう気がしています。
pythonも環境が整ってきています。Pylance(インテリセンス)やPyright(型指定)を拡張するライブラリーがでてきており、静的言語やる感覚でかけそうな気がします。
PythonとNividaのライブラリを勉強すれば、他業種のプログラマーでも仕事にありつけるかもしれない。

Jetsonに含まれているソフト群

Jetson実用例 50例以上
Gitソースとビデオと作り方が載っています

Jetson Yolo USBカメラで物体を認識させる


現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
Pythonを学ぶ際にとても役に立ちました!


NVIDIA Jetson Nano 2GB 開発者キット