如何将YOLOv5 PyTorch模型转换为OpenCV DNN兼容格式
YOLOv5模型转换方案(可直接在Colab完成,无需额外工具)
你完全可以在之前训练模型的Colab环境内完成格式转换,优先推荐转ONNX格式,对OpenCV C++的dnn模块兼容性最好。
转换操作步骤
1. 导出ONNX格式(优先选择)
YOLOv5官方已经内置了转换脚本export.py,训练完成后直接在YOLOv5根目录执行以下命令即可:
pip install onnx onnxruntime python export.py --weights 你的训练输出pt模型路径 --include onnx --opset 12
参数说明:
--weights替换为你自己训练生成的best.pt/last.pt文件路径,默认训练输出路径为runs/train/exp/weights/best.pt--opset 12指定ONNX算子版本为12,适配OpenCV 4.5.4及以上版本的dnn模块,避免出现算子不支持的报错
导出完成后会生成同名.onnx文件,直接下载即可用于OpenCV C++推理。
2. 导出TensorFlow格式(可选)
如果有TensorFlow格式需求,同样可以用内置脚本直接导出:
python export.py --weights 你的训练输出pt模型路径 --include saved_model pb
可导出TensorFlow SavedModel格式、pb格式,该格式仅适配TensorFlow C++ API调用,OpenCV加载的兼容性远低于ONNX,非必要不推荐选择。
注意:如果你的OpenCV版本低于4.5.4,建议导出时指定
--opset 11,兼容性更好。
内容的提问来源于stack exchange,提问作者al072
相关产品推荐
相关产品推荐

