解锁YOLOv8修改+注意力模块训练与部署流程

描述

YOLOv8源码到底在哪?

很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码克隆出来一通修改了,其实这种方式风险很高,而且也不是正确的选择,原因在于Master/main分支是工作跟合并的代码主仓,不是发布的版本代码,开源项目团队开发者随时随地都在修改代码,很可能导致引入新BUG,直接使用master/main分支的下面的代码会有两个致命问题:  

 

1. 无法标记版本信息
2. 无法确信代码的是否含有致命BUG
灵魂拷问,YOLOv8对应版本的源代码究竟在哪里?其实对Python安装包稍微了解一下你就知道了,以我自己为例,我是用pip方式安装YOLOv8的,查找一下安装好的YOLOv8包目录应该如下(默认情况下):

 

YAML

 

C:UsersAdministratorAppDataLocalProgramsPythonPython38Libsite-packages
然后找到下面的两个文件夹,源码就在这里了。

 

YAML

YOLOv8添加SE注意力模块

分别修改YOLOv8的模型描述文件yolov8.yaml,模型加载与定义文件task.py与模块结构化实现文件block.py,修改的内容跟YOLOv5注意力机制添加完全一致。修改yolov8.yaml文件,这里我直接插入了SENet注意力模块,修改以后文件与之前的文件对比如下:

YAML

然后修改源码文件task.py与block.py 实现SENet注意机制解析支持。全部完成之后就可以直接开始训练模型了,这里基于我的DM码数据集完成模型结构修改之后的YOLOv8注意力模型的训练,命令行跟以前唯一不同的是需要从指定修改的YAML文件开始训练,才是对的,训练的命令行如下:

 

yolo train model=yolov8.yaml data=dm_dataset.yaml epochs=15 imgsz=640 batch=1

 

YAML

YAML

YAML

ONNX导出与推理测试

然后导出ONNX格式模型,设置一下opset=11 会有好处。

 

yolo export model=runsdetect	rain10weightsest.pt format=onnx

 

YAML

导出ONNX格式也可以啦。

预测推理

 

yolo predict mode=detect model=runsdetect	rain10weightsest.onnx

 

YAML

YAML

  从此又解锁了YOLOv8模型结构+各种注意力机制的即插即用从训练到导出部署技能。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分