Jetson Orin Nano – PyTorch setup and Yolov8

Jetson Orin

前回の記事では、Jetson Orin NanoをNVMeストレージから起動させる方法について解説しました。今回は PyTorch を導入し、Yolov8 を実行します。セットアップがまだの場合事前に前回の記事を参考にセットアップを実施してください。

CUDAの導入

CUDAを導入します。

sudo apt update
sudo apt install -y cuda libcudnn8Code language: Bash (bash)

その他パッケージの導入

その他 Python 実行に必要なパッケージを導入します。

sudo apt install -y python3-pip python3-venv libopenblas-devCode language: Bash (bash)

PyTorch などのライブラリを venv 環境にインストールするため、Yolov8 レポジトリをcloneし、その下に venv 仮想環境を作成します。

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
python3 -m venv venv
source venv/bin/activate
pip install -U pipCode language: Bash (bash)

PyTorchの導入

今回 Jetson Linux 36.2 (=JetPack 6.0 DP(=Developer Preview)) を使用していますので https://developer.download.nvidia.cn/compute/redist/jp/v60dp/pytorch のディレクトリにブラウザでアクセスし、最新のパッケージを確認します。

現時点で最新のパッケージは torch-2.2.0a0+81ea7a4.nv24.01-cp310-cp310-linux_aarch64.whl であることがわかりました。

wget https://developer.download.nvidia.cn/compute/redist/jp/v60dp/pytorch/torch-2.2.0a0+81ea7a4.nv24.01-cp310-cp310-linux_aarch64.whlCode language: Bash (bash)

ダウンロードしたパッケージをインストールします。numpy も合わせてインストールします。

pip install ./torch-2.2.0a0+81ea7a4.nv24.01-cp310-cp310-linux_aarch64.whl
pip install numpyCode language: Bash (bash)

一度 pytorch の動作を確認します。以下のように Truepytorch のversionが表示されれば成功です。

$ python3 -c "import torch;print(torch.cuda.is_available(), torch.__version__)"
True 2.2.0a0+81ea7a4Code language: Bash (bash)

PyTorchVisionの導入

こちらの https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048 torchvision のセクションを参考に PyTorchVision をインストールします。なお https://github.com/pytorch/vision/blob/main/README.md の情報からPyTorch 2.2.0に対応するPyTorchVision のバージョン torchvision==0.17 をインストールします。

sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.17.0 https://github.com/pytorch/vision torchvision
cd torchvision
pip install packaging
export BUILD_VERSION=0.17.0  
python3 setup.py install
cd ..Code language: Bash (bash)

Yolov8の導入

https://docs.ultralytics.com/ja/quickstart/#__tabbed_1_3 にしたがって Yolov8 のインストールを行います。

pip install -e .Code language: Bash (bash)

Yolov8 をWebカメラ映像に対してセグメンテーションを実行してみます。

yolo predict model=yolov8m-seg.pt source=0 show=TrueCode language: Bash (bash)

うまく実行できているようです。上記の yolov8m-seg.pt モデルで16FPS程度出ているようです。

最後に pip freeze の出力を掲載します。問題が発生した場合は以下のバージョン情報を参考にしてください。

$ pip freeze 
certifi==2024.2.2
charset-normalizer==3.3.2
contourpy==1.2.0
cycler==0.12.1
filelock==3.13.1
fonttools==4.49.0
fsspec==2024.2.0
idna==3.6
Jinja2==3.1.3
kiwisolver==1.4.5
MarkupSafe==2.1.5
matplotlib==3.8.3
mpmath==1.3.0
networkx==3.2.1
numpy==1.26.4
opencv-python==4.9.0.80
packaging==23.2
pandas==2.2.0
pillow==10.2.0
psutil==5.9.8
py-cpuinfo==9.0.0
pyparsing==3.1.1
python-dateutil==2.8.2
pytz==2024.1
PyYAML==6.0.1
requests==2.31.0
scipy==1.12.0
seaborn==0.13.2
six==1.16.0
sympy==1.12
thop==0.1.1.post2209072238
torch @ file:///home/jetson/torch/ultralytics/torch-2.2.0a0%2B81ea7a4.nv24.01-cp310-cp310-linux_aarch64.whl#sha256=10b9966e419ab76b07912377da299a12ea3c49d310c81ff5af359a1de23e1afb
torchvision==0.17.0
tqdm==4.66.2
typing_extensions==4.9.0
tzdata==2024.1
-e git+https://github.com/ultralytics/ultralytics.git@fbed8499da8e499248c401cc5c1648a0a35c5a73#egg=ultralytics
urllib3==2.2.0Code language: Bash (bash)

以上です!

Reference

Installing PyTorch for Jetson Platform - NVIDIA Docs
This guide provides instructions for installing PyTorch for Jetson Platform.
PyTorch for Jetson
Below are pre-built PyTorch pip wheel installers for Jetson Nano, TX1/TX2, Xavier, and Orin with JetPack 4.2 and newer. Download one of the PyTorch binaries f...