Jetson Nano で YOLOv5 を動かすための手順を書き留めておきます。
Pythonのインストール
Pythonのバージョンを確認します。Ptthon 2.7.17 も一緒にインストールされているのでコマンドは python3 を使う必要があります。
1 2 3 4 |
$ python3 -V Python 3.6.9 $ which python3 /usr/bin/python3 |
3.6 は少し古いので不安です。最新は 3.10 ですが、新しすぎるのも不吉なので、現時点で安心感のある 3.8 をインストールすることにします。Python Japan のページにリンクがあるのでソースコードをダウンロードします。
各OS用にコンパイルされたものではなく、”Source” のタブで 3.8 の中で一番新しいものをダウンロードします。これをコンパイルしてインストールしていきます。手順はダウンロードページの下の方に書いてあります。念の為実行するコマンドを下に示します。
1 2 3 4 5 6 |
$ sudo apt install build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-dev zlib1g-dev uuid-dev tk-dev $ tar xJf Python-3.8.12.tar.xz $ cd Python-3.8.12 $ ./configure $ make $ sudo make install |
終わるまでに15分くらいかかります。インストールできたらバージョンを確認します。
1 2 3 4 |
$ python3 -V Python 3.8.12 $ which python3 /usr/local/bin/python3 |
実行環境の設定
まだ virtualenv をインストールしていなければ、インストールしておきます。
1 |
$ sudo apt install virtualenv |
システム環境を汚したくないので、YOLO用にディレクトリを作って、Python の環境を切っておきます。
1 2 3 |
$ cd test # 適当に作ったワークディレクトリで作業開始 $ virtualenv -p python3.8 yoloenv # yoloenvという名前で環境を作る $ source yoloenv/bin/activate # 専用環境を有効化 |
コマンドプロンプトの前に環境名 (yoloenv) と表示されます。
YOLOv5をインストール
GitHubからYOLOv5をクローンします。
1 2 3 |
(yoloenv) $ git clone https://github.com/ultralytics/yolov5 (yoloenv) $ cd yolov5 # yolov5というディレクトリができているので潜っていく (yoloenv) $ pip3 install -r requirements.txt # 必要なものをインストール |
エラーが出ていない事を確認したら完了。
物体認識をためす
WEBカメラで物体認識する。コマンド実行してから少し時間かかります。
1 |
(yoloenv) $ python3 detect.py --source 1 |
これでUSBカメラ(/dev/video1)からの実行はできました。Jetson専用カメラ(/dev/video0)はこのままでは動きませんでした。何か追加作業が必要なようです。
動画を認識させる。ファイルは実行ディレクトリに置いておきます。結果は実行ディレクトリの の runs/detect 以下に保存されます。
1 |
(yoloenv) $ python3 detect.py --source video.mp4 |
写真を認識させる。ファイルはサンプルのものを使いました。結果は実行ディレクトリの の runs/detect 以下に保存されます。
1 |
(yoloenv) $ python3 detect.py --source ./data/images/bus.jpg |
また、GPUが効いていることの確認も未だできていません。
jtopコマンドをインストール
次のコマンドを実行すると jtop がインストールされます。
1 |
$ sudo pip3 install jetson-stats |
インストールが終わったらログインしなおすか、再起動して jtop コマンドを実行してください。
1 |
$ jtop |
Windowsのタスクマネージャのように、CPUやGPUの使用率が表示されます。