zoukankan      html  css  js  c++  java
  • 稀疏表示的高光谱分类

    下图是一个稀疏表示模型

     
    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.将测试样本的结果,覆盖样本标定图中对应位置的值,显示出分类后的结果。

     

  • 相关阅读:
    计算机图形方面职业计划体会
    Shader Wave
    Cook-Torrance光照模型
    Unity3D 固定功能函数
    Hermite (埃尔米特)曲线
    技能CD 效果 shader
    圆角计算 Shader
    抽象工厂模式
    单例模式
    unity 菜单栏添加新菜单
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/7859485.html
Copyright © 2011-2022 走看看