基于注意力机制改进深度神经网络的遮挡目标检测

2023-03-27 06:34
科技创新与应用 2023年8期
关键词:注意力卷积特征

晏 超

(南京邮电大学通达学院,江苏 扬州 225127)

在实际生活中,目标往往不是完整展示在视觉范围当中,感兴趣目标可能和同类目标发生重叠,也可能会受到不同类目标的遮挡干扰[1]。感兴趣目标的缺失展示给机器完成高准确度目标检测的任务带来很大难度,为了实现复杂环境中被遮挡目标和其他目标的区分,对模型提取特征方面的要求会更高。人类的视觉在观察目标时通常会着重关注目标区域的信息,并且减小关注甚至忽视剩余的信息。在视觉的有限关注力下,关注图像中偏重点的部分,将更多的精力投入到这个部分发掘更多与目标关联紧密且有用的特征信息,抑制无价值的信息,这就是注意力机制。在面向被遮挡目标的检测中引入注意力机制,进一步提升模型提取关键特征信息的性能,以此更加准确地预测被遮挡目标的真实位置。

1 改进生成特征图的方式

1.1 SSD 目标检测算法

SSD(Single shot MultiBox Detector)的网络纵深结构主要由主干前置网络VGG16 和后续的多个辅助卷积特征层(conv)组成[2],如图1 所示。基于多尺度特征图检测的思路,向网络输入300×300 尺寸的图片,VGG16 网络作为SSD 网络的基础网络输出1 张特征图,后续的卷积层再输出5 张特征图。越往后的卷积层输出特征图尺寸越小(从38×38 降到1×1),将总共6 张特征图全部用于检测层步骤中,完成先验框的生成、输出置信度得分及获取边界框坐标位置信息的工作。最后,通过非极大抑制算法排除繁杂重叠的冗余框,留下最能表征目标的检测框,得到最终的检测结果。SSD 算法兼顾了两步检测法和一步检测法的优势,既保证了检测精度,又保证了检测速度。

图1 SSD 的网络结构

1.2 引入注意力机制CBAM 模块

CBAM(Convolution Block Attention Module,卷积块注意力模块)是基于注意力机制的,同时关注空间和通道2 方面重要性的轻量级模块[3]。如图2 所示,CBAM 模块将特征图作为输入对象,进入通道注意力模块完成第一步,突出特征图中有意义的信息。特征图F 经过并行的最大池化层和平均池化层的作用,特征图a×b×c 的尺度会转化为a×1×1 大小,然后通过中间模块Shared MLP 的作用,先压缩通道数再扩张回原数量级,接着将通过ReLU 激活函数的作用生成的2 个结果进行逐元素相加,最后通过sigmoid 函数输出通道注意力的结果Mc(F),该输出结果和输入的特征图F 逐元素相乘得到结果F′,尺度重新转化为a×b×c,第一步过程如公式(1)(2)所示。由第一步过程可得,整个通道注意力模块的作用就是维持通道方面维度不变的同时,压缩空间方面的维度。第二步是进入空间注意力模块,突出目标的位置信息[4]。将第一步的结果F′直接作为第二步的输入,经过非并行的最大池化层和平均池化层的作用得到2 张1×b×c 的特征图,经过Concat 操作将2 张特征图拼接起来,然后通过7×7 卷积作用转化为通道数为1 的特征图,最后通过sigmoid 函数得到空间注意力的结果Ms(F′),该输出结果和输入的特征图F′逐元素相乘得到结果F″,同样尺度重新转化为a×b×c,第二步过程如公式(3)(4)所示。由第二步过程可得,整个空间注意力模块的作用就是维持空间方面的维度不变,压缩通道方面的维度。

图2 CBAM 结构图

由于SSD 网络的低层和中层网络生成的特征图分辨率较高,但是包含的语义信息较少,会导致检测小目标效果不佳。而被遮挡目标经常是以小目标的尺度出现,比如根据视觉近大远小的特性,处于图像中远处的目标被近处的目标遮挡,直接导致被遮挡目标的召回率严重不足。引入CBAM 模块分别置于SSD 低层的conv4_3 生成特征图输出给检测层的过程中,以及中层的conv8_2 后方,如图3 所示。通过加强通道和空间的特征表达的方式,弥补低层表达能力的不足。各个权重与特征图的相乘运算将侧重信息表达了出来,提升网络提取重要特征的能力,这些重要特征往往是被遮挡目标在图像中单一显示出来的,与其能否被检出很有关联。

图3 在SSD 中引入CBAM

1.3 引入改进的Inception-ResNet-v2 网络结构

为了能够更加高效地提取目标的特征,引入Inception-ResNet-v2 结构[5-6]改变SSD 网络生成6 张多尺度特征图的方式。分别通过mix_3a,mix_4b,mix_5a,Inception-ResNet-A,Inception-ResNet-B 和Inception-ResNet-C 6 个不同层级的结构得到不同尺度的特征图,全部用于检测步骤进行预测。越是经过深度神经网络(DNN)高层的卷积作用,特征图映射到原图中的感受野就越大,会直接导致局部位置信息的感受越来越差,相对位置信息越发不明显。运用空间注意力模块关注目标位置信息的特点,引入多个CBAM 模块置于Inception-ResNet-X 结构中含有卷积层多分支路径最后合并输出的路径上,X 代表A、B 和C,如图4—图6所示。以Inception-ResNet-A 为例,如图4 所示,输入和输出之间包含4 条分支路径。其中在3 条带卷积层的并行路径中,第一条路径只需要进行1×1 卷积核的作用,第二条路径需要经过1×1 和3×3 卷积核的作用,第三条路径需要经过1×1 和2 个3×3 卷积核的作用,堆叠3 条路径作用的结果再经过1×1 卷积核的作用来到合并路径,最后通过CBAM 的作用强化特征位置信息的表征,输出的结果再和不带卷积层直接输出的结果相加。同理,如图5 和6 所示,各个包含不同程度信息的特征图在进行相加前,都要经过CBAM 的作用,再输出到结构下层或检测层中,如图7 所示。

图4 引入CBAM 模块的Inception-ResNet-A 结构

图5 引入CBAM 模块的Inception-ResNet-B 结构

图6 引入CBAM 模块的Inception-ResNet-C 结构

图7 改变生成特征图的方式

2 实验结果与分析

2.1 实验环境配置

在Win10 系统环境下,使用python 语言基于SSD的Tensorflow 版本的实验平台。硬件配置选定处理器Intel(R)Core i58400,显卡NVIDIA GeForce GTX 1080。设置批量尺寸为16,动量参数为0.90。第一段迭代训练次数为120000,学习率设置为0.0005,第二段迭代训练次数为40000,学习率设置为0.00005。针对行人目标选用INRIA 数据集,车辆目标选用KITTI 数据集,还要分别混合自建数据集一并参与训练。

2.2 评价指标

本实验使用以下指标分析算法的检测性能。

1)精确度P(Precision)衡量检测出的目标是真实目标的比率,表示检测出的目标到底是不是行人和车辆的正确程度。

2)召回率R(Recall)衡量检测出的目标数量占所有真实目标数量的比率,表示所有行人和车辆是不是都被检测出来。

3)单张图片检测时间衡量检测的速度,时间越短,实时应用性越好。

2.3 结果分析

使用不同的数据集,采用对比实验验证在SSD 网络中引入CBAM 模块和在SSD 网络中引入包含CBAM 模块的Inception-ResNet-v2 结构对提升被遮挡目标检测效果的有效性。改进后的模型在检测被遮挡行人和车辆目标的精度上都有提升,2 种算法分别提升0.5%和7.2%的精准率,1.6%和5.0%的召回率。单张图片的平均检测时间随模型复杂程度的提升而略微增长。数据结果分析见表1。

表1 引入CBAM 改进算法前后检测实验结果

如图8 所示,通过对比不同算法输出的不同检测图可以发现,不论是受到同类目标的遮挡还是受到干扰项目标的遮挡,部分被遮挡目标在改进后的算法中都能被检测出来,减小了一定程度的漏检和错检。

图8 检测结果对比图

3 结论

针对复杂环境下行人和车辆目标被遮挡情况下的检测问题,以SSD 目标检测算法为基础,从6 张生成特征图入手,通过直接引入注意力机制CBAM 模块和引入包含CBAM 模块改进的Inception-ResNet-v2 网络结构这2 种不同算法,分别改变特征图的生成方式,增强了模型的特征提取能力,再利用混合数据集参与训练,进一步提高模型的泛化能力。

猜你喜欢
注意力卷积特征
根据方程特征选解法
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things