高光谱遥感图像简单分类实验

这是一个在高光谱遥感图像数据集”Indian Pines”上进行的分类实验。运行环境是MATLAB R2017a。具体的实验代码因为一些原因决定晚一些时候再放上来。

Indian Pines 数据集

关于这个数据集的介绍和下载可以在http://www.ehu.eus/ccwintco/index.php?title=Hyperspectral_Remote_Sensing_Scenes找到。Indian Pines数据集包含了三分之一的树林或者其他多年生的植物,三分之二的农作物。还包括两条比较大的高速公路,一条铁路,和一些低密度房屋以及其它建筑物。数据集原本有220个通道的强度信息,其中的20个通道因为大气问题被剔除。

不同于普通的数字彩色影像,高光谱影像拥有更加宽广和细分的频谱信息(通常的彩色影像通过三种滤光片获得三个波段的灰度图),利用这些频谱信息,能够更容易地对地面的材质情况进行分析,因为不同的物质有不同的电磁波反射和吸收特性。

实验步骤

数据集的大小为$145\times 145\times 200$,被标记为16类,未被标记的区域包含多种不同的物体,可以看做是噪声,不参加测试。实验简单将200维的高光谱数据作为该像素的特征,直接对像素进行分类。

对每一类别的样本随机选取10%作为训练样本,使用1-vs-1的策略训练一共120个SVM线性分类器。10%样本不足5个的则至少选择5个样本(像素)。

实验结果

在选取5%的样本作为训练样本的实验中,很多类别的准确率都不足80%,提升到10%之后分类器获得了显著提升。

实验中发现使用1-vs-n策略训练的分类器分类性能不如1-vs-1。考虑到训练的都是线性分类器,数据当中不同的类别实际上是线性不可分的,1-vs-n的情况下由于分类器比较少而且是所有数据参加训练,会遇到很严重的误分类的现象。而1-vn-1的分类器中,只有在在特征空间中相互重叠的两类会有比较大的几率误分类,更多的分类器“投票决定”类别的过程,减少了误分类情况的发生。

分类结果
混淆矩阵

然而这个分类器在某些类别上表现的仍然不是很理想。可以考虑使用boosting训练分类器?