鄢奉习,徐银霞+,蔡思远,祁泽政
(1.武汉工程大学 智能机器人湖北省重点实验室,湖北 武汉 430205;2.武汉工程大学 计算机科学与工程学院,湖北 武汉 430205)
相较于传统图像,遥感图像中的飞机目标更具多样性、背景更具复杂性,并且目标更小。因此,遥感图像飞机目标检测,面临着诸多挑战。
随着深度学习高速发展,现阶段的目标检测算法主要包括以下两种类别[1]:一是Two-stage算法、如R-CNN算法[2]、Fast R-CNN算法[3]、Faster R-CNN算法[4]、R-FCN算法[5]、Mask R-CNN算法[6]等。二是One-stage算法,如SSD算法[7]、YOLO[8]系列算法、RetinaNet算法[9]等。近年来,为提高遥感图像目标检测的精度和效率,许多学者进行了相关研究。
Adam Van Etten等[10]通过对图像做尺度变换、旋转,缩小输出特征图及分割等操作,在卫星遥感图像目标检测中取得不错的效果。郑哲等[11]融合多尺度特征金字塔,并引入通道与空间注意力机制,显著提高了遥感图像的检测精度。姚群力等[12]应用反卷积算法实现了高层语义信息与底层特征细节的融合,较大提升了遥感图像密集小目标飞机的检测效果。李婕等[13]通过融合注意力约束的特征共享层,有效提升了多尺度密集的遥感飞机目标的检测精度。叶赵兵等[14]引入CIOU边框回归损失,提高了模型的定位精度。刘辉等[15]使用Soft-NMS代替YOLOv5所使用的非极大值抑制(NMS),成功降低了模型的漏检率。
YOLOv5s是一种高效、高精度的网络模型,但在复杂遥感图像目标检测的应用中仍有待改进。受以上文章启发,本文引入DenseNet方法、CBAM注意力机制以及改进损失函数,对YOLOv5s模型进行特征复用、精度优化以及鲁棒性提高,利用多种公开数据集验证了模型改进后的性能。
由图1可以看出,YOLOv5s模型由Input、Backbone、Neck、Prediction这4部分组成。
图1 YOLOv5s模型结构
Input端采用了Mosaic方法进行数据增强,任意选取4张图片进行缩放、裁剪和排布处理,然后再拼成1张图片。
Backbone网络中包含Focus和CSP[16]模块。Focus模块的切片操作能保证网络层获取足够多的特征信息,增加卷积视野。CSP模块由残差组件与CBS模块构成,CBS模块由3个连续操作构成:3×3Conv+BN+SiLU。残差组件由CBS模块以残差的方式连接而成。CSP模块可以保证准确率和速率,减少参数,使模型更轻量化。
Neck部分采用FPN+PAN[17]结构,FPN自上而下通过上采样向下将特征图进行传递融合。PAN采用自底向上的特征金字塔传递特征,从不同的主干层对不同的检测层进行特征聚合。
Prediction端先采用GIOU损失函数[18],增加相交尺度的衡量方式,使边界框的回归收敛效果更好。然后,运用非极大值抑制算法对检测框进行筛选,保留置信度最高的预测框,舍弃置信度较低的预测框。
为解决遥感飞机图像中小目标特征消失,以及重叠区域漏检等问题,提高对小目标飞机的检测性能与鲁棒性,本文对YOLOv5s网络结构中的CSP模块、Backbone网络以及检测算法分别进行了改进。
遥感飞机图像具有分辨率较大,待检测小目标飞机密集以及复杂背景等问题,因此在模型训练过程中,需要大量参数,消耗较多时间。而且,随着网络层数加深,还会出现小目标飞机梯度消失的现象。如果在浅层网络的输出层与深层网络的输入层之间,建立更短的连接通道,则可以最大化传递网络层之间的特征信息,使网络训练更快、更深、更准确。借鉴稠密卷积神经网络模型DenseBlock[19]的方法,本文对YOLOv5s网络中的CSP模块进行改进,以稠密连接方式代替传统卷积,使得在深层网络中也能更好的传递特征信息,从而减轻梯度消失。
DenseBlock结构如图2所示,其中,Xl是第l层的输出,H由BN、ReLU和3×3卷积操作组成,用于提取特征图。第l层的输入为第0~l-1层的输出特征图,式(1)为输出Xl的计算公式。在DenseBlock的输出端,使用由BN层、1×1卷积和2×2池化构成的Transition Layer层来对特征图进行下采样
图2 DenseBlock结构
Xl=Hl([X0,X1,X2,…,Xl-1]),(l∈N+)
(1)
需要注意的是,稠密连接会使得特征图通道数随着网络层的加深不断增多。为了控制特征图数量,DenseNet引入Growth rate超参数k来表示DenseBlock中特征图的数量,k其实是卷积核个数。假设输入特征图数量为k0,则输出特征图的数量m的计算如式(2)所示
m=k0+(l-1)×k
(2)
如图3所示,本文将CSP模块中的残差单元采用稠密连接方式,通过Concatenate特征联合多个特征图维度实现短路连接,采用3×3与1×1的卷积进行特征维度转换,使特征信息得以复用。这种方法既能保证网络各层之间的信息流最大化,又解决了特征图因网络层数加深而信息丢失的问题。每一个Resnet残差单元对获取的输入信息经过卷积计算后,会传递给所有深层残差单元。因为不需要重新学习冗余特征图,所以仅需新增少量参数就能使网络层获得足够的特征信息,从而提升了特征利用效率,加强了网络模型对遥感图像中尺寸较小的飞机目标的特征提取。而且通过短路径,特征信息可以直接由浅层向深层传递,拥有更强的流动能力。此外,残差单元采用稠密连接方式,通过引入大量低层信息,达到了正则化的效果,优化了过拟合问题。
图3 CSP_DB结构
在人类视觉感知中,注意力起着重要作用。研究表明,人类的注意力分布是不均匀的,选择性地关注显著信息是人类视觉系统的重要特性之一。YOLOv5s算法的检测性能主要取决于Backbone网络,为了在不增加网络深度的条件下提高CNN对遥感图像中小目标飞机的检测精度,本文在Backbone网络增加CBAM(convolutional block attention module)[20]注意力机制来关注重要特征并抑制非重要特征,以提高表示能力。CBAM注意力机制分别提取通道和空间两个维度的信息,凸显沿通道轴和空间轴两个主要方向的有意义的特征。如图4所示,本文依次应用通道和空间注意力模块,以便每个分支可以分别学习通道和空间轴上的信息特征和特征位置。
图4 CBAM结构
图4中,F∈RC×1×1为输入特征,CBAM算法从通道维度与空间维度上顺序计算得到通道注意力图MC∈RC×1×1和空间注意力图MS∈R1×H×W。 式(3)、式(4)为注意力过程计算公式
F′=MC(F)⊗F
(3)
F″=MS(F′)⊗F′
(4)
其中,⊗表示逐元素乘法。在矩阵相乘时,通道注意力值沿着空间维度广播,反之亦然,F″是最终的精炼输出。
图5 通道注意力结构
(5)
式中:σ示sigmoid函数,W0∈RC/r×C,W1∈RC×C/r, MLP权重、W0、W1是输入共享的,且W0在ReLu激活函数之后。
图6 空间注意力结构
(6)
式中:σ表示sigmoid函数,f7×7表示滤波器大小为7×7的卷积操作。
Backbone网络中的CBAM模块如图7所示。本文仅特征图下采样时嵌入注意力机制,对下采样时神经网络传递的特征图在通道和空间两个层面设置不同的权重。这种方法使得深层网络得到更加准确的特征信息,有利于loss值的降低,保证遥感图像中飞机目标的准确识别与定位。直观来讲,在梯度向前传播的过程中,特征图中重要的通道与空间将会占有更大的比重。在最终的输出图像中能更加凸显出检测模型所重点关注的部分,从而更好地分辨出待检测目标。在Backbone网络中,嵌入注意力机制后会增加计算量,但通过一定比例的降维可以使检测性能和速度达到一定的平衡。而且空间与通道注意力机制,是一种即插即用的算法模块,并不会改变网络结构。
图8展示了使用注意力机制前后,网络模型第一次下采样后的特征提取结果对比,图8(a)为待检测图像,图8(b)为未使用注意力机制时的特征提取结果,可以看出飞机的边缘较模糊,特征没有得到很好的提取。图8(c)为使用注意力机制后的特征提取结果,飞机的轮廓更清晰,而且飞机与背景被明显区分开,说明改进后的模型更好的提取到了特征信息。由此可见注意力机制增强了模型的特征提取能力。
图8 CBAM注意力机制引入前后特征提取结果对比
2.3.1 损失函数改进
预测框回归是定位目标对象的关键步骤。在预测框回归的评估中,IOU是最受欢迎的指标。YOLOv5s网络采用GIOU,虽然可以缓解非重叠情况下的梯度消失问题,但仍然存在一定的局限性。
如图9所示,图9(a)~图9(c)中的预测框A大小一致,且在真实框B内部,C为预测框A和真实框B的最小外接矩形,预测框A和真实框B的差集相同。根据GIOU_Loss计算式(7)~式(9),这3种状态的GIOU值也都是相同的,这时GIOU退化成了IOU,无法区分相对位置关系
图9 GIOU
(7)
(8)
(9)
本文损失函数采用CIOU_Loss[21],同时计算检测框之间的中心点距离、纵横比以及重叠大小。CIOU损失函数原理如图10所示,计算如式(10)所示
图10 CIOU
(10)
式中:L为最小外接矩形C的对角线距离,d为预测框中心点与目标框中心点间的欧氏距离,v是衡量长宽比一致性的参数,可以定义为式(11)
(11)
式中:wgt、hgt代表目标框宽和高,w、h代表检测框宽和高。
2.3.2 NMS改进
在预选框的筛选阶段,YOLOv5s采用的是非极大值处理(non-maximum suppression,NMS)。需要注意的是,由于NMS将IOU高于阈值的候选框的分数置0,如果真实物体在重叠区域出现,那么采用NMS可能会漏检。因此,本文将DIOU部署在NMS中,在抑制冗余框时考虑重叠区域以及两个边界框中心点之间的距离,增加其识别被部分遮挡的目标的鲁棒性,还能加快收敛速度。DIOU_NMS计算如式(12)、式(13)
(12)
(13)
其中,b和bgt表示预测框和真实框的中心点,ρ(x) 是欧几里得距离,c是覆盖两个框的最小封闭框的对角线长度,ε是NMS阈值,Si为预测框得分,M为分数最高的候选框,Bi为待去除的候选框。
改进的YOLOv5s网络结构如图11所示。首先,在Input端,将三通道输入图像的尺寸由604×604改为640×640,避免小目标飞机的特征信息经过多次下采样后消失,降低复杂背景下小目标飞机的漏检率。
图11 改进YOLOv5s结构
在Backbone中,将Focus结构中的原始640×640×3的图像改为320×320×12的特征图,再经过32个12×3×3卷积核的卷积操作,输出尺寸为320×320×32的特征图。在特征图输入CSP_DB模块前使用步长为2的3×3卷积核进行下采样。5次下采样后的特征图依次为320×320、160×160、80×80、40×40、20×20。在进行特征下采样前,Resunit残差单元采用稠密连接方式,防止深层网络梯度消失的同时,增强特征传播,鼓励特征重用,并减少参数数量,使网络可以进行更深入、更准确和有效的训练。将注意力机制添加在Backbone网络中的CSP_DB模块之后,有选择性地加强包含重要信息的特征并抑制无关或较弱关联的特征,确保在获取足够多与足够准确的特征信息之后,再进行特征图下降。实现特征信息在网络中更准确、有效的传播,不仅可以提升检测精度与性能,还能增强网络特征提取的鲁棒性。SPP模块使用不同尺度过滤器K={1×1,5×5,9×9,13×13}, 对输入特征图进行多尺度最大池化与通道拼接,从而提高图像的尺度不变性,降低过拟合,使网络更容易收敛。
在Neck层,沿用双重特征金字塔思想,融合FPN+PAN结构。FPN与PAN分别是自顶向下与自底向上的特征金字塔结构,融合两种结构,可以同时加强语义特征与定位特征传达,从不同的主干层对不同的检测层进行特征聚合。首先将Backbone网络输入的19×19特征图经过两次上采样与特征融合后得到80×80输出特征图。然后80×80输出特征图经过下采样后,与Backbone网络特征图融合得到40×40输出特征图。最后,40×40输出特征图经过下采样与特征图融合后,得到20×20输出特征图。从不同的主干层对不同的检测层进行特征聚合,实现了不同尺寸目标检测间的平衡。
最后Prediction端采用CIOU_Loss算法,从重叠面积、中心点与长宽比3个量维度上对预测框进行回归;接着,采用DIOU_NMS算法,从重叠面积以及预测框间的中心点距离对冗余框进行抑制的。最终,提高算法对被遮挡目标识别的性能。值得注意的是,这里之所以未考虑长宽比维度,是因为该影响因子为groundtruth标注框信息,而测试过程中,并没有该影响因子,因此,采用DIOU_NMS算法即可。
本文实验所用的操作系统为Ubuntu20.04,处理器型号为Intel(R)Xeon(R)Gold 6230 CPU@2.10 GHz;显卡型号为NVIDIA Tesla T4;开发环境为python3.8、pytorch、cuda11.1。
本文采用2015年武汉大学团队标注的RSOD[22]数据集中的遥感飞机图像作为数据集进行训练测试,并选取西北工业大学的光学遥感图像数据集NWPU VHR-10、DIOR、UCAS-AOD和DOTA中包含飞机类别的数据集进行了拓展实验。数据集中飞机样式包含民航客机、战斗机以及直升机,表1展示了训练集与测试集的相关数据。
表1 训练集和测试集
为了避免初始较大学习率导致模型的不稳定,本文采用改进的预热训练(Warmup)策略:采用批训练(mini-batch)方式输入训练数据集,在训练过程中,先用较小的学习率训练一个epoch,待模型趋于稳定后,再分阶段恢复正常学习率。在防止训练误差增大与提前过拟合的同时,加快了网络模型的收敛速率,从而有效地提高计算效率。
为了评估网络模型的性能和对遥感飞机图像检测的准确性,本文采用准确率(P)、召回率(R)、mAP、帧率(FPS)、参数数量(Param)和GFLOP作为评估指标。
准确率指网络检测到的真实目标类别数量与检测到的所有目标类别数量之比;召回率指网络检测到的真实目标类别数量与所有真实目标类别数量之比。准确率和召回率的计算方法如式(14)
(14)
式中:真正样本(TP)表示检测到的真实目标类别的样本数量;假正样本(FP)表示检测到的目标类别中非真实目标类别的样本数量;假负样本(FN)表示未检测到的真实目标类别数量。
mAP为所有类别的平均准确率,计算方法如式(15)
(15)
式中:AP表示每个类别平均准确率,N表示检测目标类别数量。
帧率指网络模型每秒钟能检测的图像数量,用来评估网络模型检测速率。
参数数量指的是模型所需参数。
GFLOP即每秒10亿次的浮点运算数。
为了测试本文改进的YOLOv5s模型对于遥感飞机图像的检测性能,本文利用RSOD数据集进行了训练测试。模型改进前后loss曲线如图12所示,横坐标为训练次数,纵坐标为训练过程中的loss值。
图12 Loss值下降曲线
图12表明,模型改进前,初始loss值约为0.3;模型改进后,初始loss约为0.2,降低了33.3%。在训练的初始阶段,模型改进前的检测框loss值有上升趋势,说明有过拟合现象;而模型改进后的检测框loss值较平滑,未出现过拟合现象。在预训练结束时,模型改进前loss值约为0.1776,模型改进后loss值约为0.1042,降低了41.8%。由此可见,模型改进后显著降低了loss并优化了过拟合现象,性能更佳。
图13 mAP曲线
为了进一步测试改进YOLOv5s模型的检测性能,本文在测试集上进行了目标检测实验,实验结果如图14所示。图14中有3个对照组,在每一组中,左图为改进前的模型测试结果,右图为改进后的模型测试结果。图14(a)是针对飞机尺寸小且机身颜色与背景颜色相近的遥感图像进行测试的结果。实验结果表明,改进后的算法准确无误地检测出了所有飞机,而改进前的模型测试存在误检现象,如右上角标记框所示。这是由于在改进前的卷积神经网络中,小尺寸目标的语义丢失,影响了后续特征金字塔的信息融合,错误地将与目标颜色、形状相近的物体识别为目标。改进后的模型使用密集网络加强了网络的特征提取能力,而且密集网络的正则化可以减轻YOLOv5s的过拟合。因此,即使目标颜色与背景颜色相近,改进后的网络模型仍然可以区分目标与背景。
图14 模型改进前后实验结果对比
在实际拍摄过程中,中等尺寸的飞机目标,可能存在部分被遮挡的情况。图14(b)是针对目标部分被遮挡的遥感图像进行测试的结果,改进前YOLOv5s未能检测出右上标记框中的部分被遮挡的飞机目标;而改进后的模型采用了注意力机制,通过细化特征图提高了卷积网络的表示能力,有效地帮助了特征信息传播,具有对嘈杂输入的鲁棒性,成功检测出了该位置的目标。
图14(c)是针对背景更为复杂,飞机目标更小更密集的遥感图像进行测试的结果,改进后的模型较好地检测出了所有目标,而改进前的YOLOv5s网络模型依然存在误检情况,如左下标记框所示。
表2列出了YOLOv5s+CBAM+DenseNet(本文模型)与Faster R-CNN、SSD、YOLOv5s、YOLOv5s+CBAM、YOLOv5s+DenseNet在RSOD数据集上的测试结果对比。
表2 不同算法模型在RSOD数据集上的对比
由表2可见,本文模型在RSOD数据集上,IOU大于0.5时的平均准确率较YOLOv5s+DenseNet、YOLOv5s+CBAM、YOLOv5s、SSD、Faster R-CNN算法分别提高了2.91%、0.3%、3.91%、11.54%、9.08%,表明本文模型具有优良的检测性能。IOU阈值越大,对目标检测算法的准确性要求越高。从表中可以看出,在IOU阈值增大的情况下,mAP排序依旧是本文模型>YOLOv5s+DenseNet>YOLOv5s+CBAM>YOLOv5s>Faster R-CNN>SSD,表明本文算法整体检测精度更高。虽然,相比原YOLOv5s算法,改进后的帧率小幅度降低。从表中可以看出,帧率下降的主要原因是稠密连接虽然需要较少的参数,但是需要更大的计算量,并且在特征图空间轴和通道轴上使用了注意力机制。总体而言,相比原YOLOv5s算法,本文改进后的算法仅仅降低了少量帧率,却显著提升性能。
表3为不同注意力安排方法以及损失函数在RSOD数据集上的实验结果。
表3 不同注意力安排方法以及损失函数在RSOD数据集上的对比
根据表3实验结果,带有CBAM注意力机制的模型性能优于SE注意力机制,说明与SE相比,CBAM有更大的提升。同时,还可以看出,相比于GIOU损失函数与DIOU损失函数,CIOU损失函数拥有更高的回归精度。
为了验证本文算法训练得到的模型的适应性,本节在 NWPU VHR-10、DIOR、UCAS-AOD和DOTA数据集中选取了不同分辨率与背景的遥感飞机图片进行测试。如表4所示,本文改进后的算法在NWPU VHR-10数据集上的检测精度为92.15%、在DIOR数据集上的检测精度为91.56%、在UCAS-AOD数据集上的检测精度为93.19%,以及在DOTA数据集上的检测精度为93.22%。本文改进后的模型在上述数据集上都拥有较高准确度,说明该模型具有较强的实用性。
表4 改进YOLOv5s在其它数据集检测结果
本文以遥感飞机图像的目标检测为研究背景,基于遥感图像飞机目标检测任务中存在的密集小目标以及被遮挡目标检测精度低的问题,提出了一种基于稠密连接以及CBAM注意力机制改进的YOLOv5s检测模型。首先,稠密连接的引入,增强了网络特征传播,减轻了梯度消失并且减少了参数数量;其次,采用CBAM注意力机制,通过增加重要特征信息权重,抑制无关信息,大大提升了网络模型性能。最后,将GIOU+NMS改进为CIOU+DIOU_NMS,提升了对被遮挡目标检测的鲁棒性。实验结果表明,与其它几种主流算法相比,本文提出的模型不仅具有较好的检测性能,还具有很好的实用性以及适用性。未来的工作,将在不降低网络模型性能的情况下减少模型参数的方向展开研究,进一步提升网络模型的综合性能。