【目标检测论文解读复现NO.29】基于YOLO-ST的安全帽佩戴精确检测算法

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

一、摘要

在建筑业、工地等场景下,由于受到天气、人数、光照强度、拍摄角度和距离等因素的影响,导致在安全帽智能检测时容易出现准确度低、漏检率大、错检率高的问题.为了解决该问题,提出了一种基于YOLO-ST的安全帽佩戴检测算法.该算法具有两个优势:首先,使用更容易捕获图像全局信息的Swin Transforner作为网络的特征提取器,增强网络对安全帽特征的提取能力;其次,设计密集的空间金字塔池化模块并引入到YOLO-ST中,以获取目标中更加丰富的细节信息.实验结果表明,在公开的SHWD数据集上,YOLO-ST的平均识别精度达到了91.3%.与其它方法相比,YOLO-ST取得了更精确的检测结果.

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

个人解读:这篇文章最大的创新在于借鉴稠密连接的思想,对原YOLOv5中的SPP模块进行改进,提出新的DSPP模块,从而有效解决了SPP存在的信息丢失问题,进一步提高了安全帽检测的准确性。Swin Transformer模块之前也有过介绍。损失函数的话,采用的GIoU算是一般的点了。

1.特征提取网络Swin Transformer

2.密集的空间金字塔池化DSPP

3. 损失函数

三、应用数据集

本文选用的安全帽检测数据集SHWD包括7581个不同场景、天气、光照条件、人数、拍摄距离的样本图像.主要包含两类样本:佩戴安全帽safe类别和未佩戴安全帽person类别.

四、实验效果(消融实验)

为了研究算法中各个模块对实验结果的影响,本节共设计了四组对比方案.其中,“√”代表模型使用了此模块,“×”代表未使用此模块.实验通过AP30、AP50以及mAP三种评价指标来衡量模型能,消融实验结果如表2所示.

从表2可以看出,模型A的AP30、AP50、mAP分别为88.7%、86.5%和87.6%.在模型A的基础上,模型B采用DSPP模块替代SPP,保证模型获取多尺度信息的基础上,解决由于池化操作导致细节信息丢失的问题,从而提高安全帽检测的准确性.

五、实验结论

实验结果表明,模型B中的各项指标相比模型A均提高了0.9%.模型C是在模型A的基础上,保持原有池化方式不变,同时选择特征提取能力更强的Swin Transformer作为主干网,使得主干网可以提取更加高级的特征信息,进一步提高模型检测能力.相比于模型A,模型C的mAP提高了3.2%.模型D是在模型C的基础上,采用DSPP模块进行池化操作,即本文提出的YO-LO-ST.与模型A相比,AP30、AP50和mAP分别提高了4.5%、2.8%和3.7%,与模型B和模型C相比,mAP分别提高了2.8%和0.5%.综上所述,本文提出的YOLO-ST在安全帽检测任务中的具有更好的准确性.

六、投稿期刊介绍

注:论文原文出自 杜晓刚,王玉琪,晏润冰,古东鑫,张学军,雷 涛;YOLO-ST的安全帽佩戴精确检测算法;陕西科技大学学报.

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

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

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

相关文章

Spire.Barcode 5.1.0 for Java Patch

Spire.Barcode for Java是专门为开发人员设计的专业条码组件,用于在 Java 应用程序(J2SE 和 J2EE)上生成、读取和扫描 一维和二维条码。开发人员和程序员可以使用 Spire.Barcode 快速轻松地将企业级条码格式添加到他们的 Java 应用程序中。需…

【数字逻辑】逻辑函数式化简为其他形式

以 F(A,B,C)ABA‾CF(A,B,C) AB\overline{\rm A}CF(A,B,C)ABAC 为例,说明如何将与或式转换为其它类型的表达式。

CE认证和CCC认证区别?

CE认证和CCC认证区别? 参考链接:https://baijiahao.baidu.com/s?id=1728784934635704528&wfr=spider&for=pc CE认证和CCC认证有什么区别? 我发现我的很多朋友对此并不了解。 同时我发现很多产品在很多产品包装上都通过了CCC和CE认证,所以可能会引起没有做过产品…

硬件 -CPU工作原理

1.地址空间一个处理器能够访问(读写)的存储空间有限,我们称空间为地址空间,一般来说N位地址总线的处理器的地址空间是2的N次方。CPU从内存中取数据,先发地址,内存收到后,发送地址所在的数据。2.…

蓝奥声无线同步数据传输技术在物联网方面应用的优势

随着物联网技术的发展,其应用场景已经从简单的商品和服务扩展到广泛的社会和行业。当前,世界各地都在努力通过技术推动经济增长。对于许多行业来说,物联网技术的应用无疑将是一个新的增长机会。同时,物联网将推动社会结构从“制造…

Red Hat Linux 命令Crontab的使用方法

Red Hat Linux 命令Crontab的使用方法1 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /…

C++的三大特性之继承

目录 一 继承的概念 代码: 总结: 二 继承中的关系 三 继承中的作用域问题 什么是域? 隐藏: 隐藏的场景: 总结 四 赋值兼容原则 什么是赋值兼容原则? 与平时强制类型转换的区别 这一个赋值兼容原则…

编译原理学习笔记18——语义分析和中间代码生成3

编译原理学习笔记18——语义分析和中间代码生成318.1 布尔表达式及其计算18.2 按数值表示法翻译布尔表达式18.3 带优化翻译布尔表达式18.1 布尔表达式及其计算 布尔表达式及其用途 计算布尔表达式的两种方法 计算布尔表达式的两种方法 18.2 按数值表示法翻译布尔表达式 数…

toString()、String.valueOf、(String)强转,有啥区别?

TOC 首先我们看这三头货,什么toString()、String.valueOf、(String)强转?有啥区别?就问你是不是很像,是不是都有一个String? 说白了,这三个都是将XX给变成String,简称变身String的方法 接下来一…

IDEA maven使用详解

前提 确保本地安装了maven 以一个模块工程为例,内部包含了许多maven项目 生命周期 这是全部的生命周期 其中,常用的生命周期的各个功能为: (clean生命周期)mvn clean清理target (default生命周期①)mvn validate验证项目为maven项目&a…

自然语言处理的进阶之路

1、隐马尔可夫链路一般较短原因 连乘链路太长,会导致数据稀疏,零频词太多 2、零频问题的一般解决方案 平滑/回退/差值 当n设置较小时,仍然会存在oov问题(语料中未出现的词) 2.1、平滑 2.1.1、加1平滑/拉普拉斯平…

Maven初级(一)

目录 一. Maven概述 1.1 Maven是什么 1.2 Maven的作用 1.2.1 项目构建 1.2.2 依赖管理 1.2.3 统一项目结构 1.3 Maven模型 1.3.1 插件 1.3.2 项目对象模型 1.3.3 依赖管理模型 二. Maven基础概念 2.1 仓库: 2.2 仓库分类 2.2.2 远程仓库(私服) 中央仓…

Python继承的优缺点

推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架!子类化内置类型的问题在Python2.2之前,内置类型不能子类化,如list、dict等。在Python2.2之后,内置类型可以子类化了,但是要注意的是:内置类型&a…

Individual tree segmentation and tree-counting using supervised clustering

ABSTRACT 个体树木分割 (ITS) 或树木计数是精准林业和农业过程中的一项基础工作。与费时费力的人工检查不同,计算机视觉在基于无人机 (UAV) 的应用中显示出巨大的前景;此类应用之一包括森林资源清单中的自动树木计数问题。然而,由于树冠冠层…

深度学习性能评估指标介绍

首先是相关数据描述。假设原始样本中有两类数据,其中:总共有P个类别为1的样本,假设类别1为正例总共有N个类别为0的样本,假设类别0为负例经过分类后:有TP个类别为1的样本被系统正确判定为类别1,FN个类别为1的…

【哈希表】leetcode1. 两数之和(C/C++/Java/Python/Js)

leetcode1. 两数之和1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python版本3.5 JavaScript版本4 总结1 题目 题源链接 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数…

iPad 屏幕镜像到 macbook

将iPad 到屏幕投屏到 macbook,只需要三步就可以实现用数据线连接ipad和macbook在macbook的应用中找到QuickTime Player,打开QuickTime Player,在【文件】中选择【新建影片】在弹出窗口的小箭头中,选择需要的iPad名称通过数据线连接…

目标跟踪心得篇七:解决目标跟踪评价指标输出为0或异常(Trackeval、MMtracking)

如果在做跟踪任务测评时,发现输出的评价指标全为0或者异常值时该怎么办(如下图)?博主调试了很久发现其实这是MMtracking的一个Bug,因此如果不是用MMtracking框架的话本节可能对你帮助不大。 大致有以下两个内容: TrackEval目前还不能做到对多类别的MOT任务计算评价指标,…

FDD与TDD

TDD,时分双工(Time Division Duplexing) FDD,频分双工(Frequency Division Duplexing) 帮助理解: 1.FDD:双车道,一个车道只能走一个方向,双向互不干扰。 2.TDD:单车道,不同时间允…

RabbitMQ看这一篇文章就够了

第一章 RabbitMQ介绍 第1节 MQ是什么 1 2 3 41. 消息队列(Message Queue),又叫做消息中间件 2. 用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成 3. 通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信 4. MQ 是用来解…