【遥感专题系列】定量/高光谱遥感之——混合像元分解(2013-09-09 09:55:23)转载▼分类:遥感技术标签:混合像元分解端元波谱提取杂谈当具有不同波谱属性的物质出现在同一个像素内时,就会出现混合像元。
混合像元不完全属于某一种地物,为了能让分类更加精确,同时使遥感定量化更加深入,需要将混合像元分解成一种地物占像元的百分含量(丰度),即混合像元分解,也叫亚像元分解。
混合像元分解是遥感技术向定量化深入发展的重要技术。
本文主要介绍以下内容:∙基本概念∙端元波谱提取∙混合像元分解∙基于MNF的MTMF混合像元分解1.基本概念∙混合像元地球自然表面几乎不是由均一物质所组成的。
当具有不同波谱属性的物质出现在同一个像素内时,就会出现波谱混合现象,既混合像元(Mixed Pixel)。
Singer和McCord(1979)发现如果混合像元的尺度很大(宏观),那么混合像元将存在线性关系。
对于微观的混合,混合像元通常表现为非线性关系(Nash and Conel,1974;Singer,1981)。
∙混合像元形成原因从理论上讲,混合像元的形成主要有以下原因:1) 单一成分物质的光谱、几何结构、及在像元中的分布;2) 大气传输过程中的混合效应;3) 传感器本身的混合效应;其中:2)和3)为非线性效应,2)可以通过大气校正进行修正;3)可以通过仪器的校准、定标加以部分克服;1)部分是线性效应,也是本文讨论的内容。
∙混合像元分解混合像元分解技术假设:在一个给定的地理场景里,地表由少数的几种地物(端元)组成,并且这些地物具有相对稳定的光谱特征,因此,遥感图像的像元反射率可以表示为端元的光谱特征和这个像元面积比例(丰度)的函数。
这个函数就是混合像元分解模型。
近年来,研究人员提出了许多有效的分解模型,主要有:线性混合光谱模型、模糊监督分类模型、神经网络模型等。
其中比较常用的是线性模型,即线性混合光谱模型。
∙线性混合光谱模型线性模型假设在不同物质间不存在相互作用,位于同一像元区域的波谱是纯净物质波谱的线性组合,是根据它们的组成比例进行加权,获取线性组合的组成比例就是混合像元分解。
混合像元分解流程在影像已经完成预处理的前提下(如几何校正、大气校正、去噪等),混合像元分解的一般的过程:首先获取端元波谱(从图像上、波谱库中或者其他来源),然后选择一种分解模型在每个像素中获取每个端元波谱的相对丰度图,最后从丰度图上提取不同组成比例的像元。
2. 端元波谱提取选取合适的端元是成功的混合像元分解的关键。
端元选取包括确定端元数量以及端元的光谱。
理论上,只要端元数量m小于等于b+1(b表示波段数),线性方程组就可以求解。
然而实际上由于端元波段间的相关性,选取过多的端元会导致分解结果更大的误差。
端元光谱的确定有两种方式:(1) 使用光谱仪在地面或实验室测量到的“参考端元”;(2) 在遥感图像上得到的“图像端元”。
方法(1)一般从标准波谱库选择,方法(2)直接从图像上寻找端元可选择的方法有:从二维散点图中基于几何顶点的端元提取,借助纯净像元指数(Pixel Purity Index——PPI)和n维可视化工具用于端元波谱收集,基于连续最大角凸锥(Sequential Maximum Angle Convex Cone——简称SMACC)的端元自动提取。
下面介绍几种端元选择的方法。
2.1基于几何顶点的端元提取将相关性很小的图像波段,如PCA、IC、MNF等变换结果的前面两个波段,作为X、Y轴构成二维散点图。
在理想情况下,散点图是三角形状,根据线性混合模型数学描述,纯净端元几何位置分布在三角形的三个顶点,而三角形内部的点则是这三个顶点的线性组合,也就是混合像元,如图1所示。
根据这个原理,我们可以在二维散点图上选择端元波谱。
在实际的端元选择过程中,往往选择散点图周围凸出部分区域,后获取这个区域相应原图上的平均波谱作为端元波谱。
图1:散点图上的纯净像元与混合像元下面以MNF变换后的第一、第二波段作为X、Y轴构建二维散点图,如下图所示。
图2:Scatter Plot窗口2.2基于PPI的端元提取借助纯净像元指数(PPI)和n维可视化工具用于端元波谱收集,下面详细介绍操作步骤。
第一步、获取纯净像元这个步骤是在MNF变换的结果上计算纯净像元指数(PPI),之后选择阈值范围从PPI 图像上获得感兴趣区,感兴趣区包含的像元就是比较纯净的像元。
(1)打开高光谱数据。
(2)在ENVI主菜单中,选择Spectral ->MNF Rotation- > Forward MNF -> Estimate Noise Statistics From Data。
在标准ENVI文件选择对话框中,选择高光谱图像文件。
打开Forward MNF Transform Parameters面板,选择MNF输出路径及文件名,单击OK执行MNF变换。
(3)在ENVI主菜单中,选择 Spectral-> Pixel Purity Index->[FAST] New Output Band。
在打开的Pixel Purity Index Input File对话框中,选择MNF变换结果,单击Spectral Subset按钮,选择前面10个波段(MNF后面波段基本为噪声),单击OK。
(4)在Pixel Purity Index Parameters面板中,设置Threshold Factor:3,其他参数默认,选择输出路径及文件名,单击OK执行PPI计算。
(5)在Display窗口中显示PPI结果。
选择Overlay->Region of Interest,在ROI Tool 面板中,选择Options->Band Threshold to ROI,选择PPI图像作为输入波段,单击OK,打开Band Threshold to ROI面板(图3)。
Min Thresh Value:36,Max Thresh Value:空(PPI图像最大值),其他默认设置,单击OK计算感兴趣区,得到的感兴趣区显示在Display 窗口中。
图3: Band Threshold to ROI面板第二步、构建n维可视化窗口(1)在ENVI主菜单中,选择Spectral ->n-Dimensional Visualizer,在n-D Visualizer Input File对话框中选择MNF变换结果,单击OK。
(2)在n-D Controls面板中,选择1、2、3、4、5波段,构建5维的散点图。
第三步:选择端元波谱(1)在n-D Controls面板中,设置适当的速度(Speed),单击Start按钮,在n-D Visualizer 窗口中的点云随机旋转,当在n-D Visualizer窗口中的点云有部分聚集在一块时,单击Stop 按钮。
(2)在n-D Visualizer窗口中,用鼠标左键勾画“白点”集中区域,选择的点被标示颜色。
(3)在n-D Controls面板中,选择Class->Items 1:20->White(用于删除点),单击Start按钮,当看到有部分选择的点云分散时候,单击Stop按钮,在n-D Visualizer窗口中选择分散的点,自动会将选择的点删除。
借助<-,->,New按钮可以一帧帧从不同视角浏览以辅助删除分散点。
(4)在n-D Visualizer窗口中,单击右键选择New Class快捷菜单,重复(1)~(3)选择其他“白点”集中区域。
图4:n-D Visualizer窗口中的端元第四步、输出端元波谱(1)在n-D Controls面板中,选择Options->Mean All,在Input File Associated with n-D Scatter Plot对话框中选择原图像,单击OK。
(2)获取的平均波谱曲线绘制在n_D Mean绘图窗口中。
(3)参考“波谱分析工具”章节,识别每条波谱曲线对应的地物类型。
(4)在n_D Mean绘图窗口中,选择File->Save Plot As->Spectral Library(或者ASCII),将端元波谱保存为波谱库文件或者文本文件。
2.3基于SMACC的端元提取连续最大角凸锥(Sequential Maximum Angle Convex Cone )简称SMACC。
SMACC方法可从图像中提取端元波谱以及丰度图像(abundance Image)。
它提供了更快,更自动化的方法来获取端元波谱,但是它的结果近似程度较高,精度较低。
SMACC方法是基于凸锥模型(也称为残余最小化)借助约束条件识别图像端元波谱。
采用极点来确定凸锥,并以此定义第一个端元波谱;然后,在现有锥体中应用一个具有约束条件的斜投影生成下一个端元波谱;继续增加锥体生成新的端元波谱。
重复这个过程直至生成的凸锥中包括了已有的终端单元(满足一定的容差),或者直至满足了指定的端元波谱类别个数。
通俗的解释,SMACC方法首先找到图像中最亮的像元,然后找到和最亮的像元差别最大的像元;继续再找到与前两种像素差别最大的像素。
重复该方法直至SMACC找到一个在前面查找像素过程已经找到的像素,或者端元波谱数量已经满足。
SMACC方法找到的像素波谱转成波谱库文件格式的端元波谱。
下面以一个高光谱数据为例,详细介绍这个工具的操作过程。
(1)在ENVI主菜单中,选择 File->Open Image File,打开高光谱数据文件。
(2)在ENVI主菜单中,选择Spectral ->SMACC Endmember Extraction,在Select Input Image对话框中选择高光谱数据文件,单击OK打开SMACC Endmember Extraction Parameters 面板(图5)。
(3)在SMACC Endmember Extraction Parameters面板中,需要填写以下参数:∙端元波谱提取数量(Number of Endmembers):15∙误差容限值(RMS Error Tolerance):0默认值0表示只有达到Number of Endmembers 参数指定的终端个数,SMACC 才会结束。
如果指定一个RMS误差,那么达到这个RMS误差的话,SMACC就会结束,不管是否获取指定数量的端元波谱。
反射率数据推荐使用0.01,辐射亮度值数据推荐使用1。
但是要注意反射率数据常常扩大了倍数,比如扩大了10000倍,这个时候RMS Error Tolerance参数设置应该为10000x1%=100。
∙选择分离端元波谱的约束条件(unmixing constraint For Endmember Abundances): Positivity Only:把每个波长的正值端元波谱作为约束条件。