下图是一个稀疏表示模型
1.稀疏系数: 最右边的α, 白色小格子表示0,有色小格子表示非0数(0,1),稀疏的意思就是非零系数很少。
2.字典:相信大家在做科研的时候,应该都听说过字典Dictionary,那什么是字典呢?字典,从名称来看,可以用来查询的字典,那查询什么呢?查询(或者叫匹配)字典当中的训练样本。训练样本是一种模版,是一种已知类别的样本。
字典的构成:我现在告诉你字典的一列表示一个训练样本,它可以属于某一个类,那么图中的M列就有M个训练样本。结合前面的高光谱图像知识,高光谱图像数据的一个像素就相当于字典中的一列(或者一个训练样本)了。现在你应该大概知道怎么获取训练样本了吧。
字典的构建:没错,从高光谱图像数据中按比例为每一个类别的所有样本随机选取像素(采样)作为训练样本,其他就作为测试样本(图中的x表示一个测试样本)。样本的行的数值表示物质在不同波段光谱下的表现。
3.稀疏系数如何表示样本: 如果把非零数有色格子在系数中的行数表示测试样本x在字典D中匹配到的训练样本(模版)对应的列数 的相似性,那相似性最大的那个列数(或行数)所属的列是不是就是我们的最佳分类结果?是的,这就是稀疏表示的概念。
样本:样本一直会是以一个向量的形式表示的。对于高光谱图像,样本就可以是一个光谱维的像素。对于人脸识别,样本就可以是一张二维人脸转换成一维之后的向量。其他的就依此类推了。
前面我们已经了解了高光谱图像分类的一些基本概念,那这篇文章当中将讲解高光谱图像分类具体的流程是怎么样的。
以下是高光谱图像分类的具体步骤:
1.导入indian_pines高光谱图像三维数据(具体数据可以网上下载),将三维图像数据转换成二维图像矩阵,二维矩阵中每一列是一个样本。
2.导入indian_pines_gt高光谱图像的二维样本标定图,在图中按比例为每个类选取训练样本的位置,并到1步中选取二维矩阵中选取对应的列作为训练样本。剩下别的位置就作为测试样本了。
3.为每个测试样本求解稀疏表示系数。具体方法有OMP算法等,该方法网上可查,或者参考一些国外大牛的论文(最好不要看中国人写的文献,我现在觉得国人为了刷分类精度,论文灌水太严重,自己没搞清算法就开始瞎掰搞论文)。
4.根据稀疏表示系数,还原测试样本信号。原始样本与复原样本在每一类情况下的误差,选误差最小的类作为最佳分类结果。
5.将测试样本的结果,覆盖样本标定图中对应位置的值,显示出分类后的结果。