摘 要:随着遥感技术的发展,遥感图像检测技术被广泛应用于军事、农业、交通及城市规划等多个领域中,针对遥感图像分辨率高、背景复杂和目标尺度小等特点,本文提出一种改进的 YOLOv3 算法以提升对遥感图像的检测效果。在原始算法的基础上,使用改进的密集连接网络替换原有的 DarkNet53 作为基础网络,并在浅层特征图中加入特征增强模块,丰富特征图的感受野,强化网络对浅层特征信息的提取,使网络对遥感图像中小目标的检测精度和鲁棒性均有所提升。在本文整理的遥感数据集上进行多组对比实验,实验结果表示本文提出的算法相比于原始的 YOLOv3 算法,平均准确率提高了 9.45%,且在检测小尺度目标的准确性上提升显著,比原始算法提高了 11.03%,模型参数量相比于原始算法也进行了缩减。
王道累; 杜文斌; 刘易腾; 张天宇; 孙嘉珺; 李明山, 计算机工程 发表时间:2021-07-29
关键词:目标检测;深度学习;遥感图像;特征增强;密集连接
随着遥感技术的飞速发展,高分辨率光学遥感图像以其观察面积大、范围广、不受国界和地理条件限制等特点受到国内外广泛重视。在森林防护、交通监测、电力检修、资源勘探、城建规划等方面遥感图像检测占据着十分重要的位置,例如通过检测车辆目标来进行交通秩序的管理,通过检测建筑房屋等目标来为城市规划提供依据,以及对受灾房屋、道路、桥梁等目标进行检测以评估受灾情况等等[1]。传统的遥感图像检测方法主要利用人工设计特征的方式提取特征信息训练分类器,通过滑动窗口获取图像区域,由分类器输出预测的结果[2]。这种检测方法不仅资源消耗大,检测速度与准确性往往也无法达到实用要求。
近年来,随着计算机硬件与人工智能技术的不断发展,基于深度学习的目标检测算法因其适用性强、检测效率高等优点得到广泛的应用。基于深度学习的目标检测算法可主要分为两类:第一类为双阶段目标检测算法,以 Faster R-CNN[3]和 Mask R-CNN[4]等为代表;第二类为单阶段目标检测算法,以 SSD[5]、YOLO[6]、YOLO9000[7]和 YOLOv3 [8] 等为代表。目前深度学习在遥感图像检测的应用[9]中主要有以下问题:1)遥感图像的分辨率较高,被检目标信息少,背景噪声影响较大,使得一般的目标检测算法无法准确提取原始图像中的特征信息,造成分类和定位困难;2)遥感图像中的目标普遍小而密集,尺寸较小的目标在网络学习过程中极易被忽略,导致网络对小目标的学习不足,降低检测的准确率。
为解决上述问题,本文针对 YOLOv3 算法进行改进,提出了一种基于密集连接与特征增强的目标检测模型。模型使用改进的密集连接网络作为主干网络,同时基于 Inception[10] 与 RFB(Receptive Field Block) [11]扩大卷积感受野的原理,引入特征增强模块和新型的特征金字塔结构,增强浅层特征图语义,改善模型对小目标的检测性能。
1 基于密集连接与特征增强的检测算法
1.1 YOLOv3 算法
YOLOv3 是 Redmon 等人在 2018 年提出的一种单阶段目标检测算法,是目前应用最广泛的目标检测算法之一。YOLOv3 的检测框架如图 1 所示,主要包括两个部分,第一部分为基础网络,采用 DarkNet53,网络包含 5 个残差块(ResBlock),每个残差块由多个残差结构(Residual Structure)组成,第二部分为借鉴 FPN(Feature Pyramid Networks)[12]设置的特征金字塔网络结构,通过卷积和上采样产生三个具有丰富语义信息的特征图,大小分别为 1313,2626, 5252。在训练阶段,网络将图像分别划分为 NN 个网格单元,每个网格单元输出预测框的信息以及分类置信度以完成检测。
现有一些研究将 YOLOv3 应用在遥感图像检测领域,如李昕等[13]将空间变换网络(Spatial Transformer Networks,STN)融入 YOLOv3 算法中,以提升遥感图像中油罐的检测精度;郑海生等[14]通过替换主干结构和激活函数将 YOLOv3 的参数量缩小为原始的十五分之一,实现了轻量级的遥感图像检测;沈丰毅[15]在原始 YOLOv3 算法中引入压缩激励结构,通过权重的差异提升模型对遥感图像特征的敏感度。上述研究通过不同方法改进 YOLOv3 模型,使其具有更好的表现,但是都未能很好的解决遥感图像中特征提取困难以及目标尺度小的问题。这是由于 YOLOv3 对小尺度目标的检测主要依赖位于浅层的特征图,浅层特征图的分辨率较高,空间位置信息丰富,但由于其处于网络的浅层位置,没有经过足够的处理,因此语义信息较少,特征表达能力不足;其次 YOLOv3 的主干网络 DarkNet53 在遥感图像中无法取得较好的表现,特征提取能力不足,导致检测效果较差。
1.2 改进 YOLOv3 算法
本文针对 YOLOv3 算法在遥感图像检测上的缺陷,提出一种基于密集连接与特征增强的目标检测方法。
1.2.1 主干网络改进
本文依据 DenseNet121[16]提出一种新型的密集连接主干网络,网络由阀杆模块(Stem Block)和四个密集连接块(Dense Block)组成。阀杆模块借鉴 Inception v4 和 DSOD(Deeply Supervised Object Detectors)[17]的思想,结构如图 2,该模块可以有效提升特征表达能力,而不会增加过多的计算成本,与 DenseNet121 中的原始设计(大小为 7,步长为 2 的卷积层,之后是大小为 3,步长为 2 的最大池化层)相比,多分支的处理可以大幅减少输入图像在下采样过程中的信息损失。
密集连接块的基本组成为密集连接结构(Dense Structure),如图 4 中所示,其最显著的特点是跨通道的特征连接方式,通过每一层与前面所有层建立连接,使误差信号快速传播到较浅层,加强整个网络对特征信息的传播,在提升特征提取能力的同时大幅减低网络参数量,其计算可表示为: ( [ , ,..., ]) x x x x l 0 1 l -1 Hl (1)其中 l x 表示第 层的输出, () Hl 表示非线性操作组合,包括 BN 层、ReLu 和卷积层, [] 表示 Concatenation 特征融合操作。
网络的输入大小为 448448,在训练阶段输入图像首先经过阀杆模块处理,通过大尺度卷积与多分支处理以缓解图像下采样时尺度变化所带来的损失,之后经过密集连接块得到四个不同尺度的特征图,其下采样倍数分别为 4,8,16,32。图 3 为 DarkNet、原始 DenseNet 与本文改进主干网络的结构对比图,相较于原始的 DenseNet121,本文改进的主干网络的输入分辨率与预测特征图分辨率更高,并通过阀杆模块缓解了原始网络输入时信息损失过大的问题。同时本文采用四种预测尺度,最大的尺度为 112112,最小的尺度为 1414,在保持小目标检测精度的同时提升对大尺度目标的检测效果。
1.2.2 特征增强模块
在使用本文所提出的主干网络时,由于预测所用的特征图分辨率较大,浅层特征图没有经过充分处理可能会导致特征中的语义信息不足,因此本文提出一种特征增强模块,针对浅层特征图语义信息少、感受野不足的缺点,使用多分支处理和空洞卷积提高浅层特征图的语义信息,改善网络对小尺度目标的适应能力。本文模型的总体结构如图 4 所示,提取出下采样倍数为 4,8,16,32 倍的特征图用以预测,对浅层特征图(下采样倍数为 4 和 8 倍)进行特征增强处理,对深层特征图(下采样倍数为 16 和 32 倍)使用 SPP(Spatial Pyramid Pooling)[18]进行处理,SPP 结构如图 6。
特征增强模块借鉴 RFB 感受野原理,通过增加网络的宽度与感受野,提高模型的特征提取能力,增加特征图的语义信息,其结构如图 5,共有四条支路,其中一条支路为残差网络结构中的残差支路(Shortcut Connection),只进行 11 的卷积操作,另外三条支路由 11 与 33 的卷积级联而成,并在 33 的卷积后加入不同膨胀率的空洞卷积层。多个 33 的卷积级联既保证了扩大感受野的同时也减少了参数量,使网络的训练与推理速度更快,网络中的每个卷积层后都加入了 BN(Batch Normalization)层,旨在通过数据的归一化处理来加快模型的收敛。特征增强模块的计算可表示为: Q X i j H P i i [ ( )], 1,2,3 (2)W Q i i Ri (3) [ , , ] ( ) Z W W W X j 1 2 3 j i P (4)式中, X j 表示输入的特征图, P 表示由 11 的卷积层、BN 层和 ReLu 层组成的非线性操作组合, Hi 表示进行 次由 33 的卷积层、BN 层和 ReLu 层组成的非线性操作组合, Qi 表示 i 次卷积操作后的特征图, Ri 表示空洞卷积, i 1, 2,3 时空洞卷积的膨胀率分别为 1,3,5 , [] i 表示 Concatenation 特征融合操作, Z j 表示融合后的新特征图。
经过特征增强模块的处理,网络对小目标的敏感度更高,在复杂背景下依然可以准确的提取小目标的特征信息,提升网络的检测精度。
1.2.3 特征金字塔结构
在本文中使用重复的自浅而深(Double Bottom-up path)的特征金字塔结构,如图 4,使用经特征增强模块和 SPP 处理的特征图作为特征金字塔结构的输入,输入的特征图被分为两个分支,其中一支在进行下采样与卷积操作后与下一层的特征图相累加,另一支同样进行下采样操作与累加后的特征相结合,使网络中的信息由浅层向深层流动。
通常网络在训练过程中,目标的像素不断减小,若小目标的信息在主干网络的最后一层已经消失,则在上采样操作后无法恢复小目标的信息,在浅层特征与深层特征相结合时便会出现混淆,降低网络的检测精度。通过本文的特征金字塔结构处理,网络不会因上采样操作而丢失小目标的信息,避免了网络因小目标信息丢失所造成的精度损失。
2 实验结果与分析
2.1 实验平台
本文实验平台:使用的操作系统: Ubuntu16.04 操作系统;使用的 NVIDIA Tesla T4(16G 显存);使用的编程语言: python;使用的深度学习框架:Tensorflow。
2.2 数据集制作
本 文 实 验 所 用 数 据 来 自 RSOD 和 NWPU NHR-10[19]数据集,针对原始图像进行筛选,剔除了质量较差的图片,并对标注信息进行核验,对错标、漏标的样本进行重新标注,最终得到包括不同场景下的图片共计 1620 张,检测目标包括飞机、船舶、储油罐、棒球场、网球场、篮球场、田径场、海港、桥梁和车辆 ,图片分辨率为 600~1000600~1000。
图7为本文数据集中目标真实框的尺寸分布图,目标真实框总计共 11296 个,并主要集中于小尺度范围内,绝大多数目标分布在 100100 像素点以内,其中 1616 像素大小的目标占比为 41.79%,低于 3232 像素的目标占比约达到总目标数的 92%。
2.3 模型训练及评价指标
数据增强采用随机裁剪、随机旋转及缩放等操作,初始学习率设置为 0.01,采用随机梯度下降法对总损失函数进行优化训练,训练批次设置为 4。
本文使用的评价指标为平均准确率(mAP),通过衡量预测标签框与真实标签框的交并比(IOU)得到每个类别的精确度(Precision)和召回率(Recall),由精确度和召回率所绘制的曲线面积即为准确率均值(AP),多个类别的 AP 平均值即为平均准确率,其计算可表示为: n 1 0 ( ) mAP i p r dr n (5)
2.4 对比实验结果分析
利用整理的数据集对本文提出的算法性能进行验证,将使用本文算法、原始 YOLOv3 算法、SSD 算法、EfficientDet 算法[20]、CenterNet 算法[21]、YOLOv4 算法[22] 以及 Faster R-CNN 算法得到的结果进行客观比较,训练方案与 2.3 节相同,结果如表 1 所示,本文提出的改进 YOLOv3 算法的平均准确率高于其他算法,达到了 74.56%,相比于原始的 YOLOv3 算法提高了 9.45%,尤其在小尺度目标检测上,比原始算法提高了 11.03% , 并 且 参数 量 也 低于原始的 YOLOv3 算法。与 YOLOv4 相比,本文算法在大目标的检测精度上与其相差 0.69%,但 在 中 、 小 目 标 的 检 测 精 度 上 均高于 YOLOv4 算法,与双阶段算法 Faster R-CNN 相比,本文算法也取得了更优秀的检测效果。
图 8 为检测效果对比图,左侧为原始 YOLOv3 算法的检测结果,右侧为本文算法的检测结果。图 8(a)和(b)背景为机场与港口,是典型的遥感图像场景,从图像中可以看出,原始 YOLOv3 算法在这种具有复杂背景的图片下存在漏检现象,部分目标如飞机、油罐等无法检出,而本文算法漏检现象则大幅减少;图 8(c)和(d)为道路背景图片,待检目标的尺寸较小,原始 YOLOv3 算法无法有效检出目标车辆,而本文算法在高分辨率下对小目标仍有较好的检测效果;图 8(e)、(f)和(g)为森林、海域背景图片,可以明显看出当待检目标距离较近时,原始 YOLOv3 算法便会出现漏检现象,相比之下,本文算法的检测效果得到了有效的提升。
2.5 消融实验结果分析
本节通过消融实验以探究各部分改进对模型的影响。
第一组对照试验分析替换主干网络对算法精度的影响,本组实验设置了三组模型进行对照,分别为原始 YOLOv3 模型,对比一(使用原始 DenseNet121 的 YOLOv3 模型)以及对比二(使用本文主干网络的 YOLOv3 模型),三组实验分别使用不同的主干网络,其他参数相同,实验结果如表 2。
从表中可以看出,使用原始 DenseNet121 作为主干网络时 mAP 的提升并不明显,这是由于较低的分辨率输入以及原始DenseNet121在下采样时损失过多特征信息所导致,而使用本文改进的主干网络时,mAP 提高了 6.76%,在大、中型目标的检测精度均高于原始模型,且在小目标检测上提升最为显著。由于遥感图像中的目标尺度集中分布在小尺寸范围内,因此本文提出的主干网络更适用于遥感图像检测。
第二组对照试验分析特征增强模块与特征金字塔对算法的影响,设置四组模型进行对照实验,分别为原始 YOLOv3 算法和对比实验(分别使用特征增强模块和改进特征金字塔的 YOLOv3 算法)。
从表3中可以看出使用特征增强模块的算法 mAP 提升显著,而单独使用改进特征金字塔结构时则效果不明显,这是由于原始YOLOv3 算法中特征未经强化处理语义信息过少,使改进后的特征金字塔效果较差。而当两项改进共同使用时,检测精度达到最高。
3 结论
本文针对遥感图像背景干扰大和目标尺度小等问题,提出一种基于改进 YOLOv3 的遥感图像目标检测算法。将密集连接网络与 YOLOv3 结合,并通过多分支结构与空洞卷积所组成的特征增强模块加强特征的语义信息,使用新型的特征金字塔减少对小目标检测的精度损失。在遥感图像数据集上的实验结果表明本文算法相比于其他算法检测效果有了显著的提升,并主要表现在小目标检测上。接下来将结合本文算法进一步探究密集连接网络与感受野原理对遥感图像检测的影响,以达到更高的检测精度。