许悦雷,朱明明,马时平,唐 红,马红强
(1. 空军工程大学 航空工程学院,陕西 西安 710038;2. 西北工业大学 无人系统技术研究院,陕西 西安 710072)
高分辨率遥感图像的广泛获取和使用[1]大大促进了机场检测的发展.然而,由于机场所处背景复杂、形状和规模不尽相同等特点,机场检测的实时性和准确性也面临着重大的挑战.传统机场检测方法可以分为两类:基于边缘直线特征[2]和基于区域分割[3].前者速度快,复杂度低,但易受干扰.后者检测性能有所提升,但存在滑动窗口冗余的问题.近年来,深度学习的兴起为机场检测提供了新的思路: 利用卷积神经网络(Convolutional Neural Network, CNN)来识别机场以及跑道区域[4-5].上述方法都只是利用CNN强大的分类识别能力,机场候选框的获取还是基于边缘或区域分割的手工方法,因此,传统方法的局限性依旧存在.
2014年,文献[6]提出区域卷积神经网络(Region-based Convolutional Neural Networks, R-CNN)框架,使得目标检测取得巨大突破,开启了基于深度学习的目标检测热潮.为进一步提升R-CNN的准确率和速度,文献[7]提出了R-CNN的继承者Fast R-CNN.Faster R-CNN[8]采用区域建议网络(Region Proposal Networks, RPN)替代选择性搜索(Selective Search, SS)算法[6]作为区域建议方法,同时使RPN和后续检测网络共享卷积层,大幅提升了算法的速度.深度学习模型的训练往往需要大量的样本数据,而机场遥感图像的数量十分有限,不足以训练网络模型.然而,迁移学习理论[9]在目标识别和检测任务中的大量成功应用,为解决机场数据不足问题指明了方向.
由于人工特征表征能力不足、鲁棒性差和滑动窗口冗余等问题,现有机场检测方法普遍检测率较低、虚警率较高和时间较长.针对以上存在的问题,决定抛弃以往滑动窗口加手工提取特征的传统方式,引入目前十分流行的深度学习算法.文中以Faster R-CNN作为基本架构,使用卷积神经网络进行特征提取,利用RPN生成候选区域,整个框架具有端到端的特点.利用预训练模型在机场图像上迁移学习,同时,利用难分样本挖掘使模型训练更加高效,最终实现机场的快速、准确检测.
区域卷积神经网络Faster R-CNN的整体结构如图1所示,以一幅图像作为输入,以目标类别的预测概率值和目标检测框作为输出.主要由区域建议网络(RPN)和包含感兴趣区域(Region of Interest, RoI)池化层、全连接层和分类与回归层的检测网络组成.由于两个网络共享卷积层,将目标检测统一到一个深度网络框架之内,因此,整个网络框架具有端到端的特点.
图1 Faster R-CNN示意图
图2 RPN示意图
1.1.1 区域建议网络
RPN采用一个大小为3×3的滑动窗口在特征图上卷积运算,每个滑动窗口映射到一个低维向量,如图2所示.经过 1×1 的卷积核卷积运算后输入到分类层和回归层,同时进行目标分类和候选框的定位回归.特别指出的是,这里的分类只是判断目标的有无,并不是具体的类别,而定位回归是指候选框的平移缩放参数.
为适应多尺度目标,对于卷积特征图上的每个位置,考虑多个尺寸大小和长宽比的候选框.将候选框的参数化表示称为一个锚(anchor),每个锚对应一组尺寸大小和长宽比.对于每个滑动窗口,一般考虑3种尺寸大小 (128× 128,256× 256,512× 512(pixels)) 和3种长宽比(1∶1,1∶2,2∶1),即9类锚,以应对图像中的多尺度目标.
为了训练RPN,给每个锚分配一个二进制标签.分配正标签(目标)给两类锚: 与某一个人工标定框的交集并集之比(Intersection-over-Union,IoU)最高的锚;与任意人工标定框的IoU大于0.7的锚.分配负标签(非目标)给与所有人工标定框的IoU都小于0.3的锚.利用多任务损失原则[7]同时完成目标分类和候选框回归两个任务,则RPN损失函数定义如下:
1.1.2 非极大值抑制
RPN网络生成的候选框中,会出现多个候选框包围同一个目标且大量重叠的情况.因此,文中根据候选框的目标分类得分,使用非极大值抑制(Non-Maximum Suppression, NMS)剔除得分较低的候选框,以减少冗余.NMS具体实现流程为:将同一个目标的分类得分从高到低排序;选取一类目标中得分最高的候选框,与此目标的其他候选框遍历计算IoU值,若IoU大于阈值,则剔除得分较低的候选框,否则,认为存在多个同一目标;排除步骤中得分最高的候选框,从剩余候选框中再选取得分最高的,重复步骤;重复步骤直到遍历完所有候选框.上述抑制过程实质上就是一个迭代—遍历—剔除的过程,可以设置IoU的阈值来大幅减少候选框的数量,并且不会影响机场的检测准确率.
1.1.3 RoI池化层
实际上,由同一幅图像生成的数千个候选区域(候选框包围区域)之间重叠率很高,致使特征提取的时间成本很高.由于候选区域特征图与完整特征图存在一定的映射关系,可以先对整幅图像进行特征提取,再从完整特征图上直接映射出候选区域特征图,无需重复提取特征,从而大大降低了模型的时间成本.借鉴空间金字塔采样网络(Spatial Pyramid Pooling Network, SPP-Net)[10]的思路,上述操作可以通过RoI池化层实现.为了共享候选区域的卷积运算,采用小批量(mini-batch)抽样训练.对于每个mini-batchB,N幅图像的候选区域被抽样.也就是说,共有B/N候选区域来自同一幅图像,此时来自同一幅图像的候选区域卷积运算共享.
图3 迁移学习示意图
针对不同的目标任务,传统的机器学习算法每次都要重新训练,而迁移学习可以学到多个任务的共同特征,并将其应用到新的目标任务中[9].卷积神经网络中较低的卷积层学到的是诸如边缘、颜色等低级语义特征,这些特征在机场图像与普通自然图像中是相同的,如图3所示.而较高的卷积层提取更加复杂和抽象的特征,如形状和其他组合性特征,不同任务中起决定性作用的是最后的卷积层和全连接层.因此,对于新的机场检测任务,预训练模型中较低卷积层的参数保持不变或以较小的学习率进行迭代,以保证之前学到的共同特征可以迁移到新的任务中.文中使用在大型识别数据库ImageNe上的预训练网络VGG16来初始化共享卷积层的权重参数,然后使用机场数据库进行微调训练.实验最终证明,利用VGG16的初始值进行迁移学习的方法十分有效.为了使网络模型与机场检测任务相匹配,根据数据集中机场尺寸和形状的特点以及实验验证,对锚的尺寸和长宽比进行如表1所示的设定.
表1 参数设置
样本训练集总是包含绝大多数的简单样本(Easy Example)和少数的复杂样本(Hard Example),简单样本对于训练意义不大,而具有多样性和高损失值特点的复杂样本对分类和检测结果影响较大,充分利用复杂样本能够提高网络对于目标的判别能力.实际上,样本数据的类别不均衡问题并不是一个全新的挑战,数据自举[11](Dataset Bootstrapping)的思想已被成功应用到许多检测任务的训练中,该思想也被称为难分样本挖掘(Hard Example Mining).甚至近来利用生成对抗网络(Generative Adversarial Nets)产生遮挡和变形样本的A-Fast-RCNN目标检测模型[12]也可以被看成是一种样本挖掘的方式.而对于数据量较少的机场来说,样本挖掘变得更加重要.因此,文中借鉴难分样本挖掘的思想来使样本训练更加高效.整体结构如图4所示.
图4 文中方法的整体结构
将原本的检测网络复制成两个,分别用网络A和网络B表示,且彼此共享网络参数.网络A只有前向操作,而网络B是一个标准的检测网络,包括前向和后向操作.首先,所有候选区域经过RoI池化层生成对应的特征图,输入到网络A进行前向传递,并计算损失值; 然后,难分样本采样模块将所有候选区域的损失值进行排序,并筛选出损失值较大的B/N个样本; 最后,B/N个复杂样本输入到网络B进行正常的模型训练.网络A的输入为N幅图像的所有候选区域P,并不是mini-batchB,而网络B的批量输入为B.文中设定N=2 (同时P≈ 4 000),B= 128.
整个网络采用开源的深度学习Caffe框架,除共享的卷积层外,其余层的权重用均值为0、标准差为0.01的高斯分布随机初始化.网络的基本学习率为 0.000 1,动量为0.9,权重衰减为 0.000 5.采用交替优化策略训练整个网络,以实现RPN和检测网络共享卷积层.具体如下:
(1) 用预训练网络VGG16初始化共享卷积层的权重,端到端地微调RPN权重参数,最后输出机场候选框集合.
(2) 同样用VGG16网络初始化检测网络的权重,利用第(1)步生成的机场候选框来训练检测网络,此时两个网络没有共享卷积层.
(3) 用第(2)步得到的检测网络来训练RPN,固定共享卷积层权重,仅微调RPN独有的层,训练结束后再次输出机场候选框集合.这个过程中两个网络共享卷积层.
(4) 保持共享的卷积层和RPN权重参数固定,再次微调检测网络的其他层.
实验使用的图像数据均来自Google Earth, 大小为1 000×600 pixel,参照标准数据集V0C2007进行机场数据集的制作.数据集总量为600张,其中有400张存在机场区域的图像,剩余图像主要为铁路、公路、桥梁、建筑物等背景场景.随机选取240张机场图像和120张非机场图像组成训练集,其余图像组成测试集,训练时图像以0.5的概率水平翻转进行数据增强.实验环境为i7-7700处理器,主频为 3.6 GHz,内存为 16 GB,显卡为NVIDIA GTX1070.
图5 损失值对比
为了定量证明难分样本挖掘方法的有效性,采用控制变量法进行对比实验.模型训练过程中,每 20 000 次迭代记录一次损失平均值(所有候选区域的损失函数平均值),结果如图5所示.从图5可以看出,采用难分样本挖掘方法的模型整个训练过程中损失值都较低,这充分表明难分样本挖掘能够有效降低训练过程中的损失值,使得模型训练更加高效.
为进一步体现难分样本挖掘对提高检测性能的有效性,采用控制变量法在机场测试集上进行对比实验,两种方法的惟一区别是有无难分样本挖掘,选取检测率(Detection Rate, DR)和平均运行时间作为对比实验的评价指标,结果如表2所示.
表2 结果对比
由表2可知,采用难分样本挖掘提高了约5%的检测率,同时没有增加额外的时间成本.究其原因是,训练过程中复杂样本得到了充分利用,使得模型训练更加高效,而且难分样本挖掘只是增加了模型的训练时间并不影响检测时间.
图6显示了文中方法的部分检测结果,其中包含道路、河流和山脉等多种机场背景类型,最后一行展示了一些形状较为独特的机场图像.从测试结果中可以看出,图像中机场区域均被准确地识别,说明所提方法能在复杂背景下准确地检测出不同类型的机场.
图6 检测结果
为了证明所提方法的优越性,将以往具有代表性的方法与文中方法进行实验对比.所有方法的实验环境保持高度一致,选取检测率、虚警率(False-Alarm Rate, FAR)和平均运行时间作为对比实验的评价指标,实验中的所有数据结果都是多次随机实验的平均值且均精确到小数点后一位,结果如表3所示.文献[13]是基于边缘的机场检测方法,文献[14]是基于区域分割的机场检测方法,文献[5]是基于卷积神经网络的机场检测方法,Faster R-CNN是指区域卷积神经网络Faster R-CNN在机场数据库上迁移学习并进行相应参数修改得到的结果.
表3 结果对比
从表3可以看出,Faster R-CNN和文中方法的各项性能均优于其他方法,其中文中方法的检测率最高,虚警率最低,平均运行时间最短.究其原因是,以往的机场检测方法采用滑动窗口加手工设计特征的方式,其滑动窗口遍历图像计算效率很低,手工设计特征的鲁棒性不强.而Faster R-CNN和文中方法均将图像特征提取、候选框选择和目标分类与回归整合到一个端到端的深度网络框架中,充分利用CNN强大的特征表达能力,并且区域建议网络和检测网络间共享卷积层,从而大幅提高了机场检测的准确性和速度.文中方法充分挖掘了复杂样本,使得模型训练更加高效,在不增加额外时间成本的前提下提高了检测率.
文中抛弃以往滑动窗口加手工设计特征的传统方法,提出了一种迁移学习结合难分样本挖掘的机场检测方法.该方法以区域卷积神经网络为基本框架,采用RPN来代替以往的区域建议方法,使用非极大值抑制来进一步减少候选框的冗余,以使获取候选框的速度更快、质量更高; 检测网络中的RoI池化层避免了候选框特征的重复提取; 利用预训练网络进行迁移学习来解决机场数据量不足的问题; 训练中充分挖掘复杂样本使得训练更加高效; RPN和检测网络共享卷积层,大大提高了检测的效率.实验结果表明,文中方法在复杂背景下能准确地检测出不同类型的机场,且检测性能均优于其他方法,对机场的实时和精确检测具有较强的理论和实际意义.