基于融合SPD+BIFPN+CBAM改进YOLOv5的奶牛检测识别分析系统开发
在我之前的几篇文章中分别应用了不同的tricks来改进yolov5模型如下:
加入针对小目标的SPD-Conv模块
《yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五子棋检测识别》
加入BIFPN特征融合模块
《基于yolov5s+bifpn实践隧道裂缝裂痕检测》
加入注意力机制模块
《YOLOV5融合SE注意力机制和SwinTransformer模块开发实践的中国象棋检测识别分析系统》
感兴趣的话可以自行移步阅读。
本文主要是实际项目需要,针对摄像机拍摄到的奶牛的数据进行检测,考虑到真实情况复杂的问题,这里考虑将一些优化技术加入到原生的yolov5中以期来提升模型的检测性能。首先看下效果:
这里主要加入了:注意力模块CBAM、特征提取模块BIFPN和小目标优化技术SPD-Conv,基准模型是yolov5s,兼顾精度和速度。
直接看下yaml文件,如下:
#Parameters
nc: 1 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32#Backbone
backbone:# [from, number, module, args][[-1, 1, Focus, [64, 3]], # 0-P1/2[-1, 1, Conv, [128, 3, 1]], # 1[-1,1,SPD,[1]], # 2 -P2/4[-1, 3, C3, [128]], # 3[-1, 1, Conv, [256, 3, 1]], # 4[-1,1,SPD,[1]], # 5 -P3/8[-1, 6, C3, [256]], # 6[-1, 1, Conv, [512, 3, 1]], # 7-P4/16[-1,1,SPD,[1]], # 8 -P4/16[-1, 9, C3, [512]], # 9[-1, 1, Conv, [1024, 3, 1]], # 10-P5/32[-1,1,SPD,[1]], # 11 -P5/32[-1, 3, C3, [1024]], # 12[-1, 1, SPPF, [1024, 5]], # 13]#Head
head:[[-1, 1, Conv, [512, 1, 1]], #14[-1, 1, nn.Upsample, [None, 2, 'nearest']], #15[[-1, 9], 1, BiFPND, [256, 256]], #16 [-1, 3, C3, [512, False]], #17[-1, 1, Conv, [256, 1, 1]], #18[-1, 1, nn.Upsample, [None, 2, 'nearest']], #19[[-1, 6], 1, BiFPND, [128, 128]], #20 [-1, 3, C3, [256, False]], #21 [-1, 1, Conv, [512, 3, 2]], #22[[-1, 17, 9], 1, BiFPNT, [256, 256]], #23[-1, 3, C3, [512, False]], #24 [-1, 1, Conv, [512, 3, 2]], #25[[-1, 14], 1, BiFPND, [256, 256]], #26[-1, 3, C3, [1024, False]], #27 [-1, 1, CBAM, [1024]], #28[[21, 24, 28], 1, Detect, [nc, anchors]], #29 Detect]
数据集如下:
YOLO格式标注数据如下:
样例标注实例如下所示:
0 0.065234 0.385764 0.107031 0.095139
0 0.06582 0.539931 0.079297 0.165972
0 0.023633 0.762153 0.046484 0.165972
0 0.16875 0.738889 0.111719 0.177778
0 0.183203 0.663542 0.104688 0.200694
0 0.202344 0.571528 0.079687 0.218056
0 0.258008 0.528125 0.063672 0.189583
0 0.30293 0.500694 0.079297 0.261111
0 0.225195 0.313542 0.118359 0.127083
0 0.422461 0.544792 0.126172 0.135417
0 0.442383 0.636458 0.179297 0.095139
0 0.428711 0.715972 0.185547 0.094444
0 0.406836 0.843056 0.134766 0.223611
VOC格式标注数据如下所示:
样例标注实例如下所示:
<annotation><folder>0000</folder><filename>60a4784df6bcca758ee48d5b.jpg</filename><path>60a4784df6bcca758ee48d5b.jpg</path><source><database>Unknown</database></source><size><width>2560</width><height>1440</height><depth>3</depth></size><segmented>0</segmented><object><name>cow</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>102</xmin><ymin>111</ymin><xmax>329</xmax><ymax>573</ymax></bndbox></object><object><name>cow</name><pose>Unspecified</pose><truncated>1</truncated><difficult>0</difficult><bndbox><xmin>1</xmin><ymin>549</ymin><xmax>275</xmax><ymax>819</ymax></bndbox></object><object><name>cow</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>19</xmin><ymin>1062</ymin><xmax>416</xmax><ymax>1322</ymax></bndbox></object><object><name>cow</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>497</xmin><ymin>1103</ymin><xmax>1165</xmax><ymax>1373</ymax></bndbox></object><object><name>cow</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1132</xmin><ymin>1076</ymin><xmax>1524</xmax><ymax>1325</ymax></bndbox></object><object><name>cow</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1146</xmin><ymin>1306</ymin><xmax>1621</xmax><ymax>1438</ymax></bndbox></object><object><name>cow</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1527</xmin><ymin>1089</ymin><xmax>1970</xmax><ymax>1435</ymax></bndbox></object>
</annotation>
默认设定100次epoch计算,训练完成后结果目录如下所示:
标签数据可视化:
这里只有一个类别。
混淆矩阵:
训练过程指标可视化:
F1值曲线和PR曲线:
从检测结果样例上面来直观看的话效果还是很不错的,结合F1值曲线也不难印证这一点。
基于融合SPD+BIFPN+CBAM改进YOLOv5的奶牛检测识别分析系统开发相关推荐
- 基于轻量级YOLOV5+BIFPN的苹果瑕疵检测识别分析系统
BIFPN是一种比较经典有效的特征融合手段,在很多检测模型中都有集成应用,实际表现也验证了BIFPN的有效性,这里并不是要探讨BIFPN的原理内容,而是想集成这项技术,提升原有模型的性能表现,在我之前 ...
- 基于yolov5轻量级的学生上课姿势检测识别分析系统
在我之前的博文中已经做过关于人体姿势识别人体姿态检测的博文,都是比较早期的技术模型了,随机技术的迭代更新,很多更加出色的模型陆续出现,这里基于一些比较好用的轻量级模型开发的姿态检测模型. 原始博文如下 ...
- YOLOV5融合SE注意力机制和SwinTransformer模块开发实践的中国象棋检测识别分析系统
本文紧接前文: <基于yolov5s实践国际象棋目标检测模型开发> <yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五子棋检测识别> 首先来看下最终 ...
- 基于轻量级YOLOv5模型开发构建鸟巢检测识别分析系统
鸟巢相信大家都不陌生,这里的鸟巢不是说的是北京鸟巢,而是我们平常司空见惯的鸟儿搭建出来的鸟巢,用于日暮栖息的,很多用电设施或者是大树上面都能看到有很多鸟巢,有些鸟巢的存在对于电力系统设施的安全存在一定 ...
- 基于YOLOv5+SE注意力+SPD模块的海星检测识别分析系统
在很多的项目实战中验证分析注意力机制的加入对于模型最终性能的提升发挥着积极正向的作用,在我之前的一些文章里面也做过了一些尝试,这里主要是想基于轻量级的s系列模型来开发构建海底小目标生物海星检测系统,在 ...
- 基于YOLOv5+C3CBAM+CBAM注意力的海底生物[海参、海胆、扇贝、海星]检测识别分析系统
在我前面的一些文章中也有用到过很多次注意力的集成来提升原生检测模型的性能,这里同样是加入了注意力机制,区别在于,这里同时在两处加入了注意力机制,第一处是讲CBAM集成进入原生的C3模块中,在特征提取部 ...
- 城市道路路面病害检测识别分析,以RDD赛事捷克-印度-日本集成融合数据集为例,基于yolov5m模型开发构建城市道路病害检测识别系统
城市道路病害检测是最近比较热门的一个任务领域,核心就是迁移深度学习目前已有的研究成果来实现实时城市道路路面病害的检测识别分析,在我之前的很多博文中都有做过类似桥梁.大坝.基建.隧道等水泥设施裂缝裂痕等 ...
- 基于深度学习的高精度奶牛检测识别系统(PyTorch+Pyside6+YOLOv5模型)
摘要:基于深度学习的高精度奶牛检测识别系统可用于日常生活中或野外来检测与定位奶牛目标,利用深度学习算法可实现图片.视频.摄像头等方式的奶牛目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本 ...
- 基于YOLOv5行人车辆跟踪检测识别计数系统源码+数据集,实现出/入分别计数
yolov5 deepsort 行人 车辆 跟踪 检测 计数 下载地址:基于YOLOv5行人车辆跟踪检测识别计数系统源码+数据集 实现了 出/入 分别计数. 默认是 南/北 方向检测,若要检测不同位置 ...
最新文章
- java httpclient 为邮箱添加来信转发规则
- 华为ap配置_第18期——AP安装常见问题和注意事项
- Web 服务器错误代码大全
- java ftp上传文件 linux_Java实现把文件上传至ftp服务器
- 深度学习之循环神经网络(9)LSTM层使用方法
- c++设置单元格填充色_格式函数text,设置自定义格式的万金油
- ListView中加入Button后,Button的点击事件和ListView的点击事件冲突
- python语言程序设计赵璐课后答案_Python语言程序设计
- python中保留两位小数的编写程序_P081 保留两位小数
- ELK Stack 的应用场景
- 【2022年的STM32】 02-STM32总览
- 参考文献标号字体_毕业论文参考文献格式字体
- SOFA BOLT源码解析之设计要点-网络IO
- HTML5 + Canvas + 广度优先搜索(BFS) 编写lol连连看
- 盘点测试分析工具资源,文章教程/视频教程等你来体验!
- Python爬虫JD杜蕾斯源码
- Jumpserver部署+Ldap认证
- 看板娘全是php的怎么办,【教程】给网站添加互动二次元看板娘老婆
- 更改app图标和名称
- TikTok涨粉?参考抖音?账号增粉解析!