YOLOv5添加注意模块魔改
视觉注意力机制是一个好东西,即插即用,YOLOv5 7.0版本工程代码简洁明了,代码加入视觉注意力模块支持异常方便,以SE注意力为例,只要三步即可完成:
1. 修改模型结构文件yaml、添加注意力机制SENet模块
2. 修改模型结构实现代码文件common.py,实现SENet模块代码添加
3. 修改模型解析代码文件yolo.py,注册新添加的SENet模块解析支持
这样就完成了YOLOv5+SE注意力模块的支持,别急,我还修改了ECA、CA、GAM、CBAM,显示如下:
然后统统训练100轮次,跟原来的没有添加注意力机制的对比一下,看看效果怎么样?答案揭晓了,
我只是在SPPF之前的一层添加了注意力模块,只有这个小小的改动!从效果看,基本都可以涨点了…
对比验证结果
100 轮次OID数据集自定义数据,YOLOv5s模型与SE、ECA、CA、CBAM、GAM五种注意力改进模型,mAP指标统计与对比
YOLOv5注意力机制模型部署
然后我还基于以前的测试程序上测试一下,导出ONNX格式,然后通过ONNXRUNTIME进行推理,以SE注意力+YOLOv5s为例,感觉一切顺利。PyQT5 + ONNXRUNTIME, 图示如下: