融合注意力及路径聚合机制的装甲车识别方法
2022-01-10丛玉华王志胜邢长达
丛玉华,王志胜,邢长达,3
(1 南京理工大学紫金学院,南京 210023;2 南京航空航天大学自动化学院,南京 211106;3 南京航空航天大学深圳研究院,广东深圳 518063)
0 引言
装甲车是陆地战场目标的重要组成部分,战场环境非常复杂给战场装甲车识别带来了巨大挑战,对装甲车进行尽可能精确地检测与识别对于敌我识别、战场态势判断、决策指挥具有重要意义[1-2]。随着目标识别技术的发展,优秀的目标识别算法不断提出,其中一阶目标识别算法直接对输入图像进行特征提取操作,然后对所需目标进行分类、定位,该类算法在战场应用场景中能达到实时性要求。经典的一阶算法有Yolo、SSD等[3],其中Yolov1由Redmon等在2016年提出,在识别过程中将整张输入图像看作是目标的上下文特征,这种改进可以大幅度减少将所需目标错误认为是图片背景元素的机率[4]。此后提出的Yolov2算法在卷积层上额外新增了归一化层,进一步提高了目标识别准确度并且有效解决了重叠目标的识别问题[5]。Redmon在2018年提出了识别率更优的Yolov3算法,选用更深的网络,使得算法具有了更高的识别效率和准确率[6]。2020年,CY Wang等提出Yolov4算法。融入了CSPDarknet53和加强特征提取网络SPP、PAnet,将特征进行融合,提取出更精确的特征[7]。2020年Yolov4-Tiny发布,精简了特征提取网络,使模型的复杂度和训练参数大大减少[8]。战场环境下需使用轻量级网络来提高实时性,因此Yolov4-Tiny更适合装甲车识别。
1 Yolov4-Tiny网络
1.1 卷积神经网络
卷积是图像处理的重要工具,因此以卷积为基本运算形式的神经网络在目标识别任务中有着不错的效果,可以用来解决复杂度较高的识别问题[9-12]。卷积神经网络基本结构如图1所示。
图1 卷积神经网络结构示意图
卷积层主要用来提取目标特征,对目标图像进行多次卷积运算,进一步获得更加丰富的特征信息,以此得到更加优化的特征图[13]。池化层通常加在卷积层后面,通过特征选择和信息过滤,压缩数据和参数数量,降低训练耗时,减小过拟合[14]。全连接层位于卷积神经网络隐含层的最后部分,对特征进行分类操作[13]。输出层使用逻辑函数或归一化指数函数输出分类标签。
1.2 Yolov4-Tiny网络结构
Yolov4-Tiny目标检测网络基于卷积神经网络构建,主要由3部分组成:主干特征网络部分采用CSPDarknet53-Tiny网络,加强特征提取网络部分选择FPN特征金字塔网络,预测输出部分为两个用于分类与回归预测的有效输出特征层。Yolov4-Tiny网络结构如图2所示。
图2 Yolov4-Tiny网络结构图
1.2.1 主干特征网络
Yolov4-Tiny的主干特征网络CSPDarknet53-Tiny由两个基本部分构成,分别是CBL层(Conv+BN+Leaky ReLU)和CSP(cross stage partial)层。PL为池化运算,UpSamp为上采样运算。
1)CBL层
CBL层包括卷积运算Conv,批标准化处理BN(batch normalization),Leaky ReLU函数激活。CBL层在每一次卷积之前进行L2正则化,完成卷积后进行标准化与Leaky ReLU激活。
L2正则化目的是控制模型复杂度、减小过拟合。其中,L2正则化公式为:
(1)
卷积层主要被用来提取目标特征。在卷积层中,对目标图像进行多次卷积运算,通过多次运算进一步获得更加丰富的特征信息,以此得到更加优化的特征图。卷积的表达式为:
(2)
式中:i,j代表该卷积核的两个位置参数;θi,j代表i,j位置上原图像内的数据;xi,j代表i,j位置上卷积核内的数据;ε代表该位置的权重;m代表卷积核大小。
批标准化的本质就是利用优化方差大小和均值位置,使得新的分布更切合数据的真实分布,保证模型的非线性表达能力。其表达式为:
(3)
激活函数Leaky ReLU,即带泄露线性整流函数,是在神经元上运行的函数,该函数输出对负值输入有很小的坡度。由于导数总是不为零,能减少静默神经元的出现,允许基于梯度的学习,解决了修正线性单元ReLU函数进入负区间后,导致神经元不学习的问题。Leaky ReLU的表达式为:
(4)
其中:δ为Leaky ReLU的参数;t为神经元输入;f(t)为神经元输出。
2)CSP层
CSP为残差模块,是在CBL结构基础上引入残差结构,如图3所示,Rt1和Rt2为两个残差边。计算残差的表达式为:
图3 CSP结构
gd+1=gd+F(gd)
(5)
式中:gd为直接映射;F(gd)为残差部分,表示对gd进行卷积等操作。将两者叠加得到的gd+1表示残差块。
1.2.2 加强特征提取网络
加强特征提取网络采用FPN(feature pyramid networks)特征金字塔网络,通过利用常规卷积神经网络模型内部从底向上各个层对同一大小图片不同维度的特征表达结构,将缩小或扩大后的不同维度图片作为输入生成反映不同维度信息的特征组合,能有效地表达出图片之上的各种维度特征。在Yolov4-Tiny中,FPN预测输出采用两层结构如图4所示。
图4 Yolov4-Tiny中FPN网络结构
1.2.3 网络输出
Yolov4-Tiny的输出层融合了网络Head输出,Loss计算和预测结果解析。
1)特征输出
Yolov4-Tiny一共提取两个特征层进行目标检测,若输入图像大小为(w,h,3),则两个特征层的大小分别为(w/16,h/16,M),(w/32,h/32,M)。其中w为图像的宽,h为图像的高,M为输出的通道数,M值计算式为:
M=nanchor×(nsort+(1+4))
(6)
式中:nanchor为锚框个数;nsort表示类别数;1表示判断是否包含物体信息;4表示包含先验框坐标。
2)Loss损失
首先将预测框跟真实框做IOU计算,IOU表示预测框A和真实框B的面积交并比,忽略IOU小于阈值的部分预测框,将保留的部分首先做CIOU(complete-IOU)计算获得坐标损失l1,其公式如式(7)~式(10)所示。
(7)
(8)
(9)
l1=1-CIOU
(10)
其中:a和b为预测框A和真实框B中心点坐标;ρ2(a,b)为预测框A和真实框B中心点的距离;c代表能够同时包含预测框A和真实框B的最小闭包区域的对角线距离;η为权重,计算真实类别和预测类别的交叉熵作为类别损失;υ是两个选框长宽的相似度。交叉熵损失le可表示为:
(11)
l=l1+l2+l3
(12)
3)预测结果分析
将每个网格点加上它对应的x坐标和y坐标,加后的结果是预测框的中心,再利用先验框的高、宽计算出预测框的长和宽并得到预测框位置。最后根据得到的预测框位置进行得分排序与非极大抑制筛选获得最后预测结果。预测框位置Zpredict可表示为:
Zpredict=Zanchor+Zpriori
(13)
式中:Zanchor为锚框位置;Zpriori为先验框位置。
2 模型改进与优化
Yolov4-Tiny虽然具有轻量型特点,但实际上是以精度换取速度,下面将在确保一定识别速度基础上对Yolov4-Tiny进行改进,改进方法分为两步:首先,引入注意力机制在主干网络部分提高特征提取精度;然后在增强特征网络部分引入BPA结构增强FPN部分特征提取能力。
2.1 引入注意力机制的主干网络
2.1.1 基于卷积块的注意力机制
基于卷积块的注意力机制 CBAM(convolutional block attention module)是一种用于前馈卷积神经网络的轻量级通用模块,可以无缝集成到任何卷积神经网络架构中,开销可忽略不计,并且可以和基础卷积神经网络一起进行端到端训练。CBAM有两个顺序的子模块:通道注意力模块CAM(channel attention module)和空间注意力模块SAM(spatial attention module),如图5所示,特征图输入后经过通道注意力CAM的特征图与空间注意力SAM相乘,最终得到经过调整的特征图[15]。
图5 CBAM模块结构
CAM关注对最终预测起决定作用的通道特征。对输入的特征图先在每一个通道的特征图上进行全局平均池化(AvgPool)和全局最大池化(MaxPool),得到两个通道特征。然后将这两个通道特征送入一个多层感知机(MLP)中,通过这个全连接层输出通道注意力特征图。CAM具体结构如图6所示。
图6 CAM模块结构
SAM主要是关注对最终预测起决定作用的位置信息。在通道维度通道注意力特征图上进行最大池化和平均池化,得到两个空间特征。然后将这两个特征在通道维度拼接,经过一个卷积层(Conv)后输出空间注意力特征图。SAM结构如图7所示。
图7 SAM模块结构
2.1.2 融合CBAM的主干网络
1)CSP+CBAM网络结构
CBAM模块目的是提高特征提取精度,为保证全面性,此处将其应用于主干网络每次特征输出之前。因此需要在CSP残差结构上嵌入CBAM模块,具体构成如图8所示,Feat为输出特征图。
图8 CSP+CBAM网络结构
2)融入CBAM的主干网络
在主干网的后两个CSP模块及最后卷积输出位置,分别引入3个CBAM模块,生成3个不同尺度的特征图F1,F2和F3,较Yolov4_Tiny增加一层输出特征图,具体结构如图9所示。
图9 CSPDarknet53-Tiny+CBAM网络结构
2.2 融合路径聚合的FPN网络
FPN用了不同大小的特征图进行预测,兼顾小目标和大目标检测。为了缩短FPN中顶层底层信息路径和用低层级的准确定位信息增强特征金字塔,在FPN基础上增加自下而上的路径聚合增强模块BPA(bottom-up path augmentation),用于缩短信息路径[16]。改进后的网络结构如图10所示。
图10 FPN+BPA网络结构
2.3 改进后网络结构
通过对Yolov4-Tiny的改进,可得网络总体结构如图11所示。其中,F1,F2,F3为主干网络输出特征图,H1,H2,H3为最终输出特征图,5Conv表示5次卷积运算,UpSamp为上采样运算,DownSamp为下采样运算。因为改进后网络是在Yolov4-Tiny基础上融入了CBAM机制和BPA结构,因此称其为Yolov4-TCB网络。
图11 改进后网络Yolov4-TCB整体结构
3 性能测试
3.1 实验数据集与数据预处理
3.1.1 实验数据集
文中实验数据集是在网络上搜索得到的825张装甲车图像,使用翻转、镜像、改变图片明亮度及高斯噪声等方式进行了数据增强。数据增强后最终数据集图片为6 400张,其中训练集5 760张,测试集640张。数据集参考VOC2007数据集制作,使用LabelImg图像标注软件对图像进行标注,生成包含图像中目标对应类别及位置坐标信息的XML文件。
3.1.2 数据预处理
由于数据集中的图片大小不一,因此在训练前统一处理为416×416的大小。同时,进行网络训练时使用Mosaic数据增强方法来增加样本的多样性。每次读取4张图片,对每张图片进行尺寸缩小、随机水平翻转、随机色域变换(色调、饱和度、明度变换),再拼接成一张416×416大小的图片上,作为输入的训练数据,并修改相对应的XML标签数据。
3.2 性能参数及实验分析
3.2.1 性能参数
1)精确度和召回率
精确度Pp和召回率Rr计算如式(14)和式(15)所示。
(14)
(15)
式(14)表示精确度是分类器认为是正样本且分类正确的部分占所有分类器认为是正样本的部分的比例,也被称为查准率。式(15)表示召回率是分类器认为是正样本且分类正确的部分占所有正样本的比例,也被成为查全率。其中TP表示正样本预测为正样本的个数;FP表示负样本预测为正样本的个数;FN表示正样本预测为负样本的个数。
2)平均精度
AP(average precious)为平均精度,以Rr值为横轴,Pp值为纵轴,就可以得到PR曲线,这条线下面的面积就是被测类别的AP值。mAP就是所有类的平均AP值,此处只有一个类,因此AP和mAP相等,可表示为:
(16)
式中u(r)为Rr为r时的Pp值。
3)帧频
帧频为每秒可以处理的图片数量。用来评估目标检测的速度。
3.2.2 性能测试结果及分析
实验过程中软硬件参数如表1所示,涉及网络实验参数如表2所示。另CUDA版本为10.1。
表1 环境参数
表2 网络参数
1)性能测试结果
下面对5种网络进行性能测试结果如图12~图16所示。
图12 Yolov4-Tiny网络性能(AP=74.99%)
图13 Yolov4网络性能(AP=89.48%)
图14 Yolov4-Tiny+CBAM网络性能(AP=88.05%)
图15 Yolov4-Tiny+BPA网络性能(AP=85.41%)
图16 Yolov4-TCB网络性能(AP=94.52%)
2)性能数据分析
5种网络结构的模型大小、精度和速度数据对比如表3所示。
表3 网络性能数据对比表
由图12~图16和表3可得,加入注意力机制CBAM的Yolov4-Tiny+CBAM网络模型大小接近Yolov4-Tiny,在保持速度基础上,精确度比Yolov4-Tiny提高了17%;引入路径聚合机制BPA的Yolov4-Tiny+BPA网络模型大小较Yolov4-Tiny增加3.8倍但比Yolov4减小55%,精确度比Yolov4-Tiny提高14%,速度比Yolov4-Tiny降低了9%,而较Yolov4提升1.4倍;同时融入注意力机制和路径聚合机制的Yolov4-TCB网络模型大小较Yolov4-Tiny增加3.9倍但比Yolov4减小55%,精确度提高了26%,速度比Yolov4-Tiny降低了69%,而比Yolov4提升1.4倍。综上,改进后的网络Yolov4-TCB一定程度上保持了轻量级网络Yolov4-Tiny的高速性,又具有优于Yolov4和Yolov4-Tiny网络高精度特点,实验数据充分验证了方法改进的有效性。
3.3 可视化分析
针对5种网络,在单目标和多目标,简单背景和复杂背景情况下进行测试,结果如图17~图21所示。
图17 Yolov4-Tiny识别效果
图18 Yolov4识别效果
图19 Yolov4-Tiny+BPA识别效果
图20 Yolov4-Tiny+CBAM识别效果
图21 Yolov4-TCB识别效果
在目标数量少且背景简单时,5种方法皆可准确识别装甲车;但背景复杂、目标较多时,Yolov4-TCB网络识别效果明显优于其他4种网络结构。
4 总结
在战场背景下对装甲车进行识别,为保证识别速度采用Yolov4-Tiny轻量级网络为基本框架,为提高识别精确度则对Yolov4-Tiny网络进行改进。改进方法为:1)在Yolov4-Tiny的CSPDarknet53-Tiny主干网络部分引入CBAM注意力机制,从通道和空间两方面提升主干网络的特征提取精度。2)在Yolov4-Tiny的FPN特征加强网络部分融入路径聚合机制的BAP模块,提升多尺度特征部分提取精度。改进后的网络Yolov4-TCB在保证轻量级的基础上,识别速度较快,识别精度大幅提升。后续将继续研究网络的优化改进,进而在嵌入式设备上布局,到真实环境下验证。