1. 引言
现实生活中的复杂场景往往伴随着遮挡现象,遮挡会导致目标在视觉上信息丢失、形态模糊或边界不完整,从而显著增加目标分类与定位的难度,尤其是在拥挤场景或复杂背景中,传统目标检测方法的性能往往大幅下降,在遮挡物与目标具有相似的外观或纹理特征时,模型难以有效区分目标与遮挡物,导致误检。例如,在交通场景中,行人与背景广告牌之间的相似性可能使检测混淆。传统计算机视觉算法在遮挡目标检测中面临挑战,由于传统目标检测方法通常依赖于局部特征的提取与分析,当目标的关键特征被其他物体部分覆盖或掩蔽时,模型难以准确区分目标间的边界和关系,从而导致对遮挡目标的定位和分类准确性降低。因此,确保目标检测算法能够准确地识别和定位目标在遮挡图像中位置具有重要意义。
在目标检测领域,YOLO (You Only Look Once)系列[1]算法凭借其端到端、实时检测的优势,广泛应用于自动驾驶、安防监控等场景。Bochkovskiy等人[2]过增强特征提取网络的多尺度能力,在YOLOv4中引入FPN (Feature Pyramid Network)和PAN (Path Aggregation Network),显著提升了模型对小目标及部分遮挡目标的检测能力。Chen等人[3]针对遮挡问题,提出了动态检测头(Dynamic Head)通过自适应调整不同特征层的权重,在检测复杂场景中的遮挡目标时表现出更强的鲁棒性。Sun等人[4]在YOLO框架中加入深度图或红外图像信息,有助于分离目标与背景,从而提高对遮挡目标的检测精度。
2. 相关工作
2.1. 注意力机制
注意力机制(Attention Mechanism)是一种在处理信息时动态调整对不同部分的关注程度的技术,旨在提升模型在各种任务中的表现。它最初受到人类视觉和认知注意力过程的启发,已广泛应用于自然语言处理(NLP)、计算机视觉(CV)、语音识别等领域。主要目的是根据输入信息的重要性分配权重,优化信息的处理过程。其核心思想是:在给定一个输入序列时,模型能够自动决定哪些部分的信息对当前任务最为重要,从而对这些部分赋予更高的关注度。注意力机制在计算机视觉任务中已成为提升模型性能的关键技术,尤其在目标检测、语义分割等任务中展现出重要的应用价值。
Figure 1. YOLOv10 network architecture diagram
图1. YOLOv10网络结构图
自注意力机制(Self-Attention)由Vaswani等人[5]提出,主要用于序列数据处理,如机器翻译等任务。该机制通过计算输入序列中每个元素与其他元素之间的相似度,来动态地为每个元素分配不同的注意力权重。自注意力机制不仅能够捕捉全局依赖关系,还避免了传统RNN和CNN在长序列建模中的限制。Woo等人[6]提出的CBAM是一种将通道注意力和空间注意力相结合的模块。其创新之处在于通过两步注意力机制,分别增强了特征图的通道和空间维度的信息表达。通道注意力通过自适应调整每个通道的权重,提升了特定通道特征的表达能力;而空间注意力则通过关注不同位置的特征,增强了空间局部信息的感知。Hu等人[7]提出的SENet通过引入Squeeze-and-Excitation模块,对每个通道的特征进行自适应重标定。SENet的创新之处在于利用全局信息来建模每个通道的重要性,并根据该重要性调整通道的响应。该方法能够提升网络的表达能力,尤其在图像分类和物体检测中表现优异。Wang等人[8]提出的Linformer通过低秩近似来优化自注意力的计算过程。其创新之处在于将标准的全局自注意力机制改为稀疏注意力,利用低秩矩阵近似来减少计算和内存消耗。这一方法的作用是降低自注意力机制在处理长序列时的计算复杂度。
2.2. YOLOv10
YOLOv10由2024年发布[9],具体网络结构图如图1所示。YOLOv10相较于YOLOv8没有较大的改变,在预测方面采用了无NMS的双重分配策略,包括标签分配和一致匹配度量,在保证一定精度的前提下大幅提升了网络的检测效率。
YOLOv10n模型结构主要由输入端(Input),主干网络(Backbone),颈部网络(Neck),检测头(Head)构成,结构图如图1所示。Input负责将原始图像输入到模型中。Backbone从输入图像中提取有用的特征,主要由Conv卷积层,C2f残差块,SPPF空间金字塔模块,SCDown模块,自注意力模块PSA组成。Conv卷积块主要由二维卷积层,Batchnorm2d批归一化,SiLU激活函数构成。SPPF通过对输入特征图进行不同尺度的池化操作,生成固定长度的特征向量,从而使得网络能够处理任意尺寸的输入图像C2f主要由卷积层,BottleNeck模块构成。SCDown实现空间下采样(从H × W到H/2 × W/2)和通道变换(从C到2C),在减少计算量的同时最大限度地保留了下采样过程中的信息。Neck部分采用了基于特征金字塔网络(FPN)的改进结构Path Aggregation Network (PANet),该结构采用了多尺度特征融合技术,将来自Backbone的不同阶段的特征图进行融合,增强了特征表示能力。Head部分默认为P3、P4、P5三个检测头。
3. 遮挡目标算法
本文主要从融合注意力机制、添加检测层、改进损失函数几个方面对YOLOv10n进行改进。为了增强对行人遮挡目标的定位能力,基于图像特征设计多尺度自注意力机制(EMSA),并将其融合进YOLOv10n的Backbone和Neck部分;为了提升对遮挡小目标行人的检测能力,在特征浅层添加小目标检测头;为了提高模型性能,使用Focaleriou损失函数替换CIoU作为算法的定位损失函数。改进后的YOLOv10n-EMSA网络结构如图2所示。
3.1. 多尺度自注意力机制融合
本文提出了一种多尺度自注意力机制EMSA,结合了基于高效多尺度的全局注意力机制和基于多尺度扩张局部注意力的局部注意力机制。EMSA的原理图如下图3所示。输入特征图经过EMA模块提取全局与局部信息:通道划分后的特征分别通过方向性自适应池化(水平和垂直方向)捕获全局空间信息,并通过1 × 1卷积进行信息融合与上采样恢复特征分辨率;同时,3 × 3卷积用于强化局部特征,并结合组归一化(GN)优化特征分布。随后,通过自适应全局池化生成动态注意力权重,调整特征图中不同区域的重要性。与此同时,输入特征图还通过MSDA模块提取多尺度特征。MSDA利用多个感受野大小的多头注意力机制,通过动态感受野权重捕获不同尺度下的特征相关性,并生成跨尺度的注意力特征。最终,EMA模块和MSDA模块的输出特征在通道维度进行融合,以实现全局、局部以及多尺度信息的联合表达。融合后的特征图既保留了细粒度的空间信息,又增强了对复杂场景中多尺度目标的感知能力,为后续任务提供了更加丰富且高效的特征表示。
Figure 2. YOLOv10n_EMSA network architecture diagram
图2. YOLOv10n_EMSA网络结构图
Figure 3. EMSA schematic diagram
图3. EMSA原理图
在该注意力结构中只有两个卷积核分别放置在并行子网络中,帮助网络避免更多的顺序处理和大深度。其中一个并行子网络是一个1 × 1卷积核,用于调整特征图的通道数,另一个是一个3 × 3卷积核,用于空间特征提取和特征细化,用于增强特征的表达能力。
多尺度自注意力(EMSA)的具体工作流程:通过自适应池化提取空间维度的特征→组归一化计算输入特征图的加权平均,增强特征的表达能力→1 × 1卷积调整特征图的通道数,3 × 3卷积核,用于空间特征提取和特征细化,增强特征表达→全局平均池化权重→Softmax函数注意力权重,对输入特征图进行加权→计算加权平均,捕捉多尺度的局部特征→注意力特征融合。
C2f模块本身具有跨阶段特征连接的特性,适合多尺度信息融合。而引入注意力机制可以自适应地调整不同尺度特征的重要性,使融合结果更加精准,因此将EMSA融入到C2f中,具体结构如下图4所示。
Figure 4. C2f_EMSA structure
图4. C2f_EMSA结构
3.2. 线性聚焦机制
在不同的检测任务中聚焦不同的回归样本,采用线性区间映射其定义为:
(1)
其中,
是重构后的Focaler-IoU值,IoU是原始的IoU值,且
。
当IoU低于阈值d时,
被设置为0,可以忽略低IOU样本,避免模型浪费精力在极差的预测上。当IOU在
区间时,
被映射到0到1之间,使模型更关注IoU值在该范围内的样本,以此来重点关注特定范围的样本。当IoU大于u时,
为1,表示该样本接近理想匹配。
为了使
专注于不同的回归样本,可以通过调整d和u的取值范围。其损失函数定义如下:
(2)
Focaler-IoU损失通过引入线性区间映射机制,有效地增强了模型对不同IoU区间的回归样本的关注,使其可以在各种检测任务中实现更优的边界框回归效果。相比传统的IoU损失,它对难例和特定区间样本有更强的聚焦能力。
3.3. 小目标检测头
在特征融合的过程中,通常会使用多尺度特征图(如P3、P4、P5)来进行目标检测。这些特征图分别对应不同分辨率的图像层,P3层较浅,P5层较深。P3、P4、P5这三个层级的特征图虽然能够很好地处理小到大尺度的目标,但由于它们来自较深的网络层次,分辨率相对较低,对于微小目标来说,细节信息的保留不够充分,导致小目标难以检测,而安检X光图像中可能存在物体重影和遮挡,这会导致一些原本就小的目标更难检测,通过添加一个小目标检测头P2,可以有效提升模型的检测性能,尤其是针对小目标的检测能力。
4. 实验结构及分析
4.1. 数据集、实验环境和实验指标
实验数据集选用Citypersons公开数据集,广泛应用于行人检测任务的数据集,其图片中覆盖了多种城市环境,包括不同的天气条件、光照变化、以及动态的行人和车辆。本实验只选取了数据集中的行人标签进行训练。
实验硬件环境:CPU:AMD Ryzen 7 5800X 8-Core Processor,32GB内存;GPU:Nvidia GeForce RTX 3060 12g显存。实验软件环境:操作系统:ubuntu20.04,cuda版本为11.8,python版本为3.8,深度学习框架PyTorch版本为2.0.1。实验模型:YOLOv10n。模型权重文件:YOLOv10n.pt。
超参数设置:批量大小Batch Size设为16,训练轮次Epochs为100轮,学习率0.01,输入图片尺寸为640 × 640,优化器为SGD,其余参数都为YOLOv10默认值。
评估指标:精准度(Precision, P):预测为正样本的结果中,实际为正样本的比例;召回率(Recall, R):实际正样本中被模型正确预测的比例;平均精度Map@0.5:表示IOU为0.5时的平均精度。
4.2. 融合多尺度自注意实验结果
为了验证多尺度自注意力机制EMSA改进算法的效果,将融合了EMSA注意力机制的模型与原模型进行了对比实验,实验结果如下表1所示,在Citypersons数据集中该改进后的模型相较于原模型平均精度提升了2.2%。其中YOLOv10n的检测结果如下图5左所示,改进后的模型检测结果如右所示,实验结果表明,该改进后的注意力机制的精度相较于原模型有一定提升。
Table 1. Performance comparison of multi-scale self-attention mechanisms
表1. 多尺度自注意力机制性能对比表
model |
P |
R |
mAP@0.5 |
mAP@0.5:0.95 |
YOLOv10n |
0.944 |
0.79 |
60.1 |
37.2 |
YOLOv10n + EMSA |
0.886 |
0.83 |
62.3 |
38.9 |
Figure 5. Comparison of results before and after adding the EMSA attention mechanis
图5. 加入EMSA注意力机制前后效果图
4.3. 消融实验对比
为研究在遮挡目标检测任务中注意力机制在模型结构中不同位置的有效性。通过将注意力机制嵌入特征提取阶段(Backbone)和特征融合阶段(Neck),并使用Citypersons数据集通过消融实验系统地分析不同位置对模型性能的影响,消融实验的结果如表2所示。
实验表明该改进是有一定提升的,实验结果如表2所示,由表2可知,该注意力机制与neck部分的C2f进行融合提升最大,相较于原始的YOLOv10n其map@0.5提升了2.2%。图6是Citypersons数据集中算法改进前后PR曲线对比图,左边是原算法的PR曲线图,右边的是YOLOv10n-OOD的PR曲线图。
Table 2. Experimental comparison of adding EMSA to different modules
表2. EMSA加在各模块的实验对比表
model |
Neck |
Backbone |
Focaleriou |
map@0.5 |
YOLOv10n YOLOv10n_EMSA |
× |
√ |
√ |
61.5 |
√ |
√ |
× |
60.2 |
√ |
× |
√ |
62.3 |
YOLOv10n
YOLOv10n_EMSA
Figure 6. PR comparison chart after algorithm improvement on the Citypersons dataset
图6. Citypersons数据集中算法改进后PR对比图
4.4. 结论
针对遮挡图像复杂且特征模糊难以准确检测的问题,在YOLOv10n模型的基础上提出了融合了多尺度自注意力机制遮挡目标检测。将该机制与YOLOv10n中的C2f进行融合,并将其替换掉neck部分的C2f,以此来提升网络的特征提取能力。为解决小目标占图像的像素比例小,导致特征表达弱,难以与背景分离的问题,添加了小目标检测头P2,提升对小目标的特征提取能力。为解决正负样本之间存在的不平衡,导致忽视了困难样本的学习,从而导致模型对小目标或重叠目标的检测能力不足的问题,使用Focaler-IoU替换CIOU,增强了模型对低IoU样本的关注。通过在Citypersons数据集上进行消融实验得知,该注意力机制相较于原YOLOv10的map@0.5提升了2.2%,该模型能够更加精确地检测到遮挡目标,满足了复杂场景精确识别的要求。
NOTES
*通讯作者。