在 Windows系统下将 YOLOv5 模型导出为 ONNX 文件
本文介绍如何在 PC 上使用 Anaconda 环境,从头开始配置 YOLOv5 并导出可用于部署的 ONNX 模型。整个流程适用于 Windows 平台,也可在 Linux 上参考使用。
一、创建与激活 Conda 环境
conda create -n yolov5 python=3.10 -y conda activate yolov5
环境激活后命令行前会出现 (yolov5)。
二、安装 PyTorch 及相关依赖
若仅在 CPU 上运行:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
若拥有 NVIDIA 显卡,可使用带 CUDA 版本:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
三、克隆 YOLOv5 源码并安装依赖
git clone https://github.com/ultralytics/yolov5.gitcd yolov5pip install -r requirements.txt
四、安装导出所需依赖(onnx 与 protobuf)
如果网络稳定,直接:
pip install onnx==1.14.1 protobuf==3.20.3
若 SSL 错误或下载慢,可换清华镜像并信任主机:
pip install onnx==1.14.1 protobuf==3.20.3 ^ -i https://pypi.tuna.tsinghua.edu.cn/simple ^ --trusted-host pypi.tuna.tsinghua.edu.cn
验证安装:
python -c "import onnx; print('ONNX', onnx.__version__)"
五、导出 YOLOv5 模型为 ONNX 文件
在 yolov5 目录下执行:
python export.py --weights yolov5s.pt --include onnx --opset 12
若导出自训练模型,将 yolov5s.pt 换为 runs/train/exp/weights/best.pt。
输出示例:
ONNX export success, saved as yolov5s.onnx
七、下一步:部署到 NPU 或 TensorRT
得到 yolov5s.onnx 后,可:
在 Rockchip RK3588(香橙派 5 Ultra)上用 rknn-toolkit2 转换为 RKNN;
或在 PC/GPU 端用 TensorRT 优化部署。
八、常见问题速查
| 问题 | 原因 | 解决办法 |
|---|---|---|
No module named 'onnx' | 未安装 onnx 或网络失败 | 重新执行 pip 安装命令 |
| 导出卡住 | 环境包冲突 | 新建 Conda 环境重新安装 |
| 版本不匹配警告 | torch / torchvision 版本差异 | 升级或降级 torchvision 到推荐版本 |
