基于密集卷积神经网络的遥感飞机识别
2018-10-16于晟焘
于 丽,刘 坤,于晟焘
1.上海海事大学 信息工程学院,山东 烟台 264000
2.上海海事大学 信息工程学院,上海 201306
3.上海海事大学 信息工程学院,山东 临沂 276000
1 引言
随着遥感卫星技术的不断发展进步,高分辨率遥感图像的识别成为研究热点问题。其中遥感飞机的识别无论在民用还是军事领域,都有巨大的研究和应用意义。现有的飞机识别算法主要有模板匹配[1]、支持向量机[2]和神经网络[3]等。文献[4]提出一种采用边缘检测[5]的模板匹配方法,原理是计算模板图像与目标图像之间的相似性实现目标识别,其识别准确率较高,但是计算量较大,对于遮挡、模糊等异常情况的鲁棒性较差。文献[6]提出一种基于主成分分析的支持向量机算法,其识别准确率有一定提升,且鲁棒性较模板匹配更优,但是支持向量机的核函数、带宽等很难确定。文献[7]提出一种基于卷积神经网络的飞机识别方法,设计了5层的卷积神经网络对8类飞机进行识别,虽然对于旋转鲁棒性较好,但是对于遮挡、噪声等效果不理想。目前飞机目标种类繁多,数据量大,且采集的图像受环境、气象等条件干扰较大,因此研究面向实际应用的飞机识别方法是必要的。现阶段卷积神经网络(CNN)[8]因其卓越的性能已成为机器视觉领域领头羊。近来为改善深层卷积网络出现的梯度消失问题,文献[9]提出了Highway Network,文献[10]提出100层残差网络,随后文献[11]提出的密集卷积神经网络(DenseNet)在残差基础上又做了改进,其特征重用以及密集连接方式使它的训练速度更快,准确度更高。
在卷积神经网络的分类处理中,一方面,分层特征提取从图像中获得主要的局部特征(例如角度和点特征);另一方面,轮廓特征等一些重要的全局特征不可避免地丢失。卷积神经网络识别对象的机制与人类的视觉系统还是有很大的不同,因为它忽略了结构化的全局特征,而人眼则集中在纹理和轮廓特征上来形成图像的表示,因此有必要将轮廓特征提取方法与卷积神经网络相结合,产生更加人性化和智能化的分类结果。本文采用方向梯度直方图(HOG)方法来实现这一目标。
因此,本文基于密集卷积神经网络提出一种结合局部与全局特征的联合监督识别方法,利用密集卷积网络结构的特征重用,密集连接等优势,产生高度参数化的高效率模型。再将局部特征(密集卷积网络得到的特征)与全局特征(方向梯度直方图特征)结合后输入分类器中,分类器损失函数使用softmax损失和中心损失的联合监督,通过联合监督,不仅扩大了不同类之间特征差异,而且减少了同类别的类内特征变化。实验结果表明,本文算法能够解决飞机识别时遇到遮挡、噪声、模糊情况识别率低的问题,提高了网络的判别力和鲁棒性,是一种有效可行的遥感飞机识别方法。
2 密集卷积神经网络
康奈尔大学、清华大学、Facebook FAIR实验室合作在2016年提出了密集卷积神经网络(DenseNet)[11],并且在多个数据集验证了其特征重用和降低梯度消失的特性,同时验证了40、100、190、250层网络结构的表现,其中图1为40层密集卷积神经网络结构。首先将图像输入卷积核为7×7的卷积层获取图像特征图;再经过池化窗口为3×3,步长设为2的最大池化层简化网络计算复杂度;之后为进一步改善层与层之间的信息流,通过密集连接将密集块(dense block)连接起来,每个密集块中包含卷积核为1×1和3×3的卷积层。到第XL层时如图1所示,XL层接收所有以前x0,x1,…,xL-1层的特征图,即将等式中多个输入变为单个张量,如公式:
其中复合函数HL表示批量归一化(BN)、整流线性单元(ReLU)、池化(pool)以及3×3卷积(Conv)的复合操作;另外密集块之间使用过渡层(transition layer)降低输出维数,过渡层进行卷积和池化。通过控制卷积核数量(通道数),可以帮助减少模型参数;随后经过池化层得到网络特征,最后通过softmax函数输出识别结果。
这种密集连接模式的优势:不需要重新学习冗余特征图,比传统卷积网络具有更少的参数。传统的前馈架构可以被视为具有状态的算法,从一层传递到另一层,每层从上层读取状态并写入后续层,后续层得到前层特征。残差网络的最新研究[12]表明,许多卷积层的特征图贡献很少,因此可以在训练过程中随机丢弃。密集卷积神经网络明确区分了添加到网络的信息和保留的信息,它是通过特征重用来提高网络的潜力,产生易于训练和高度参数化的精简模型。
3 基于密集卷积神经网络的联合监督识别方法
遥感图像会受到光照、气象、遮挡等多种因素的干扰,增加了遥感飞机识别的难度。本文实验基于密集卷积神经网络(Densenet),通过分层特征提取得到10类飞机的卷积特征图。其中第一个卷积层(conv1)输出通道数设为16,得到16维特征图,同理三部分的密集块(dense block)分别得到不同维数的特征图,最终得到196维特征图送到分类器中。取一类飞机为例,其特征图如图2所示。在网络训练过程中将不断放大不同类别飞机的关键特征权值,促使不同飞机特征分离,最后送到分类器中实现目标识别。但是由于卷积神经网络提取的特征忽略了全局特征,导致飞机识别不准确,而人类的视觉系统集中于纹理、轮廓等全局特征来识别图像,因此结合局部与全局特征,并减少同类飞机特征差异提高不同类飞机特征差异是本文关键点。
图1 密集卷积神经网络结构示意图
图2 卷积特征可视化示意图
3.1 结合方向梯度直方图特征(HOG)
方向梯度直方图[13]是结构特征表达方法之一。传统的方向梯度直方图方法可以在非常混乱和明亮的背景中提取物体轮廓信息,且检测结果表明方向梯度直方图描述符与其他全局特征检测方法(如小波方法)相比更好[14]。方向梯度直方图特征获取分为以下几个步骤:
(1)图像灰度化和伽玛校正,目的是使图像中深色与浅色部分的比例值增大,提高对比度效果,伽马校正公式如下:
其中(x,y)表示图像中的像素点,取gamma=1/2。
(2)计算图像每个像素的梯度,公式如下:
其中Gx(x,y)、Gy(x,y)、H(x,y)分别表示图像的像素点(x,y)处的水平方向梯度、垂直方向梯度以及像素值。G(x,y)和β(x,y)表示像素点(x,y)处梯度幅值和梯度方向。
(3)将176×176像素的图像分割为多个16×16像素的细胞单元,且直方图通道为9。
(4)获取方向梯度直方图(HOG)特征。对细胞单元内每个像素用梯度方向在直方图中加权投影,梯度幅值就是权值,得到细胞单元的HOG特征。然后每2×2个细胞单元组成块,以16个像素为步长,那么在水平和垂直方向会有10个扫描窗口,得到4×9×10×10=3 600维特征向量。
来自方向梯度直方图方法的轮廓表示显示出各种优点。首先,方向梯度直方图捕获的边缘和梯度结构是局部和全局形状的重要特征。其次,方向梯度直方图局部表示是可控的,并且在一定程度上对于局部几何和光度转换是不变的,特别是当旋转比例小于局部定向单元大小时。方向梯度直方图方法正确地检测物体的轮廓如图3所示。
图3 遥感飞机图像与其方向梯度直方图特征
局部特征和全局特征均对图像的识别有重要作用,因此结合现代深度神经网络和早期的梯度直方图方法形成一个新的算法,将使图像识别更加智能和人性化。该识别算法基于密集卷积神经网络和梯度直方图将局部和全局特征相结合来提高分类性能,其算法结构图如图4所示,将密集卷积网络得到的特征与梯度方向直方图特征相结合,再输入全连接层,最后通过联合监督输出A、B、C、D、E、F、G、H、I、J共10类飞机的识别结果。该算法结合轮廓和全局结构化特征方法的优点,使得图像分类更具人性化,更加智能化。
图4 结合局部与全局特征的算法结构图
3.2 中心损失函数
当遥感飞机图像出现遮挡、模糊或者有噪声异常情况时,不同类别飞机的特征差异变得不明显,就会造成分类器的困惑,从而有很大的概率会分类错误,此时要求图像特征不仅要分离,而且要有区别性,才能使复杂飞机图像有较好的分类准确率,因此仅仅依靠softmax函数不能有效地识别飞机。这就需要中心损失函数,将有效地提高神经网络对图像深度特征的判别力。具体来说,中心损失函数在训练过程中学习每个类的深度特征的中心,最小化深度特征与其对应的中心之间的距离[15]。
在卷积网络中构造高效判别特征的损失函数是非常重要的。原始密集卷积网络的损失函数是传统的softmax损失函数Ls如下所示:
其中,xi代表d维空间中第i个深层特征;yi为深层特征的类别;d为特征空间的维度;W为全连接层的参数矩阵(W={d×n},d行n列);Wj为W 的第 j列;m为批处理的大小;n为类别数;b为偏置。
对于遥感图像的异常情况,传统softmax函数的缺点主要有两方面:一是其提取到的特征在很多情况下类内间距要大于类间间距,不利于特征区分;二是softmax会使得训练得到模型过分自信,导致分类结果非1即0,图2里有些特征点分散在边界但是softmax将不再对这些特征点进行修正。
由于softmax存在这些问题,使其对于飞机图像异常情况(遮挡、噪声、模糊)识别效果不佳,本文采用中心损失函数,来减少类内间距。中心损失函数Lc如下所示:
其中,Cyi代表第yi类深层特征的类心。理想情况下,Cyi应该随着深度特征的变化来更新。也就是说,实验中需要考虑整个训练集,并在每次迭代中对每个类的特征进行平均运算,这是低效甚至不切实际的。因此,中心损失不能直接使用。
为了解决深度特征类心更新速度慢,不切实际的问题,本文采用一种基于小批量训练集更新深层特征类心的训练方法。在每次迭代中,通过平均相应类的特征来计算类心。计算中心损失函数Lc对xi的梯度和Cyi的更新方程如下:
其中当深层特征类别与标签相同时δ=1,否则δ=0。
采用softmax损失和中心损失的联合监督来训练CNN进行判别性特征学习的公式如下:
其中,λ用于平衡两个损失函数。如果将λ设置为0,那么可以看作是这种联合监督的一个特例,表示仅用softmax损失函数。
联合监督对深度学习特征分布的影响如图5所示,其中图(b)特征区域中间白圈表示深度特征类心。从图5直观地了解到,图中10个分开的区域代表10类遥感飞机图像的深层特征,公式(5)的softmax损失函数迫使不同类别的深层特征保持分离,但可以观察到在每一类特征聚集区域边缘有散落的特征,因为其类内间距甚至大于类间间距,所以softmax损失函数有很大的概率会将这些散落特征区分错误。
图5 特征分布可视化图
联合监督会根据中心损失函数来最小化深度特征与深度特征类心的距离,并且根据损失误差调整权重,减少离深度特征类心远的特征权重,从而有效地将同一类的深度特征拉到了其类心附近。通过联合监督,不仅扩大了10类遥感飞机之间特征差异,而且减少了每类飞机的类内特征变化,因此通过联合监督能提高密集卷积网络的判别能力,提高识别准确率。
算法实现过程如图6所示,首先输入训练数据与标签,其次经过卷积层并使用文献[16]提出的Xavier方法进行权值初始化,随后经过全连接层输出得到的各种特征向量,再根据公式(9)计算联合损失并与设定的阈值进行比较,未达到要求则对联合损失求偏导计算反向传播误差,方程如下:
图6 计算联合损失函数输出的算法流程图
得到误差后更新权值与深度特征类心的方程如下,最后进行权值以及类心调整,直到达到要求后输出损失函数计算结果。在类心调整中,为了避免少量错误样本造成的大扰动,使用α来控制类心的学习率,如公式(12)所示(t为循环次数)。
3.3 结合全局特征与局部特征的联合监督飞机目标识别方法
(1)建立实验数据集
本文使用的数据集包含10类飞机机型,10类飞机图是谷歌地图美国图森的飞机墓场中常见的10类目标。训练集共有60 000张,验证集10 000张,测试集33 000张。为了保障网络输入大小相同,本实验将所有图像大小设为176×176尺寸。其中部分飞机图像如图7所示。
图7 遥感飞机部分图像
训练集的预处理包括4种方式:一是将图像旋转60°、120°、180°。二是给图像加入两种噪声,分别为均值0,方差0.1、0.05的高斯白噪声以及噪声密度为0.1、0.2的椒盐噪声。三是加入运动模糊,运动像素分别为10、20、30。四是加入不同程度的遮挡,分别为24×24、48×48、72×72和96×96大小的黑块遮挡遥感飞机的任意位置。
测试集中图像处理方法与训练集相似,不同的是采用不同的参数进行数据的预处理:给图像加入均值0,方差0.15、0.08的高斯白噪声以及噪声密度为0.15、0.25的椒盐噪声;给图像加入运动模糊,运动像素分别为15、25、35;给图像加入不同程度的遮挡,分别为24×24、48×48、72×72和96×96大小的黑块遮挡遥感飞机的任意位置。
(2)确定网络训练参数
学习率lr:在本次实验中采用传统的梯度下降法来进行算法的优化调整,需要把学习率[17]设为合适的值,合适的学习率能够使算法快速达到最优值。如果学习率过大,很可能会越过最优值,造成曲线来回振荡;反而如果学习率过小,容易陷入局部最优,算法长时间无法收敛。所以学习率对于算法性能的表现至关重要。其他训练参数一致,不同学习率对于训练过程的影响如图8所示。从图中曲线表现选择学习率为0.01,之后进行实验。
图8 训练过程中损失随迭代次数的变化曲线
平衡参数λ以及中心学习率α:在softmax与中心损失联合监督过程中,用公式(6)中λ平衡两个损失函数,公式(9)中α控制中心的学习率。训练网络之前需要确定这两个参数确保网络有更高的识别准确率:首先我们将α固定为0.5,并将λ从0改变为0.1以学习不同的模型。这些模型在我们数据集上的准确率如图9中λ代表折线所示。很明显,仅仅使用softmax损失(在这种情况下λ是0)导致性能差,而当λ为0.01时识别准确率达到最高值,因此选择λ值为0.01。另外模型的测试性能在很宽的λ范围内基本保持稳定。其次修正λ=0.01,并将α从0.01改变为1,以学习不同的模型。其识别率如图9中α代表的折线所示。同样观察得出α为0.4时,模型识别准确率达到最高,因此选择α值为0.4。且模型的测试性能也在很宽的α范围内保持稳定。
图9 λ、α对识别准确率的影响折线图
(3)开始训练
本文实验平台为Windows7 64位操作系统,处理器:Intel®Core™ i3-3110M CPU@2.4 GHz,内存:4 GB,深度学习框架:caffe。实验参数根据(1)、(2)设定:学习率为0.01;平衡参数λ为0.01;中心学习率α为0.4;批处理数目设为10,因此每6 000次iter完成一次训练集整体迭代。
为了验证本文方法的有效性,训练了两种模型:一是仅使用softmax函数的密集卷积神经网络模型;二是将局部特征与全局特征结合,再使用联合监督作为损失函数的密集卷积神经网络模型。取10类飞机中的D类飞机为例,经过密集卷积网络最终得到196维卷积局部特征,取前100维进行可视化;同时对飞机图像获取方向梯度直方图特征。之后将两种特征结合后用直方图表示,如图10所示。最后,将结合后特征送入分类器。
图10 密集卷积特征与HOG特征结合示意图
4 实验结果与分析
训练成功完成后,根据日志文件画出两种算法模型的准确率和损失变化曲线,如图11所示。
从图中可以观察到,快速收敛的曲线是结合局部与全局特征的联合监督密集卷积网络,收敛较慢的是使用softmax损失函数的密集卷积网络。观察得出结论,结合局部与全局特征的联合监督网络识别准确率收敛后几乎没有振荡,鲁棒性更好,而单独使用softmax损失函数的网络识别准确率收敛后在约0.04范围内持续震荡,表明其对验证集部分图像拟合较差。
为验证联合监督对于同类特征分布的聚合作用,在softmax损失函数与联合监督两种条件下,对10类飞机特征的每类特征求方差,来表征特征分布状况。为得到更加清晰的结论,将图像按受干扰程度不同分别计算特征分布的方差,如图12所示。从图中观察到,图像的模糊像素为35、高斯噪声方差0.15以及遮挡大小96×96时,softmax损失函数作用下的特征方差较高,表明当图像受到较大干扰时,特征分散严重,容易分类错误。而联合监督下的特征方差则保持在较低水平,从而得出结论:联合监督能够减少每类特征分布的方差,即将同类特征向类心靠拢,提高算法判别能力,实现飞机机型的高精度识别。
为丰富验证本文网络模型的性能,将实现文献[18]提出的机器学习算法和传统密集卷积网络算法以及本文算法进行比较。文献[18]首先采用密集SIFT特征和Hu轮廓特征矩的方法来精确地描述飞机特征,然后将这些目标特征输入支持向量机中进行飞机识别。3种算法在测试集中的识别准确率如表1、2、3所示。定义识别准确率的公式如下,ti为每一类别里识别正确的样本数量,C为样本类别,N为样本总数。
图11 Densenet与本文算法网络训练的识别准确率以及损失变化曲线
图12 不同损失函数条件下的特征方差
表1 算法对遮挡遥感飞机图像的识别精度对比 %
表2 算法对模糊遥感飞机图像的识别精度对比%
表3 算法对加噪声遥感飞机图像的识别精度对比 %
从表1、2、3得出结论,文献[18]提出的传统机器学习算法对于受到轻微干扰(24×24像素遮挡,15像素运动模糊,方差0.08高斯噪声以及噪声密度0.15椒盐噪声)的飞机图像识别准确率在90%左右,但是当加大遮挡、模糊以及噪声影响后,除了在48×48像素遮挡识别准确率下降4%左右,其余识别准确率下降9%以上,表明文献[18]算法对于多种图像干扰情况的鲁棒性较差。而使用原始密集卷积网络(densenet)时较文献[18]算法有明显进步,对于受到轻微干扰的飞机图像识别准确率在95%以上,当加大遮挡、模糊以及噪声影响后,除了在48×48像素遮挡识别准确率下降3%左右,其余识别准确率下降7%以上。相比原始密集卷积网络,本文提出的算法平均准确率均提高了5%以上,充分表明结合全局特征与局部特征的联合监督较仅仅使用softmax损失函数,更能够实现每类图像深度特征的类内聚合、类间分散,提高算法智能化。从表中还可以看出,本文算法有良好的稳定性,对于不同程度的干扰,识别准确率高且稳定。因此,本文算法能够提高密集卷积网络鲁棒性,使其准确识别出受到不同程度干扰的遥感飞机图像。
5 结论
本文提出了一种基于深度学习的识别遥感飞机图像新方法,采用40层密集卷积神经网络结构,利用其密集连接特性,降低网络参数的冗余,提高训练速度,增强网络泛化性;并且将全局特征与局部特征结合后采用联合监督的损失函数,增强深度学习算法的判别能力。实验结果表明,较传统机器学习算法,深度学习的密集卷积神经网络识别准确率有巨大优势,并且结合局部与全局特征的联合监督密集卷积网络,能够胜任对受到模糊、遮挡、噪声影响的遥感飞机识别。