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 libcudnn8
Code language: Bash (bash)

その他パッケージの導入

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

sudo apt install -y python3-pip python3-venv libopenblas-dev
Code 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 pip
Code 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.whl
Code language: Bash (bash)

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

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

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

$ python3 -c "import torch;print(torch.cuda.is_available(), torch.__version__)" True 2.2.0a0+81ea7a4
Code 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=True
Code 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.0
Code 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...