基于CNN的多光谱遥感图像地物覆盖分类*

2019-04-09 09:10李玉峰
微处理机 2019年1期
关键词:分类器卷积神经网络

李玉峰,林 辉

(沈阳航空航天大学电子信息工程学院,沈阳110136)

1 引 言

卫星遥感图像处理技术一直以来都是各国研究的重点。遥感图像分类,是把在图像中的每个像元[1]划分为若干类别中的一种,通过分析各种类地物的光谱信息和空间信息,提取有效特征[2],分析并从中选择适合的特征参数,将特征空间划分为多个互不交割的子空间,再将影像内各个像元划分到这些空间中去[3]。卫星遥感图像的处理对于自然资源的保护、民用设备的技术支持以及军方侦察的技术支撑起到了至关重要的作用[4]。

传统的卫星遥感图像分类方法一般为监督分类、非监督分类、半监督分类,以及更加古老的目视解译[5]。目视法耗时长,并对解译人员要求极高。较为常用的监督分类方法有支持向量机(Support Vector Machine, SVM)、最小距离分类(Minimum Distance Classification,MDC)、最大似然分类(Maximum Likelihood Classification,MLC)等;而无监督分类有迭代自组织数据分析技术A(Iterative Self-organizing Data Analysis Techniques A, ISODATA)分类、K 均值聚类算法分类等。其中,最小距离分类、最大似然分类、K均值聚类算法分类算法在处理高分辨率卫星图时出现精度达不到预期的问题[6]。上述分类算法皆为浅层学习算法。由于只经过了较少层的线性与非线性处理,对于输入的信号,浅层学习网络无法效地表达复杂函数,无法适应较为复杂的样本。在这个数据爆炸的时代,卫星遥感图像样本的复杂度已远远超出过去的水准,这样的浅层模型也终将会逐渐被一些新兴的方法取代。

深度学习的概念自从被加拿大多伦多大学教授Hinton 等人[7]在2006 年于顶尖学术刊物《科学》上被提出后,广泛引起了各行业人员的高度重视。Hithon 采用一种类似人脑多层的机构模型,对信息进行降维和分类。这种深度学习方法已经在图像、语音识别等领域取得了重大成果[8]。而Lecun 等人提出的卷积神经网络(CNN)则为一种多层神经网络结构,具有极好的训练性能[9],在遥感图像处理中有良好的运用[10]。但是,国内将深度学习应用到高分辨率卫星遥感图像解译的研究工作相对较少。故此,提出一种对传统卷积神经网络结构进行优化的高分辨率遥感影像地物分类方法。本方法基于卷积神经网络对高分辨率多光谱遥感图像进行的自动分类,将传统CNN 框架进行优化,并加入了Inception 结构,横向比对其与支持向量机算法分类效果之间的差异。

2 传统分类法及其原理

2.1 支持向量机分类方法

支持向量机是由Vapnik 在1995 年所提出[11],它基于统计学习理论和结构最小风险原理,针对小样本进行训练和分类。SVM 致力于建立一个最优决策超平面,从而使平面两侧的距离该平面最近的两类样本之间的距离最大,这样则使其对分类问题产生较好的泛化功能[12]。SVM 学习效率高,泛化性强,使得其在空间信息分析领域有良好的表现,在卫星遥感图像的处理上,如遥感图像土地覆盖分类、遥感影像融合、高光谱图像处理等,表现更为优异,尤其在解决Hughes 现象的问题上有至关重要的作用。对其技术原理的详细讨论如下:

对于最优超平面,考虑K 个线性可分样本{(X1,d1),(X2,d2),...,(Xk,dk),...,(XK,dK) },任意样本Xk,期望的输出为dk=±1(代表两类的类别表述)。用于分类超平面的方程为:

其中,X 为输入向量,M 为权值向量,c 为偏置,则有:

针对多维的样本数据集,随机产生一个分类超平面并不断地进行移动,来对样本进行分类,直到样本中不属于同类别的样本点全都落于该分类超平面的两侧。可能有多个超频面满足这个条件,但同时要保证分类的精度,也要找到一个可以使两侧的空白区达到最大的超平面,从而达到最优的分类效果。

SVM 可以对样本数据进行学习、分类和预测,其分类流程图如图1 所示。

图1 SVM分类流程图

2.2 径向基函数分类方法

径向基函数(Radial Basis Function, RBF)神经网络的主要优势在于逼近能力、分类能力和学习速度等方面。在这几个方面RBF 神经网络皆比BP 神经网络能力强。径向基函数神经网络的结构相对简单,训练的方式也较简洁。由于其参数的并非随机初始化,故其学习的收敛速度很快,可以无限接近任意的非线性函数,且能够克服局部极小值的问题。

径向基函数神经网络是具有单隐层的三层前向网络[13]。第一层是输入层,包括信号源的节点。第二层是隐藏层,该层的节点数量视所要解决问题的需要而定,隐藏层中的神经元变换函数便是径向基函数,它是一个对于中心点的径向对称且不断衰减的非负线性函数。其与之前的前向网络中的全局响应的变换函数不同,为局部响应函数,这种差异具体体现在可见层到隐藏层之间的变换方式。第三层是输出层,它是对输入所得到的响应。输入层的作用是传输信号,输入层和隐含层之间则是完全连接,即连接权值为1。隐含层的作用是将低维度的模式输入数据变换到高维空间中去,以便于输出层的识别与分类。而隐含层和输入层需要实现的功能目标是相异的,所以二者所采用的学习策略也不尽相同。

输出层需要针对线性权做调整,其使用方法是线性优化,故学习速度比较快。而对于隐含层来说,则需要对激活函数(Activation Function, AF)的参数来做调整,其使用的方法是非线性优化,所以学习速度相对较慢。本研究的激活函数采用高斯函数:

式中:Ch为基函数的中心,而ρ 则为宽度。

径向基函数神经网络分类器的结构如图2 所示。

图2 径向基函数神经网络分类器结构

2.3 基于CNN的分类方法

卷积神经网络是深度学习的一种典型模型。传统卷积神经网络示意图如图3 所示。通常,卷积神经网络模型由不同结构层来表示,包括卷积层、池化层(下采样层)、一个或多个完全连接层,以及输出层。卷积层用于使用指定的过滤器卷积输入图像,并通常与池化层交替出现。

图3 传统卷积神经网络示意图

在普通的神经网络当中,一个神经元连接到下一层中的所有神经元。在卷积神经网络CNN 中,神经元之间稀疏地连接,通常只在每个指定神经元的自定义感受范围内连接。另外,在一层中相互连接的一些神经元具有相同的权重和偏差。它们在很大程度上可以帮助减少参数。池化层是特征提取层[14],将上一层卷积得到的特征图中的连续范围作为作用区域,并且只对由重复的隐藏单元所产生的特征进行池化,这些池化单元便具有了平移不变性(Translation invariant),进而整个卷积神经网络也获得了这一平移不变性。即使输入图像经过一个小的平移之后,依旧会产生相同的特征。

3 改进的CNN分类方法

在改进的CNN 分类方法中,卷积神经网络中的输入层用于接收图像,卷积层用来提取图像中的各种特征并减小噪声对分类的影响[15]。用于分类的卷积神经网络如图4 所示。

图4 用于分类的卷积神经网络

假定原始的输入图像为X,Yi表示第i 层的特征图,所以Y0=X,则:

式中,Ki表示第i 卷积层核的权重;运算符*表示Ki与第i-1 层的特征图进行卷积操作;bi表示第i 层的偏置向量;f 为激活函数,一般采用ReLU 函数。ReLU 的表达式为:

池化层一般紧跟在卷积层后,基于图像的局部相关性对上一池化层输出的特征图进行采样,并保持其尺度不变。池化层的作用方式一般分为两种,最大池化(Max pooling)与平均池化(Mean pooling)。

在此采用AlexNet 网络模型。该网络模型是由Alex Krizhevsky 在2012 年发表的一种卷积神经网络模型。Alex 在2012 届ImageNet 图像分类挑战上提出的这种网络结构模型获得了ImageNet 大规模视觉识别挑战赛的冠军[16]。由于AlexNet 网络模型层数没有过于深,而且有较好的分类能力,故此选用它作为基本框架,为遥感图像分类做出优化。另外,对池化层采用最大池化方法,使用非重叠采样的方式来进行,其原理是选取图像区域的最大值来作为该区域采样后的值。

卷积层和池化层是交替进行连接的。完全连接层综合成先前提取的特征,将图像特征信息从二维减小到一维。最后的输出层根据完全连接层获得的特征向量来产生样本对应的标签。

基于卷积神经网络分类过程的核心在于整个网络的训练与人类大脑的学习过程相似。过程分为两个阶段。第一个阶段是前向传播,使得样本图像经过输入层最后到达输出层的特征被学习[17]。第二个阶段则是反向传播,依据损失函数来计算实际输出值与期望输出值之间的误差(又被称为“残差”),并根据梯度下降法调整网络参数。采用CNN 在使用上最为广泛的交叉熵(Cross Entropy,CE)损失函数。交叉熵被用于评价模型训练得到的实际输出与期望输出的差异,减小交叉熵损失可提高模型的预测准确率。此函数据的离散形式为:

式中,p(x)是期望输出,q(x)是通过计算得到的实际输出。对卷积神经网络进行训练的目标即是通过梯度下降法来不断减小网络的损失函数。

多层神经网络模型有两个缺点,一是费时,二是容易过拟合。故此采用加入Dropout 的方式[18],来解决这两个缺点带来的问题。过拟合和费时几乎成了深度学习的通病,对此,加入Dropout 可有很好的解决。每次经过Dropout,相当于从原有网络得到一个更精巧的网络。某神经网络A 的结构图如图5 所示,经过Dropout 后神经网络A 的网络结构图如图6 所示。

图5 神经网络A结构图

图6 Dropout处理后的神经网络A结构图

使用这样的方式便可以将深度神经网络从费时的问题中解脱出来。

一般传统改进CNN 的方法大多是加深网络的层数从而提高整个网络的特征提取能力。如果用来训练的数据集有限,但是参数过多,则容易产生过拟合。而且网络越大,计算量和计算的复杂度也在不断增长,导致网络延滞,难以实际应用。而网络越深,越容易产生梯度弥散现象,导致难以优化模型的情况发生。故此,在传统的CNN 分类模型中加入结合了Network in Network 思想的Inception 结构。该模块先聚合输入特征,然后利用其非线性变换能力对特征进行再加工和滤波处理,以此实现多尺度特征的利用。Inception 结构通过并联不同尺度卷积核来增加网络宽度,获取遥感图像中多种尺度特征,从而提高网络特征提取能力。添加的Inception 结构如图7 所示。此Inception 结构所在的层数越高且通道数越多,该方法的效率就越高。

图7 添加的Inception结构

卷积神经网络的输出层一般采用一个分类器,而输出层中神经元节点的数目则要依据不同的分类任务决定。此处采用的是Softmax 分类器。Softmax 分类器以多项式分布为模型来建立,通过它,还可以得到不同分类可能的概率。所以Softmax 分类器对多种互不重叠的种类进行分类表现更优。Softmax 分类器对于n 类分类的系统方程如下:

4 实验及结果分析

实验采用TensorFlow1.1.0 开源框架,搭建环境为PC,操作系统为Ubuntu 16.04,处理器为Intel(R)Core (TM)i5-7400 CPU@3.50GHz,显卡为NVIDIA GTX1070 8G 显存版本,运行内存为16G,CUDA 版本为8.0。

实验中受测试的图像为美国某农场遥感图像,如图8。图像来源于美国国家海洋和大气管理局(National Oceanic and Atmospheric Administration,NOAA)的公开卫星数据。

图8 NOAA公开的美国某农田遥感图像

改进CNN 对卫星遥感图像的分类效果与SVM及RBF 的对比情况如图9~图11 所示。可见,改进后的分类方法在分类效果上有显著提升。

最后,为证明该CNN 分类方法的优势,选取了数等因子对两种分类方法进行评价。评价结果如表1 所示。

图9 基于支持向量机的分类结果

图10 基于径向基的分类结果

图11 改进CNN分类结果

表1 两种分类方法精度评价对比

5 结束语

采用改进型卷积神经网络,AlexNet 网络模型,并加入Inception 结构,使网络分类效果得到了提升。而Softmax 分类器也对本方法的分类精度提升起到了极大的作用。相较于SVM 分类,本研究的改进CNN 模型对于高分辨率多光谱遥感图像分类总体精度提升10.47%,实现了更高的精度和更好的分类效果,具有良好的实用价值和应用前景。

猜你喜欢
分类器卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
学贯中西(6):阐述ML分类器的工作流程
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于朴素Bayes组合的简易集成分类器①
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
一种自适应子融合集成多分类器方法
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法