肖 菊,谢晓春
(赣南师范大学 物理与电子信息学院,江西 赣州 341000)
高光谱图像(Hyper Spectral Image,HSI)是包含光谱和空间信息的三维图像,具有光谱分辨率高、信息丰富的优点[1].HSI图像分类因其在土地利用和土地覆盖应用中的重要作用而备受关注.HIS图像分类方法大都起源于计算机视觉和模式识别领域的算法和技术,可以分为监督分类和非监督分类2类.以卷积神经网络为代表的监督分类方法使用一组称为训练样本的代表性样本对每个类别的输入数据进行分类.通常需要通过手动标记图像中的少量像素或基于某些野外测量来收集训练样本.相反,以支持向量机为代表的无监督分类方法则不考虑训练样本,仅根据用户指定或随意选择的任意数量的初始聚类中心对数据进行分类.由于监督分类方法通过训练样本获取有关类的特定信息,因此比无监督方法更容易实现精确的分类映射[2].
由于高光谱图像的具有光谱通道数目多、标记的样本数量有限、光谱特征的空间变异性等特点,使得高光谱图像分类工作存在着一些困难[2].高光谱图像光谱通道数多,可以提供丰富的细节信息,但是模型提取出的特征维数增加了,而可用来训练的样本量又少,会导致分类精度无法提高.而光谱特征的空间变异性会出现同物异谱,同谱异物的现象,这也会降低分类的精度.近年来兴起的深度学习方法被越来越多的运用到了高光谱图像的分类当中,深度学习能够提取高光谱图像深层次的特征,并且减少了人工选取的工作量,高效完成分类任务,也很好的改善了高光谱图像分类的性能.
卷积神经网络(convolutional neural network,CNN)是一种完全监督的深度学习方法,由于它将特征提取和分类器自然地集成到一个框架中,因此具有更强大的分类能力.胡伟等人[3]首次提出将CNN运用到高光谱分类中.早期的一维CNN(1D-CNN)方法不考虑像元的空间关系,只根据光谱信息结合基于正则的多元化的深度置信网络进行无监督特征提取后进行有监督的端到端的微调,但这种方法仍使用了较多的训练样本.因为卷积神经网络能够处理二维输入而不破环数据原始结构,所以Chen[4]等人提出了使用二维CNN(2D-CNN)来改善上述问题,它允许数据以二维或者三维的形式作为输入,实验也证明2D-CNN对高光谱图像的分类准确率明显高于1D-CNN的方法.大部分使用深度学习的方法中空间特征和光谱特征与传统方法一样还是分开提取的,它们不能充分利用空间和光谱的相关信息,于是Li等人[5]提出将三维卷积神经网络(3D-CNN)引入到高光谱图像分类中,三维卷积神经网络可以了解空间和光谱中的局部信号变化,利用重要的判别信息进行分类,而且没有任何的预处理和后处理操作,直接将图像块输入网络得到分类结果.
本文设计了一种三维全卷积网络模型(3D-Fully Convolutional Neural Networks,3D-FCNN),通过使用卷积层替代池化层和全连接层减少模型的参数,能够在较少的训练样本量下再提高分类精度.在Indian Pines高光谱数据集上的实验结果表明,在10%、15%、20%、30%、50%的训练样本量下,3D-FCNN的总体分类精度等参数均优于其他方法.
本文提出的3D-FCNN框架如图1所示,主要由输入层、3D卷积层、步长为S的3D卷积层和输出层构成,除去一层输入层和一层输出层,网络其余部分就是由多个3D卷积层和步长为S的3D卷积层组合而成.其与传统CNN主要有以下几点不同:将传统CNN结构中的池化层用步长为S的卷积层替代,能够避免特征提取过程中信息的丢失;将全连接层也用卷积层替代,有效避免信息冗余,减少训练参数;使用3D卷积,更符合HSI三维数据的特点,能有效同步提取光谱-空间信息.
图1 用于HSI分类的3D-FCNN框架
3D-FCNN通过堆叠的三维卷积层来提取在HSI中空间谱和光谱维度上的特征.每层3D卷积层通过三维卷积核对上一层输出的三维特征数据(或原始数据)做如图2所示的卷积操作来获得三维特征数据作为的下一层输入.
图2 三维卷积操作
假定l表示第l层卷积层,νlj表示第l层卷积层输出的第j个三维特征数据,HI、WI、RI分别表示三维特征数据的长、宽和光谱维度,Ml是第l层卷积核的个数.那么,νlj在(x,y,z)位置上的特征值为:
(1)
在每一层卷积操作完后都需要通过一个激活函数来输出下一层卷积的输入数据,激活函数的作用是能够给神经网络加入一些非线性因素,使得网络可以更好的解决较为复杂的问题.本文中采用的激活函数是是由Krizhevsky等人[6]提出ReLU(Rectified Linear Units).ReLU是最近几年非常受欢迎的激活函数,它相比sigmoid、tanH等其他激活函数,能够在梯度下降过程中快速收敛,并且能够有效缓解梯度消失的问题.所以采样ReLU可以改善模型拟合,而无需额外的计算成本和过拟合风险,ReLU激活函数可以表示为:
f(ν)=max(0,ν)
(2)
3D-FCNN网络中除了三维卷积层外,还有用于取代池化层的步长为S的三维卷积层,其输出为:
(3)
式(3)中采用的激活函数也是ReLU.
由于3D-FCNN是前馈网络,即第(n-1)层的输出用作第n层的输入,对于整个网络其映射函数f为f=φ(L)(φ(L-1)(…φ(1))),其中φ(l)表示来自第l个卷积层的映射函数.来自不同层的参数卷积核权重k和偏置b决定了映射函数f,所以首先要解决这些参数的有效设置.本文使用交叉熵损失函数来训练这些参数,其表达式为:
(4)
网络训练时,随机初始化各层的卷积核权重k和偏置b之后,迭代地通过前向传播和反向传播策略以更新那些参数直到收敛.对于前向传播,首先计算每个输入数据的类标签y′,然后计算y′与真实类标签y之间的交叉熵.最后,累积了训练集中所有数据的交叉熵.对于反向传播,将所有卷积核权重k和偏置b的交叉熵损失(即累积交叉熵)最小化,采用具有最小损失值的那些作为更新的核权重和偏差.网络测试时确定了核权重k和偏置b,将测试数据送入网络并获得输出.
实验是基于Tensorflow和Keras的开源框架下进行进行的,计算机配置为E5-2690十核CPU、Ubuntu16.04操作系统、128 G内存以及3个NVIDIA Tesla K40 GPU计算节点.实验是在高光谱遥感领域内经典的数据集Indian Pines数据集上进行的.Indian Pines是包含16类地物目标的高光谱图像,由145×145个像素组成,每个像素包含200个光谱带.实验中所有网络采用Adam[7]算法进行网络参数的更新,初始化学习率为0.000 1,每当25次迭代内的损失函数不再下降,学习率降低10%,直到损失函数完全收敛.训练共迭代100次,每次批量处理32个样本.每次实验重复10,最后结果取10次的平均,避免一次实验带来的偶然性.
实验将用3D-FCNN模型与目前高光谱图像分类领域常用的传统方法和已有的深度学习模型对比.对比所采用的传统方法将使用SVM分类器,通过学习最佳决策超平面来分离高维特征空间中的训练样本.使用神经网络的方法,构造一个含有4个全连接层的神经网络,相当于一个多层感知器.最后还有卷积神经网络的方法,主要包括1D-CNN[3],2D-CNN[4]和3D-CNN[5].实验还将采用不同的训练样本数训练观察3D-FCNN在不同训练样本数量下的分类效果.对于IndianPines数据集,由于某些类别的样本数量不足,我们采用从每一类中随机抽取10%、15%、20%、30%、50%的训练样本进行训练.
在不同模型对比实验这组实验中,3D-FCNN与传统高光谱分类方法和其他深度模型方法进行了比较,对于IndianPines数据集,实验结果如表1和图3所示,表1给出了IndianPines数据集中16个类别中每一个类别的分类精度,还给出了OA、AA、K这3个指标的数值,图3则是将分类结果直观的显示了出来.结合表1和图3可以明显看出本章提出的分类模型的得到的分类总体精度是最高的,达到了99.25%的分类精度.比另外一种使用三维卷积的方法(3D-CNN-98.66%)提升0.59%的分类精度,比2D-CNN、1D-CNN、NN、SVM分别高出3.98%、13.05%、14.48%、17.98%的分类精度.表1中分别列出了Indian Pines场景数据集中16个类别的单个分类精度、总体分类精度(OA)、平均准确度(AA)和Kappa统计量(K),从单个类别的分类精度来看,大多数类别的分类精度在使用本章分类方法时效果达到最佳,并且有7个类别的分类精度达到100%,总体分类精度(OA)、平均准确度(AA)和Kappa统计量(K)同样高于其他几种分类方法.从图3也可以直观的看出使用本文的方法获得的分类错误的样本数也是最少的.
图3 50%训练样本量下分类效果对比
表1 不同方法对Indian Pines场景数据集的分类效果
在不同训练样本下各模型分类精度对比实验中,采用不同的训练样本量对模型进行训练然后测试,对比多种方法在相同训练样本下的分类效果.IndianPines数据集在不同训练样本下各个模型的分类结果如图4所示.
图4 不同训练样本量下分类总体精度对比
从图4可以看出,基于深度学习与非深度学习的方法随着训练样本量的增加,分类结果都不断提高,这是很自然的事情,因为分类器可以训练更多的训练样本,从而可以从数据中寻找更多的样本之间的信息,信息的增多无疑是对提高精度非常有帮助的.然而,本文提出的模型在给定任何数量的训练样本的情况下都能稳定的优于所有对比方法.从上述结果可以得出结论,所提出的方法具有优于其方法的性能.
本文设计了一种3D-FCNN 的网络框架,该框架包含卷积层和步长为S的卷积层,并将该框架用于高光谱图像识别中,提出了一种基于3D-FCNN的高光谱目标识别方法.框架中使用的三维卷积相比二维卷积在提取光谱空间特征方面表现的效果更好,其次,用步长为S的卷积层替代池化层能有效减少信息丢失,用卷积层替代全连接层能减少训练的参数,且易于模型收敛.为了进一步验证模型的有效性,还针对Indian Pines高光谱数据进行了训练以及测试,实验结果表明3D-FCNN模型能够表现出比其他深度模型更好的识别性能.