刘高天, 段 锦,2, 范 祺, 吴 杰, 赵 言
(1. 长春理工大学 电子信息工程学院, 长春 130022;2. 长春理工大学 空间光电技术研究所基础技术实验室, 长春 130022)
遥感图像目标检测在军事、 民事等领域应用广泛, 已成为遥感图像领域的重要研究方向之一. 传统遥感图像目标检测方法通常是基于数字图像处理的方法, 即先进行阈值分割、 纹理/几何特征提取, 然后使用模板匹配、 背景建模以及浅层学习等方法对目标进行检测判别[1]. 但这类方法对遥感图像泛化能力较差, 检测效果不佳.
随着深度学习的快速发展, 基于深度学习的目标检测方法, 如SSD[2],YOLO[3],Faster-RCNN[4]等算法已广泛应用于自然图像目标检测领域, 但相比于自然图像, 遥感图像因包含的目标信息过于丰富, 导致在对其进行目标检测任务时, 易受信息过多、 目标类别分布不平衡等因素影响. 因此, 适用于自然图像的深度学习目标检测方法在面对遥感图像时存在局限, 尤其在面对遥感图像中如飞机、 车辆、 舰船这类小目标时, 由于这类目标的外观信息少、 像素面积占比小、 易受复杂背景干扰, 使得检测效果较差. 目前, 针对上述问题已有许多改进算法, 如辛鹏等[5]和Yuan等[6]提出了将Faster R-CNN引入到遥感图像目标检测中, 相比于传统算法较好地提高了目标检测的精度, 但并未充分利用卷积层的信息, 缺乏对多尺度信息的考量; 姚群力等[7]提出了一种基于SSD检测器的MultDet模型, 采用轻量级卷积网络提取多尺度特征信息, 并设计了反卷积特征融合模块, 但该模型目标单一, 缺乏对其他遥感目标的检测分析; Etten[8]针对小目标检测问题在YOLO的基础上提出了YOLT算法, 该方法在一定程度上提升了小目标检测效果, 但增加了网络的计算开销; Ren等[9]提出了通过采用自上而下和跳跃链接的方式利用上下文信息, 提高遥感图像中的小目标检测能力, 但该方法只针对飞机与舰船两类目标进行实验, 缺乏可靠性研究; Dong等[10]提出了在Faster R-CNN的基础上用Sig-NMS代替传统的NMS(non-maximum suppression)方法, 但由于进行了额外计算, 增加了检测时间; Wang等[11]针对遥感图像背景杂乱的问题提出了一种基于多尺度注意力网络的遥感目标检测模型, 提高了检测精度, 但缺乏对小尺度目标特性的考虑; Jiang等[12]提出了一种深度神经网络优化模型, 该模型从目标在图像中的特征表现考虑并结合对原始输入数据构建的重新思考, 在一定程度上改善了小尺度矩形目标的检测效果; 张裕等[13]以YOLOv3为基础结合多尺度特征稠密连接方式, 设计了遥感目标检测模型YOLO-RS, 提高了各检测特征层之间的信息传递程度, 使不同尺度的特征能更好地融合, 在一定程度上提高了小目标检测精度; Li等[14]提出了基于双通道特征融合的遥感目标检测模型RICAOD, 将局部上下文信息融入区域候选网络, 提高了对候选框的筛选能力, 进而有效改善了对遥感目标的检测效果.
上述算法均在一定程度上改善了遥感图像中目标检测的效果, 但在面对小目标检测问题时仍存在局限. 首先, 上述算法并未考虑到随着卷积网络的加深, 感受野呈现缓慢的线性增长, 有限的感受野无法与小目标的特征尺度相匹配, 导致难以有效提取小目标特征; 其次, 忽视了加强层级联系对于丰富输出特征以及提升分类精度的作用. 针对上述问题, 为提升遥感图像中小目标的检测能力, 本文提出一种基于RFBNet[15]的改进算法. 该算法首先利用自校准卷积方式扩大了主干网络中输出层的感受野, 强化了对弱特征的提取能力; 其次通过多尺度特征融合, 增强了算法在浅层输出中对多尺度信息的利用; 最后结合稠密预测思想, 以较低的计算开销加强了输出层之间的联系, 丰富了输出特征中的多尺度上下文信息, 进而提高了算法对遥感图像目标的检测能力.
为提升one-stage目标检测算法性能, 且不增加计算开销, Liu等[15]提出了RFBNet目标检测算法. RFBNet模型结构如图1所示. 该算法沿用了SSD检测模型作为基础模型, 提出感受野模块(receptive fields block, RFB)并集成到SSD模型上. 模型的输入尺寸固定在300×300, 主干特征提取网络采用VGG16网络[16], 但模型将VGG16网络中最后两个全连接层变为两个卷积层. 在目标检测阶段, 被提取的主干特征经过RFB模块扩大感受野以及多次下采样操作生成多个不同尺度的特征图, 用于后续进行多尺度预测.
图1 RFBNet模型结构Fig.1 RFBNet model structure
该算法虽然通过RFB模块有效提升了目标检测的精度, 但仍延续了SSD模型的结构, 各特征图间相互独立缺乏联系, 没有较好地利用浅层特征图空间信息丰富以及深层特征图语义信息丰富的特点, 且不同尺度之间的非连续性表达忽视了上下文联系.
感受野模块基于人类视觉的RFs(receptive fields)结构, 将RFs的尺度、 离心率加入考虑范围, 即使通过轻量级的网络结构, 也能提取到高判别性的特征. 该模块是一个多分支卷积结构, 内部结构包含两部分: 1) 用不同卷积核尺度的多分支卷积块模拟多尺度的pRFs; 2) 采用空洞卷积操作, 用于模拟人类视觉感知中pRF尺度与离心率间的关系. 该结构的核心是在保持相同参数量的同时, 生成更大分辨率的特征图, 增加各层感受野以获取更多的上下文信息.
图2 常规卷积(A)和空洞卷积(B)操作示意图Fig.2 Operation diagrams of conventional convolution (A) and atrous convolution (B)
空洞卷积(atrous convolution)也称为扩张卷积, 由于其在小目标特征信息的处理上具有优势, 因此广泛应用于目标检测领域. 相比常规卷积层增加了一个扩张率的参数, 该参数定义了卷积核处理数据时各值间的距离. 图2为常规卷积与空洞卷积操作示意图.
由图2可见, 在特征图(如7×7)相同的情形下, 常规卷积经过3×3卷积核处理只能获得5×5的感受野, 而经过空洞率为2的3×3卷积核处理则能获得7×7的感受野, 表明空洞卷积可获得更大的感受野, 比常规卷积能更好地保留图像的空间特征, 且不会损失图像信息. 在卷积神经网络中感受野的大小对于小尺度目标特征学习有较大影响, 较大感受野可获得更密集的上下文信息, 有利于后续对图像的分类识别.
RFBNet算法是对SSD算法的延续, 其优势在于继承SSD算法优点的同时, 通过RFB模块扩大了主干网输出特征的感受野, 从而有效提升了目标检测的精度. 但其主干网采用VGG16进行特征提取, 在特征提取时感受野随着层级加深增长缓慢, 无法适应小目标特征. 且由于继承了SSD的模型结构, 因此忽视了层级联系, 导致用于后续预测分类阶段的输出特征图之间相对独立, 不利于提高检测的精度. 基于此, 本文对于遥感图像目标检测提出一种基于RFBNet的改进算法, 算法的网络结构如图3所示.
图3 本文算法网络结构Fig.3 Network structure of proposed algorithm
由图3可见, 本文算法主要包括特征提取(features extractor)模块、 特征融合(features fusion)模块和稠密预测(dense prediction)模块三部分. 首先利用以SC-VGG16全卷积网络为主体的特征提取模块进行主干特征提取, 然后将提取出的主干特征图通过特征融合模块进行维度调整、 上采样、 堆叠融合以及批归一化处理, 得到一个输出特征丰富的融合特征图, 并将其作为后续过程的输入. 在稠密预测模块中, 融合特征图先经过3个分支分别生成6个不同尺度的稠密特征图, 然后经过多尺度检测和非极大值抑制(NMS)处理生成最终的预测结果.
针对原RFBNet算法存在的问题, 本文算法对3个模块分别进行改进.
1) 特征提取模块: 原RFBNet算法主干特征提取网络采用由VGG16构成的全卷积网络, 本文算法在此基础上引用自校准卷积层代替VGG16中的标准卷积层, 并在最后新增一层卷积层用以生成多尺度特征. 该模块扩大了主干网中输出卷积层的感受野, 因此增强了主干网对小目标特征的提取能力, 丰富了输出特征.
2) 特征融合模块: 本文在RFBNet结构的基础上, 引入特征融合思想设计特征融合模块. 结合FSSD[17]的特征融合思想, 将Conv4-3和Conv7-fc以及新增的Conv8三层卷积输出的3个特征图进行融合, 通过BN(batch normalization)层批归一化处理后作为浅层输出特征用于后续过程. 该部分加强了主干输出特征之间的联系, 使最终的浅层输出包含了丰富的多尺度上下文信息, 从而有利于提高预测的准确性.
3) 稠密预测模块: 本文在原RFBNet算法的多尺度预测结构中, 借鉴了DSOD算法[18]的稠密预测思想, 设计稠密预测模块. 提前在较浅位置上进行信息整合, 而非在最后输出层进行所有信息的整合, 改变了原来各层输出特征间相对独立的关系, 使它们之间的联系更紧密.
本文算法共有6层特征图被提取, 用于预测分类. 浅层特征图感受野小但包含了丰富的位置信息, 其对应产生的默认边界框大小更适合小目标检测, 但其缺乏目标分类重要的语义信息. 深层特征图虽然包含了丰富的语义信息, 但对小目标的定位不精确. 因此本文保留了RFBNet的输出特征选取方式, 对应参数列于表1.
表1 特征层及其结构参数
小目标由于携带信息少导致特征表达能力较弱, 经过多层次的卷积操作后能提取到的特征较少, 因此检测困难. 而在遥感图像目标检测任务中该特点尤为突出, 因此需强化特征提取能力. SSD和RFBNet算法的特征提取网络均为使用卷积层取代最后两个全连接层的VGG16全卷积网络. 该类特征提取网络存在理论感受野小于实际感受野的缺陷, 且随着网络层次的加深感受野呈缓慢的线性增长, 从而导致感受野无法较好地与目标特征匹配, 使网络的特征提取能力不足. 因此, 本文算法通过引入自校准卷积替换标准卷积扩展每个卷积层的感受野, 丰富输出特征, 强化特征提取能力, 进而更好地提取小目标特征. 考虑到Conv4层前的卷积层生成的特征图分辨率高、 空间信息丰富但语义信息少, 不利于弱特征的提取分类, 将这些层替换为新卷积层会突出较强特征, 加重过拟合现象. 因此需要替换的位置选择在进行特征提取的Conv4层和Conv5层, 其各自包含3个卷积层. 同时为减小过拟合, 还在特征提取网络中加入了BN层进行处理. 本文算法引用的自校准卷积[19]结构如图4所示.
图4 自校准卷积结构Fig.4 Self-calibration convolution structure
假设输入特征为X={x1,x2,…,xci}, 输出特征为Y={y1,y2,…,yco}, 则传统的2D卷积可由K={k1,k2,…,kco}一组滤波器集合组成, 卷积式为
(1)
受限于该计算方式, 输出的卷积特征感受野有限, 且特征的学习模式具有相似性, 从而导致学习到的特征图可辨别程度较低.
图5 特征融合结构Fig.5 Feature fusion structure
浅层特征图分辨率大、 感受野小, 包含丰富的位置信息, 因此适合进行小目标检测, 但浅层特征图缺少有利于分类的抽象细节信息. 而深层特征图尺度虽小, 但其中涵盖了丰富且有利于分类的细节信息. 为加强对小目标的检测, 本文算法基于FSSD(feature fusion single shot multibox detector)特征融合思想设计一个多尺度特征融合模块, 如图5所示. 该模块将深层特征图通过上采样融合操作与浅层特征图融合, 以增加浅层输出特征中的语义细节.
融合过程: 在图3所示的本文算法结构中, 特征提取部分增加了一个Conv8层, 用以提取10×10尺度的特征图. 本文算法先将Conv4-3,Conv7-fc和Conv8三层输出分别作为图4中的3个特征用于输入, 通过堆叠融合再通过BN层规范化处理最终得到首个输出特征图Feature4. 不同尺度的特征图相融合, 在进一步扩大感受野的同时, 也融合了多个尺度的特征, 使相互独立的特征图之间不仅产生了相关性, 还使大尺度特征图也获得了丰富的抽象细节信息.
为使分类预测更准确, 输出特征图需含有丰富的语义信息. 在RFBNet模型结构中, 每个输出特征图拥有的语义信息都是通过对其前相邻层输出的全部维度特征学习得到, 导致计算量增大, 同时也使后续输出特征图只含有本层次的语义信息, 不利于后续的分类预测. 因此, 本文借鉴DSOD算法[18]的思想设计了稠密预测结构(dense prediction structure), 如图6所示, 其中H,W,C分别表示特征图的宽、 高和通道数.
图6 稠密预测结构Fig.6 Dense prediction structure
由图6可见, 在该结构中, 输入特征(Feature4)为融合模块输出的首个38×38尺度特征图, 结构中除首个尺度外, 其他尺度所对应的特征图通道数只有50%是通过前面的较浅层学习所得, 另外50%是直接通过上一尺度特征图进行下采样后得到, 实现该过程的结构如稠密连接部分所示. 下采样模块由1个池化层和1个卷积层构成, 输入特征图通过池化、 卷积操作降低分辨率并将通道数减半. 本文算法从RFB1输出的19×19尺度特征图起, 开始仅学习半数的特征图, 并复用前一层特征图作另一半. 相比于RFBNet算法全维度学习方式, 本文算法不仅减少了模型的参数量、 降低了计算开销, 还使最后的每层输出特征图都包含了丰富的多尺度语义信息.
实验采用数据集UCAS_AOD和NWPU VHR-10. 数据集UCAS_AOD除去无目标图, 共包含1 510张图像, 其中1 000张飞机和510张车辆图像. 飞机样本共7 482个, 车辆样本共7 114个. 数据集NWPU VHR-10包含目标图像650张, 共含10类目标, 所标注实例数量为757架飞机、 302艘船、 655个油罐、 390个棒球场、 524个网球场、 159个篮球场、 163个田径场、 224个港口、 124座桥梁和477辆车. 本文分别在上述两个数据集上进行实验, 按4∶1分配训练集和测试集, 由于数据集NWPU VHR-10原始数据量较少, 因此通过调节亮度、 对比度、 饱和度及去雾等图像增强方法对其进行数据扩增, 共扩增了650张图像.
HE Jing-wen, WEI Yan-yan, SU Tong, PAN Xiao, CUI Yi, LI Zi-qiang, TANG Yun-xiang
实验设备为64位Win10系统计算机和Ubuntu18.04系统计算机, 实验平台为Google的Colaboratory平台(GPU型号为Tesla P100)和Ubuntu系统平台(GPU型号为RTX2060S), 运行环境为Pytorch1.4.0, CUDA版本为10.1.
本文采用平均准确率均值(mean average precision, MAP)、 平均准确率(average precision, AP)、 精确率(Precison)和召回率(Recall)作为目标检测中的评价指标. 精确率表示预测为正的样本中真正正样本所占的比例, 召回率表示样本中的正样本被预测正确的比例. 召回率和精确率的计算公式分别为
Recall=TP/(TP+FN),
(5)
Precison=TP/(TP+FP),
(6)
其中TP(true positives)表示被正确分类的正样本数量, TN(true negatives)表示被正确分类的负样本数量, FP(false positives)表示被错误分类为正样本的负样本数量, FN(false negatives)表示被错误分类为负样本的正样本数量. 精确率随召回率的变化过程构成了PR曲线, 平均准确率均值MAP即为该曲线与坐标围成的面积, 计算公式为
(7)
3.4.1 数据集UCAS_AOD
用本文算法在数据集UCAS_AOD上进行实验, 并与SSD,RFBNet_E,RFBNet算法进行对比, 实验结果列于表2. RFBNet算法是对SSD算法的改进, 基于SSD的结构设计了RFB模块扩大感受野, RFBNet_E算法是在RFBNet的基础上通过引入双层特征融合构成首层输出特征图.
表2 不同算法在数据集UCAS_AOD上的评估结果
由表2可见, RFBNet算法的检测精度明显优于SSD算法, 验证了扩大感受野能有效提高检测精度; RFBNet_E算法精度高于RFBNet算法, 尤其在车辆目标的检测上提升明显, 验证了多层特征融合对于提升小目标的检测精度有效; 本文算法是在RFBNet算法的基础上进行改进, 检测精度达83.4%, 在飞机目标的检测精度上略高于基准算法, 但在车辆目标上相比基准算法RFBNet提高了7.3%, 表明本文算法相比于原基准算法在遥感目标检测上有明显改善. 在检测效率上, RFBNet比SSD算法推理时间缩短了0.029 s, RFBNet_E比RFBNet算法推理时间延长了0.013 s, 而本文算法相比于RFBNet算法时间缩短了0.011 s. 推理时间表示单幅图像的处理时间, 推理时间越短检测效率越高. 实验结果表明, 本文算法相比于基准算法RFBNet检测效率更高.
图7 不同算法的PR曲线对比Fig.7 Comparison of PR curves of different algorithms
图8 不同算法的检测结果对比Fig.8 Comparison of detection results of different algorithms
图8为本文算法与SSD,RFBNet,RFBNet_E算法在数据集UCAS_AOD上对部分数据的检测结果. 由图8可见: 4种算法在飞机目标上的检测效果差异较小, 无错检和漏检现象, 但从图中对应位置上目标的检测置信度上看, 本文算法的检测置信度更高; 在车辆目标上, SSD算法漏检现象最严重, 效果最差, 而本文算法相比于其他算法在漏检问题上有显著改善. 两类目标的检测效果差异较大是由于飞机和车辆之间的形状特征差异较大, 整体呈现矩形形状的车辆目标容易受背景区域中相似物体的干扰, 因此两类目标的检测效果有差异. 但综合对比可见, 本文算法在检测精度及漏检率上相比于其他算法均有明显改善. 因此, 本文算法比基准算法在飞机和车辆两类遥感目标的检测上更具优势.
为进一步分析本文算法的性能, 验证本文改进算法相对于基准算法的有效性, 在数据集UCAS_AOD上进行了消融实验, 结果列于表3, 其中R,S,F,D分别表示基准算法RFBNet和本文算法的改进措施. 由表3可见: 通过对比实验1,2和3,5表明, 引入本文算法提出的特征融合方式进行改进后的算法, 相对于原算法检测精度分别提升了2.1%和1.4%, 验证了本文提出的特征融合方式的有效性; 通过对比实验1,3和2,5表明, 引入稠密预测结构的改进算法相比于改进前的算法, 检测精度分别提高了1.4%和0.7%, 验证了稠密预测结构针对于原预测结构对层级联系的加强是有效的; 通过对比实验1,4和5,6表明, 引入自校准卷积方式改进算法后相比改进前的算法, 检测精度分别提升了1.0%和1.2%, 表明主干特征提取网络在引入自校准卷积替代标准卷积后, 有效强化了网络的特征提取能力. 综合可见, 本文改进算法相比于基准算法更有效.
表3 不同改进算法的消融实验结果
3.4.2 数据集NWPU VHR-10
数据集UCAS_AOD中只含有两类目标, 缺乏目标多样性, 因此为验证本文算法在遥感图像目标检测中的可靠性, 下面在数据集NWPU VHR-10上将本文算法与其他算法进行对比实验. 相比于数据集UCAS_AOD, 数据集NWPU VHR-10包含的目标类别更广, 且不同目标类别之间, 如田径场、 篮球场与舰船、 飞机等目标相对比, 特征差异大且尺度变化更明显, 因此在数据集NWPU VHR-10上的检测难度相对更高. 考虑到数据集NWPU VHR-10的目标尺度特性, 在进行实验前本文先对其进行k-means聚类分析, 重新设定先验框信息. 在数据集NWPU VHR-10上, 不同算法的评估对比结果列于表4.
表4 不同算法在数据集NWPU VHR-10上的评估结果
由表4可见: 在数据集NWPU VHR-10上, 本文算法对10类目标的平均检测精度达94.8%. 在其中9类目标上的检测效果优于基准算法, 验证了本文算法相比于基准算法在遥感图像目标检测中更有优势; 相比于Faster-RCNN[4],Mask RCNN[20],YOLOv4[21]等目标检测算法, 本文算法在多类目标的检测中效果最佳, 平均检测精度分别高出Faster-RCNN[4],Mask RCNN[20],YOLOv4[21]算法的18.4%,10.8%,8.1%. 相比于其他面向遥感目标检测的算法, 如YOLO-RS[13],Sig-NMS[10],RICAOD[14]算法, 本文算法在多类目标的检测上均有明显优势, 且平均检测精度分别提高了8.7%,11.9%,7.7%.
下面进一步分析本文算法在数据集NWPU VHR-10上对小目标的检测性能, 该数据集中小目标通常指飞机、 车辆、 舰船这3类目标. 本文将这3类目标平均检测精度的均值作为小目标的检测精度. 由表4可见: 本文算法在小目标上的平均检测精度达92.2%, 远高于其他目标检测算法; 相对于Sig-NMS和YOLO-RS及文献[12]算法, 针对小目标检测设计的本文算法精度分别提高了9.1%,1.4%,4.9%, 优势明显; 虽然相比于RICAOD算法本文算法平均精度略有不足, 但在这3类小目标检测上较接近. 因此实验结果验证了本文算法对小目标检测的有效性.
图9为本文算法对数据集NWPU VHR-10中部分数据的测试结果. 由图9可见, 本文算法虽然在车辆目标中存在轻微漏检现象, 但整体检测效果表明了本文算法对于遥感图像目标检测的可靠性.
图9 本文算法在数据集NWPU VHR-10上的测试结果Fig.9 Test results of proposed algorithm on NWPU VHR-10 dataset
综上所述, 本文基于RFBNet算法从三方面进行了改进, 改进算法提高了遥感图像中各类目标的检测精度, 强化了对遥感图像中小目标的检测能力. 用本文算法分别在数据集UCAS_AOD和NWPU_VHR-10上进行实验, 得到平均检测精度分别为83.4%和94.8%, 相比于基准算法检测效果明显提高, 相比于其他遥感目标检测算法精度优势明显, 证明了本文算法在遥感图像目标检测中的有效性和可靠性.