基于深度神经网络的遥感图像飞机目标检测

2020-07-17 07:36李文斌
计算机工程 2020年7期
关键词:标签像素飞机

李文斌,何 冉

(河北地质大学 信息工程学院,石家庄 050031)

0 概述

遥感图像目标检测的核心任务是判断遥感图像中是否存在目标并对其进行检测、分割、特征提取与分类识别。传统基于模板匹配或机器学习[1]的遥感图像目标检测方法多数采用人工设计的特征(如SIFTS[2]、HOG[3]),使用SVM[4]等分类器对目标物进行分类。此类方法对于背景复杂、环境多变的遥感图像,模型泛化性能差、检测效果不佳。近年来,借助GPU的高性能计算,基于深度学习的分类模型被广泛应用于目标检测领域,如卷积神经网络(Convolutional Neural Network,CNN),其无需人工提前设置特征,通过大量标注数据自动提取图像特征,达到了较好的分类效果。基于深度学习的分类模型被广泛应用于遥感图像领域[5],但此类模型由于本身多用于日常物体检测,因此难以有效应对样本缺乏、尺度变化大和背景复杂的遥感图像。

为解决上述问题,本文提出基于深度神经网络的遥感图像飞机目标检测模型DC-DNN,该模型能够依靠少量图像级标签,完成遥感图像的像素级目标分割与检测。在全卷积神经网络(Fully Convolutional Neural Network,FCN)中加入大量先验信息,通过FCN与聚类的方式对飞机进行检测框自适应选取,并且设计检测框抑制算法剔除重叠框与误检框,得到最终检测结果。

1 相关工作

基于深度学习分类模型的目标检测主要步骤为候选区域选取、CNN模型特征提取与分类、检测框抑制[6]。经典滑窗法基于固定窗口大小与步长提取候选区域,使用CNN模型进行分类。文献[7]计算图像二值化梯度特征,使用BING算法[8]提取候选区域,并通过5层CNN模型对特征进行自动提取与分类获得最终检测结果,避免了经典滑窗法的穷举搜索及候选区域提取。文献[9]基于RCNN模型[10]进行飞机检测,计算纹理、颜色等特征,使用Selective search算法[11]提取候选区域,并采用深层CNN进行分类,从而提取出更符合图像本质的特征。文献[12-13]使用Faster R-CNN[14]模型进行飞机检测,通过RPN网络提取候选区域,利用全连接层进行分类与检测框定位,提升了检测精度与速度。文献[15]结合FCN[16]与CNN,提出弱监督深度神经网络(Weakly Supervised Deep Neural Network,WS-DNN),使用弱监督FCN融合滑窗法提取候选区域,通过预训练方式获取更深的CNN模型进行分类,提高了检测精度。

目前,遥感图像目标检测方法存在以下问题:1)标签样本少,由于将用于目标检测的大量数据都进行标注的难度较大[17],因此遥感图像领域标签样本缺乏,容易造成过拟合或者欠拟合现象。基于目标级标签的Faster R-CNN等目标检测模型、基于像素级标签的FCN等分割模型均难以完成模型训练,检测效果不佳。2)先验信息少,难以适应检测框大小,并且计算存在冗余。在使用图像级标签的模型中基于视觉机制的算法、Selective search算法依靠人工设计特征结合区域合并提取候选区域,缺乏足够先验信息,难以应对复杂环境。WS-DNN模型中引入FCN提供的先验信息,但其基于弱监督训练的方式,导致大量错误先验信息引入FCN模型,最终候选区域提取效果不佳。滑窗法、WS-DNN模型中的窗口大小与滑动步长使用经验值,导致检测框难以自适应,造成误检与漏检。上述方法均提取出了大量不含目标的候选区域,增加了后续筛选难度与时间消耗,并且十万量级的候选窗口增加了计算量[18]。3)后处理方式单一。传统检测框抑制算法NMS从重叠框中去除得分较小的框,无法对最终检测框进行位置调整及剔除误检框,致使检测效果无法达到更佳。

本文DC-DNN模型针对遥感图像像素级样本标签缺乏,难以进行深度模型训练的问题,通过数据增强方式扩充图像级标签样本,并利用图像特征对图像进行像素级自动标注,获取大量像素级标签样本。使用大量图像级、像素级标签样本进行监督训练,并通过微调方式完成深度模型训练。针对飞机尺度变化大、背景复杂等问题,利用基于FCN模型与DBSCAN算法[6]相结合的候选区域提取方法。该方法可以适应任意大小的图像输入,提供显著性先验信息,减少背景区域的提取,为每架飞机选取自适应大小的检测框,提高选取精度,降低后续筛选的计算量。针对传统检测方法中后处理方式无法微调与剔除检测框的问题,设计一种新的检测框抑制算法对检测框进行融合、微调和剔除。

2 DC-DNN模型检测框架

DC-DNN模型检测框架如图1所示,主要包括基于FCN模型与DBSCAN算法的候选区域选取、候选区域偏移扩展、CNN模型、检测框抑制等部分。FCN模型将待检测图像中的背景与飞机进行像素级预测,当预测为飞机和背景时像素分别设置为黑色和白色。FCN模型只能完成飞机与背景像素的语义分割,而不能实现单个飞机的实例分割。DBSCAN算法将预测为飞机像素点中属于同一目标的点聚为一类,最终划分为多类进行实例分割,并为每类选取一个合适的候选区域。为减少误检,将每类候选区域进行偏移扩展为9个候选区域。CNN对所有候选区域进行特征提取与分类,将分类为飞机的区域进行标注,得到检测框。此时会出现部分目标误检及检测框重叠的情况,使用本文提出的检测框抑制算法对检测框进行融合、微调和剔除,得到最终检测结果。

图1 DC-DNN模型检测框架

2.1 数据获取

由于在使用目标级标签的检测模型中,需在整幅图像上标注出目标物位置及类别,因此在遥感图像目标检测中目标级样本标注难度大、样本稀缺难以获取,而图像级样本则相对易于获取,DC-DNN模型使用图像级样本完成深度模型训练,降低了人工标注难度。本文使用包含训练集、验证集和测试集三部分的数据集进行模型训练、验证和测试。为完成深度模型训练,在公开数据集UCAS_AOD[19]上,人工截取5 000个仅包含单个完整飞机的样本与40 000个不含飞机的背景样本,使用旋转90°、180°、270°和水平翻转的方式将5 000个样本扩充至40 000个样本,飞机图像经过旋转或水平翻转后可认为是一个全新的样本,利用此类数据增强方式可减少模型过拟合现象,增强模型泛化性能。将飞机与背景样本全部归一化为64×64后,按照7∶3的比例划分为训练集和验证集,用于训练与验证深度模型,其中使用数据增强的方式将分类准确率提升了3.2%,最终在验证集上分类准确率达到98.4%,能够有效将背景与目标物进行区分。部分训练集与验证集如图2(a)所示。测试集为128张包含687架飞机的机场图,用于评测DC-DNN模型性能。测试集源于公开数据集NWPU VHR-10[1,20-21]、RSOD-Dataset[22-23]和UCAS_AOD数据集。部分测试集如图2(b)所示。

图2 数据集设置

2.2 深度神经网络模型

DC-DNN模型中使用CNN和FCN两种深度神经网络模型进行目标检测。DC-DNN模型中的CNN模型选择为VGG-16[24]模型。VGG-16模型包括13层卷积层和3层全连接层,在卷积、池化层进行图像特征提取,在全连接层进行分类。VGG-16模型具有网络层数多、特征提取效果佳、分类效果好的特点,能够较好地完成遥感图像中的分类任务。经典VGG-16模型用于日常物体的分类,为适应遥感图像目标检测,在经典VGG-16模型上做出如下调整:由于VGG-16模型中原输入为224×224×3,DC-DNN模型中训练集样本尺寸为64×64×3,但输入尺寸不同会导致VGG-16模型无法训练,传统双线性插值法将图片从64×64×3扩大至224×224×3,会引入不存在的数据以影响分类结果,因此将VGG-16模型输入改为64×64×3以适应训练样本尺寸。同理,将最后一层全连接层输出改为2,即做二分类任务。调整后的VGG-16模型在ILSVAR-2012[25]数据集上进行训练后,固定卷积层参数,使用训练集进行微调训练全连接层。

FCN模型由特征提取网络层、反卷积层和Softmax层构成。FCN模型通过卷积层提取特征,反卷积层对最后一个卷积层的特征图进行上采样,Softmax层获得二分类结果,达到图像像素级分割。在传统FCN模型训练中,固定特征提取网络中的卷积层参数,使用日常物体数据集PASCAL VOC 2011对反卷积层的参数进行微调训练。由于直接使用遥感图像训练FCN模型容易导致网络模型过拟合,因此本文在VGG-16模型基础上进行调整获得FCN模型。训练集中图像样本大小均为64×64×3,训练时输入设定为64×64×3,由于没有全连接层的限制,因此FCN模型可以适应任意大小的输入,测试时将整张图像输入到FCN模型中即可获得原图大小的预测图。首先固定VGG-16模型中所有卷积层(Conv1_1~Conv5_3),去掉VGG-16模型中的Softmax层,将全连接层变成相应的反卷积层(Conv6、Conv7、Conv8),并使用跳跃结构对最后一层卷积层进行逐级上采样(Deconv1、Deconv2、Deconv3),在获得Conv8的32倍上采样结果Deconv3后加入Softmax层执行二分类,获得原图对应的像素级预测,考虑到相邻像素点之间的类别应相似,对Softmax分类结果进行膨胀、腐蚀操作,使最终结果更平滑、精确。在训练时固定卷积层和全连接层参数,进行反卷积层的微调训练。FCN模型的优化目标为式(1),网络结构如图3所示。

(1)

其中,Yij为每个样本Xij对应的像素级标签,Tij为预测值。

图3 FCN模型示意图

CNN模型使用训练集的图像级标签进行训练,对训练集图像按照内容进行标注。FCN模型使用训练集的像素级标签进行训练,传统像素级标签通过人工逐像素标注,标注困难、耗时长,无法大量获取深度学习数据;弱监督标注方式无需人工逐像素标注,但过于笼统的标注方式会导致标注准确性不高、预测结果欠佳。为解决像素级样本缺乏的问题,DC-DNN模型引入CNN底层特征图对训练集进行像素级标注,大幅提升FCN训练效率。标注过程具体如下:1)将图像级飞机样本输入训练好的VGG-16模型中,经过第二次卷积获得64张原图大小的特征图;2)将64张特征图对应位置像素值累加,合并为一张新特征图;3)计算新特征图的平均像素值(设为P),将新特征图中像素值大于P的像素点设置标签为0,其他设置标签为1。

经过训练的CNN模型能够提取图像底层特征,底层特征对于原图轮廓、边缘等处能够进行较好的刻画。DC-DNN中FCN模型利用飞机较其周围环境颜色不同这一特点,对CNN底层特征图进行充分利用,获得与人工标注方式近乎一致的像素级标注,在保证标签质量的同时能自动进行像素级标注,更便捷地获取FCN模型所需像素级标签,解决了当前遥感领域像素级标签缺乏的问题。图4分别为人工标注、弱监督标注、CNN底层特征图标注3种标注方式对同一张飞机图像的像素级标注图,可以直观看出CNN底层特征图自动标注的像素级飞机样本较弱监督方式具有更多的准确标签信息,与人工标注方式近乎一致。由于人工标注需要耗费大量时间,因此本文仅利用弱监督标注与CNN底层特征图标注两种方式训练的FCN预测图进行对比。如图5所示,可以看出CNN底层特征图标注训练的FCN预测结果更准确、目标物更突出、细节刻画更佳。

图4 3种标注方式对比

图5 2种标注方式的预测结果

2.3 候选区域提取

候选区域提取旨在提取出可能存在目标物的区域,降低后续分类计算量。候选区域提取通常分为:1)将感兴趣区域与背景进行分割;2)对感兴趣区域进行矩形框框定;3)将所有被矩形框框定的区域选定为候选区域。

DC-DNN模型具体提取步骤如下:

1)FCN模型将待预测图中飞机与背景像素点进行分割。将图像尺寸大小为H×W×3的待检测图输入至训练好的有监督FCN模型中,其中卷积层对图像进行特征提取,反卷积层进行上采样获得H×W×2的特征图,Softmax层对上采样结果进行二分类,膨胀腐蚀层对二分类结果进行修正,最终输出为H×W大小的二值预测图。

2)DBSCAN算法将多个飞机进行分离。获取二值预测图中预测结果为飞机的像素点坐标集D={Xij|i∈[0,1,…,H],j∈[0,1,…,W]},使用DBSCAN算法对集合D进行聚类,获得k类聚类结果集合Q={P1,P2,…,Pk|k∈[1,2,…,H×W]},其中,P={Xij|i∈[0,1,…,H],j∈[0,1,…,W]}。

3)聚类结果候选框自适应选取。为k类聚类结果选定自适应的k个候选框。在k类聚类结果集合Q中,找出每类坐标集Pi,i∈[0,k)中最大、最小的横纵坐标,具体为Bi=[xi,x′i,yi,y′i],Bi共连通k个自适应大小的候选区域,所有候选区域集合为C={Bi|i∈[0,k)}。

4)候选区域偏移扩展。对候选区域集合C={Bi|i∈[0,k)}进行合理偏移扩展,依据式(2)~式(5)计算当前候选区域Bi中心点坐标L(x,y)i,横纵坐标上偏移量为H′i、W′i。按照式(3)计算偏移扩展后9个候选框中最大、最小的横纵坐标Ei。对候选框集合C中所有k个候选框按上述方式进行合理偏移,共获得9k个候选框,9k个候选框对应的原图区域即为最终候选区域。

L(x,y)i=[(x′i+xi)/2,(y′i+yi)/2]

(2)

H′i=1/4×(x′i-xi)

(3)

W′i=1/4×(y′i-yi)

(4)

Ei={[xi+pH′i,x′i+pH′i,yi+qW′i,y′i+qW′i]}

p,q∈{-1,0,1}

(5)

DC-DNN模型在像素点分割阶段不再依靠人工设计特征,引入有监督的FCN模型进行复杂背景与目标物分割。图像底层特征图制作的像素级标签能够使FCN模型提取到更深层次的特征,从而大幅减少背景区域干扰,实现飞机像素与背景像素的有效分割。

在高精度分割图像上,使用聚类算法进行多个飞机的分割。大部分聚类算法需提前指定聚类个数k,即飞机数量,由于实际检测过程中无法提前预知飞机数量,因此引入密度聚类中的经典DBSCAN算法。DBSCAN算法无需提前指定聚类个数,根据图像聚类得出不同的目标物个数k,同时DBSCAN算法能够减少噪声点的影响。将高精度的分割图像与DBSCAN算法相结合能够获取与原图中轮廓、形状几乎一致的飞机聚类图,从而得到与飞机大小一致的候选框。由于后续CNN分类器的误差,若对聚类结果中的每类只选取一个矩形候选框,可能会导致该类被误检,因此DC-DNN模型将每类选取的候选框进行合理偏移扩展,能够大幅降低误检情况的发生。

2.4 CNN分类及检测框抑制

DC-DNN模型将提取的所有候选区域输入VGG-16模型中进行图像级分类,剔除非目标区域。由于获取的候选区域大小不同,将候选区域大小归一化为64×64×3后输入VGG-16模型中,将候选区域分为飞机或背景,并将分类为飞机的区域进行标记。由于标记结果存在一个区域被多个检测框标记,因此需要对检测框进行抑制。传统NMS算法对目标物预测得分进行降序排列,依据重叠度对得分低的检测框进行剔除,但其本质上不改变检测框位置。本文检测框抑制算法将经过CNN分类的检测区域进行检测框抑制,重新计算重叠框位置,通过多次投票的形式剔除得分较高的误检框。相较于NMS算法,其可减少误检框数量,提升检测精度。本文算法与NMS算法对比结果如图6所示。图7为本文算法对检测框的最终融合结果。

图6 本文算法与NMS算法的抑制结果对比

图7 本文检测框抑制算法的融合结果

算法1检测框抑制算法

输入提取的所有候选区域Ei,i∈[0,k-1],空队列P,阈值β=2/3

输出最终检测框队列P

1.for i in 0 to k-1 do:

2.将Ei中扩展的9个候选框输入到CNN中,保留分类结果为飞机的所有区域为Qi

3.计算Qi中的元素长度L

4.if L ≥ β×L:

5.计算Qi对应的最大矩形区域,计算该矩形区域中心点坐标Ci,以该中心点坐标为中心,获取与当前检测框大小相同的区域T

6.将T输入队列P

7.返回最终检测结果P

3 实验结果与分析

为验证DC-DNN模型有效性,设计多组实验分阶段进行对比评价,使用准确率(A)、召回率(R)及F1值(F)3个指标对DC-DNN模型的最终检测结果进行评价。准确率、召回率及F1值的计算公式分别如式(6)、式(7)和式(8)所示。DC-DNN中深度模型CNN、FCN使用TensorFlow深度学习框架进行编码,采用NVIDIA GeForce RTX 2070的GPU加速深度模型进行训练。

(6)

(7)

(8)

3.1 FCN模型性能分析

3.1.1 DC-DNN中有监督FCN模型性能分析

为评价DC-DNN中有监督FCN模型性能,将DC-DNN中有监督FCN模型与WS-DNN模型中弱监督FCN模型进行对比,选用像素准确率(Pixel Accuracy,PA)[16]作为评价指标。如表1所示,DC-DNN模型中有监督FCN深度模型在3个数据集上的平均像素准确率为81.47%,较WS-DNN模型中的弱监督FCN模型有30.83%的性能提升。

表1 FCN模型的像素准确率对比

3.1.2 DBSCAN参数设置

DBSCAN基于样本的紧密程度进行聚类,无需提前指定聚类个数,但需指定领域参数(,MinPts),依据经验选取领域参数(,MinPts)。本文选取F1值作为评价指标,通过大量实验选择最优领域参数,其中部分参数及对应F1值如表2所示,其中加粗部分为最佳参数及其F1值。实验结果表明,当过小时,容易引入大量不存在目标的小尺寸候选区域,加大分类难度,从而导致误检;当过大时,容易导致飞机密集区域多架飞机被选为一个候选区域,无法做到单个飞机的分离;当MinPts过小时,容易出现与过大时相似的情况;当MinPts过大时,容易出现飞机机翼、机尾等部分被误认为噪声,从而导致漏检。综合大量实验数据,本文最终选取(15,350)作为最佳领域参数。

表2 部分领域参数及其F1值

3.1.3 候选区域偏移有效性分析

在候选区域选取过程中,通过候选区域的合理偏移来提高检测精度,采用准确率、召回率及F1值验证偏移有效性。如表3所示,在候选框提取阶段,加入合理偏移后模型3个指标均有所上升,其原因为未加入合理偏移的模型后续分类过程中只进行一次CNN分类,由于CNN模型本身存在误差,会导致误分类,因此加入合理偏移后可使模型减少误检。

表3 候选区域偏移结果对比

3.1.4 候选区域提取性能对比

DC-DNN模型基于有监督FCN+DBSCAN进行候选区域提取,WS-DNN模型使用FCN+滑窗法进行候选区域提取。为评价DC-DNN候选区域提取性能,将其与滑窗法、Selective search算法、WS-DNN模型中候选区域提取方法进行对比。评价指标为假阳性率(False Positive Rate,FPR)、漏检率(Missing Ratio,MR)。为统一参数设置,根据3个数据集中最大(134)、最小(34)、平均(70)飞机大小进行对比。实验中的参数参照文献[15]进行设定,WS-DNN模型候选区域提取方法、滑窗法使用的窗口大小与步长均相同,滑动窗口大小为数据集平均飞机大小、滑动步长为窗口大小的1/4。

IoU表示检测框与标签框之间的重叠程度,当IoU阈值大于0.5时,即认为该目标被检出。滑窗法、Selective search算法、WS-DNN模型、DC-DNN模型在本文3个数据集中提取的候选区域个数如表4所示。为更好评价4种提取方式的性能优劣,图8给出了FPR、MR随IoU阈值变化的对比曲线。如表4、图8所示,DC-DNN模型较其他方式能够提取更少的候选区域,减少后续分类计算量,当IoU阈值大于0.5时,DC-DNN模型的FPR与MR值较低,其原因为滑窗法和Selective search算法缺乏足够的先验知识,WS-DNN模型使用的弱监督标签不够精确、固定窗口大小存在局限性等问题,这3种方式都将大量不含飞机的区域选为候选区域,而DC-DNN模型使用的像素级标签准确性高、FCN预测结果更精确,并且FCN结合密度聚类的候选区域提取方式没有固定窗口大小的限制,提取的候选区域更加符合实际情况。

表4 4种方法的候选区域提取性能对比

图8 MR和FPR随IoU的变化曲线对比

3.2 DC-DNN模型性能分析

为评价模型整体检测性能,选取DC-DNN模型、WS-DNN模型以及当前主流Faster R-CNN模型、R-FCN模型进行对比,最终检测结果如表5所示,其中IoU阈值取0.5。

表5 4种模型最终检测结果对比

实验结果表明,DC-DNN模型准确率、召回率、F1值均高于WS-DNN模型、Faster R-CNN模型和R-FCN模型,其原因为:1)WS-DNN模型使用弱监督FCN模型进行图像粗划分,弱监督方式错误标签多,造成FCN检测结果不佳,大量不含目标的区域被选取,同时其滑窗法选取的候选区域不适用于不同尺度的飞机,导致误检数增多,最终准确率下降。2)DC-DNN模型使用图像底层特征图制作的像素级标签更加精确,使FCN预测图误分类数量大幅降低,并且在候选区域提取过程中,自适应大小的检测框将目标物正好框定,偏移扩展对同一目标物区域进行多次分类后合并,每个目标物只采用一次标记,最终提高了准确率与召回率。并且,DC-DNN模型采用的检测框抑制算法能够微调检测框,剔除重叠框与误检框,降低误检数,提升检测准确率。3)Faster R-CNN模型候选区域的提取过程中设置的3种尺度锚点及下采样操作对于小目标特征提取性能不佳,容易导致小目标丢失,最终导致漏检且召回率过低。4)R-FCN模型中对特征化后的卷积图作FCN输出,创建一个相对位置的得分图,容易使同一目标物获取尺度不同的多个检测结果,而且其使用的NMS检测框抑制算法难以对IOU值较高的检测框进行剔除,最终导致重复检测,准确率下降。

图9给出准确率、召回率、F1值随IoU的变化曲线,可以看出DC-DNN模型较其他模型在IoU阈值大于0.5时对候选框依然有较好的提取结果,最终准确率较高。

图9 准确率、召回率和F1值随IoU的变化曲线

图10给出了DC-DNN模型在测试集部分样本上的检测效果,可以看出对于飞机大小、颜色、型号和背景复杂度不同的机场图,DC-DNN模型仍然能对飞机目标进行检测,具有较好的鲁棒性。DC-DNN模型与其他基于深度神经网络的检测模型相比,使用图像级样本完成目标检测任务,检测结果与真实结果更接近,并且具有更高的检测精度。

图10 DC-DNN模型最终检测结果

4 结束语

本文提出一种基于深度神经网络的遥感图像飞机检测模型DC-DNN,利用图像级样本自动制作像素级标签训练FCN模型,通过DBSCAN算法将FCN分割图像进行聚类取得与飞机大小一致的候选框,应用VGG-16网络对候选区域进行精确分类,并使用检测框抑制算法降低误检率以获得最终检测结果。实验结果表明,DC-DNN模型对于遥感图像中飞机目标的检测准确率为95.78%、召回率为98.98%、F1值为0.973 5。但由于DC-DNN模型需预先人工设定密度聚类参数,因此后续将对密度聚类参数进行自适应研究,进一步提升模型检测精度。

猜你喜欢
标签像素飞机
飞机失踪
像素前线之“幻影”2000
“像素”仙人掌
“拼座飞机”迎风飞扬
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
ÉVOLUTIONDIGAE Style de vie tactile
乘坐飞机
神奇飞机变变变
高像素不是全部