高光谱成像(十)基于 LMM 的端元提取
在上一篇中,我们已经介绍了光谱解混的基本思想。光谱解混通常以 LMM 为基础模型,其一个像素的光谱被表示为多个端元光谱的线性组合:
\(\mathbf{s}_i\) 就是第 \(i\) 种材料的端元光谱。
在前面的解混方法和检测算法中,我们都默认端元光谱是已知的。它们来自光谱库、实地采样或者图像中选取的纯像素,可以让我们直接使用。
但在很多实际应用中,端元光谱往往是未知的。 这时就需要从高光谱图像本身中提取具有代表性的纯光谱,这个过程就被称为端元提取。
端元提取是光谱解混的重要前置步骤,也是高光谱分析领域中的一个重要研究方向。
本篇内容就关于基于 LMM 的端元提取。
1.端元提取的数学逻辑
如何从观测光谱的混合特征中提取各个端元的纯光谱?
实际上,基于 LMM ,我们可以推导出端元在向量空间中的数学特征。
我们用一个例子来说明:
首先,假设场景里只有三种材料及其相应纯光谱:
- 植被:\(\mathbf{s}_1\)
- 土壤:\(\mathbf{s}_2\)
- 水体:\(\mathbf{s}_3\)
我们将其代入 LMM 公式中,表示观测光谱:
并且:
到这都是我们熟悉的基本内容,即观测光谱 = 三种端元光谱的加权平均。
继续,方便画图,我们假设光谱只有两个波段,所以一个光谱就可以表示为一个二维向量:
所以,现在植被、土壤和水体的纯光谱就可以在二维空间上表示为三个点。

现在,如果某个像素的组成为:
那么其观测光谱就是:
表示在图中就是这样:

再复杂一点,如果是:
那么其在向量空间里的位置就是这样:

继续推广就会发现:在这个例子中,基于 LMM 表示的所有观测光谱都会落在这个三角形里面。
而在数学上,像这样把能包住所有数据点的最小凸集合叫做:凸包(Convex Hull)。
在这个例子里:三角形就是凸包。
基于此,再回到高光谱领域里来,我们知道端元光谱是纯材料光谱。也就是 100% 植被/土壤/水体。
这些点是所有混合光谱的极端情况。所以它们必然在凸包的最外侧,也就是凸包顶点。

在高维空间中也是同理,在高光谱图像中,把所有像素表示在向量空间中,就会形成一个点云,混合像素在内部,端元光谱作为极端情况在最外侧。
所以,像素数据会形成一个高维凸包,端元就是凸包顶点。
总结来说,基于 LMM 的端元提取算法,本质上都是在 高维空间中寻找或近似估计这些凸包顶点。
2.像素纯度指数 PPI
PPI(Pixel Purity Index)是一种经典的早期高光谱端元提取算法。
它的逻辑非常直观,可以理解为一种随机方向扫描,我们简要展开其过程如下:

步骤很简单,可以发现,PPI 其实是从几何角度上对像素特征进行统计:
- 内部点:无论怎么投影,通常都不会成为极值。
- 凸包顶点:很容易在某些方向上成为最远点。
因此:端元像素会在随机投影中反复成为极端点。 这就是 PPI 的核心思想。
PPI 实现简单且易于理解,对高维光谱数据具有较好的适应性。
不过,它也存在一些明显局限。算法依赖大量随机投影以保证统计稳定性,因此计算成本高。同时随机投影对噪声较为敏感,噪声可能导致非端元像素被错误识别为极值点。
最后,PPI 通常只能得到一组端元候选像素,在实际应用中往往还需要结合人工判断或进一步的算法步骤来确定最终端元。
这种方法即使在早期方法中也并不主流,简单了解这种思路即可。
3. N-FINDR
N-FINDR 本身是算法缩写式命名,并没有较官方的中文翻译。它出自 1999 年的论文:N-FINDR: an algorithm for fast autonomous spectral end-member determination in hyperspectral data
与 PPI 通过随机投影寻找极值点不同,N-FINDR 的核心思想更加几何化:
如果端元存在于数据中,那么它们所形成的单纯形体积应该是最大的。
要解释它,我们首先要明白单纯形的几何含义。
3.1 单纯形(simplex)
N-FINDR 认为所有数据点会落在端元构成的一个单纯形内部。
而不同维度下的单纯形其实就是各个端元在光谱空间内直线相连所形成的图形。
如 2 个端元的单纯形就是线段、3 个端元就是三角形、4 个端元就是四面体······

最终,对于 p 个端元,我们就要逐步构建出一个 p−1 维的单纯形。
所以,使用 N-FINDR 的一个前提就是:我们需要提前知道端元数量。
3.2 算法过程
N-FINDR 的算法其实也是一种搜索,核心是在过程中逐步扩展单纯形体积。

它的逻辑是这样的:
- 混合像素位于凸包内部,端元位于凸包顶点。
- 如果选择的端元不是真正的顶点,那么单纯形体积就会偏小.。
- 只有当选择到真正的端元时,形成的单纯形体积才会最大。
因此:最大体积单纯形的顶点就是端元。
与 PPI 相比,N-FINDR 在端元提取过程中具有明显优势。该方法不依赖随机投影,因此更加稳定,也不需要再进行人工筛选或二次分析。
当然,N-FINDR 仍然存在局限:算法需要事先给定端元数量,当这一参数估计不准确时可能影响结果。
此外,该方法通常依赖“纯像素假设”,如果图像中不存在接近纯端元的像素,算法得到的端元结果也可能出现偏差。
4. VCA(Vertex Component Analysis)
VCA 同样是一种算法缩写式命名,中文文献中通常直接使用 VCA,较少进行统一翻译。其全称为 Vertex Component Analysis,在 2005 年发表于论文:Vertex Component Analysis: A Fast Algorithm to Unmix Hyperspectral Data。
简单来说:VCA 通过不断寻找数据在随机方向上的极端点,逐步确定端元对应的凸包顶点。
光看这点,其实和 PPI 非常相似,但不同于 PPI 的统计方法,VCA 有明确的数学逻辑和迭代策略。
4.1 降维
VCA 的第一步是对数据进行降维,通常使用的方法就是我们前面介绍的PCA或 MNF。
但这不是为了单纯减少计算量,它是要将数据映射到 \(p-1\) 维子空间。
原因是如果存在 \(p\) 个端元,那么端元形成的单纯形维度就是 \(p-1\) ,数据实际上是位于一这个低维子空间中的。
这里很容易出现问题:数据维度不是波段数决定的吗?为什么和端元数有关?
要理解这一点,我们首先要理解一个自由度的概念:
一个系统中,有多少个变量可以“独立地随意变化”。
来举例说明一下:

这就是自由度的基本概念,而在高光谱领域中,也是一个道理:
虽然光谱存在多个波段,这决定了数据的表示维度,但是,LMM 同样也存在约束:
现在,再理解一遍这个式子:即使是再多维度的表示,每个端元光谱在向量空间里也只是一个点,只要端元数确定,那混合像素只会在各个端元光谱围成的空间内。
也就说,即使是 200 个波段形成的 200 维向量空间,而端元只有 2 个的情况下,所有像素也只会在这个端元的连线上,也就是一个 1 维空间上。
再来看约束:
显然,只要知道前 \(p-1\) 个 \(a_i\),第 \(p\) 个就确定了,这个系统中的自由度就是 \(p-1\)。
所以尽管原始向量在高维波段空间,所有像素点实际上只分布在一个 \(p-1\) 维的低维子空间。
可以理解为,数据虽然存在于高维空间中,但真正“有用”的变化只发生在一个低维子空间内,其他维度是冗余的。
因此,将数据降维到 \(p-1\) 维后,就在降低计算量的同时保留了端元的几何结构,可以进行更好的端元提取。
4.2 迭代投影
完成了降维处理后,现在所有像素就会在 \(p-1\) 维的向量空间内形成一个凸包,目标仍然不变:搜索凸包顶点。
而 VCA 的算法逻辑是这样的:



这是 VCA 的基本逻辑,但如果只是这样,很容易出现一个问题:
端元作为顶点,其投影大小和所生成的单位向量方向有关,不仅会成为最大值,也可能成为最小值,就像这样:

对此,VCA 自然有它的处理逻辑:

总结来说,VCA 的过程可以理解为:
- 在随机方向上寻找一个凸包顶点。
- 将该顶点方向“剔除”。
- 在剩余空间中继续寻找新的顶点。
最终逐步找到所有顶点。
相比于 PPI 和 N-FINDR,VCA 具有一些明显优势。由于算法基于线性投影和矩阵运算,其计算效率较高,不需要像 PPI 那样进行大量随机统计,也不需要像 N-FINDR 那样反复计算单纯形体积,因此在实际应用中更加高效。
不过,该方法和 N-FINDR 拥有相同的局限:依赖纯像素假设,仍然需要提前指定端元数量。
5. 基于 LLM 的端元提取算法
基于 LMM 的端元提取方法为高光谱图像提供了一条直接、几何意义明确的端元获取路径,这类方法适合绝大多数自然场景的快速分析。
但在纯像素缺失、高噪声或端元数未知的情况下,需要结合其他方法(如软约束解混、稀疏端元提取等)进行补充。
总体来说,这类方法是高光谱端元提取的基础和核心,理解其原理有助于进一步设计更复杂和稳健的端元提取策略,也常常在实验设计中作为基线方法进行对比。

浙公网安备 33010602011771号