文章目录[隐藏]
前言
这篇论文是一篇稍微老一点的论文,发表于TGRS2016,主要讲了一种对CEM的改进方法,也是一篇基本思路比较简单的顶会论文。主要想通过这篇论文体会一下如何对现有经典方法进行改进。
思路
我们首先来回忆一下之前学过的一些高光谱目标检测方法。我们在这个系列中的前几篇文章中已经了解了很多可以用于高光谱目标检测的方法了,比如MF、ACE、AMF、ASD、OSP、CEM等等,这些方法如果给他们分个类的话,大概可以分成三类。
第一类是把目标检测问题转化为假设检验问题,然后使用一些现有的检测准则进行检测(如似然比等),这种思想的方法主要有MF、ACE、AMF等。
第二类是把目标检测问题放到子空间上来处理,最经典的就是我们在(2)中重点讲的OSP。除了OSP外,ASD也是基于这种思路。
第三类则是通过对目标或者背景施加约束,建立FIR,然后使滤波器输出最小,CEM就是这样一种典型的方法。
我们通过看上面的那几类方法不难发现一个问题,那就是这些方法基本都学要一些先验知识和特征,因此这就需要我们去估计出来纯像素的目标检测。但是实际情况下纯像素的信息几乎不存在,因为一个像素常常由不同材料的几种光谱组成,称为混合像素,因此此时常常需要一些解混算法去解除混合。
我们之前提到过,OSP就可以通过投影来抑制不需要类型的光谱信息,但是OSP也存在问题,那就是那个投影算子中用来抑制背景的U矩阵难以进行表示,也就是说在实际进行检测时如果我们选择OSP就需要预先知道完整的背景信息,所以OSP方法的选用实际上是有一定局限性的。那么别的算法,比如只需要直到目标信息而无需获取背景信息的CEM,能不能也带上一个效果不错的解混方法来抑制背景光谱信息呢?答案显然是可以的。
那么可以怎么做呢?前人给出的方法主要有两种,一种是进行迭代重加权,即经过迭代不断调整目标光谱直到找到一个最佳的光谱被提出,另一种则是进行光谱特征的组合,以此来增加对混合光谱的容忍度。
但是本文以上两种方法都没用,而是提出了一种不属于前两种思路的新方法,从检测器的结构这一层面下文章,构建了一个分层的结构,一层一层的不断过滤,以达到抑制背景光谱,保留目标光谱的作用。
具体来说,本文发现CEM方法进行一次滤波之后不能很好的达到抑制背景和推断出目标的效果,因此就想到能不能将多个CEM检测器串联起来——用一个非线性的函数去抑制背景光谱,然后再将每一个CEM处理完的光谱作为新的输入输入大下一层的CEM中,这样就能让检测器的效果逐层增强。最后,这个方法也被证明是可以收敛的,最终可以收敛到一个常数。
CEM简介
CEM这个方法我们在(1)中有一个很简略的了解,这里稍微展开讲讲。
这个方法的基本思路就是找一个FIR滤波器,让原始信号经过该滤波器后,在目标信号能量恒定的情况下使总的输出能量最小,这样也就是让背景得到了充分的抑制。
原始信号经过滤波器后总的输出能量可以表示为:
要使得上面这个总输出能量最小的同时保证滤波器对目标d的响应为一个常数1,因此可得优化问题:
这个优化问题可以用拉格朗日乘子法进行求解,具体推导过程如下:
得到的最优滤波器可以表示为:
于是滤波器的输出为:
这个输出的值越大,就越可以证明正在进行检测的这个像素为目标像素,相反,这个值越小,则越说明这个像素中不包含目标。一般通过设置阈值来判断该像素到底是不是目标像素。
hCEM(分层CEM)
传统的CEM仅仅只有一层,但是一层的检测效果可能没有那么好,于是本文使用了多层CEM串联的方式,这就是hCEM的基本思路。
因此,第k层的CEM可以表示为:
其中
X
k
X^k
Xk和
R
k
−
1
R_k^{-1}
Rk−1分别是针对第k层的输入重新计算出来的值。
先来看
X
k
X^k
Xk的计算。
下一层的每个分量
x
i
k
+
1
x_{i}^{k+1}
xik+1是由本层输入
x
i
k
x_i^k
xik和一个与本层输入有关的权重q相乘得来,具体表示为:
这个函数q被定义为:
通过观察这个q我们可以得到以下信息:
(1)q函数的取值是在0到1之间,且为增函数,也就是说当本层的输出
y
i
k
y_i^k
yik越大,下一层的这个权重就会越大;当本层的输出
y
i
k
y_i^k
yik越小,下一层的这个权重就会越小。这就好像是一个正反馈,越像目标的就越被加强,越像背景的就越被抑制。
(2)这个
λ
\lambda
λ可以调节函数的具体形状,具体来说如下所示:
得到了
X
k
X^k
Xk后来看
R
k
R_k
Rk。
R
k
R_k
Rk定义为:
这样每一层的
y
k
y^k
yk就计算完成了。
那么还有一个问题,我们总共需要设计几层CEM,或者说在什么情况下这个迭代就可以终止了呢?
文中给出的答案是,当
y
k
y^k
yk最终收敛到一个常数时,停止逐层计算。
具体实现上来说,定义了一个本层与前一层的平均能量之差
δ
\delta
δ:
收敛为一个常数,就可以表示为
δ
k
=
0
\delta_k=0
δk=0,而在算法的具体实现上,我们一般设置一个较小的阈值
ϵ
\epsilon
ϵ,当满足
δ
k
<
ϵ
\delta_k<\epsilon
δk<ϵ时,迭代终止。
总结一下这个hCEM:
对hCEM的理论分析
这一部分我们对hCEM这个算法做一些更严谨的分析,即一些数学上的证明,主要包括收敛性的分析、为什么逐层抑制背景的方法有效,以及q函数中的
λ
\lambda
λ参数如何设置等等。
收敛性分析
这里的收敛性是指我们之前定义的那个本层与前一层的平均能量之差
δ
\delta
δ是否收敛,如果
δ
\delta
δ收敛,应该满足:
罗列我们之前已经推出的一些表达式:
可以看出,要满足收敛的那个小于条件,就需要满足:
对于上面这个表达式,我们首先给出一个引理,称为引理1:
其中,
u
i
u_i
ui为:
这个证明过程如下所示:
首先先设一个矩阵U,满足
之后,根据Sherman–Morrison–Woodbury formula (SMW formula)(有关这个恒等式可以看:https://blog.csdn.net/zhangping1987/article/details/24365455),有:
因此,两层R的差就可以表示为:
(这里个人感觉按照
R
k
−
R
k
−
1
=
U
U
T
R_k-R_{k-1}=UU^T
Rk−Rk−1=UUT推导应该为
(
R
k
−
U
U
T
)
−
1
(R_k-UU^T)^{-1}
(Rk−UUT)−1,不知道是我理解错误还是作者笔误,暂且搁置)
结束证明之后,我们就可以使用引理1去做推导:
易得分子是大于等于0的,分母是大于等于1的,因此有:
因此,
成立。所以可以证明hCEM是收敛的。
表现分析
这一部分我们主要解决一个问题,为什么逐层处理的方法是有效的,也就是说为什么逐层处理之后滤波器越能完全滤出目标?
这里我们也进行了严格的数学证明。首先定义残差R(k)表示第k层滤波器输出与输入像素之差的平均平方和,即:
这里z是输入像素的标签,当输入像素
x
i
x_i
xi为目标时,
z
i
z_i
zi为1,否则
z
i
z_i
zi为0。
容易推出,这个残差越小,我们的检测效果越好,也就是能完全输出目标信号,即如果证明逐层串联检测的方法有效,则需要证明对每一层,残差是逐渐减小的,即有:
为了证明这个不等式,我们需要对残差R(k)的定义式做一下变形,将其展开:
对式子第一项,在前面部分我们已经给出过表达式:
对于第二项,作者先给出如下等式:
这个式子是什么意思呢,
N
t
N_t
Nt代表目标光谱的个数,d代表目标光谱的平均向量,因此等式右边代表全部目标光谱的和向量。而由于z是一个标签向量,因此左边代表用z把
X
k
X_k
Xk中属于目标的光谱选择出来输出和向量。因此两边表示的意义相同。
因此,第二项可以表示为:
前面知道,
w
k
T
d
=
1
w_k^Td=1
wkTd=1,所以等式成立。也就是说第二项就可以表示为一个只与原始输入有关的常数。
对于第三项,可以表示为:
这个等式成立的原因是
∣
∣
z
∣
∣
2
2
=
N
t
||z||_2^2=N_t
∣∣z∣∣22=Nt成立,这个等式的意思是N×1的标签向量z中刚好有
N
t
N_t
Nt个1,因为
N
t
N_t
Nt刚好代表目标光谱的个数,因为
∣
∣
z
∣
∣
2
2
||z||_2^2
∣∣z∣∣22仅由0和1构成,因此二者数值相等。这样,第三项也被表示为常数。
因此R(k)就可以表示为:
在上一部分我们推出:
因此,
R
(
k
)
≤
R
(
k
−
1
)
R(k)\leq R(k-1)
R(k)≤R(k−1)成立,也就是说残差是不增的,也就是说逐层串联之后滤波器的效果会越来越好。
参数分析
在hCEM中,进行背景抑制的q函数很重要,设计合适的q函数可以将不需要的背景信息进行有效抑制从而更加关注难进行检测的部分,同时q函数也需要注意保持目标光谱被有效保持以此使得检测更有效。而q函数的设置主要取决于参数
λ
\lambda
λ,因此这部分来看看
λ
\lambda
λ的值如何选择。
这里我们主要根据尽可能减少对目标光谱的错误抑制这个原则来来进行
λ
\lambda
λ参数的设置。
我们首先将背景光谱和目标光谱建模为如下分布:
因此经滤波器检测后的输出分布就变为:
这里首先定义一个
0
<
ξ
<
1
0<\xi<1
0<ξ<1表示一个很小的容错概率,当我们用q函数对目标的输出
y
T
y_T
yT进行变换时,当其输出值大于
1
−
ξ
1-\xi
1−ξ时,我们就认为保持住了目标信息,没有进行错误抑制,如果经q函数变换后的输出值小于等于
1
−
ξ
1-\xi
1−ξ就认为对目标进行了错误的抑制。
因此定义错误抑制概率为:
上面这个概率进一步可以表示为如下分布:
这里的F是一个累积分布函数,也就是
y
T
≤
1
λ
l
o
g
(
1
ξ
)
y_T\leq \frac{1}{\lambda}log(\frac{1}{\xi})
yT≤λ1log(ξ1)的概率,F定义式为:
其图像为:
因此这实际上是一个关于x的增函数,也就是说
1
λ
l
o
g
(
1
ξ
)
\frac{1}{\lambda}log(\frac{1}{\xi})
λ1log(ξ1)越小,这个错误抑制概率P越小。因此
λ
\lambda
λ越大,目标光谱被错误抑制的概率越小。
也就是说我们可以在一定条件下尽可能大的取值
λ
\lambda
λ,文章给了一个参数
η
\eta
η用来表示一个允许错误的空间,也就是:
总结
这篇文章的思路很简单,就是一个效果不好,我们就把多个串联起来逐层检测已提高性能,这种改进思路在目标检测领域还是很常见的。本文还对于方法为什么收敛、为什么有效都做了非常严谨的证明,这样论文读起来更加成体系,读者也能更加清楚全面的了解这种方法。
版权声明:本文为CSDN博主「MrBamboo2000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44226427/article/details/121749131
暂无评论