Skip to content

CIT-Autonomous-Robot-Lab/jetson_xavier_nx_ubuntu20.04_yolov5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

jetson_xavier_nx_ubuntu20.04_yolov5

Jetson Xavier NX Dev kit でYOLOv5をGPUで動かすまでの手順
準備するもの  

  • Jetson Xavier NX Developer Kit
  • SDカード 32GB以上のもの
  • Micro USB Type-B(2.0)とPCをつなぐデータ転送ができるタイプのケーブル 
      

1:JetsonへのOSのインストール

OSイメージのダウンロード

次のサイトから
Jetson Xavier NX Developer Kit SD Card Image をダウンロードする
https://developer.nvidia.com/embedded/downloads
ここではJetPack 5.0.2.をダウンロード

この一つ前のバージョンのJetPack 4.6.1. はUbuntu 18.04でJetPack 5.0.2.では Ubuntu 20.04 が起動する

image

SDカードへの書き込み

ダウンロードしたファイルを balenaEtcher や Raspberry Pi Imager を用いてSDカードに書き込む
書き込み終了後JetsonにSDカードを差し込み起動するか確認する  


うまく起動した場合は運がいい
なぜだかうまくいかないことが多発している
原因の可能性  https://forums.developer.nvidia.com/t/boot-failed-with-find-partition-via-pt-failed/172663/9

起動後はこちらのサイトを参考にSSDにシステムボリュームを変更する
NVIDIA Jetson Xavier NXのシステムボリュームをNVMe SSDに切り替える

うまく起動しなかった場合

別のインストール方法を行う(こちらのほうが時間がとてもかかる)
NVIDIA SDK Managerをインストールする
NVIDIAのアカウント登録が必要
https://developer.nvidia.com/nvidia-sdk-manager


image 指示に従い全部インストールする

インストール後CUDAサンプルを用いてGPUの確認を行う

jetsonのインストールを行うと自動でCUDAのサンプルが入っている
usr/local/cuda-11.4内のsamplesをホームに持ってくる samples/5_Simulations 内のサンプルのどれかに入りmakeを動かそうとすると
libGLU.soとglu.hがないと言われることがある Screenshot from 2022-10-21 15-57-29 その場合は
sudo apt install freeglut3-dev libglu1-mesa-dev
これを入力してインストールを行うと無事makeが走るようになる Screenshot from 2022-10-21 16-02-00 参考にしたサイト https://ksakiyama134.hatenablog.com/entry/2016/09/25/005130

実行例

マウスカーソルを動かして反応するか試す

Pytorch

Jetsonでは通常のpipでインストールしたPytorchでは動かずうまくGPUを使うことができない
さらにエラーも出ないので最初はわけがわからなかった
このようになにか調子が悪いと思ったらその状況をJetson xavier nx特有の問題か調べることが必要となる
NVIDIA公式サイトからインストールを行う
https://docs.nvidia.com/deeplearning/frameworks/install-pytorch-jetson-platform/index.html

以下は上記サイトを参考にした
まずsudo apt updateを行う
Pytorchに必要なパッケージをインストールする

sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev;

エクスポート から インストールまで

export TORCH_INSTALL=https://developer.download.nvidia.com/compute/redist/jp/v50/pytorch/torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
これはJetpack5.0.2用のコマンドで自分のバージョンに応じて/jp/v502/の部分を適宜変更する

export TORCH_INSTALL=path/to/1.13.0a0+d0d6b1f2.nv22.09

python3 -m pip install --upgrade pip; python3 -m pip install aiohttp numpy=='1.19.4' scipy=='1.5.3' export "LD_LIBRARY_PATH=/usr/lib/llvm-8/lib:$LD_LIBRARY_PATH"; python3 -m pip install --upgrade protobuf; python3 -m pip install --no-cache $TORCH_INSTALL
よくわからないエラーが出ているがインストールはできる

Torchvision

また当然pytorchのバージョンに対応したtorchvisionをインストール必要がある
対応しているバージョンは各々の環境で確認が必要
上のコマンドで入れた人は0.13になるので以下のコマンドを入れる
git clone --branch v0.13.0 https://github.com/pytorch/vision torchvision
cd torchvision

権限を求められるので/usr/lib/python3.8に与える
sudo chmod 777 -R /usr/lib/python3.8
python3 setup.py install
このあとかなり時間がかかってインストールされるので待機
Pytorchとtorchvisionのインストールが終わったら
pip list   で確認を行う。うまくインストールされると下のような表示になる
Screenshot from 2022-09-01 00-29-25

YOLOv5

githubからYOLOv5のファイルをインストールする

git clone https://github.com/ultralytics/yolov5
cd yolov5

パッケージのインストール

次に入力するコマンドでrequirements.txtというファイル内に書かれているパッケージがインストールされるのだが、このままだと先程とは違うバージョンのtorchとTorchivsionをインストールしようとするため、requirements.txtのPytorchとTorchivsionの部分を以下のようにコメントアウトしてからコマンドを入力
Screenshot from 2022-11-03 16-09-16

sudo pip3 install -r requirements.txt
sudoをしっかりつけることが重要
pip list で多くのパッケージがインストールされたのを確認する

YOLOv5を実行

YOLOv5内にはもとからサンプル画像が入っているのでそちらを使って実行してみる
python3 detect.py --source ./data/images/bus.jpg
ここでIPythonやtqdmやseabornがないと言われた場合は
sudo pip3 install ipython などそれぞれpipでインストールを行う
Screenshot from 2022-11-03 16-20-36

最初の実行時には学習データのインストールがされるため少し時間がかかる
ここで注目してほしいのが実行画面の最初の一文の最後で
CUDA:0 (GPUの名前, ~~MiB)と出る
ここでCPUと出ているとうまくインストールができていないか依存関係が間違っているのでやり直す
Screenshot from 2022-11-03 16-30-00


うまく動くと`runs`というファイルの中に結果のファイルがdetect~という名前が作成される

YOLOv5のオプションについて

python3 detect.pyのあとに様々なオプションを設定することができる
ここでは最低限のもののみ説明する

source

--sourceコマンドは画像認識するターゲット(ソース)の設定を行う先程のように画像のパスを渡したり、ファイル名/*を入力するとファイル内の画像すべてを選択したりできる
webカメラを接続してリアルタイムで行いたい場合は--source 0でカメラからの動画をソースに設定できる
もしつながらない場合はlsusbで番号を調べることができる

weight

--weightコマンドは使用する学習データを変更できる
なにも入れない状態では--weights yolov5s.ptというサンプルの学習データがデフォルトに設定されている

conf

--confコマンドは尤度の設定で0.~の1未満で設定してそれ以下の場合の認識を表示しなくなる
簡単にいえば似ている度合いの基準を設定できて、ある程度似ているなら表示や完璧にそっくりなもののみ表示といったことができる
デフォルトでは0.25に設定されている

以上でインストールは完了

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published