Jetson Orin部署YOLOv11:推理速度提升3倍的完整指南
Jetson Orin部署YOLOv11:推理速度提升3倍的完整指南
适合人群:需要把YOLOv11部署到边缘设备的工程师
阅读时间:约14分钟
目标硬件:Jetson Orin Nano / Orin NX / Orin AGX
前言
把模型从训练机搬到Jetson上跑,很多同学第一步就卡住了——环境怎么装、模型怎么转换、速度怎么优化。网上的教程要么太旧(还教装JetPack 4.x),要么太浅(没说TensorRT怎么搞)。
本文用Orin Nano做演示(Orin NX/AGX步骤基本相同),从刷机到跑通,一套全流程。
一、硬件选型参考
| 型号 | 算力(TOPS) | 内存 | 功耗 | 价格 | 适用场景 |
|---|---|---|---|---|---|
| Orin Nano 4GB | 20 | 4GB | 7~15W | ~$250 | 单路摄像头、简单检测 |
| Orin Nano 8GB | 40 | 8GB | 7~15W | ~$350 | 多路摄像头、中等模型 |
| Orin NX 8GB | 70 | 8GB | 10~25W | ~$600 | 复杂检测、2~4路并行 |
| Orin NX 16GB | 100 | 16GB | 10~25W | ~$900 | 大模型、多路并行 |
| Orin AGX 32GB | 200 | 32GB | 15~50W | ~$2000 | 高端场景、多模型 |
推荐:工业单路检测选Orin Nano 8GB,性价比最高。
二、系统安装
2.1 刷JetPack
# 在主机上安装 NVIDIA SDK Manager# 下载地址:https://developer.nvidia.com/sdk-manager# 连接Orin,进入recovery模式(按住Recovery按钮,按一下Reset)# 打开SDK Manager,选择:# - Target Hardware: Jetson Orin Nano# - OS: JetPack 6.0 (基于Ubuntu 22.04 + CUDA 12.2)# - 勾选: Jetson Runtime, CUDA, cuDNN, TensorRT, OpenCV# 等待刷机完成(约20~30分钟)刷机完成后首次启动Orin,进入Ubuntu系统:
# 检查环境cat/etc/nv_tegra_release# 应该显示: R36 (release), REVISION: 3.1, GCID: 35697395nvidia-smi# 显示Jetson GPU信息nvcc--version# 显示CUDA 12.22.2 系统优化
# 开启MAXN模式(最大性能模式)sudonvpmodel-m0# 开启所有CPU核心满频sudojetson_clocks# 关闭图形界面(节省约1GB内存和10W功耗)sudosystemctl set-default multi-user.targetsudoreboot# 创建swap(4GB内存容易不够用)sudofallocate-l8G /var/swapfilesudochmod600/var/swapfilesudomkswap/var/swapfilesudoswapon/var/swapfileecho'/var/swapfile none swap sw 0 0'|sudotee-a/etc/fstab三、安装Python环境
Jetson上不能用pip直接装PyTorch(需要用NVIDIA提供的预编译版本):
# 安装系统依赖sudoapt-getupdatesudoapt-getinstall-ypython3-pip libopenblas-base libopenmpi-dev libomp-dev# 创建虚拟环境python3-mvenv ~/yolo11_envsource~/yolo11_env/bin/activate# 安装PyTorch(Jetson专用版本)pipinstall--no-cache https://developer.download.nvidia.com/compute/redist/jp/v61/pytorch/torch-2.3.0-cp310-cp310-linux_aarch64.whl# 安装torchvision(需要从源码编译)sudoapt-getinstall-ylibjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev pipinstalltorchvision==0.18.0# 安装Ultralyticspipinstallultralytics>=8.3.0# 验证python3-c"import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA: {torch.cuda.is_available()}')"# 输出: PyTorch: 2.3.0, CUDA: True四、模型转换(PyTorch → TensorRT)
这是提速最关键的一步。
4.1 导出ONNX
# export_onnx.pyfromultralyticsimportYOLO model=YOLO("yolo11s.pt")# 先下载好权重# 导出ONNXmodel.export(format="onnx",imgsz=640,opset=17,simplify=True,dynamic=False,# 固定输入尺寸,TensorRT优化更好half=False# 先导出FP32的ONNX)print("导出完成:yolo11s.onnx")4.2 转TensorRT引擎
# 方式一:用trtexec命令行转换(推荐,更稳定)/usr/src/tensorrt/bin/trtexec\--onnx=yolo11s.onnx\--saveEngine=yolo11s.engine\--fp16\--workspace=4096\--minShap