基于Faster R-CNN的高分辨率图像目标检测技术
2019-06-10谢奇芳姚国清张猛
谢奇芳, 姚国清, 张猛
(中国地质大学(北京)信息工程学院,北京 100083)
0 引言
随着遥感图像空间分辨率的不断提升,对高分辨率遥感图像中的地物目标进行快速而准确的识别和检测成为遥感应用领域的研究热点。传统的目标检测方法[1-3]依靠人工提取图像特征,导致特征通用性差。深度学习目标检测框架依靠卷积神经网络(convolutional neural netwok,CNN)提取图像特征,在图像识别和检测任务上取得了重大突破[4-5]。
2014年Girshick等[6]提出区域卷积神经网络(regions with CNN,R-CNN)框架,第一次成功将深度学习引入到目标检测领域,首次实现使用搜索选择算法产生候选窗口以及使用CNN提取图像特征,极大提高了检测精度。但R-CNN框架要对每一个候选窗口进行特征提取,大量的重复计算导致检测效率低下[7]。为解决效率问题,2015年Girshick[8]提出快速区域卷积神经网络(Fast R-CNN)框架,该框架直接将整幅图像输入深度网络进行训练。在网络的最后一个卷积层,借鉴He等[9]的思路提出独特的感兴趣区域池化(region of interest pooling,ROI Pooling)层[10],根据候选窗口的位置将对应的特征从整个卷积层中裁剪出来,消除了大量的重复运算。此外,Fast R-CNN框架使用多任务损失函数对目标分类和边框回归进行联合训练,进一步提升了模型的检测效果。随着目标检测框架的发展,速度瓶颈集中在生成候选窗口的问题上,2016年Ren等[11]提出的Faster R-CNN框架使用区域推荐网络(region proposal network,RPN)代替搜索选择算法产生候选窗口,并实现了RPN和目标检测网络共享原始图像的特征图。至此,Faster R-CNN框架将特征提取、候选窗口生成、目标分类和边框回归4个步骤统一到一个深度网络框架之内,使得目标检测流程更为简洁,检测精度得到大幅提升[12]。
高分辨率遥感图像具有目标物体体积小、数量多、位置多样、地物干扰性大等特点,本文以高分辨率遥感图像中的机场为检测场景、飞机为检测目标,训练Faster R-CNN模型对飞机目标进行识别和检测。飞机识别实验分别对完整飞机图像和残缺飞机图像进行识别,验证CNN在特征提取方面的优势。飞机检测实验对大范围机场中的多架飞机进行目标检测,验证Faster R-CNN模型能否适应复杂的检测环境并达到实际应用性检测效果。特征提取网络是模型检测效果的重要影响因素,本文分别使用VGG网络[13]、Resnet-101网络[14]和Inception-Resnet-v2网络[15]作为Faster R-CNN模型中的特征提取网络,并通过制作相应数据集和调整模型超参数,使Faster R-CNN模型达到本文实验条件下的最佳检测效果。
1 Faster R-CNN框架原理
1.1 Faster R-CNN框架目标检测流程
Faster R-CNN框架分为图像特征提取、候选窗口生成、目标分类和边框回归4个主要部分,首先,将原始图像输入网络,由特征提取网络提取特征图; 然后,将提取到的特征图分别输入到RPN网络和ROI Pooling层,由RPN网络产生候选窗口,并将生成的候选窗口映射到特征图上; 接着,ROI Pooling层将每个候选窗口中的特征图固定为统一尺寸; 最后,通过全连接层对目标分类和边框回归进行联合训练,得到最终目标检测结果。Faster R-CNN框架如图1所示。
图1 Faster R-CNN框架
1.2 RPN网络结构和工作原理
RPN网络结构如图2所示,其中红色框代表卷积核,灰色网格代表特征图上的每一个像素点。卷积核在特征图上以划窗的形式进行卷积,经过一个全连接层后分别进入分类层和回归层。具体过程为: 首先,将特征图上的每一个点映射回原图作为整个感受野的中心点,根据网络预设的面积和长宽比产生候选窗口; 然后,比较候选窗口与目标真实位置的重叠度,把与目标真实位置重叠度最大的候选窗口和重叠度超过70%的候选窗口记为正样本,与目标真实位置重叠度小于30%的候选窗口记为负样本; 最后,以正负样本1∶1的比例来训练RPN网络,其他候选窗口不参加训练。
图2 RPN网络结构
使用上述样本进行RPN网络训练,经过训练后的RPN网络输出每一个候选窗口中存在检测目标的概率pi和候选窗口的宽高及其中心坐标ti,RPN网络的总损失函数为
(1)
(2)
(3)
1.3 3种常见的特征提取网络
本文实验采用VGG,Resnet-101和Inception-Resnet-v2这3种CNN提取图像特征,CNN的基本结构包括输入层、卷积层、池化层、全连接层和输出层,随着网络层次结构不断加深,特征提取能力也在不断增强。VGG网络使用一组堆叠起来的小卷积核代替原始的大卷积核,有效减少了网络参数和计算复杂度; Resnet-101网络通过添加自身映射层保持网络在层数很深时仍可以得到有效训练,避免了网络训练时的梯度消失; Inception-Resnet-v2网络用已有的稠密连接层来近似一个稀疏的结构,避免了参数增加带来的过拟合问题。
2 高分辨率遥感图像目标检测实验
2.1 实验环境与实验数据
实验基于Ubuntu 16.0.4操作系统,使用图形处理器(graphics processing unit,GPU)版Tensorflow 作为深度学习框架,GPU型号为Tesla k80。
实验数据信息如表1所示。
表1 实验数据信息
2.2 实验流程与评价指标
本文目标检测实验流程如图3所示。
图3 高分辨率遥感图像目标检测实验流程
首先对高分辨率遥感图像进行裁剪和数据预处理,飞机识别实验和飞机检测实验均使用0.5 m空间分辨率的全色遥感图像制作训练集,其中飞机识别实验训练集采用大小为200×200的图像160张,飞机检测实验训练集采用大小为900×900的图像340张。分别将2个实验的训练集输入Faster R-CNN模型进行训练,飞机识别实验采用VGG网络作为模型的特征提取网络,飞机检测实验采用Resnet-101网络和Inception-Resnet-v2网络作为模型的特征提取网络。训练结束后保存模型并制作高分辨率遥感图像测试集,飞机识别实验的测试集采用大小为200×200的0.5 m空间分辨率全色遥感图像40张,飞机检测实验测试集分别采用大小为4 000×2 500的0.5 m空间分辨率全色遥感图像24张和大小为1 600×1 000的2 m空间分辨率多光谱彩色遥感图像10张。使用训练好的模型对测试集进行飞机识别和检测,并对最终结果进行目视解译和评价指标计算。
采用F1分数作为Faster R-CNN模型检测性能的评价指标,它同时兼顾了检测模型的准确率和召回率。准确率指正确检测的飞机数与所有检测到的飞机数之间的比率,衡量模型的查准率; 召回率指正确检测到的飞机数与图像中所有飞机数之间的比率,衡量模型的查全率。一般情况下,随着召回率的上升,准确率会有所下降,F1分数可以看作是模型准确率和召回率的一种加权平均,其取值在0~1之间,数值越接近1说明模型的检测性能越好。
2.3 参数设置与实验结果
本部分对实验数据集、实验参数进行介绍,并使用评价指标对实验结果进行了分析,在保证合理性的情况下对模型的适用性进行了拓展。
2.3.1 飞机识别实验
飞机识别实验训练集部分图像如图4所示。
(a) 完整飞机(b) 残缺飞机 (c) 多架飞机
训练集图像包含以下3种情况: 完整飞机图像(图4(a)); 将完整飞机图像分割为机头、机尾和机翼的残缺飞机图像(图4(b)); 包含多架不规则残缺飞机的图像(图4(c))。
模型训练过程中使用经过COCO(common objects in context)数据集[16]预训练的参数进行初始化,设置Faster R-CNN模型每次训练3个样本,学习率为0.000 3。Faster R-CNN模型的初始损失值为1.859 8,经过1 000次训练后损失值开始收敛,经过4 000次训练后损失值稳定在0.164 3。
飞机识别实验结果(图5)表明,Faster R-CNN模型能够准确地识别出图像中的完整飞机和残缺飞机,CNN提取到的特征具有平移旋转不变性并且Faster R-CNN模型能够通过局部特征识别目标物体,克服了传统方法由于物体特征不完整导致识别失败的难题。
(a) 完整飞机(b) 残缺飞机 (c) 多架飞机
2.3.2 飞机检测实验
飞机检测实验训练集部分图像如图6所示。
(a) 场景1 (b) 场景2 (c) 场景3
图像展示了较大的机场范围,每张图像中包含30架以上不同大小和不同停放位置的飞机。图像中存在大量干扰物,其中房屋、道路、汽车和登机桥等干扰物与飞机特征存在一定的相似性。
模型训练过程中使用经过COCO数据集预训练的模型参数进行初始化,训练时设置Faster R-CNN模型每次训练1个样本,学习率为0.000 2,使用Inception-Resnet-v2网络的Faster R-CNN模型初始损失值为2.013 4,经过4 000次训练后损失值开始收敛,经过8 000次训练后损失值稳定在0.313 0。使用Resnet-101网络的Faster R-CNN模型初始损失值为1.423 0,经过3 000次训练后损失值开始收敛,经过8 000次训练后损失值稳定在0.275 0。
使用Inception-Resnet-v2网络和Resnet-101网络的Faster R-CNN模型在全色遥感图像测试集上的检测结果如图7所示。
(a) Inception-Resnet-v2网络场景1 (b) Resnet-101网络场景1
(c) Inception-Resnet-v2网络场景2 (d) Resnet-101网络场景2
(e) Inception-Resnet-v2网络场景3 (f) Resnet-101网络场景3
场景1图像中包含房屋、道路和植被等多种干扰物,共有21架飞机,飞机轮廓完整,停靠位置比较集中,与背景的对比度较高,检测难点在于飞机的体积较小以及其他地物干扰性较大。从检测结果可以看到,使用2种特征提取网络的Faster R-CNN模型均能达到良好的检测效果,其中使用Inception-Resnet-v2网络的模型检测出了图中所有的飞机,使用Resnet-101网络的模型对于体积较小的飞机存在漏检现象,2个模型均没有发生误检情况。检测结果如图7(a)和(b)所示。
场景2图像中包括登机桥、跑道和房屋等干扰物,共有50架飞机,有2架残缺飞机,飞机体积差别较大,飞机与背景的对比度较低。检测难点在于模型能否检测到图中所有的飞机并且成功识别出残缺飞机。从检测结果可以看到使用2种特征提取网络的Faster R-CNN模型均能达到良好的检测效果,其中使用Inception-Resnet-v2网络的模型成功识别出2架残缺飞机并且无误检情况,模型对目标物体定位准确,对比度对于检测结果影响较小。使用Resnet-101网络的模型漏检了2架体积较大的飞机,检测结果受目标与背景对比度影响较大。此外,可以明显地观察到使用Resnet-101网络的模型对目标的定位不够准确,候选窗口与飞机的真实位置存在的偏差,其中一架飞机的机头位于候选窗口之外。检测结果如图7(c)和(d)所示。
场景3图像中飞机体积小,有大量的房屋并存在与飞机形态具有相似性的地物。检测难点在于对小飞机的准确定位和区分与飞机形态具有相似性的地物。从检测结果可以看到使用Inception-Resnet-v2网络的模型对于小飞机的检测效果较好,但是存在2处将其他地物误检为飞机的情况,使用Resnet-101网络的模型无法准确定位小飞机的位置,检测效果较差。检测结果如图7(e)和(f)所示。
Faster R-CNN模型基于全色遥感图像数据集的评价指标如表2所示。
表2 Faster R-CNN模型基于全色遥感图像数据集评价指标
测试集共有24张图像,包含338架飞机,使用Inception-Resnet-v2网络的模型总共检测出330架飞机,其中正确检测326架,误检4架,漏检12架,准确率为98.79%,召回率为96.45%,F1分数值为0.976 3,在高准确率的情况下保证了良好的召回率,模型检测效果可以达到实际应用性水平。使用Resnet-101网络的模型总共检测出292架飞机,其中正确检测291架飞机,误检1架,漏检47架,准确率为99.66%,召回率为86.09%,F1分数值为0.923 8。相比于使用Inception-Resnet-v2网络模型的检测结果,该模型召回率有所下降,但仍认为其具有较好的检测水平。
为进一步验证2个模型的适用性,使用Faster R-CNN模型对2 m空间分辨率的多光谱遥感图像进行检测,均得到了良好的检测效果,部分检测结果如图8所示。
(a) Inception-Resnet-v2网络 (b) Resnet-101网络
3 结论
本文使用Faster R-CNN模型对高分辨率遥感图像中的飞机目标进行识别和检测,由实验结果得到以下结论:
1)经过训练的Faster R-CNN模型能够成功检测飞机目标,在目前的实验条件下,使用Inception-Resnet-v2网络的Faster R-CNN模型取得了最好的检测效果,F1分数为0.976 3,高准确率的同时也保证了良好的召回率,解决了传统方法中准确率和召回率相互影响的难题。
2)特征提取网络能够快速有效地提取图像特征,克服了人工提取特征的不确定性,并且可以通过部分特征完成对目标物体的识别。
3)特征提取网络具有各自的适用性,VGG网络结构简单,运行速度快,能够完成简单的目标识别任务,但是无法在复杂的环境中达到优秀的目标检测效果。Resnet-101网络和Inception-Resnet-v2网络具有更深的网络结构和更强的特征提取能力,能够在复杂的机场环境中准确而全面地检测飞机目标。实验结果表明,使用更深层的特征提取网络可以有效提升Faster R-CNN模型的目标检测水平,但复杂的网络结构时间成本大,对于实验的硬件水平有更高的要求。
4)经过训练的Faster R-CNN模型可以成功地对高分辨率遥感图像进行目标检测,并且模型具有较强的鲁棒性,能够适应不同空间分辨率和类别的高分辨率遥感图像。