Deploy YOLO on Nvidia Orin NX¶
在 ARM64(aarch64) 架构的 Nvidia Jetson Orin NX 系统上部署 YOLO 目标识别。
首先确认 Jetson 设备信息:
安装 jet-pack
.
安装相关依赖:
Bash
sudo apt install libopenblas-dev
sudo apt install ros-noetic-cv-bridge
sudo apt install python3-rospkg
创建虚拟环境:
安装 Python 包:
Bash
source ~/venv/yolo/bin/activate
pip3 install -U pip
pip3 install ultralytics
pip3 install rospkg catkin_pkg
安装 ultralytics
的过程中会自动安装依赖 torch, torchvision
,但是我们需要使用的是 NVIDIA 专门为 Jetson 设备开发的预编译版本,具体版本要求可参考 NVIDIA 官网 Pytorch for Jetson.
我们需要先卸载 torch, torchvision
,然后再手动安装与设备匹配的特定版本:
先安装 torch 的时候会警告:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
ultralytics 8.3.169 requires torchvision>=0.9.0, which is not installed.
是因为不满足 torchvision 的依赖,而我们稍后就会安装 torchvision,因此可忽略此警告。
Bash
pip3 uninstall torch torchvision
# install torch
cd ~/Downloads
wget https://developer.download.nvidia.com/compute/redist/jp/v512/pytorch/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
pip3 install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
# install torchvision
git clone --branch v0.16.2 https://github.com/pytorch/vision.git
cd vision
export BUILD_VERSION=0.16.2
python3 setup.py install
安装完成后,可运行以下代码验证是否安装成功、CUDA 是否可用:
Python
import torch
import torchvision
print(torch.__version__)
print(torch.cuda.is_available())
print(torchvision.__version__)