前回の記事では、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
の動作を確認します。以下のように True
と pytorch
の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)
以上です!