安全头盔在建筑工地等潜在危险普遍存在的环境中对保护工人 Head 受伤起着至关重要的作用。 然而,目前尚无方法能同时实现在复杂环境中的模型准确性和性能。在本研究中,作者利用基于YOLO的模型进行安全头盔检测,在减少参数和浮点运算数量超过25%的同时,将mAP(平均精度均值)性能提高了2%。 YOLO是一种广泛使用的高性能轻量级模型架构,非常适合复杂环境。作者提出了一种新颖的方法,通过整合基于GhostNetv2的轻量级特征提取网络、空间通道注意力网络(SCNet)和协调注意力网络(CANet)以及采用梯度归一化感知优化器(GAM)来提高泛化能力。 在安全关键环境中,准确快速地检测安全头盔对于预防职业危害和确保遵守安全规程起着至关重要的作用。这项工作解决了对健壮高效头盔检测方法的迫切需求,提供了一个全面框架,不仅提高了准确性,还改善了检测模型对真实世界条件的适应性。 作者的实验结果强调了GhostNetv2、注意力模块和GAM优化器的协同效应,为安全头盔检测提供了在准确性、泛化能力和效率方面均表现出色的解决方案。
在各种工业和建筑环境中,正确使用安全帽对工人的健康至关重要。准确高效地检测安全帽在确保职业安全和遵守安全协议方面起着关键作用。传统的手动检查和监视方法往往耗时、容易出错,并且不适用于大规模操作。针对这些挑战,计算机视觉和深度学习技术作为自动化检测安全帽的有力工具应运而生。
尽管现有的目标检测方法在各个领域都取得了重大进展,但由于若干内在局限,安全帽检测仍然是一项具有挑战性的任务。依赖于手动检查和基于规则系统的传统方法往往无法解决动态工作环境的复杂性。这些方法容易出现假阳性和假阴性,导致安全执法不力,从而增加了职业事故的风险。在弥补现有安全帽检测差距的总体目标的激励下,作者提出了一个解决方案,解决了当前方法的局限性。通过在 YOLOv5 架构中利用 GhostNetv2 的能力、注意力模块和GAM优化器,作者旨在提供一种新颖有效的安全帽检测方法,为更安全、更高效的工作场所贡献力量。
作者方法的基础是著名的YOLO算法,这是一个以速度和准确性著称的实时目标检测系统。YOLO将图像划分为网格,每个网格单元预测边界框和类别概率。作者采用YOLOv5变体,因其灵活性和易于集成适应安全帽检测条件。
为了提高目标检测的精度,作者引入了注意力机制。在深度学习领域,注意力机制因其能够选择性地关注输入数据的相关部分,从而在各种任务中提高模型的性能而受到广泛关注。
在目标检测的背景下,注意力机制通过允许模型根据其重要性动态调整对不同空间区域、特征或通道的关注,为卷积神经网络(CNNs)提供了宝贵的增强。
将SCNet 和Coordinate Attention 等注意力机制整合到YOLOv5架构中,使作者能够在基于注意力特征选择的优势的同时减轻潜在缺点。通过精心设计和整合这些注意力机制,作者旨在提高模型捕获空间关系的能力,并在安全帽检测任务中提高目标检测性能。
由于光照、背景和物体姿态的变化,实现强大的泛化能力是具有挑战性的。作者选择实现梯度范数感知优化器(GAM)[12],是因为它能够平滑优化景观,促进更快收敛和增加泛化能力。改进的泛化能力减轻了过拟合,确保了模型在新数据和未见数据上的有效性。
作者研究的主要贡献如下:
在目标检测领域,YOLO(You Only Look Once)[13]系列算法及其改进版本一直是研究的焦点。众多研究致力于基于YOLO框架优化和创新目标检测的各个方面。在YOLOv4的基础上,YOLOv5融合了几项改进措施,包括在数据加载过程中采用三种数据增强技术,在Backbone中结合CSPNet、Leaky ReLU和Sigmoid激活函数,并在Neck部分整合了SPP-Net和FPN+PAN结构。此外,YOLOv5还引入了自适应 Anchor 框,提高了模型的收敛速度和泛化能力。在自动驾驶感知领域,MCS-YOLO[14]设计了一种多尺度小目标检测结构,以提高识别灵敏度并克服检测小目标的固有挑战。YOLO-Z[15]专注于提升自动驾驶车辆的小目标检测能力。通过引入新的注意力机制和特征融合策略,YOLO-Z显著提高了小目标检测的准确度,同时保持了高速度。作为YOLO系列的创新版本,YOLOX[16]摒弃了传统的 Anchor 框概念。通过端到端训练,简化了目标检测过程,增强了模型的泛化能力。LF-YOLO[17]结合了强化多尺度特征(RMF)模块,通过参数化和无参数操作的组合有效地提取多尺度信息。
注意力机制[18]已经成为提高神经网络能力的关键组成部分,特别是在目标检测中。非局部神经网络[19]采用了非局部操作来捕捉图像中的长距离依赖。这种机制使得网络在目标检测任务中能够更好地理解场景的全局上下文。门控注意力网络[20]通过引入门控机制来动态调整特征图中的注意力权重。这种动态调整提高了目标检测的准确性和鲁棒性。跨阶段部分连接[21, 22]在不同阶段之间建立部分连接,并引入了一种新的注意力机制,以增强在少样本学习场景下的目标检测性能。多尺度扩张注意力[23, 24]采用多头设计,在不同头中执行具有不同扩张率的滑动窗口[25]。CBAM[25]是一个像SENet[26]一样的知名注意力模块,它结合了空间注意力和通道注意力,显著提高了网络的准确性。
优化器[27, 28]在有效训练深度学习模型中扮演着关键角色。随机梯度下降(SGD)[29, 30]是一种在机器学习和深度学习中广泛采用的基本优化算法。它通过迭代地使用损失函数相对于这些参数的梯度来更新模型参数,以最小化目标函数。自适应动量估计(Adam)[31]是一种自适应学习率的优化算法,它结合了动量和RMSprop的思想。它根据历史梯度为每个参数单独调整学习率,提供高效和自适应的优化。锐度感知最小化(SAM)[32]是一种最近设计的优化算法,旨在在训练期间增强损失景观的平坦性。它通过惩罚锐度,即相对于参数的梯度的范数,来解决过拟合问题,这为随后介绍GAM优化器[12]的整合及其对所提出改进的影响奠定了基础。
作者提出的框架结构及原始YOLOv5如图1所示。与原始YOLOv5相比,本文在以下三个方面做出了贡献:
C3模块在主干网络中引入了复杂的结构和连接方法,这可能导致参数冗余。因此,GhostNet [33, 5] 引入了深度卷积和点卷积以减少参数。此外,它还基于全连接层结合了DFC注意力[34]来解决小卷积局部感受野的问题。GhostNetV2通过幽灵块强调参数效率,在深度神经网络中擅长特征提取。其设计优先考虑性能,同时不牺牲计算资源。作者框架的网络主干如图2所示。
图1:该图比较了作者改进的框架与原始的YOLOv5框架。在主干部分,作者将conv和C3模块分别替换为GhostConv和GhostC3。此外,作者将原始的SPPF替换为集成了SCNet的SPPF。在 Neck 部分,作者在每次拼接步骤后添加了一个协调与注意力(CA)模块。
标准的GhostNet模块可以用以下步骤替换传统的卷积块,对于输入特征
:首先,使用深度卷积减少输入特征图的通道维度,结果表示为
(1)。然后,利用逐点卷积捕捉通道信息,并与
(2)进行拼接。接下来,乘以DFC注意力以捕捉空间邻域信息,其中DFC注意力图可以计算为(3)。
是
标记
。
通过分别对高度和宽度维度应用卷积操作,DFC注意力在提取长距离特征的同时显著减少了参数和计算负载。在相同的输入特征图
和相应相同输出的条件下
,标准卷积模块和GhostNet模块的总参数可以计算如下:
通常是输入通道大小的一半。很明显,与标准卷积模块相比,ghost模块需要更少的参数。
GhostNet瓶颈结构由两个GhostNet模块组成。第一个Ghost模块提取更深层次的信息并丰富特征,而随后的Ghost模块(不带有DFC注意力),改变通道数量以匹配残差路径。Ghost Bottleneck的结构如下所示:由于GhostNet前述的优点,在将 Backbone 网络中的C3和Conv模块替换为GhostNet后,计算量和参数规模显著减小,提升了网络的运行速度,而准确度损失并不明显。
尽管GhostNet显著减少了模型的参数和计算负载,但它难以有效地捕捉空间特征,不可避免地导致一些准确度损失。为了补偿这一点,作者提出了注意力机制,特别是在YOLO的主干和 Neck 部分采用自校正卷积和坐标注意力,以保持长距离的位置信息。注意力机制使模型能够通过学习权重来选择性地关注输入序列或图像的某些部分,从而分配对不同位置的注意力。这允许模型选择性地关注输入的特定区域,同时忽略其他噪声或不相关的部分。
SCNet是一个轻量级的注意力模块,其工作流程如图3所示。在SCNet中,输入被分成两个分支。它们分别计算,每个分支的结果与最终结果进行拼接。
如上图所示,SCNet具有几种不同大小的残差块,引导输出突出感兴趣区域。这种并行的分支嵌入还为模块提供了广阔的视野,帮助它学习其空间环境。借助多尺度特征,模型可以在各种环境中有效地检测到小头盔目标。在作者提出的模块中,SCNet被添加到SPPF块的主分支中,如图7所示。SPPF块也是一个残差块,但与SCNet不同,SPPF块拼接不同通道大小的特征,而SCNet连接不同分辨率的尺度。通过在SPPF块中添加SCNet,SPPF将学习不同分辨率之间的特征关系,增强检测不同大小目标的能力。此外,SCNet的缺点,即由于堆叠这样的卷积层而较弱的大接收场捕捉能力,在很大程度上没有暴露出来。
在YOLO中, Neck (Neck)部分在解耦和提取特征图特征方面发挥着关键作用。为了解决在升采样过程中丢失输入精确空间关系的问题,提出了坐标注意力(Coordinate Attention)。CA通过结合基于像素坐标的空间关系来增强特征学习。CA模块的示意图如图4所示。
如图所示,CA模块包括两步:坐标信息嵌入和坐标注意力生成。坐标信息嵌入使用全局池化来嵌入空间特征。对于输入特征
,分别使用两个池化核
将其降维到
(5)和
(6)维度
。
结果
和
表示了像素与其跨邻域之间的关系,但并没有精确的位置信息,这被称为坐标注意力生成。因此,在
和
(8)上又添加了另外两个
卷积变换,其中
是
和
(7)的连接输出。
所提出的带有坐标注意力的 Neck 框架如图1所示。在作者的模块中,CA模块被添加到YOLO Neck 中C3块的前方,出于两个考虑:
在复杂多变的场景中检测安全头盔,因此提高模型的泛化能力至关重要。基于随机梯度下降(SGD),作者在优化器上添加了一阶平坦性以提高泛化性能。SGD采用随机逼近技术,通过根据随机抽取的训练数据子集调整模型参数来最小化损失函数,从而促进模型向最优解的收敛。SGD算法可以用以下公式(9)表示,其中
是学习率,
是时间步,
是损失梯度。
为了增强模型的泛化能力,作者在SGD优化器中添加了GAM(梯度范数感知最小化)。Hessian的最大特征值被广泛认为是衡量收敛位置的平滑度和曲率的指标。GAM使用以下公式(10)近似Hessian的最大特征值:
其中
是一阶平坦性,可以在(11)中计算:
GAM使用公式(12)限制泛化误差的范围。如格式所示,优化泛化误差的关键是控制损失函数
和一阶平坦性
。通过更新控制损失值梯度和一阶平坦性的权重,GAM逐渐减少泛化误差。
代码流程如下:
算法1 梯度范数感知最小化(GAM)
因此,模型在减少泛化误差的方向上收敛。通过在优化器中添加GAM,可以有效地增强模块的泛化能力。## IV 实验部分
在本节中,作者提出一系列实验,旨在验证为头盔检测对YOLOv5所做的改进。实验是在Kaggle提供的公开头盔检测数据集上进行的。作者全面评估了原始YOLOv5及其各种改进版本,根据关键指标如平均精度(mAP)、参数、GFLOPs、模型大小和交并比(IoU)进行了彻底的比较。
作者的实验是在一个配备了AMD CPU 5800x和NVIDIA GeForce RTX4090的硬件平台上进行的,使用了CUDA 11.7和PyTorch 1.18.1作为底层深度学习框架。本研究中使用的所有数据集、神经网络模型及相关资源均可在上述环境中轻松获取并验证。
作者研究中所使用的数据集来源于八个Kaggle的开源头盔检测项目,总共包含超过20000个图像样本。作者将90%的图像用于训练,10%的图像用于验证,以评估作者所提出方法的有效性。除了本文中提出的修改外,所有YOLOv5训练配置的默认参数保持不变(可进一步详述)。除了YOLOv5模型外,作者还选择了Faster R-CNN、YOLOv5-L、Yolov3等变体,用于与作者所提出方法的比较分析。比较实验表明,在检测准确性、检测速度等方面,作者提出的模型表现出色。
作者使用本研究中采用以下方法进行了消融实验:GhostNetV2、坐标注意力(CA)、自校准卷积(SCNet)和GAM优化器。作者将这些方法逐一集成到Yolov5中,并在阿里巴巴云上共享的数据集上进行测试[35]。基于以下结果的发现,作者得出以下结论:
在这段研究中,作者通过一系列的比较实验进行了全面的探索,范围涵盖不同的网络。作者的主要目标是细致地评估和评价作者提出的模型的有效性,细致地审查一系列指标以进行彻底的分析。此外,作者通过同时跨多个数据集进行交叉数据集比较,进一步深入评估领域。这种策略性的做法对于衡量作者提出的模型内在的总体泛化能力至关重要。通过将作者的模型同时应用于不同的数据集,作者旨在确定它在各种情况下的适应性和鲁棒性。为了丰富作者的比较分析,作者精心挑选了三个来自Kaggle的头盔数据集,这些数据集是精心挑选的,以涵盖各种场景和挑战。通过严格的实验,作者努力将作者提出的模型与YOLOv5s在这些不同数据集上的性能进行对比。
作者提出了一种基于YOLO的模型,其特点是参数少、检测准确率高、泛化能力强,能够在复杂环境中安全运行。然而,无论注意力机制是否能显著提高检测准确度,提升幅度总是有限的。如何在保持模型轻量级特性的同时进一步提升模型的性能,是每个人都需要考虑的问题。
[1].Better YOLO with Attention-Augmented Networkand Enhanced Generalization Performance forSafety Helmet Detection.