对于Hyperspectral unmixing (HU)的研究,归根结底是源自于Hyperspectral imagery(高光谱, HSI) 的发展。Hyperspectral image 被广泛应用于各个领域,如遥感,农业,矿业等。
图片来自
在上图中,最左侧的长方体代表着观测到的HSI。HSI 可以同时提供频谱和空间信息,从上图中可以看到HSI 分为许多层,每一个层面都代表着不同光谱下的空间信息。上图中箭头所指即为,从HSI 中选取出不同材质的的光谱特征向量(这一操作成立的前提是后文中描述的pure pixel存在)。但由于HSI 的空间解析度有限, 通常,单个像素可以达到现实中的4m × \times × 4m到20m × \times × 20m。因此每一个像素中通常包含多种材料的光谱辐射。为了更好的的实现HSI 分析, Hyperspectral unmixing必不可少。
前面提到HSI 存在于多种材料信息混合的情况, 为了解决这个问题, 需要建立一个HSI的混合模型以便于进行分解。混合模型可以分为线性混合和非线性混合两种。在实际情况中,非线性更加贴近真实情况,然而线性混合模型(linear mixture model,LMM)虽然简单,但非常具有代表性,许多情况中都可以作为可接受的模型使用。本文所提到的大多数算法都是基于LMM而提出的。 线性模型可以表示为:
y [ n ] = ∑ i = 1 N a i s i [ n ] + v [ n ] = A s [ n ] + v [ n ] {\bf{y}}[n] = \sum_{i = 1}^{N}{\bf{a}}_{i}s_{i}[n] + {\bf{v}}[n] = {\bf{A}}{\bf{s}}[n] + {\bf{v}}[n] y[n]=i=1∑Naisi[n]+v[n]=As[n]+v[n]
其中的A矩阵可以称为端元矩阵(endmember matrix), y [ n ] y[n] y[n]是位于像素n处的高光谱观测值。 a i {\bf {a}_{i}} ai被称为端元特征向量(endmember signature vector), s i [ n ] s_{i}[n] si[n] 表示材料i在像素n处的contribution(贡献值)或proportion(占比), s [ n ] s[n] s[n] 被称为丰度向量。 对于丰度向量有着一定的约束,即非负以及和为1:
s i [ n ] ≥ 0 , i = 1 , . . . , N , a n d ∑ i = 1 N s i [ n ] = 1 s_{i}[n] \geq 0, ~ i =1,...,N,~and ~ \sum_{i=1}^{N}s_{i}[n] = 1 si[n]≥0, i=1,...,N, and i=1∑Nsi[n]=1
已知观测值 y [ n ] y[n] y[n], 假设对于端元矩阵 A A A我们有充足的信息,并且假设矩阵A为列满秩, 则实现unmixing就可以通过求解LS 问题:
s ^ [ n ] = a r g min s [ n ] ∈ S ∥ y [ n ] − A s [ n ] ∥ 2 2 z \hat{s}[n] = arg~\min_{s[n]\in \mathcal{S}}\|y[n] - As[n]\|_{2}^{2}z s^[n]=arg s[n]∈Smin∥y[n]−As[n]∥22z
where n = 1,2,…,L
一种较为特殊的情况是 pure pixel模型。这种情况指某一pixel中的成分只包含一种材料。即:
s [ l i ] = e i s[\mathcal{l}_{i}] = e_{i} s[li]=ei
这里的 e i e_{i} ei是一个单位向量仅在第 i i i处的元素为非零。上式表示,材料 i i i在此处所占的比例为1,即该像素处仅包含单一的材料(endmember)。也可以写为:
y [ l i ] = a i \bf{y}[\mathcal{l}_{i}] = \bf{a}_{i} y[li]=ai
在Wing-kin Ma的文章中,只要每一个endmember都存在一个pure pixel,就认为该模型是成立的。下文中提出用一个简单的方法实现为所有endmembers寻找他们的pure pixel。
高光谱的解混算法有很多种,在本节中会分情况讨论不同的算法。
如上文中所提到,不考虑噪声项,并考虑pure pixel假设成立。由于pure pixel 对应的位置并不事先知道,因此一个经典的思路是使用successive projections algrithm(SPA)。有前面的线性混合模型可以得到:
∥ y [ n ] ∥ 2 = ∥ ∑ i = 1 N s i [ n ] a i ∥ 2 \|{\bf{y}}[n]\|_{2} = \|\sum_{i=1}^{N}s_{i}[n]{\bf{a}}_{i}\|_{2} ∥y[n]∥2=∥i=1∑Nsi[n]ai∥2
根据三角不等式定理:
∥ ∑ i = 1 N s i [ n ] a i ∥ 2 ≤ ∑ i = 1 N ∥ s i [ n ] a i ∥ 2 = ∑ i = 1 N s i [ n ] ∥ a i ∥ 2 \|\sum_{i=1}^{N}s_{i}[n]{\bf{a}}_{i}\|_{2}~\leq~ \sum_{i=1}^{N}\|s_{i}[n]{\bf{a}}_{i}\|_{2}~ = ~\sum_{i=1}^{N}s_{i}[n]\|{\bf{a}}_{i}\|_{2} ∥i=1∑Nsi[n]ai∥2 ≤ i=1∑N∥si[n]ai∥2 = i=1∑Nsi[n]∥ai∥2
由于对于s存在和为一的约束,因此:
∑ i = 1 N s i [ n ] ∥ a i ∥ 2 ≤ max i = 1 , 2 , . . . ∥ a i ∥ 2 \sum_{i=1}^{N}s_{i}[n]\|{\bf{a}}_{i}\|_{2}~\leq~\max_{i = 1,2,...}\|{\bf{a}_{i}}\|_{2} i=1∑Nsi[n]∥ai∥2 ≤ i=1,2,...max∥ai∥2
上述不等式中的等于情况在 s [ n ] = e j s[n] =e_{j} s[n]=ej时成立,其中 j = a r g max i = 1 , . . . , N ∥ a i ∥ 2 j = arg~\max_{i = 1,...,N}\|{\bf{a}}_{i}\|_{2} j=arg maxi=1,...,N∥ai∥2, n = l j n = \mathcal{l}_{j} n=lj。即 y [ n ] y[n] y[n]是端元j(the j-th endmember)的pure pixel。
因此可以获得第一个端元特征:
a ^ 1 = y [ l ^ i ] , l ^ i = a r g max n = 1 , . . . , L ∥ y [ n ] ∥ 2 2 \hat{a}_{1} = y[\hat{\mathcal{l}}_{i}],~ \hat{\mathcal{l}}_{i} = arg\max_{n = 1,...,L}\|y[n]\|_{2}^{2} a^1=y[l^i], l^i=argn=1,...,Lmax∥y[n]∥22
这里的估计值在之前的设定情形下是一个极其完美的 a 1 a_{1} a1估计值。
那么如何获得余下的端元的pure pixel?首先假设我们已经获得了 k − 1 k-1 k−1个端元的特征,分别表示为 a ^ 1 , a ^ 2 , . . . , a ^ k − 1 \hat{a}_{1},\hat{a}_{2},...,\hat{a}_{k-1} a^1,a^2,...,a^k−1。使用nulling的方法实现寻找下一个端元。
根据已获得的endmember vector可以获得一个endmember matrix A ^ 1 : k − 1 = [ a ^ 1 , a ^ 2 , . . . , a ^ k − 1 ] \hat{A}_{1:k-1} = [\hat{a}_{1},\hat{a}_{2},...,\hat{a}_{k-1}] A^1:k−1=[a^1,a^2,...,a^k−1]。构建一个其对应的orthogonal complement projector P A ^ 1 : k − 1 ⊥ P_{\hat{A}_{1:k-1}}^{\perp} PA^1:k−1⊥, 在 i < k i<k i<k时,实现 P A ^ 1 : k − 1 ⊥ a i = 0 P_{\hat{A}_{1:k-1}}^{\perp}a_{i} = 0 PA^1:k−1⊥ai=0。因此我们可以写出:
∥ P A ^ 1 : k − 1 ⊥ y [ n ] ∥ 2 = ∥ ∑ i = k N s i [ n ] P A ^ 1 : k − 1 ⊥ a i ∥ 2 \|P_{\hat{A}_{1:k-1}}^{\perp}{\bf{y}}[n]\|_{2} = \|\sum_{i=k}^{N}s_{i}[n]P_{\hat{A}_{1:k-1}}^{\perp}a_{i}\|_{2} ∥PA^1:k−1⊥y[n]∥2=∥i=k∑Nsi[n]PA^1:k−1⊥ai∥2
上述算法基于一种简单的假设,即假设pure pixel成立。实际上pure pixel的理论也是源自于对convex geometry(CG)的学习,可以说是CG 的一种特殊情况。
首先先展示一些较为基础的凸优化表述。
一组向量 { a 1 , . . . , a N } ⊂ R M \{a_1,...,a_N\}\subset \mathbb{R}^M {a1,...,aN}⊂RM的 affine hull可以定义为:
a f f { a 1 , a 2 , . . . , a N } = { y = ∑ i = 1 N θ i a i ∣ θ ∈ R … … N , ∑ i = 1 N θ i = 1 } aff\{a_{1},a_{2},...,a_{N}\} = \{y = \sum_{i=1}^{N}\theta_{i}a_{i} |~{\bf{\theta}}\in\mathbb{R}…… {N},\sum_{i=1}^{N}\theta_{i} = 1\} aff{a1,a2,...,aN}={y=i=1∑Nθiai∣ θ∈R……N,i=1∑Nθi=1}
也可以写做:
a f f { a 1 , a 2 , . . . , a N } = { y = C x + d ∣ x ∈ R P } aff\{a_{1},a_{2},...,a_{N}\} = \{y=Cx+d|x\in \mathbb{R}^{P}\} aff{a1,a2,...,aN}={y=Cx+d∣x∈RP}
一组向量 { a 1 , a 2 , . . . , a N } ⊂ R M \{a_{1},a_{2},...,a_{N}\}\subset \mathbb{R}^{M} {a1,a2,...,aN}⊂RM的convex hull可以定义为:
c o n v { a 1 , a 2 , . . . , a N } = { y = ∑ i = 1 N θ i a i ∣ θ ≥ 0 , ∑ i = 1 N θ i = 1 } conv\{a_{1},a_{2},...,a_{N}\} = \{y = \sum_{i=1}^{N}\theta_{i}a_{i} |~{\bf{\theta}}\geq0,\sum_{i=1}^{N}\theta_{i} = 1\} conv{a1,a2,...,aN}={y=i=1∑Nθiai∣ θ≥0,i=1∑Nθi=1}
其中 c o n v { a 1 , a 2 , . . . , a N } conv\{a_{1},a_{2},...,a_{N}\} conv{a1,a2,...,aN} 在 { a 1 , a 2 , . . . , a N } \{a_{1},a_{2},...,a_{N}\} {a1,a2,...,aN}映射独立时,可以被称作一个 ( N − 1 ) − s i m p l e x (N-1)-simplex (N−1)−simplex。一个simplex的顶点为 a 1 , a 2 , . . . , a N a_{1},a_{2},...,a_{N} a1,a2,...,aN。 一个满维度的simplex的体积可以描述为:
v o l ( a 1 , a 2 , . . . , a N ) = c ∣ d e t ( [ a 1 . . . a N 1 . . . 1 ] ) ∣ = c ∣ d e t ( [ a 1 − a N , . . . , a N − 1 − a N ] ) ∣ vol(a_{1},a_{2},...,a_{N}) = c \left|det\left(\left[ \begin{matrix} a_{1} & ... &a_{N} \\ 1 & ... & 1 \end{matrix}\right]\right)\right| =c|det([a_{1}-a_{N},...,a_{N-1}-a_{N}])| vol(a1,a2,...,aN)=c∣∣∣∣det([a11......aN1])∣∣∣∣=c∣det([a1−aN,...,aN−1−aN])∣
其中 c = 1 / ( N − 1 ) ! c = 1/(N-1)! c=1/(N−1)!.
根据前文提到的线性混合模型, 在不考虑噪音项时,
y [ n ] ∈ c o n v { a 1 , a 2 , . . . , a N } , n = 1 , . . . , L y[n]\in conv\{a_{1},a_{2},...,a_{N}\}, n = 1,...,L y[n]∈conv{a1,a2,...,aN},n=1,...,L
即每一个像素处的观测值 y [ n ] y[n] y[n]都可以表述为i端元特征 a 1 , a 2 , . . . , a N a_{1},a_{2},...,a_{N} a1,a2,...,aN的凸组合。当N = 3时, c o n v { a 1 , a 2 , . . . , a N } conv\{a_{1},a_{2},...,a_{N}\} conv{a1,a2,...,aN}是一个三角形,每一个 y [ n ] y[n] y[n]都被包含于三角形之中,三角形的顶点是端元特征 a 1 , a 2 , . . . , a N a_{1},a_{2},...,a_{N} a1,a2,...,aN。因此,如果我们可以找到 c o n v { a 1 , a 2 , . . . , a N } conv\{a_{1},a_{2},...,a_{N}\} conv{a1,a2,...,aN}的每一个顶点,解混就完成了。
上述情况可在下面途中表述出来:
红色三角形区域代表了 c o n v { a 1 , a 2 , . . . , a N } conv\{a_{1},a_{2},...,a_{N}\} conv{a1,a2,...,aN},三角形中的每一个点都代表着 y [ n ] y[n] y[n]。前面提到,simplex中的每一个点都可以表示为endmember的凸组合。在这种情况下,根据观测值 y [ n ] y[n] y[n]寻找到包围simplex的顶尖,即为解混。
CG based blind HU 直观的来说就是寻找一组向量 { a ^ 1 , a ^ 2 , . . . , a ^ N } \{\hat{a}_{1},\hat{a}_{2},...,\hat{a}_{N}\} {a^1,a^2,...,a^N}, 其对应的simplex c o n v { a ^ 1 , a ^ 2 , . . . , a ^ N } conv\{\hat{a}_{1},\hat{a}_{2},...,\hat{a}_{N}\} conv{a^1,a^2,...,a^N}可以最好的拟合真正的端元simplex c o n v { a 1 , a 2 , . . . , a N } conv\{a_{1},a_{2},...,a_{N}\} conv{a1,a2,...,aN}
当 y [ n ] ∈ c o n v { a ^ 1 , a ^ 2 , . . . , a ^ N } y[n]\in conv\{\hat{a}_{1},\hat{a}_{2},...,\hat{a}_{N}\} y[n]∈conv{a^1,a^2,...,a^N} 时,同样有 y [ n ] ∈ a f f { a ^ 1 , a ^ 2 , . . . , a ^ N } y[n]\in aff\{\hat{a}_{1},\hat{a}_{2},...,\hat{a}_{N}\} y[n]∈aff{a^1,a^2,...,a^N} 成立。因此, y [ n ] y[n] y[n]同样可以表示为:
y [ n ] = C x [ n ] + d y[n] = Cx[n]+d y[n]=Cx[n]+d
这里 C ∈ R M × ( N − 1 ) C\in \mathbb{R}^{M\times (N-1)} C∈RM×(N−1), r a n k ( C ) = N − 1 rank(C) = N-1 rank(C)=N−1, d ∈ R M d\in \mathbb{R}^{M} d∈RM, x [ n ] ∈ R N − 1 x[n]\in \mathbb{R}^{N-1} x[n]∈RN−1, n = 1 , . . . , L n = 1,...,L n=1,...,L。 若 ( C , d ) (C,d) (C,d)已知,上式可以变形为:
x [ n ] = C † ( y [ n ] − d ) x[n] = C^{\dagger}(y[n]-d) x[n]=C†(y[n]−d)
根据前文的线性混合模型,可以得到:
x [ n ] = ∑ i = 1 N b i s i [ n ] = B s [ n ] x[n] = \sum_{i=1}^{N}b_{i}s_{i}[n] = {\bf{B}}{\bf{s}}[n] x[n]=i=1∑Nbisi[n]=Bs[n]
这里 b i = C † ( a i − d ) ∈ R N − 1 , i = 1 , . . . , N b_i= C^{\dagger}(a_i-d)\in \mathbb{R}^{N-1},~ i =1,...,N bi=C†(ai−d)∈RN−1, i=1,...,N, B = [ b 1 , . . . , b N ] ∈ R N − 1 × N B = [b_1,...,b_{N}]\in \mathbb{R}^{N-1\times N} B=[b1,...,bN]∈RN−1×N。由维度可见,此处的维度小于原维度 M M M,换而言之上述过程实际上实现了降维的功能。
经典的CG思路中有多种方法去解决,例如VOLMAX,N-FINDER,VOLMIN。他们全部建立在对于simplex的估计,并期望达到最佳拟合。希望可以估计出一组合适的 { a ^ 1 . . . a ^ N } \{\hat{a}_1... \hat{a}_N\} {a^1...a^N} 可以最大程度的拟合endmember matrix。VOLMAX 和N-FINDER 都是希望在观测值中寻找出可以最大化体积的点,当pure pixel成立时,所得到的simplex即为真正的endmember matrix。然而,Pure pixel的假设往往难以在实际情况中成立,因此SPA、VOLMAX、NFINDR等算法在处理高光谱解混往往难以表现良好。
在诸多文章中,VOLMIN已经被证明可以更好的估算出endmember的位置。其思路是在观测值组外,寻找到可以包含观测值组并有最小体积的simplex。图中对比了在不同观测条件下,三种不同思路的准确度。可以看到当pure pixel成立时,三种算法都可以准确找到真正的endmember(前两种算法正是基于pure pixel假设成立而提出)。而当pure pixel不再成立时,VOLMIN仍能准确定位endmember。但当观测值的分布过于集中时,如图中第三种情况。VOLMIN虽然可以更为接近真正的endmember位置但却不足以准确定位他们的位置。因此上述的算法都存在有一定的局限性。
NMF是一个强有力的工具。NMF的目的是基于观测数据 S ∈ R N × L S\in \mathbb{R}^{N\times L} S∈RN×L 寻找到 A ∈ R M × N A\in \mathbb{R}^{M\times N} A∈RM×N 和 S ∈ R N × L S\in \mathbb{R}^{N\times L} S∈RN×L ,其维度满足 N < min { M , L } N<\min\{M,L\} N<min{M,L}, 估计两个矩阵的问题可以写为:
min A ≥ 0 , S ≥ 0 ∥ Y − A S ∥ F 2 \min_{A\geq0,S\geq0}\|Y-AS\|_{F}^{2} A≥0,S≥0min∥Y−AS∥F2
在无源解混的过程中, 矩阵 A A A 和 S S S 通常被分别认为是对端元和丰度的估计。然而在使用NMF去实现解混的过程中存在两个问题:
为了解决上述的问题,在使用NMF 解决HU问题时,往往需要对本小节的第一个公式进行补充调整,使其可以更好的符合问题的需求。
min A ≥ 0 , S ≥ 0 ∥ Y − A S ∥ F 2 + α ⋅ g ( A ) + β ⋅ f ( S ) \min_{A\geq0,S\geq0}\|Y-AS\|_{F}^{2} + \alpha \cdot g(A) + \beta \cdot f(S) A≥0,S≥0min∥Y−AS∥F2+α⋅g(A)+β⋅f(S)
其中 S L = { S ∣ s [ n ] ≥ 0 , 1 T s [ n ] = 1 , 1 ≤ n ≤ L S^{L} = \{S|s[n]\geq0,1^{T}s[n] = 1,1\leq n\leq L SL={S∣s[n]≥0,1Ts[n]=1,1≤n≤L, g g g 和 h h h看作 regularizers, α , β > 0 \alpha,\beta>0 α,β>0是常数。 regularizers的选择往往根据实际应用算法的不同而更改。
以MVCNMF方法为例,regularizers的选择是simplex的体积。
为了在HU问题中使用NMF并使其拥有唯一解,很多限定条件需要附加到计算中,一方面增加了问题的复杂度,另一方面也使得问题的描述不直观。而HSI往往是以一个三维度tensor提供的,因此使用tensor来描述和解决问题似乎是一种更为直观的方法。
本小节中会简单介绍四种不同的张量分解思路,此处借用了熊伏枥的博客http://www.xiongfuli.com/中的部分图片:
相对于NMF,NTF有更为优势的条件去实现 Hyperspectral Unmixing。---------------未完