1. 环境准备与依赖安装:别在第一步就踩坑
很多朋友在尝试导出YOLOv5模型时,第一步就卡住了。网上搜到的教程五花八门,有的让你装这个库,有的让你改那个环境,照着做了一通,最后import torch都报错,模型转换更是无从谈起。我刚开始也在这上面浪费了不少时间,后来发现,最稳的方法就是回归YOLOv5项目本身。它自带的export.py脚本已经为我们封装好了绝大部分流程,我们需要做的,就是为它准备好一个“舒适”的运行环境。
首先,你得有一个能正常训练YOLOv5模型的环境。如果你已经用自己的数据训练好了.pt权重文件,那说明你的基础PyTorch环境是没问题的。接下来,转换模型需要一些额外的依赖。关键就在这里:YOLOv5项目根目录下的requirements.txt文件,默认把模型转换相关的依赖(比如onnx、coremltools等)都给注释掉了。这是为了防止用户在只想做训练或推理时,安装一堆不必要的包。
所以,我们的第一步是“解注释”。用任何文本编辑器打开requirements.txt,你会看到类似下面这样的行:
# export
# coremltools>=4.1 # CoreML export
# onnx>=1.10.0 # ONNX export
# onnx-simplifier>=0.3.6 # ONNX simplifier
# nvidia-pyindex # TensorRT export
# nvidia-tensorrt # TensorRT export
# scikit-learn<=1.1.2 # CoreML quantization
# tensorflow>=2.4.0 # TFLite export
# tensorflowjs>=3.9.0 # TF.js export
你需要根据自己想导出的格式,取消对应行的注释。比如,我们这次的目标是ONNX,那么至少需要确保onnx>=1.10.0和onnx-simplifier>=0.3.6这两行前面的#号被去掉。如果你还打算后续尝试TensorRT加速,也可以把nvidia-pyindex和nvidia-tensorrt的注释去掉。我个人的习惯是,把export区块下所有格式的依赖都先打开,一次装全,免得以后换格式又要折腾一遍环境。
依赖文件修改好后,在终端进入YOLOv5项目目录,执行安装命令:
pip install -r requirements.txt
这里有个小坑需要注意。如果你的基础环境是通过conda管理的,最好在conda环境里用pip安装,避免包管理器冲突。安装过程如果遇到某个包版本冲突,可以尝试先单独安装指定版本,比如pip install onnx==1.13.0。安装完成后,强烈建议验证一下核心库:在Python环境下执行import onnx和import onnxsim,不报错就说明基础环境OK了。
2. 核心转换:玩转export.py的参数
环境搞定,我们就可以直面


8602

被折叠的 条评论
为什么被折叠?



