高光谱成像(十二)光谱重建(Spectral Reconstruction)

在前面的内容里,我们已经围绕高光谱数据的降维、检测与解混 展开了很多方法。

这些方法其实都有一个共同点:

它们都假设光谱数据是"已知且完整"的。

但在实际应用中,这个假设往往并不成立。

例如传感器只能采集少量波段、成像设备成本或带宽受限、数据存在缺失或严重噪声或者仅有 RGB 图像,却希望获得高光谱信息等等。

这就引出了一个新的研究方向:

在数据缺失/不完整的能否从"部分信息"恢复出完整光谱?

这就是光谱重建问题。

1.什么是光谱重建?

首先,从数学角度来看,光谱重建的本质是一个从低维到高维的映射问题 :观测数据 \(\mathbf{y}\) 是 RGB 或少量波段,而目标光谱 \(\mathbf{x}\) 是完整高光谱。

因此,光谱重建的目标其实是学习一个映射函数:

\[\mathbf{x} = f(\mathbf{y}) \]

从语义上来说,就是用少量观测信息,恢复完整的光谱曲线。

于是新的问题紧接而至:

怎么得到更好的重建结果?又怎么知道重建结果是否正确?

2. 解不唯一问题与先验信息

2.1 光谱重建的解不唯一问题

先再看一遍公式:

\[\mathbf{x} = f(\mathbf{y}) \]

显然,光谱重建的关键就在映射函数 \(f\) 上,但问题在于,这种映射并不唯一

举个例子,假如我们想把一个 RGB 值重建为光谱 \(\mathbf{x}\):

\[\mathbf{y} = (255, 0, 0) \]

我们现在有的是一个观测结果,但是在光学中,不止一种情况会造成这种结果

可能是因为原光谱在 600nm 有尖峰,又或者是在 580--700nm 平滑分布,还可能多个波段组合,这些都可以造成 \((255, 0, 0)\) 这一观测结果。

也就是说,完全不同的光谱,可能对应相同的 RGB 值。

在专用名词里,这叫同色异谱(Metamerism)

显然,在这一步,就会让我们定义的 \(f\) 出现分歧:

  1. \(f_1\):偏好"尖峰光谱"。
  2. \(f_2\):偏好"平滑光谱"。
  3. \(f_3\):基于训练数据学出来的分布。

那么:

\[\mathbf{x}_1 = f_1(\mathbf{y}),\quad \mathbf{x}_2 = f_2(\mathbf{y}),\quad \mathbf{x}_3 = f_3(\mathbf{y}) \]

对于不同的映射,结果自然不同,而对映射的选择,其根本是基于我们对数据的经验认识。

展开一下,如果我认为 \(f_1\) 更合理,那是因为我对数据的认识中,原光谱更多是"尖峰光谱",所以我假设这份不完整的数据重建后也是这样,所以我以此进行还原。

就像对于一个身高 180cm 的男人,我们不知道他的体重,一个人会根据普遍经验推测 他的体重大概在 65-80kg 左右,另一个人则因为所在国家普遍超重,他推测的体重就是 100kg 以上。

对这种基于经验的假设,我们在之前的内容里已经提到过它的专有名词:先验信息

先验信息,就是在没有观测数据之前,我们对"合理解应该长什么样"的已有认知。

2.2 光谱重建中的先验信息

既然先验信息决定了我们如何选择映射函数 \(f\),那么现在的问题就是:

我们应该对"光谱"做什么样的先验假设?什么样的光谱,才被认为是"合理的"?

在实际研究中,这些假设并不是随意提出的,而是来源于对自然光谱数据的长期观察与总结。常见的先验大致可以归纳为以下几类:

(1)低维子空间先验

一个经验事实是:

自然界中的光谱虽然是高维的,但其变化模式往往集中在一个低维子空间中。

也就是说,虽然光谱可能有上百个波段,但真正"自由变化"的维度其实很少。

因此我们可以假设:

\[\mathbf{x} \approx \mathbf{D}\mathbf{a} \]

这里的 \(\mathbf{D}\) 是一组固定的基 ,可以来自光谱库或统计方法。而 \(\mathbf{a}\) 是低维系数。

这种先验的核心思想是:光谱不是"随便长"的,而是由少数几种"基础形状"组合而成。

实际上,我们前面介绍的 LMM 就是基于这种先验。

(2)稀疏性先验

在低维子空间的基础上,还可以进一步加强假设:

一个像素的光谱,通常只由少数几种材料决定。

这意味着在表示 \(\mathbf{x} = \mathbf{D}\mathbf{a}\) 时:\(\mathbf{a}\) 是稀疏的,只有少数几个分量非零。

总结就是:一个地物像素,不可能同时由几十种材料"均匀混合",而往往是少数几种成分主导。

(3)光谱平滑性先验

这种先验的是观点是:

真实光谱在波长维度上是连续且平滑变化的。

也就是说,光谱是一条平滑曲线,相邻波段之间变化通常较小,不会出现剧烈的"锯齿状跳变",以此来引入相关约束。

(4)非负性与物理约束

从物理角度来看,还有一些非常基础但必须满足的约束:

光谱反射率通常是非负的,并且具有一定范围。

这些约束虽然简单,但非常重要,因为它们直接排除了大量"物理上不可能"的解。

这些先验本质上都在做同一件事:限制解空间的形状。 我们就是在这个解空间里,寻找最优解。

3. 子空间方法(Subspace Methods)

不同的光谱重建方法,本质上可以看作是在不同先验假设下,对映射函数 \(f(\mathbf{y})\) 的不同构造方式。

从"低维子空间先验"出发,就会引出一类经典方法:基于子空间的重建方法

已知我们将光谱建模为:

\[\mathbf{x} \approx \mathbf{D}\mathbf{a} \]

但我们真正能观测到的是 \(\mathbf{y}\),而不是 \(\mathbf{x}\) ,不能直接解。

所以,我们假设观测过程是一个已知的成像模型,例如:

\[\mathbf{y} = \mathbf{H}\mathbf{x} \]

假如我们使用的是 RGB 相机,那 \(\mathbf{H}\) 就是相机的三个光谱响应函数,把多维光谱压缩到了三维。

这里可能会有这样一个问题:既然 \(\mathbf{y}\) 和 \(\mathbf{H}\) 都已知了,那岂不是就可以像解方程一样把原光谱 \(\mathbf{x}\) 给解出来了?

答案当然是不行的,首先降维必定会带来信息损失,其次非方阵的矩阵根本不可逆,还有就是我们上面提到过的同色异谱情况。

所以,仅凭 \(\mathbf{y} = \mathbf{H}\mathbf{x}\) 是无法唯一确定 \(\mathbf{x}\) 的,必须引入先验信息来约束解空间。

继续,将 \(\mathbf{x} = \mathbf{D}\mathbf{a}\) 代入,可以得到:

\[\mathbf{y} = \mathbf{H}\mathbf{D}\mathbf{a} \]

于是,原本的重建问题就从 \(\mathbf{x}\) 转化为了求 \(\mathbf{a}\) ,更新后,我们的目标就变成了:

找一个 \(\mathbf{a}\),使得重建出来的观测 \(\mathbf{H}\mathbf{D}\mathbf{a}\) 尽量接近真实观测 \(\mathbf{y}\)

所以这又是一个优化问题,应用最小二乘法,最终目标如下:

\[\min_{\mathbf{a}} |\mathbf{y} - \mathbf{H}\mathbf{D}\mathbf{a}|^2 \]

到这里,先验信息就会变成优化项或约束条件,来帮助我们排除同色异谱,找到最符合先验假设的解:

  1. 稀疏先验:作为优化项加入目标函数如下:

\[\min_{\mathbf{a}} |\mathbf{y} - \mathbf{H}\mathbf{D}\mathbf{a}|^2 + \lambda |\mathbf{a}|_1 \]

  1. 非负先验: 作为约束加入,代表光谱是"加出来的",不能出现负贡献。

\[\mathbf{a} \ge 0 \]

  1. 光滑先验:作为优化项加入目标函数如下:

\[ \min_{\mathbf{a}} |\mathbf{y} - \mathbf{H}\mathbf{D}\mathbf{a}|^2 + \lambda |\nabla \mathbf{a}|^2 \]

  1. 和为1先验:作为约束加入,表示各成分的比例之和为1。

\[\sum_i a_i = 1 \]

最终,我们求解得到 \(\mathbf{a}\),从而重建光谱:

\[\mathbf{x} \approx \mathbf{D}\mathbf{a} \]

总结来说,光谱重建的关键并不在于"如何直接求解 \(\mathbf{x}\)",而在于如何设计合理的先验,并将其融入优化过程,从而在问题中获得稳定且具有物理意义的解,这种基于子空间的重建方法,是一种结合物理建模和稀疏表示的经典方法。

4. 光谱重建的现代方法

光谱重建从最基础的线性模型与插值方法发展到现在,也出现了多种技术路线,可按以下维度划分:

思路方向 主要特点 代表技术
基于物理建模的方法 利用成像机理或光谱响应函数进行建模 相机响应模型反演、色彩校正模型(Color Correction Matrix, CCM)
基于插值 / 回归的方法 将重建问题视为函数拟合 多项式回归、样条插值、RBF(径向基函数)回归
基于稀疏表示 / 字典学习的方法 利用低维稀疏表示恢复高维光谱 K-SVD、OMP、稀疏编码重建(Sparse Coding Reconstruction)
基于降维与重构的方法 先压缩再恢复 PCA 重建、MNF 重建、Autoencoder 重建
基于深度学习的方法 端到端学习高光谱映射关系 CNN 重建、UNet、ResNet、Transformer 重建
基于生成模型的方法 学习数据分布以生成光谱 GAN、VAE、Diffusion Model(扩散模型)
基于多模态融合的方法 利用其他模态辅助重建 RGB → Hyperspectral、MSI → HSI、RGB-D 融合
基于物理 + 数据驱动融合的方法 结合物理模型与深度学习 物理引导网络(Physics-informed Network)、模型展开(Model Unrolling)

总结来说,高光谱重建方法本质上是在已知或可学习的约束下恢复高维光谱信息,核心目标是在有限观测下重建出尽可能接近真实的高光谱数据,广泛应用于遥感成像、医学影像、材料分析以及计算摄影等领域。

相关推荐
此方ls5 小时前
机器学习聚类算法二——DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
算法·机器学习·聚类
bryant_meng5 小时前
【AI】《Explainable Machine Learning》
人工智能·深度学习·机器学习·计算机视觉·可解释性
就叫你天选之人啦5 小时前
GBDT系列八股(XGBoost、LightGBM)
人工智能·深度学习·学习·机器学习
CoderIsArt5 小时前
StarCoder-3B微调和RAG的技术原理
人工智能·深度学习·机器学习
冷小鱼5 小时前
机器学习极简入门:从外卖预测到AI核心算法
人工智能·算法·机器学习
油泼辣子多加5 小时前
【ML】SVM算法原理
人工智能·算法·机器学习·支持向量机·数据挖掘
郝学胜-神的一滴6 小时前
深度学习入门基石:PyTorch张量核心技术全解析
人工智能·pytorch·python·深度学习·算法·机器学习
放下华子我只抽RuiKe56 小时前
机器学习终章:集成学习的巅峰与全流程实战复盘
开发语言·人工智能·python·机器学习·数据挖掘·机器人·集成学习
junior_Xin7 小时前
机器学习深度学习beginning1
机器学习