目标检测论文解读复现之十七:融合注意力机制的YOLOv5口罩检测算法

news2025/8/12 16:03:41

前言 

此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注私信我。

一、摘要

 新冠疫情期间正确佩戴口罩可以有效防止病毒的传播,针对公共场所存在的人员密集、检测目标较小等加大检测难度的问题,提出一种以YOLOv5s模型为基础并引入注意力机制融合多尺度注意力权重的口罩佩戴检测算法。在YOLOv5s模型的骨干网络中分别引入4种注意力机制,抑制无关信息,增强特征图的信息表达能力,提高模型对小尺度目标的检测能力。实验结果表明,引入CBAM模块后较原网络mAP值提升了6.9个百分点,在4种注意力机制中提升幅度最明显,而引入NAM模块后在损失少量mAP的情况下参数量最少,最后通过对比实验选用GIoU损失函数计算边界框回归损失,进一步提升定位精度,最终结果较原网络mAP值提升了8.5个百分点。改进模型在不同场景下的检测结果证明了算法对小目标检测的准确率和实用性。

二、网络模型及核心创新点

1. 注意力机制

2. 改进边框回归损失函数

融合CBAM主干网络的yaml文件如下所示:

backbone:
  # [from, number, module, args]               # [c=channels,module,kernlsize,strides]-  1代表来自上一层输出
  [[-1, 1, Focus, [64, 3]],  # 0-P1/2           [c=3,64*0.5=32,3]  举例,输出通道数*width_multiple:=64*0.5
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 3, CBAM, [128]],                   # 举例,3*width_multiple:=3*0.33=1
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 9, C3, [256]],
   [-1, 3, CBAM, [256]] ,
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 3, CBAM, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 1, SPP, [1024, [5, 9, 13]]],
   [-1, 3, C3, [1024, False]],  # 9
   [-1, 3, CBAM, [1024]], #13

  ]

三、应用数据集

本文所使用的数据集主要挑选自WIDER Face人脸检测数据集和MAFA口罩数据集,在此基础上,通过网络爬虫和实地拍摄对原数据集进行扩充,最终收集到8 880张图片数据,将图片数据按照8∶1∶1的比例划分为训练集、验证集和测试集。

四、实验效果(部分展示)

1. 训练时上述参数以及其他超参数均采用相同设置,通过对比实验比较4种注意力机制的引入对于模型性能的影响,得到的结果见下表,根据P、R、m AP以及参数量对几种模型进行多方位比较分析。

2. P-R曲线作为评估性能的指标之一,以召回率为横轴,精确率为纵轴,同样可以反映出训练的信息,原始YOLOv5s模型以及引入四种注意力机制训练完成后的P-R曲线如下图所示。

3. 分别使用原始YOLOv5s模型以及引入四种注意力机制后的模型对4张图片进行对比检测,检测结果如下图所示,从左到右目标越小、越密集,图中黄色框表示漏检目标。

五、实验结论

通过对比实验发现,YOLOv5s-CBAM模型相较于原模型的m AP值提高了6.9个百分点,是4种注意力机制中提升幅度最大的模块,通过4张不同密集程度的检测图片对比检测效果,YOLOv5s-CBAM在检测的精确度和置信度得分上均取得了不错的效果,证明了引入注意力机制对于模型性能提升的有效性以及对场景中小目标检测的准确性,之后在YOLOv5s-CBAM模型中使用GIoU计算边界框回归损失使模型的m AP值又提高了1.6个百分点,总体较原模型m AP值提高了8.5个百分点,基本满足在人群密集情况下的口罩佩戴检测。

六、投稿期刊介绍

注:论文原文出自李小波,李阳贵,郭宁,范震.融合注意力机制的YOLOv5口罩检测算法[J/OL].图学学报.

https://kns.cnki.net/kcms/detail/10.1034.T.20220823.0910.002.html

解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注下面公众号,私信我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频格式转换器下载哪个好?分享:3种TS到MP4的转换器

对于TS视频格式大家可能接触的比较少,我们先来认识下TS视频格式。 TS是日本高清摄像头拍摄下的视频格式,常用于记录实录片段,比如讲堂、演唱会、监控等等。TS和MP4不同的地方在于TS是一种抢先非高清版视频,其画质并不如MP4&#x…

华为十年架构师实战经验总结:大规模分布式系统架构与设计实战

前言 本篇是从程序员到首席架构师十多年职业生涯的实战经验总结,系统讲解构建大规模分布式系统的核心技术与实现方法,包含开源的Fourinone系统的设计与实现过程,手把手教你掌握分布式技术。 通过学习这个系统的实现方法与相关的理论&#x…

Investment Guide|Star Investors: X METAVERSE PRO‘s Copy Trading System

With the globalization of finance, people around the world are more keenly aware of the role of finance. When financial investment has become a social trend, “how to effectively use every penny and grasp every investment opportunity in a timely manner” h…

SpringCloud - 服务调用

文章目录1. LB负载均衡(Load Balance)2. Ribbon负载均衡服务调用2.1 Ribbon负载均衡演示2.1.1 架构2.1.2 POM2.1.3 RestTemplate操作2.2 Ribbon核心组件IRule2.3 负载均衡规则替换2.4 Ribbon负载均衡算法2.4.1 原理2.4.2 手动实现负载均衡3. OpenFeign服务调用3.1 OpenFeign使用…

[Spring Boot]09 Spring Boot集成和使用Redis

目录前言Spring Boot如何集成RedisSpring Boot如何使用Redis小结前言 Redis全称Remote Dictionary Server(远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilip…

Python 基础(二):搭建 Python 开发环境

搭建 Python 开发环境一、下载 Python 安装包二、安装 Python三、Python开始菜单介绍3.1 IDLE3.2 Python 3.113.3 Python 3.11 Manuals3.4 Python 3.11 Manuals Docs四、Hello World大家好,我是水滴~~ 本篇文章主要介绍如何搭建 Python 的开发环境,主要内…

Eolink钉钉webhook使用教程(超详细)

目录 一、操作步骤 1、空间管理 2、添加服务调用 3、填写添加Webhook信息 4、获取DingDing通知URL 1、需要创建一个至少三个人的群 2、需要添加一个群机器人。 3、选择智能群助手 4、添加机器人 5、点击设置 6、选择【自定义】通过Webhook接入自定义服务 7、确认添…

多元统计分析-----例8.1:今有14名学生的身高和体重数据,做相关图以显示相关变量间的关系。

例8.1:今有14名学生的身高和体重数据,做相关图以显示相关变量间的关系。 x1c(147,171,175,159,155,152,158,154,164,168,166,159,164,177) x2c(32,57,64,1,38,35,44,41,54,57,49,47,46,63)plot(x1,x2,xlim c(145,180),ylimc(25,75))出错: …

Android进阶:6、使用okhttp下载图片

因为在网上找到的资源不只是一些字符串或是一些二进制数字,还是有的是可以肉眼看见的图片,那么我们在发送网络请求时拿到的是一张图片该如何显示在组件上面呢? 这就要使用到okhttp的请求返回结果的一个属性(byteStream&#xff0…

自动驾驶感知算法实战14——感知算法模型生产线

自动驾驶感知算法实战专栏:https://blog.csdn.net/charmve/category_12097938.html目录 一、感知算法生产流程二、算法模型部署流程二、各个阶段交付物数据选择(数据采集、数据增强)数据标注模型训练模型量化模型部署测试与验证一、感知算法生产流程 二、算法模型部署流程 二…

【JavaWeb从零到一】JSPELJSTL

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【JavaWeb】 🥭本文…

通过题目入门python基础1

通过题目入门python基础 简介:本文通过,python的基础题目,带领大家入门python的基础语法,以实用主义为主。 差 读取四个整数 A,B,C,D,并计算 (AB−CD) 的值。 输入格式 输入共四行,第一行包含整数 A&am…

GraphQL 实践与服务搭建

原文链接: GraphQL 实践与服务搭建 GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容…

《SystemVerilog Assertion 应用指南》学习01

文章目录0、基于断言的 验证1、SVA 介绍1.1.、什么是断言1.2、为什么使用 SystemVerilog 断言(SVA)1.3、SystemVerilog 的调度1.4、SVA 术语1.4.1、并发断言1.4.2、即时断言1.5、建立 SVA 块1.6、一个简单的序列1.7、边沿定义的序列1.8、逻辑关系的序列1…

云原生安全:4C~

4C是啥? cloudclustercontainercode 4个C是层的关系,外圈不安全,不能指望里面太安全。。。 目录 Cloud cloud Provider Security 基础架构安全 Cluster cluster的组件 cluster中的组件(应用中的) Container …

第二章:Pythonocc官方demo 案例44(几何板条)

源代码: ##Copyright 2009-2016 Jelle Feringa (jelleferingagmail.com) ## ##This file is part of pythonOCC. ## ##pythonOCC is free software: you can redistribute it and/or modify ##it under the terms of the GNU Lesser General Public License as pub…

数据库 Apache Doris 展开了为期两个月的调研测试

2022 年 3 月开始,我们对符合以上特点的数据库 Apache Doris 展开了为期两个月的调研测试。以下是 Apache Doris 1.1.2 在各个方面的满足情况。 基于上述情况,我们决定采用 Apache Doris,除了可以满足上文提到的几个特点,我们还考…

[信息系统项目管理师-2023备考]信息化与信息系统(一)

1.信息的质量特性 精确性:对事物状态描述的精准程度完整性:对事物状态描述的全面程度,完整信息应该包括所有重要事实可靠性:信息的来源、采集方法、传输过程是可以信任的,符合预期及时性:获取信息的时刻与…

(八)RabbitMQ发布确认

发布确认1、发布确认原理2、发布确认策略2.1、开启发布确认的方法2.2、单个确认发布2.3、批量确认发布2.4、异步确认发布2.5、处理异步未确认消息1、发布确认原理 书面文:生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在…

Python集合类型详解(一)——集合定义与集合操作符

今天继续给大家介绍Python相关知识,本文主要内容是Python集合类型定义与集合操作符。 一、集合类型定义 在Python中,集合是一种非常重要的组合数据类型。Python中的集合与数学中的集合非常相似,集合中的数据没有顺序,并且每个元…