Jetson Orin NX 部署YOLOv12笔记

步骤一.创建虚拟环境

python 复制代码
conda create -n yolov12 python=3.8.20

注意:YOLOv12/YOLOv11/YOLOv10/YOLOv9/YOLOv8/YOLOv7a/YOLOv5 环境通用

步骤二.激活虚拟环境

python 复制代码
conda activate yolov12  #激活环境

步骤三.查询Jetpack出厂版本

Jetson系列平台各型号支持的最高Jetpack版本:

注意:涉及JetPack版本大升级5->6,需要用官方工具重做系统,

查看当前出厂版本

python 复制代码
apt-cache show nvidia-jetpack  #查看jetpack版本

步骤四.Pytorch安装

安装流程(关键)

YOLOv12官方配置环境要求Pytorch版本为2.2.2,笔者JetsonOrinNX的出厂JetPack版本为5.1.3,故按照英伟达官方对于Jetson提供的预编译包链接,选择链接中最贴近2.2版本的torch进行离线下载,再用命令行进行安装。

离线安装:

Torch下载链接

http://​ developer.download.nvidia.cn/compute/redist/jp/v51/pytorch/ ​

注意:链接中的v51就是jetpack5.1版本,大家可根据自己版本修改此处,得到新链接内容,再选择需要的torch版本。

链接打开后如图所示:

安装指令

python 复制代码
pip install path to xx.whl   #安装该文件

注意:此处的安装文件名中的cp38是python3.8版本的意思,故在虚拟环境中安装python版本时也要对应于此

在线安装

python 复制代码
sudo python3 -m pip install --no-cache https://developer.download.nvidia.cn/compute/redist/jp/v51/pytorch/torch-2.0.0a0+8aa34602.nv23.03-cp38-cp38-linux_aarch64.whl

验证是否安装成功

python 复制代码
conda list torch #查看目标环境是否安装torch
python 复制代码
python -c "import torch; print(torch.__version__)"   #打印torch版本

步骤五.安装其他依赖项

python 复制代码
pip install -r requirements.txt   #集群安装

步骤六.运行YOLOv12

python 复制代码
python detect.py   #运行脚本

最后.可能遇见的问题与解决方法

1.报错torch与torchvision不兼容

解决方法:删掉原版本,安装新版本

相关指令:

python 复制代码
python -c "import torch; import torchvision; print(f'torch version: {torch.__version__}, torchvision version: {torchvision.__version__}')"   #检查当前安装的 torch 和 torchvision 版本
python 复制代码
pip uninstall torchvision   #清理旧版本
rm -rf ~/.cache/pip
rm -rf /home/jetson/.local/lib/python3.8/site-packages/torchvision*   #删除可能冲突的缓存文件
conda install torchvision=0.15 -c pytorch  #指定安装版本
sudo apt-get install libjpeg-dev libpng-dev   #torchvision 需要 libjpeg 和 libpng 库来支持图像处理功能,安装依耐项

#验证torchvision 的 C++ 扩展是否加载成功
import torchvision
print("Torchvision loaded successfully")

解决此问题用了一些时间,最后在安装依赖项时,系统自动下载了torch2.3,手动升级了对应的torchvision到1.8,解决了该问题。

2.JetPack SDK官方参考资料

JetPack 是为 NVIDIA Jetson 平台设计的一系列库、API、工具和文档的集合。它简化了开发流程,使开发者能够更容易地构建高性能的人工智能应用。JetPack 包含了用于图像处理、计算机视觉、深度学习等领域的库,比如 VisionWorks, cuDNN, TensorRT 等。此外,它还包含了操作系统镜像、多媒体支持和其他必要的组件

参考链接:JetPack SDK Archive

总结:Jetson是按照Jetpack版本去下载对应的Torch,这一点要和常规的根据CUDA版本去下载对应Torch有一定区别,需要注意。

#笔者也是新手,欢迎各位读者批评指正,更多参考:YOLOv12环境配置,手把手教你使用YOLOv12训练自己的数据集和推理(附YOLOv12网络结构图),全文最详细教程

相关推荐
向哆哆5 天前
高精度织物缺陷检测数据集(适用YOLO系列/1000+标注)(已标注+划分/可直接训练)
yolo·目标检测
Lester_11015 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元5 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133975 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315205 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
前网易架构师-高司机5 天前
带标注的驾驶员安全带识别数据集,识别率99.5%,可识别有无系安全带,支持yolo,coco json,pascal voc xml格式
xml·yolo·数据集·交通·安全带
Alaso_shuang5 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟5 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126915 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
星马梦缘5 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动