Hyperspectral image classification via a random patches network
作者: Yonghao Xu, Bo Du, Fan Zhang, Liangpei Zhang
摘要与贡献
普通深度学习用于高光谱图像分类,因为要进行预训练和微调导致耗时太多,这篇论文提出一种基于Random Patches Network (RPNet) 的高光谱图像分类方法,不同于普通深度框架, 它直接从图像中随机选择若干个块儿(Random Patches)视为卷积核而且无需任何训练。 通过结合浅层和深层卷积特征,RPNet具有多尺度的优点,分类效果好。
作者给出了一个常规深度学习方法的框架,分为两部分:
- 深度特征提取,包括空间和光谱信息的提取(值得注意的是 fine-tune 并不是所有深度学习方法的必要步骤所以是虚线);
- 通过硬分类器SVM或者软分类器log回归进行分类
同时,作者指出,当前方法存在三个问题:
- 在训练阶段耗时多;
- 需确定大量参数,同时,需要大量训练样本;
- 只利用最深层的特征来对图像进行分类,因此感受野有限
为了有效解决上述三个问题,作者做出如下贡献:
- 提出了一个简单,计算高效的框架(RPNet),作者说 It is the first time that prefixed convolution kernels are utilized in the deep framework for HSI classification.
- The RPNet reveals the potential value of random patches,这个往往是在传统方法中忽视的
- RPNet combines both shallow and deep convolutional layers in the
classification and has the advantage of multi-scale. 作者指出,这将有效缓解层次化特征提取取的信息丢失问题。
RPNet 结构
RPNet采用了一个级联结构,仅包括了PCA、白化、随机块、卷积和ReLu几部分,一个两层的RPNet如图所示。主要包括五个要点:
1. PCA和白化。 原始高光谱数据为 ,首先对原始数据运用PCA进行降维,得到前 个主要波段,得到数据 ,然后进行白化操作,使得不同波段之间的方差相似,降低了不同波段之间的相似性,有利于分类任务。
2. 随机patch提取并卷积。 从白化数据中随机选择 个像素。在每个像素周围,取 大小的patch,得到 个随机patch,对于分布在图像边缘的像素,通过镜像图像来填充邻居的空白像素。最后,将 个随机patch作为卷积核与白化后的数据做卷积操作,得到 个feature map。
3. 非线性激活函数: 第一层的卷积得到的 feature map 为
。为了保持特征的稀疏结构,利用线性单元为激活函数:
其中,
表示
中第二维数据的平均向量,
是重复
次
组成的平均矩阵。最后,第一层特征表示为:
4. 深层特征提取: 为了提取第
层的特征,我们将第
层得到的结果视为新的输入数据,并采用第一层的特征提取过程,最终得到第一层到第
层的特征为:
5. 特征融合与的分类: 作者在创新点处也提到了,把shallow features 和 deep features 融合,可以得到更好的效果。最终用于分类的特征为:
在分类以前,每个feature map 还做了归一化,特征归一化以后,使用SVM进行分类。
除了RPNet,作者还提出了两个变体:
- RPNet-single,与RPNet过程相同,只是RPNet-single在分类阶段只使用与原始光谱特征叠加的最深层特征,与传统的深度学习方法类似。
- RandomNet,它与RPNet具有相同的体系结构,但使用标准高斯分布的随机滤波器替换随机patch。
作者在三个数据集上分析了RPNet和两个变体的分类准确率,得到结论:
- RPNet的表现性能最好,并且随着网络层数的增加准确率呈上升的趋势,直到网络第七层之后,准确率不会再上升。
- 对于RandomNet,在只有一层的网络中表现很差,不过,随着网络层数的增加,其表现性能逐渐接近于RPNet
- 对于RPNet-single,在前两个数据集上准确率只有开始轻微的提升然后下滑,在最后的数据集中持续下滑,原因有两个,一个是没有将深层于浅层信息结合,二是随着层数的深入,虽然提取了更重要的特征,但也带来了信息丢失的问题。
同时,在时间效率上,RPNet 在各数据集上时间代价最多为1分钟左右,具有明显的计算效率优势 。
作者还对15个层的特征进行了可视化,指出,第一层中的特征 tend to be object pats containing edges, and corners。同时,深层的特征更加抽象,有些像RandomNet中的随机噪声。最后作者指出,随机的patch是从 feature map 中随机选取的,这也许是 RPNet 比 RandomNet 性能更好的一个原因。
小结
这个方法思路非常新颖,但是随机从feature map中选取patch做为卷积核的方法目前确实没有见过。而且,随着网络层数的增加,用随机高斯噪声为卷积核的 RandomNet 和 RPNet 性能在不断接近。这个方法的原理,也有待讨论。本文等思路更清晰以后再继续更新。