当前位置:   article > 正文

yolov3(ultralytics yaml版) pytorch->onnx->ncnn_ncnn部署yolov3

ncnn部署yolov3

此命令将预训练的 YOLOv3模型(默认yolov3.pt,或者yolov3-tiny.pt)导出为 ONNX、TorchScript 和 CoreML 格式。

python models/export.py --weights weights/yolov3.pt --img 640 --batch 1
  • 1

输出:
在这里插入图片描述在这里插入图片描述
3 个导出的模型(yolov3.mlmodel , yolov3.onnx , yolov3.torchscript.pt)将与原始 PyTorch 模型一起保存

python detect.py --weights weights/yolov5s.onnx --view-img
  • 1

速度慢

推荐使用Netron Viewer来可视化导出的模型,显示网络结构:

python
import netron
netron.start('yolov3.onnx')
  • 1
  • 2
  • 3

在这里插入图片描述

五,简化onnx文件

1.安装简化器

pip install onnx-simplifier
  • 1

2.执行指令

python -m onnxsim  onnx_inputpath onnx_outputpath
python -m onnxsim yolov3-tiny.onnx yolov3-tiny-sim.onnx(tiny版)
  • 1
  • 2

在这里插入图片描述

六、onnx转换为 ncnn 模型

~/ncnn/build/tools/onnx$ onnx2ncnn yolov3-tiny-sim.onnx yolov3-tiny-sim.param yolov3-tiny-sim.bin
  • 1

ncnnoptimize优化:
用 ncnnoptimize 过一遍模型,顺便转为 fp16 存储减小模型体积,两种都OK一样。

$ ncnnoptimize yolov5s.param yolov5s.bin yolov5s-opt.param yolov5s-opt.bin 65536
$ ncnnoptimize yolov5s.param yolov5s.bin yolov5s-opt.param yolov5s-opt.bin 1
  • 1
  • 2

其中最后的flag 如果是0指的的是fp32,如果是1指的是fp16
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/558545
推荐阅读
相关标签
  

闽ICP备14008679号