APP下载

基于卷积神经网络的遥感图像分类研究

2018-09-19李亚飞董红斌

智能系统学报 2018年4期
关键词:卷积神经网络分类

李亚飞,董红斌

(哈尔滨工程大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)

遥感图像分类就是依据遥感数据的各种信息,通过采用某种算法挖掘每类地物的独有特征并将其分割为互不相交的子空间,进而将各个像素划分到对应的子空间。但对于高分辨率的遥感图像,地物的光谱特征越来越丰富,“同物异谱”和“异物同谱”现象更加明显[1]。因此传统的参数化方法如最小距离分类法(minimum distance classification,MDC)[2]、极大似然分类法(maximum likelihood classification,MLC)[3]等分类准确度降低。而非参数化方法如支持向量机[4]、人工神经网络 (artificial neural network,ANN)[5]、决策树 (decision tree,DT)[6]等在高分辨率遥感影像分类中得到广泛的应用。然而这些算法都属于浅层学习算法[7],很难有效地表达复杂函数,缺少对复杂样本的适应性,并且分类器模型的参数无法估计或估计不准确,导致分类效果不理想[8]。

2006年,加拿大多伦多大学教授,机器学习领域的泰斗Hinton[9]和他的学生Salakhutdinov在《科学》上发表了一篇文章,掀起了深度学习在学术界和工业界的浪潮。深度学习是通过建立一种类似人脑分层的模型结构,对输入信息逐层进行特征提取,层级越深,提取的特征越抽象复杂,称为深度神经网络(deep neural networks,DNN)[10]。如今,深度学习作为机器学习的一个重要分支,已在图像识别、语音识别和自然语言处理等领域取得了巨大的成功[11-13]。

目前,国内将深度神经网络应用到遥感图像分类中的研究工作相对较少。因此,本文提出一种基于卷积神经网络(CNN)的遥感图像分类方法。针对单源特征无法提供更多有效信息的问题,本文设计了一种多源多特征融合方法,该方法将遥感图像的光谱特征、纹理特征、空间结构特征等按空间维度以向量或矩阵的形式进行融合,并以融合的特征训练卷积神经网络模型。实验结果表明:该融合方法能使CNN模型学习到更抽象、更具代表性的高层特征,有效提高了分类精度,获得最优的分类效果。

1 卷积神经网络简介

卷积神经网络作为深度学习的一种典型模型,是一种多层神经网络结构。它主要由输入层、卷积层、下采样层(池化层)、全连接层和输出层组成。如图1所示。

图 1 卷积神经网络示意Fig. 1 Schematic diagram of CNN

输入层用于接收原始图像,卷积层用于提取图像的特征并减少噪声的影响。假设输入的原始图像为,表示第i 层的特征图,则。假设是第i层卷积层,则式中:表示第i层卷积核的权重;运算符·表示与第层的特征图进行卷积操作;表示第i层的偏置向量;为非线性激活函数,通常采用ReLU函数,ReLU表达式为

下采样层紧跟卷积层之后,基于图像的局部相关性对特征图进行降维,同时保持特征的尺度不变性。假设为下采样层特征图,则

池化方式一般有两种,最大池化(max pooling)和平均池化(mean pooling)。

经过多个卷积层和下采样层的交替连接,全连接层对提取的特征进一步降维,最后输出层依据全连接层提取的特征向量输出样本对应的标签。

卷积神经网络分类过程主要是网络的训练过程,相当于人脑的学习过程。分为两个阶段,1)前向传播,实现样本从输入层到输出层的特征学习;2)反向传播,依据损失函数计算出输出值与期望值之间的误差,又称为“残差”[14],并根据梯度下降法调整网络参数。目前CNN中使用广泛的损失函数为交叉熵(cross-entropy,CE)损失函数,其计算公式为

卷积神经网络的训练目标是通过梯度下降法最小化网络的损失函数。在整个训练过程中,经过前向传播计算损失值,然后通过梯度下降进行反向传播,逐层更新每一层的训练参数和。参数更新公式定义为

2 基于CNN的遥感图像分类方法

2.1 CNN分类模型

AlexNet网络模型是由Alex Krizhevsky于2012年设计的一种深度卷积神经网络模型[15],鉴于该模型层数不是很深,并且有很好的分类性能,因此本文以AlexNet模型为基础,构建了适用于遥感图像分类的CNN模型,其模型结构如图2所示。

图 2 本文模型示意Fig. 2 Schematic diagram of our model

与AlexNet的不同之处在于,设计的CNN模型去掉了一部分卷积层和池化层,原因在于池化层的主要作用是用来降维,而本文是对遥感图像进行像素级的分类,为了防止训练样本在高层次的尺寸过小,只保留最后一层的池化层。3个卷积层参数设置为 32@3×3、64@2×2 和 64@2×2,步长均为1。池化层采用大小为2×2,步长为2的最大池化。两个全连接层的节点个数分别设置为256和128,最后以Softmax层作为网络的输出层。整个网络的学习率初始化为0.1,采用指数衰减法,衰减因子为0.1,权重衰减因子为0.98,Dropout参数训练时设置为0.5,测试时设置为1,采用Adam优化算法。

2.2 多源多特征融合

目前大多数分类方法都是依据人工设计的单源特征来进行分类,由于单源特征往往不能很好地反映出所有地物类别之间的差异,从而导致分类算法的泛化性能较差,针对此问题,本文设计了一种多源多特征融合的方法。为了更形象地说明本文的融合方法,给出了如图3所示的流程图。对于每一个像素点,考虑了其周围大小为的 邻域像素,这有助于消除图像的斑点噪声。首先利用PCA对原始数据进行变换,然后选择几乎包含所有波段95%以上信息的前3个主成分(PCA1、PCA2、PCA3)作为变换后的原始图像。

图 3 基于CNN模型的分类方法流程Fig. 3 Flowchart of the CNN-based classification approach

接着提取训练样本对应的光谱值组成一维光谱特征向量A,同时计算NDVI,组成一维特征向量B。

其次对每幅图像计算灰度共生矩阵(gray level co-occurrence matrix,GLCM)[16],并基于 GLCM提取均值、方差、熵、角二阶距、相关性、相异性、对比度和协同性共8种二阶概率统计的纹理滤波,按照提取顺序将其组成纹理特征矩阵。

最后对图像进行K-T变换,提取亮度、绿度和湿度3个分量的数据组成特征矩阵D。

按照图3所描述的多源多特征融合方法,将A、B、C、D按照组成一个大小为9×13×3的特征融合矩阵,并将此矩阵输入CNN中进行特征学习,最后进行分类处理。

3 实验与分析

3.1 实验环境

本文采用TensorFlow1.1.0开源框架,搭建环境为个人PC,操作系统为Ubuntu16.04,处理器为Intel(R) Core(TM) i5-4440 CPU@3.10 GHz,运行内存为8 GB。

3.2 实验数据及样本选取

研究区域选择位于黑龙江省松嫩平原西部,乌裕尔河下游的扎龙湿地自然保护区(46°52′~47°32′N,123°47′~124°37′E)。根据该地区实际地物分布情况,分为耕地、草地、湿地、水域、居民区以及裸地共6类。本文使用2016年9月的Landsat-8卫星遥感图像,共选择16 160个像素级训练样本,其中每类地物中随机选择 1/4 的数据样本作为验证集,剩余数据样本作为训练集。

3.3 实验结果及分析

为了验证本文方法的有效性,实验将与其他文献中的方法进行对比,如SVM、NN、RF、DBN和CNN(Patch)。其中CNN(Patch)方法是一种基于区域块的CNN模型,该模型是以像素点周围5×5大小的邻域块作为单个样本的输入,可看作是为样本加入了邻域信息。除此之外,在本文方法的基础上,又设计了另外两种对比实验模型,一种是只将光谱特征作为CNN的输入(CNN(ST)),该模型是为了验证本文的多源多特征融合方法的有效性;另外一种是不采用PCA的多源多特征融合模型(CNN(SST)),该模型主要是为了验证PCA是否能够缩短模型的训练时间,加快收敛速度。

表1展示了本文方法分类结果的混淆矩阵,由此可知,CNN(PCA)最终取得了97.83%的总体正确率,Kappa系数达到了0.973 6。对于单类地物,PA和UA都超过了90%,某些地物的分类精度达到了最优,例如水域和裸地,两者的PA和UA都达到了99%以上。但是对于耕地类别来说,分类精度相对差一些,本文模型将其错分为湿地类别的样本数量较多,分析原因是农作物的光谱值范围和湿地的光谱值范围存在重叠,即所谓的“异物同谱”现象严重,导致模型难以有效区分耕地和湿地。

表 1 CNN(PCA)分类结果的混淆矩阵Table 1 Confusion matrix of CNN(PCA) classification results

表2展示了本文方法与其他分类方法的实验结果对比,从表中可知,本文方法取得了最优的分类效果。相比于SVM、NN和RF,CNN(PCA)总体精度分别提高了约13.61%、9.34%和7.3%,Kappa系数提高了约20.42%、13.16%和10.02%,这说明CNN的分类效果要远远优于浅层分类算法,这得益于CNN独特的结构,如局部连接、权值共享、池化等。这些特点使得CNN拥有某种尺度的位移、尺度和形变不变性,其强大的学习能力和容错能力使得CNN能够自动学习到更抽象、更具代表性的特征,从而获得更高的分类精度。而浅层分类算法却不能在信息不充分或信息量少时从原始样本中获得更多更有用的信息。

同样,相比于其他深度学习方法,CNN(PCA)的分类精度也要高于DBN和CNN(Patch)。分析原因是DBN采用的是无监督的方式逐层训练网络,最后采用有监督的方式进行微调,这种逐层训练方式使得网络参数存在更大的随机性,不利于网络的整体优化。而对于CNN(PCA),该方法虽然也是采用CNN模型,但是输入的信息只考虑了样本周围的光谱信息,而没有考虑图像的纹理特征,恰恰纹理特征最能反映不同类别之间的差异,所以导致分类效果较差。从另一个方面也能说明这一点,如本文设计的对比实验模型CNN(ST)和CNN(SST),前者只考虑了样本的光谱特征,而后者将光谱、纹理特征相融合,这使得CNN(SST)比CNN(ST)总体精度提高了约7.2%,Kappa系数提高了约5.29%。而且,CNN(SST)方法能有效改善CNN(ST)中严重的“椒盐”现象,对比效果如图4所示。

表 2 不同分类方法分类效果比较Table 2 Comparison of different classification methods

图 4 分类效果对比Fig. 4 Comparison of classification results

图5和图6分别显示了本文设计的对比模型关于训练时间和训练精度的对比结果。由图5可知,采用PCA变换后,相比不使用PCA的CNN(SST)方法训练时间减少了约80%,不仅训练时间大幅度缩短,同时总体精度也相对提高了约3.49%。这与CNN模型本身的网络结构有关,输入的样本信息维度越高,模型需要训练的参数个数就会呈几何式增长,从而导致训练速度慢,训练时间长。而由图6可知,CNN(PCA)大约在迭代300步时模型性能趋于稳定,而CNN(ST)和CNN(SST)分别在2 000步和1 100步以后才趋于稳定,这说明PCA降维以后,模型收敛的速度更快,性能更好。原因是经过PCA变换以后,使得类间差距增大,类内差距缩小,同时能够在一定程度上消除样本中的噪声信息,从而加快了模型收敛速度,提高了总体分类精度。图7为CNN(PCA)方法的最终分类效果图。

图 5 不同方法性能对比Fig. 5 Performance comparison of different methods

图 6 不同方法训练精度对比Fig. 6 Training accuracy comparison of different methods

图 7 CNN(PCA)分类效果Fig. 7 Classification results of CNN(PCA)

4 结束语

本文提出了一种基于卷积神经网络的遥感图像分类方法,并针对单源特征无法提供更多有用信息的问题,设计了一种多源多特征融合方法,该方法能够有效融合遥感图像的光谱特征、纹理特征和空间结构特征。通过与SVM、NN、RF、DBN和CNN(Patch)等分类方法进行比较,说明CNN的局部连接、权值共享和池化等独特结构使得它能够自动挖掘遥感图像的空间分布规律,学习到遥感图像更多更本质的特征,从而获得最优的分类准确率。此外,通过本文设计的对比模型CNN(ST)和CNN(SST),验证了本文设计的多源多特征融合方法能为CNN提供更多的有用信息,在加快模型收敛速度的同时进一步提高了模型的分类精度。

虽然通过本文研究可以发现CNN分类方法能够有效提高遥感图像的分类精度,但是作为一种新的机器学习方法,仍然存在很多不完善的地方,主要体现在网络模型的参数多、训练时间长;网络模型的结构设计没有完善的理论支撑,只能通过反复实验来选取最优参数。下一步,将以如何提高模型训练速度和寻找最优参数作为研究的方向。

猜你喜欢

卷积神经网络分类
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
分类讨论求坐标
基于神经网络的中小学生情感分析
数据分析中的分类讨论
基于傅里叶域卷积表示的目标跟踪算法