Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network

Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network

Ying Li,, Haokui Zhang,and Qiang Shen
点击下载论文

最近的研究表明,用空谱信息可以显著提升高光谱图像分类的性能。高光谱图像数据是典型的3D立方体格式。因此三维空间滤波器提供了一种简单有效的方法来同时提取这些图像内的空间-光谱特征。文中,提出了一种三维CNN结构来精确分类高光谱图像。该方法将高光谱图像立方体数据看做一个整体,不依赖任何预处理或后处理,有效提取深度空谱结合的特征。并且,模型很简便,不易出现过拟合,训练更简单。为了对比和验证,我们用三种其他深度学习的方法,在三个真实HSI数据集上进行测试:SAE,DBN,2DCNN。实验证明我们提出的3DCNN方法优于其他现有的算法。
文中 ,我们提出一个新的方法来分类高光谱图像:3DCNN。通过应用三维核函数到3DHSI。3DCNN可以学习光谱和空间维的局部信号变化,利用重要的判别信息来分类。由于同时提取了空间和光谱特征,该工作充分利用了3D HSI数据的结构特征。
文章提出的方法将所有的光谱作为输入。不需要任何预处理和后处理。最终的分类器模型用端到端的方式训练。在同尺度下,我们的3DCNN比其他深度学习方法包含更少的参数,更适用于训练样本比较少的HSI分类问题。
二维卷积最显著的优点是,提供了一种直接从原始输入影像中直接提取特征的有效方法,然而,直接将二维卷积应用到HSI中要求对网络的每一个2维输入做卷积,每个卷积都有一系列可学习的核函数。高光谱图像的光谱维通常有几百个通道,要求大量额核函数(参数),随着计算成本的增加,这可能会导致过拟合。
在2维卷积提出前,为了解决这一问题,通常使用降维的方法来减少光谱维数以进行特征提取和分类。
为了利用深度学习自动学习特征的能力,我们在此将3维卷积应用到高光谱图像处理中。3维卷积用三维核函数来做3维卷积操作,可以同时提取空间特征和光谱特征。图1阐述了2维卷积操作和3维卷积操作最大的不同。
Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network
在2维卷积操作中,输入数据用2维的核函数做卷积,在通过**函数前形成输出数据(特征图)。在传统的二维卷积神经网络中,卷积操作被应用在只通过光谱维来提取的2维特征图中。当应用到3维数据(视频分析),不能很好的从时间和空间两个维度上抓取特征。为此,3维卷积神经网络应运而生。3维卷积操作应用到3维特征cubes上,用来计算3维输入数据的时空特征。
在我们提出的基于3维卷积神经网络的高光谱图像分类模型中,每个特征立方体独立对待。。。

不饱和**函数ReLUs成为一种最受欢迎的**函数。在梯度下降的训练时间上,ReLUs比其他饱和**函数更快。

总之,对高光谱遥感图像分类来说,2维卷积操作在输入数据的空间维度上做卷积。3维卷积操作同时在输入数据的空间维和光谱维上做卷积。多2维卷积操作来说,无论它用在2维还是3维数据上,它的输出是2维的。如果将2维卷积操作运用到高光谱图像上,重要的光谱信息会丢失,而3维卷积可以保留光谱信息。这对包含丰富的光谱信息的高光谱图像来说很重要。

基于3DCNN的高光谱图像分类

传统的2维卷积神经网络由卷积层,池化层,全连接层组成,与2维CNN不同的是,应用在HSI分类中的3DCNN只包括卷积层和全连接层。我们不采用池化层,因为它会减少高光谱图像的空间分辨率。与图像级分类模型相比,我们的3DCNN模型用作像素级的高光谱图像分类。它提取一个小空间邻域(包含全部光谱带)内的像素块,将该像素块作为位于像素块中心位置像元的输入,用3维核函数做卷积来学习它的光谱-空间特征。因此,通过池化操作的特征图分辨率被进一步降低了。采用相邻像素的原因是基于:在一个小的空间邻域内的像素通常反映的是同一材质的物体。
提出的3DCNN模型有两个3D卷积层C1,和C2.和一个全连接层F1。根据2DCNN中的发现,具有深层结构的卷积核函数,3*3的小接受域通常能获得更好的结果。Tran等人证明,小的3*3*3的核函数是3DCNN在时空特征学习中最优的选择。由此,我们将3D卷积核的空间大小设置成3*3,而只是稍微改变核函数的光谱深度。卷积的层数由输入样本的空间大小决定。在本工作中,窗口大小经验性地设置为5*5.用空间大小为3*3的卷积执行两次操作将样本大小降为1*1,。因此,对提出的3DCNN来说包含两层卷积足够了。并且,在第二个卷积层的核函数数目被设置成第一个卷积层核函数数目的两倍。这个比率被许多CNN模型所采用。输入数据在没一个3D卷积层上用学习到的3D核做卷积。卷积的结果送到选择的**函数去执行。F1的输出送到一个简单地额线性分类器中去(softmax),以生成所需的分类结构。注意,网络用标准反向传播训练。文中将softmax损失作为损失函数来训练分类器。
为了分类一个像素,该像素的相关信息通过3DCNN模型进行提取。图2 概括了计算过程,将3DCNN分解成以下3个步骤:
1:训练样本提取。立方体连同中心像素的类别标签的S*S*L的图像块提取出来作为训练样本,S*S是空间大小(窗口大小),L是光谱带的数目.
2:基于3DCNN的深度空谱特征提取。S*S*L大小的样本用作输入,第一个三维卷积层C1包含两个3D核函数,每个K1*K2*K3大小的核处理两个(S-K11+1)(S-K12+1)(L-K13+1)大小的3D数据立方体。每个3D核函数生成一个3D数据块。将两个(S-K11+1)(S-K12+1)(L-K13+1)3D数据块作为第一个卷积层C1的输入,第二个3D卷积层C2包含4个3D核函数(大小为K21*K22*K23),处理8个(S-K11-K21+2)(S-K12-K22+2)(L-K13-K23+1)大小的3D数据块。这8个3D数据块被扁平化成一个特征向量供给全连接层F1。此处的输出特征亮亮(在图2 中称为特征3)半酣最终学习到的深度空-谱特征。
3:空谱特征分类。用softmax loss来训练深度分类器。像在2DCNN中一样,用带反向传播的随机梯度下降来最小化网络的loss。核函数用下式更新
Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network

特征分析

特征分析是理解深度学习机制的重点,本节分析提出的3DCNN 提取出了什么特征,以Pavia University 遥感图作为例子,可视化了学习到的特征。
该数据集包含103个波段,一个数据立方体用50*50*103大小的窗口从原始高光谱图像上提取。然后这个数据立方体随机选取4个波段来显示为图3a.在第一个卷积层的3D卷积操作过后,数据块转换成两个数据块,每个的空间大小是48*48.选择了8个波段显示为图3b.将第一个卷积层的输出作为第二个卷积层的输入,我们提取了第二个卷积层输出中的8个波段显示为图3 c。
Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network
通常,生成的特征图像的数量可能非常大,并且一个特征图像可以看做是输入图像的高级表示。一个特定的表达很难胜任捕捉图像潜在(低层)信息的工作,通常需要大量特征图来良好的表达这幅图像。
数据集基本信息:不多介绍
Pavia
610*340pixel,103个波段,9类地物,训练:测试=1:1

Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network
Indian Pines
145*145pixels,200个波段,16类地物,训练:测试=1:1。

实验设置

与3个方法对比:SAE-LR,DBN-LR,2D-CN.用OA,AA,Kappa评估每个模型的分类性能。
对每个测试数据进行10次实验,每次实验,数据集进行随机采样来分成均等的两部分

实验结果和分析

paviaU

PaviaU,我们提取的5*5*103的数据立方体来计算原始空-谱信息,将他们作为3D-CNN的输入。对SAR-LR和DBN-LR,原始的高光谱图像用PCA将光谱维降到4个波段和5个波段。然后,一个5*5*4 和一个5*5*5的立方体被用来构建空间特征,最后,结果空间特征包括103个光谱特征。对2D-CNN来说,由PCA从103个通道中生成3个主成分,提取一个42*42*3的立方块来生成原始特征。网络包含3个卷积层和两个池化层。这三个卷积层分别包含36个5*5的核,72个6*6的核,和72个4*4的核。在这个数据集上,提出的3D-CNN模型包括2个3D卷积层C1,C2,一个全连接层F1,一个分类层。C1包含两个3*3*7的核,C2 包含4个3*3*3的核。3D-CNN训练100000次以上,每次迭代随机取20个样本。结果如表5,平均运行10次以上,标准差也有列出。
Spectral–Spatial Classification of Hyperspectral Imagery with 3D Convolutional Neural Network

(待续。。。maybe 弃坑)