yolo的模型转换权重pt文件转onnx(1)

环境配置

Ubuntu20.04 系统

yolov5 5.0 训练标注的数据集,生成best.pt模型权重

labelImg软件:用来标注数据集

cuda11.3 Python3.7

需要配置yolov5环境的,请点击以下链接:

Ubuntu20.04配置深度学习环境yolov5最简流程

一、为什么要转换生成的模型文件

用Pytorch生成的.pt模型需要先将将模型转换成onnx模型(.onnx)之后再通过onnx模型转化成ncnn模型(.bin .param)才能部署在手机端(安卓、IOS)

移动端的部署有这么几条路:

1. pt文件 --> onnx文件/torchscript文件 --> ncnn --> 安卓端部署(android studio编写)

2. pt文件 --> onnx文件/torchscript文件 --> ML文件 --> ios端部署(mac系统运行xcode编写)

3. pt文件 --> onnx文件 /torchscript文件/wts文件–> openvino/tensorrt 等部署平台 --> 树莓派/jetson部署(最好在linux环境下)

二、开始安装

  1. 安装依赖库

第一步在yolov5-master下进入终端:

1. 激活你的yolo环境

conda activate yolo
pip3 install -r requirements.txt onnx -i https://pypi.douban.com/simple
2.导出 onnx
python export.py --weights best.pt --include onnx --img 640 --batch 1

报错:requirements: onnx not found and is required by YOLOv5, attempting auto-update...

解决方法:

conda install -c anaconda protobuf

在best.pt 的同级目录生成了 best.onnx、best.mlmodel 和 best.torchscript.pt三个文件。

可以使用netron查看best.onnx模型结构。

# 在终端运行

pip install netron -i https://pypi.douban.com/simple
python
import netron
netron.start('best.onnx')
3.用onnx-simplifer 简化模型
python -m onnxsim best.onnx best-sim.onnx

参考文章:

yolov5笔记(3)——移动端部署自己的模型(随5.0更新)

你可能感兴趣的:(算法,ubuntu)