本文主要介绍以下内容:
地球自然表面几乎不是由均一物质所组成的。当具有不同波谱属性的物质出现在同一个像素内时,就会出现波谱混合现象,既混合像元(Mixed Pixel)。Singer和McCord(1979)发现如果混合像元的尺度很大(宏观),那么混合像元将存在线性关系。对于微观的混合,混合像元通常表现为非线性关系(Nash and Conel,1974;Singer,1981)。
从理论上讲,混合像元的形成主要有以下原因:
1) 单一成分物质的光谱、几何结构、及在像元中的分布;
2) 大气传输过程中的混合效应;
3) 传感器本身的混合效应;
其中:2)和3)为非线性效应,2)可以通过大气校正进行修正;3)可以通过仪器的校准、定标加以部分克服;1)部分是线性效应,也是本文讨论的内容。
混合像元分解技术假设:在一个给定的地理场景里,地表由少数的几种地物(端元)组成,并且这些地物具有相对稳定的光谱特征,因此,遥感图像的像元反射率可以表示为端元的光谱特征和这个像元面积比例(丰度)的函数。这个函数就是混合像元分解模型。
近年来,研究人员提出了许多有效的分解模型,主要有:线性混合光谱模型、模糊监督分类模型、神经网络模型等。其中比较常用的是线性模型,即线性混合光谱模型。
线性模型假设在不同物质间不存在相互作用,位于同一像元区域的波谱是纯净物质波谱的线性组合,是根据它们的组成比例进行加权,获取线性组合的组成比例就是混合像元分解。
在影像已经完成预处理的前提下(如几何校正、大气校正、去噪等),混合像元分解的一般的过程:首先获取端元波谱(从图像上、波谱库中或者其他来源),然后选择一种分解模型在每个像素中获取每个端元波谱的相对丰度图,最后从丰度图上提取不同组成比例的像元。
选取合适的端元是成功的混合像元分解的关键。端元选取包括确定端元数量以及端元的光谱。
理论上,只要端元数量m小于等于b+1(b表示波段数),线性方程组就可以求解。然而实际上由于端元波段间的相关性,选取过多的端元会导致分解结果更大的误差。
端元光谱的确定有两种方式:(1) 使用光谱仪在地面或实验室测量到的“参考端元”;(2) 在遥感图像上得到的“图像端元”。方法(1)一般从标准波谱库选择,方法(2)直接从图像上寻找端元可选择的方法有:从二维散点图中基于几何顶点的端元提取,借助纯净像元指数(Pixel Purity Index——PPI)和n维可视化工具用于端元波谱收集,基于连续最大角凸锥(Sequential Maximum Angle Convex Cone——简称SMACC)的端元自动提取。下面介绍几种端元选择的方法。
将相关性很小的图像波段,如PCA、IC、MNF等变换结果的前面两个波段,作为X、Y轴构成二维散点图。在理想情况下,散点图是三角形状,根据线性混合模型数学描述,纯净端元几何位置分布在三角形的三个顶点,而三角形内部的点则是这三个顶点的线性组合,也就是混合像元,如图1所示。根据这个原理,我们可以在二维散点图上选择端元波谱。在实际的端元选择过程中,往往选择散点图周围凸出部分区域,后获取这个区域相应原图上的平均波谱作为端元波谱。
下面以MNF变换后的第一、第二波段作为X、Y轴构建二维散点图,如下图所示。
图2:Scatter Plot窗口
借助纯净像元指数(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窗口中。
第二步、构建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),将端元波谱保存为波谱库文件或者文本文件。
连续最大角凸锥(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面板中,需要填写以下参数:
默认值0表示只有达到Number of Endmembers 参数指定的终端个数,SMACC 才会结束。如果指定一个RMS误差,那么达到这个RMS误差的话,SMACC就会结束,不管是否获取指定数量的端元波谱。反射率数据推荐使用0.01,辐射亮度值数据推荐使用1。但是要注意反射率数据常常扩大了倍数,比如扩大了10000倍,这个时候RMS Error Tolerance参数设置应该为10000x1%=100。
Positivity Only:把每个波长的正值端元波谱作为约束条件。这个选项常用于反射率数据,因为负反射率值没有物理意义,
Sum to Unity or Less:等于或者小于每个像素计算得到每种物质的组分之和作为约束条件。当想从反射率数据中获取物质的物理意义和丰度图像的阴影图时候,可以选择这个约束条件,结果中会单独生成一个丰度阴影图像(Shadow Abundance)。
Sum to Unity:等于每个像素计算得到每种物质的组分之和作为约束条件。当零端元波谱没有物理意义或者想获得暗端元波谱可以选择这个约束条件,这个约束条件推荐用于辐射亮度数据和热辐射数据。
该选项是基于波谱角制图方法把阈值(在SAM Coalesce Value对话框中定义的值)内的所有端元波谱合并为一个端元波谱。如果想要区分波谱比较相似的地物,不要选择该选项。
Endmember Location ROIs:该输出包括从终端单元波谱结果中产生的像元感兴趣区文件,这个输出文件是可选的。
Abundance Image:输出丰度图像,该输出文件将包括阴影图像和终端单元聚集图像。该输出图像是可选的。
Select Output Spectral Library Enter Output Filename:该输出文件中包括提取出的终端单元的波谱库信息。这个是必先项目。
(4) 单击OK,执行SMACC过程。
图5: SMACC Endmember Extraction Parameters面板
获取的端元波谱以ENVI波谱库文件形式保存,设置的端元数为15,由于设置合并相似端元波谱选项,实际获得6种端元波谱,借助Spectral Analyst功能识别获得的端元波谱。同时还可以得到每种端元波谱的丰度图像。
常见的混合像元分解方法,主要包括线性波谱分离(Linear Spectral Unmixing )、匹配滤波(MF )、混合调谐匹配滤波(MTMF)、最小能量约束(CEM)、自适应一致估计(ACE)、正交子空间投影(OSP)等。
下面分别对几种分类方法原理一一说明。
(1) 线性波段预测(Linear Band Prediction)
线性波段预测法(LS-Fit)使用一个最小方框(least squares)拟合技术来进行线性波段预测,它可以用于在数据集中找出异常波谱响应区。LS-Fit先计算出输入数据的协方差,用它对所选的波段进行预测模拟,预测值作为预测波段线性组的一个增加值。还计算实际波段和模拟波段之间的残差,并输出为一幅图像,残差大的像元(无论正负)表示出现了不可预测的特征(比如一个吸收波段)。
(2) 线性波谱分离(Linear Spectral Unmixing )
Linear Spectral Unmixing可以根据物质的波谱特征,获取多光谱或高光谱图像中物质的丰度信息,即混合像元分解过程。假设图像中每个像元的反射率为像元中每种物质的反射率或者端元波谱的线性组合。例如:像元中的25%为物质A,25%为物质B,50%为物质C,则该像元的波谱就是三种物质波谱的一个加权平均值,等于0.25A+0.25B+0.5C,线性波谱分离解决了像元中每个端元波谱的权重问题。
线性波谱分离结果是一系列端元波谱的灰度图像(丰度图像),图像的像元值表示端元波谱在这个像元波谱中占的比重。比如端元波谱A的丰度图像中一个像元值为0.45,则表示这个像元中端元波谱A占了45%。丰度图像中也可能出现负值和大于1的值,这可能是选择的端元波谱没有明显的特征,或者在分析中缺少一种或者多种端元波谱。
(3) 匹配滤波(Matched Filtering )
使用匹配滤波(MF)工具使用局部分离获取端元波谱的丰度。该方法将已知端元波谱的响应最大化,并抑制了未知背景合成的响应,最后 “匹配”已知波谱。该方法无需对图像中所有端元波谱进行了解,就可以快速探测出特定要素。这项技术可以找到一些稀有物质的“假阳性(false positives)”。
匹配滤波工具的结果是端元波谱比较每个像素的MF匹配图像。浮点型结果提供了像元与端元波谱相对匹配程度,近似混合像元的丰度,1.0 表示完全匹配。
(4) 混合调谐匹配滤波(Mixture Tuned Matched Filtering)
使用Mixture Tuned Matched Filtering (MTMF )工具运行匹配滤波,同时把不可行性(Infeasiblility)图像添加到结果中。不可行性图像用于减少使用匹配滤波时会出现的“假阳性(false positives)”像元的数量。不可行性值高的像元即为“假阳性(false positives)”像元。被准确制图的像元具有一个大于背景分布值的MF值和一个较低的不可行性值。不可行性值以sigma噪声为单位,它与MF值按DN值比例变化(如下图)。
混合调谐匹配滤波法的结果每个端元波谱比较每个像元的MF匹配图像,以及相应的不可行性图像。浮点型的MF匹配值图像表示像元与端元波谱匹配程度,近似亚像元的丰度,1.0 表示完全匹配;不可行性(Infeasibility)值以sigma噪声为单位,显示了匹配滤波结果的可行性。
具有高的匹配滤波结果和高的不可行性的 “假阳性(false positives)”像元,并不与目标匹配。可以用二维散点图识别具有不可行性低、匹配滤波值高的像元,即正确匹配的像元。
(5) 最小能量约束(Constrained Energy Minimization)
最小能量约束法(CEM)使用有限脉冲响应线性滤波器(finite impulse response -FIR)和约束条件,最小化平均输出能量,以抑制图像中的噪声和非目标端元波谱信号,即抑制背景光谱,定义目标约束条件以分离目标光谱。
最小能量约束法的结果是每个端元波谱比较每个像元的灰度图像。像元值越大表示越接近目标,可以用交互式拉伸工具对直方图后半部分拉伸。
(6) 自适应一致估计(Adaptive Coherence Estimator)
自适应一致估计法(ACE)起源Generalized Likelihood Ratio (GLR)。在这个分析过程中,输入波谱的相对缩放比例作为ACE的不变量,这个不变量参与检测恒虚警率(Constant False Alarm Rate (CFAR))。
自适应一致估计法结果是每个端元波谱比较每个像元的灰度图像。像元值表示越接近目标,可以用交互式拉伸工具对直方图后半部分拉伸。
(7) 正交子空间投影(Orthogonal Subspace Projection)
正交子空间投影法(OSP)首先构建一个正交子空间投影用于估算非目标光谱响应,然后用匹配滤波从数据中匹配目标,当目标波谱很特别时,OSP效果非常好。OSP要求至少两个端元波谱。
正交子空间投影法结果是每个端元波谱匹配每个像元的灰度图像。像元值表示越接近目标,可以用交互式拉伸工具对直方图后半部分拉伸。
以经过FLAASH大气校正的高光谱图像为例,介绍基于MNF的MTMF混合像元分解详细操作过程。
第一步、获取端元波谱
(1) 打开高光谱数据cup95_ff.ing,用Band Math将高光谱数据除以10000.0(注意带.0转换为浮点型),将高光谱数据转换为0~1.0范围内的反射率数据。(这一步作用:与端元波谱在MNF变换时保持一致范围,也可以用Spectral Math对端元波谱运算)
(2) 在ENVI主菜单中,选择Spectral ->MNF Rotation- > Forward MNF -> Estimate Noise Statistics From Data。在标准ENVI文件选择对话框中,选择高光谱图像文件。打开Forward MNF Transform Parameters面板,设置以下参数:
单击OK执行MNF变换。
(3) 在ENVI主菜单中,选择Spectral ->MNF Rotation->Apply Forward MNF to Spectra,在打开的Forward MNF Statistics Filename对话框中选择MNF统计文件,单击OK打开Forward MNF Convert Spectra面板(下图)。
(4) 在Forward MNF Convert Spectra面板中,选择Import->from Spectral Library file,选择usgs_min.sli波谱库文件。从波谱库中选择以下几个矿物波谱作为端元波谱:
Alunite(明矾石)
Calcite(方解石)
Kaolinite(高岭石)
(5) 单击Apply按钮,经过MNF变换的端元波谱显示在Forward MNF Spectra窗口中。
图8: Forward MNF Convert Spectra面板
第二步、MTMF分解
(1) 在ENVI主菜单中,选择Spectral->Mapping Methods-> Mixture Tuned Matched Filtering,在Mixture Tuned Matched Filtering Input File对话框中选择MNF变换结果文件。单击OK打开Endmember Collection面板。
(2) 在Endmember Collection面板中,选择Import->from Plot Windows,在打开的Import from Plot Windows对话框中全选第一步获取的端元波谱。
(3) 回到Endmember Collection面板中,单击Apply按钮。
(4) 在Mixture Tuned Matched Filter Parameters面板(如下图),选择Use Subspace Background,选择输出结果路径及文件名。
(5) 单击OK按钮执行处理过程。
图9: Mixture Tuned Matched Filter Parameters面板
第三步、分析结果图像
(1) 在波段列表中,选择Gray Scale单选按钮,选中高光谱图像的波段193,然后点击Load Band,显示该灰阶图像。
(2) 从主图像显示窗口菜单栏中,选择Tools->2-D Scatter Plots,绘制Alunite的匹配滤波分数值(MF Score)波段与不可行性(Infeasibility)波段的散点图。
(3) 圈出MF分数值高,不可行性(infeasibilities)低的所有像素(如下图)。选择Options-> Export Class,生成Alunite的感兴趣区。
(4) 重复(1)~(3),生成Calcite和Kaolinite的感兴趣区。
自此,我们将这三种矿物从高光谱图像中分离出来了。类似的操作过程,选择最小能量约束(CEM)、正交子空间投影(OSP)等方法分离这三种矿物。
图10:Alunite分解结果的MF Score与Infeasibility的散点图,下图为提取的结果
混合像元分解非常关键的步骤是端元波谱的获取,理想的端元波谱是纯净的物质波谱。波谱分解方法目前有很多方法可用,可适用于高光谱或者多光谱数据。本文章没有涉及混合像元分解后的精度验证方法。