环境配置
Ubuntu22.04 系统
yolov7训练标注的数据集,生成best.pt模型权重
labelImg软件:用来标注数据集
cuda11.8 Python3.8
需要配置yolov5或yolov7环境的,请点击以下链接:
一、为什么要转换生成的模型文件
用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环境下)
二、开始安装
安装依赖库
第一步在yolov5-master下进入终端:
1. 激活你的yolo环境
conda activate yolo7
pip3 install -r requirements.txt onnx -i https://pypi.douban.com/simple
2.导出 onnx
python export.py --weights ./best.pt --grid --end2end --simplify --topk-all 100 --iou-thres 0.65 --conf-thres 0.35 --img-size 640 640 --max-wh 640
在best.pt 的同级目录生成了 best.onnx、pt 和 .ptl三个文件
在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
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--weights:初始权重
--cfg:模型配置文件
--data:数据配置文件
--hyp:学习率等超参数文件
--epochs:迭代次数
-imgsz:图像大小
--rect:长方形训练策略,不resize成正方形,使用灰条进行图片填充,防止图片失真
--resume:恢复最近的培训,从last.pt开始
--nosave:只保存最后的检查点
--noval:仅在最后一次epochs进行验证
--noautoanchor:禁用AutoAnchor
--noplots:不保存打印文件
--evolve:为x个epochs进化超参数
--bucket:上传操作,这个参数是 yolov5 作者将一些东西放在谷歌云盘,可以进行下载
--cache:在ram或硬盘中缓存数据
--image-weights:测试过程中,图像的那些测试地方不太好,对这些不太好的地方加权重
--single-cls:单类别标签置0
--device:gpu设置
--multi-scale:改变img大小+/-50%,能够被32整除
--optimizer:学习率优化器
--sync-bn:使用SyncBatchNorm,仅在DDP模式中支持,跨gpu时使用
--workers:最大 dataloader 的线程数 (per RANK in DDP mode)
--project:保存文件的地址
--name:保存日志文件的名称
--exist-ok:对项目名字是否进行覆盖
--quad:在dataloader时采用什么样的方式读取我们的数据,1280的大图像可以指定
--cos-lr:余弦学习率调度
--label-smoothing:
--patience:经过多少个epoch损失不再下降,就停止迭代
--freeze:迁移学习,冻结训练
--save-period:每x个周期保存一个检查点(如果<1,则禁用)
--seed:随机种子
--local_rank:gpu编号
--entity:可视化访问信息