参考链接:YOLOv5学习记录(二): 模型转化及Android端部署_yolo .pt文件转未bin_Xiaoer__Lu的博客-CSDN博客
1、准备pt文件
我的目录是:C:\Users\Administrator\Desktop\driving\yolov5-mask-42-master\runs\train\exp_yolov5s\weights里的best.pt
2、pt转onnx
①下载onnx
pip install onnx
②在yolov5-master根目录下有export.py文件,可以直接采用转换命令:
python export.py --data ./data/mask_data.yaml --weights ./runs/train/exp_yolov5s/weights/best.pt --img 640 --batch 1 --train
③可通过可视化工具Netron查看网络的总体架构,如果不想安装到本地,可以直接点击Open Model,选择刚才转换出来的best.onnx文件即可。
3、简化ONNX
转为onnx格式后,还需要再进行模型简化,不然会在转换的时候报错
打开best.onnx文件路径输入cmd:
① 安装简化工具:
pip install onnx-simplifier
② 简化命令如下:
python -m onnxsim best.onnx best-sim.onnx
4、ONNX转param、bin
在线转换神器:一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, Tengine (convertmodel.com)
5、修改param
打开刚才生成的.param文件,拉到最后,将红框内的三个数据全部修改为:-1,这样做是为了防止移植到Android端,检测时出现密密麻麻的检测框覆盖图片。