融合注意力模块SE基于轻量级yolov5s实践路面坑洼目标检测系统

news/2024/11/27 23:44:17/

在很多的项目实战中验证分析注意力机制的加入对于模型最终性能的提升发挥着积极正向的作用,在我之前的一些文章里面也做过了一些尝试,这里主要是想基于轻量级的s系列模型来开发构建路面坑洼检测系统,在模型中加入SE注意力模块,以期在轻量化的基础上进一步提升模型的检测性能。首先来看下效果图:

这里数据集的目标对象只有一个就是:pothole(路面坑洼)

使用的模型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, Conv, [64, 6, 2, 2]],  # 0-P1/2[-1, 1, Conv, [128, 3, 2]],  # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],  # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],  # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]],  # 9]#Head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]],  # cat backbone P4[-1, 3, C3, [512, False]],  # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]],  # cat backbone P3[-1, 3, C3, [256, False]],  # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]],  # cat head P4[-1, 3, C3, [512, False]],  # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]],  # cat head P5[-1, 3, C3, [1024, False]],  # 23 (P5/32-large)[-1, 1, SE, [1024]],[[17, 20, 24], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)]

在最终的Detect层前面加入了SE模块,所以最终的索引号也要加1,23+1=24。

接下来看下数据情况:

VOC格式标注数据如下:

实例数据如下:


<annotation><folder>images</folder><filename>1b404500-c1a3-4454-ae9d-4ae6f93239b4.png</filename><size><width>450</width><height>300</height><depth>3</depth></size><segmented>0</segmented><object><name>pothole</name><pose>Unspecified</pose><truncated>0</truncated><occluded>0</occluded><difficult>0</difficult><bndbox><xmin>1</xmin><ymin>57</ymin><xmax>87</xmax><ymax>126</ymax></bndbox></object><object><name>pothole</name><pose>Unspecified</pose><truncated>0</truncated><occluded>0</occluded><difficult>0</difficult><bndbox><xmin>60</xmin><ymin>1</ymin><xmax>124</xmax><ymax>14</ymax></bndbox></object><object><name>pothole</name><pose>Unspecified</pose><truncated>0</truncated><occluded>0</occluded><difficult>0</difficult><bndbox><xmin>52</xmin><ymin>80</ymin><xmax>379</xmax><ymax>259</ymax></bndbox></object>
</annotation>

YOLO格式标注数据如下:

实例标注数据如下所示:

0 0.5075 0.4625 0.335 0.375
0 0.6375 0.36 0.125 0.13
0 0.5625 0.06625 0.085 0.0525
0 0.12625 0.0575 0.0875 0.03
0 0.24 0.1175 0.095 0.1
0 0.4225 0.24 0.045 0.035

默认执行100次epoch迭代计算,在GPU模式下完成训练,日志输出如下所示:

可以看到最终效果还是不错的。

结果数据目录如下所示:

标签数据可视化如下:

F1值曲线和PR曲线如下所示:

混淆矩阵:

batch检测实例如下所示:

开发专用的界面模块实现推理可视化如下所示:

上传图像:

推理检测:


http://www.ppmy.cn/news/10914.html

相关文章

React相关扩展一(setState、lazyLoad、Hooks相关)(九)

系列文章目录 第一章&#xff1a;React基础知识&#xff08;React基本使用、JSX语法、React模块化与组件化&#xff09;&#xff08;一&#xff09; 第二章&#xff1a;React基础知识&#xff08;组件实例三大核心属性state、props、refs&#xff09;&#xff08;二&#xff0…

【寒假每日一题】DAY1.水仙花数

一、题目描述 求0&#xff5e;100000之间的所有“水仙花数”并输出。 什么是水仙花数&#xff1a; “水仙花数”是指一个n位数&#xff0c;其各位数字的n次方之和确好等于该数本身&#xff0c;如:153&#xff1d;1^3&#xff0b;5^3&#xff0b;3^3&#xff0c;则153是一个“水…

STM32 TIM PWM高阶操作:刹车及状态约束

STM32 TIM PWM高阶操作&#xff1a;刹车及状态约束 刹车及状态约束是STM32 TIM PWM控制里面比较复杂的一部分&#xff0c;涉及到PWM波形产生前&#xff0c;中&#xff0c;后的管脚状态输出。 这里先引入两个描述&#xff0c;一个是“半高阻”&#xff0c;意思是STM32管脚输出…

vue+xlsx实现表格的导入导出:

文章目录一、vue前端使用xlsx和 xlsx-style 导出excel&#xff0c;并修改样式:1、改造后效果&#xff1a;2、实现&#xff1a;3、引入库xlsx-style4、excelUtil.js文件二、前端xlsx插件怎么设置导出的excel列宽自适应&#xff1f;2-1、效果2-2、效果三、xlsx插件&#xff0c;导…

元年科技2022回顾:奋楫扬帆数字化,转型升级立潮头

当下数字经济无疑以最具创新、辐射力最广泛的经济形态迸发着无限活力&#xff0c;这也意味着数字化转型的浪潮风起云涌。作为数字化转型的主力军&#xff0c;元年科技肩负重任奋楫扬帆&#xff0c;在沧海中勇往直前。 回顾2022年&#xff0c;元年科技在不断走向深入的数字化转…

Vue3——第四章(响应式基础:reactive、ref)

一、用reactive()声明响应式状态 我们可以使用 reactive() 函数创建一个响应式对象或数组&#xff1a; 响应式对象其实是 JavaScript Proxy&#xff0c;其行为表现与一般对象相似。不同之处在于 Vue 能够跟踪对响应式对象属性的访问与更改操作。 要在组件模板中使用响应式状…

【Linux】Linux 项目自动化构建工具 -- make/makefile

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux 文章目录一、前言二、概念三、demo 实现四、原理与规则1、依赖关系和依赖方法① 感性理解② 深层理解…

计算机网络培训总结

在11月份我参加了这次计算机网络培训&#xff0c;虽然这次计算机网络培训的时间很短&#xff0c;但对我来说受益匪浅,充分认识到了自己在计算机应用与网络方面存在很多不足。培训使我的眼界开阔了、思考问题的角度改变了&#xff0c; 许多疑问得到了解决或者启发。 作为一名信息…