高光谱目标检测论文学习(5)—— Ensemble-Based Cascaded CEM for HTD

前言

上一篇我们学习的对CEM进行改进的方法是多层串联(HCEM),这种方法的本质是进行多次迭代来增加精度并使用了非线性处理来贴合真实世界情况。CEM作为一种检测器,其与分类器在很大程度上是极其相似的,而随着机器学习的兴起,集成学习成为提升分类器性能的一大重要方法。本文便是利用了集成学习的思想去对CEM进行改进,并借鉴了hCEM加入非线性处理的思想进一步贴合真实世界情况。

思路

CEM是一种当目标先验知识部分已知时进行目标检测的方法,本质上是一个使输出能量最小的线性滤波器。这里需要注意的是,CEM仍然是线性的。
但是,在真实世界中所获取的高光谱遥感图像往往是非线性、非高斯的,因此经典的CEM在处理真实图像时效果并不好。于是我们就需要找到一种方法来提高CEM的非线性检测能力和泛化能力。

之前的HCEM是采用分层迭代检测的思想来增强泛化能力,利用一个非线性函数更改各层输入来增强非线性检测能力,取得了不错的效果。但是在一些研究中HCEM被证实并不稳定,易出现过拟合的问题。为了解决这个过拟合的问题,这篇文章想到了将集成学习的思想引入检测器中。
集成学习的思想概括起来就一句话,“三个臭皮匠,顶个诸葛亮”。如果一个检测器不能达到很好的效果,那么就多设几个检测器,几个检测器根据一定规则和联通条件分别给出结果,最后将结果按一定方式汇总做出最终的判决。

也就是说,一个CEM检测器效果不好,我们就多设计几个参数不同的CEM检测器来进行检测,然后让这些检测器的判决结果按一定的规则投票,通过群策群力的方式得到一个较为优质的结果。这个投票规则就是文中提到的“random averaging(随机平均)”。

前面提到过,HCEM取得了不错的效果,因此这个分层的思想和结构在本文中被保留下来并做了改进,这在本文中被称作“cascaded detection(级联检测)”,在这一部分,作者采用了一个sigmoid函数来增强非线性性能。

除了前面提到的这两个关键点以外,本文还提出了一个"multi-scale scanning(多尺度扫描)"的方法。这一部分放在检测之前,主要用于构建待检测的特征向量,通过拼合不同尺度的光谱特征,来让检测器更加的鲁棒。

这一系列操作就构成了本文所提出的新方法ECEM。本方法的流程结构图如下图所示:
在这里插入图片描述

multi-scale scanning(多尺度扫描)

如上图所示,多尺度扫描是在检测器之前进行的,用于构造新的、适合检测的光谱特征。和一般的目标检测中的多尺度概念不同,这里的多尺度并非是指的在空间上的多尺度,而是对于光谱来说的多尺度,即对原来的光谱特征按照一定规则分波段进行重新选取、预处理并最终拼接。
多尺度扫描的过程可以由下图很好的表示:
在这里插入图片描述
参考上图,整个多尺度扫描的过程可以描述为:
首先我们定义不同长度的滑动窗口,在原始光谱特征上按照一定的步长滑动选段,然后将每种长度的滑窗选出的各段都输入CEM检测器进行检测,将每种长度滑窗的CEM结果拼合成代表这种尺度的一段特征,再将不同尺度的特征和原始特征拼接在一起——这就成功构造了一组包含多尺度信息的光谱特征。

更具体点来说,定义窗宽为l,步长为s,原始输入光谱向量为一个D×1的向量

r

=

[

r

1

,

r

2

,

.

.

.

,

r

D

]

r=[r_1,r_2,...,r_D]

r=[r1,r2,...,rD]。那么在此尺度下窗口选取生成的K个片段分别为:
在这里插入图片描述
对这个l尺度的K个片段分别使用同一个CEM检测器进行操作,其输出向量就可表示为

v

l

=

[

v

1

,

v

2

,

.

.

.

,

v

K

]

T

v_l=[v_{1},v_{2},...,v_{K}]^T

vl=[v1,v2,...,vK]T,将这些不同尺度的输出与原向量拼合,得到:
在这里插入图片描述

v

l

1

v_{l_1}

vl1表示窗口长度为

l

1

l_1

l1时的最终输出。

cascaded detection(级联检测)

在多尺度扫描之后,就到了ECEM这个方法的核心——级联检测部分。通过借鉴HCEM的分层思想,ECEM也采用了逐级递进的检测模式来提高精度。下面我们对每一级的构成单元重点做介绍。

标准化CEM

我们对原始的CEM做一些改进,将原来的相关矩阵

R

R

R替换为了

R

+

λ

I

R+\lambda I

R+λI,如下所示:
在这里插入图片描述
那么这个新加入的

λ

I

\lambda I

λI项的作用是什么呢,文中主要给出了两个原因:
(1)在真实情况下,R可能为奇异矩阵,即不一定可逆,因此我们可以通过调整

λ

I

\lambda I

λI项来让R的部分可逆。
(2)

λ

I

\lambda I

λI项的加入实际上是一个正则化的过程,具体来说是Tikhonov正则化。如下图所示:(摘自张贤达《矩阵分析与应用》)
在这里插入图片描述
在上图的叙述中我们也可以看出实际上两个原因是统一的,即参数

λ

\lambda

λ的引入是为了让原本可能奇异的矩阵非奇异,以更好的求逆。

集成CEM

我们在前面反复提到,这篇文章的核心思想就是借鉴了集成学习的思想,于是我们需要知道这篇文章是怎么设置多个检测器的呢?
我们在上一部分提到了标准化形式的CEM,但是并未说这个

λ

\lambda

λ应该如何设置,这是因为没有一个确定的规则来说明

λ

\lambda

λ应当设置为什么值,所以,在这里我们就可以通过设置不同的

λ

\lambda

λ值来作为不同的CEM检测器,将他们集成起来,以获得更好的效果。
这里我们来看两种极限情况,即

λ

\lambda

λ趋近于0和

λ

\lambda

λ趋近于+∞时:
在这里插入图片描述
在这里插入图片描述
这里个人认为应该是作者笔误,第二个等式分子上的

ω

\omega

ω应为

d

d

d。通过上面两个式子我们可以发现,如果

λ

\lambda

λ趋近于0则标准化CEM就变成了常规的CEM,如果

λ

\lambda

λ趋近于+∞则检测器就变成了在

d

d

d方向的投影。因此我们也可以从一个新的角度去理解

λ

\lambda

λ

λ

\lambda

λ是常规CEM和在

d

d

d方向的投影的一个tradeoff

平均处理

这里的平均处理就是一个简单的取平均的过程,用公式表示如下:
在这里插入图片描述

r

t

r_t

rt即为第t层的输入,u为其对应的输出。

非线性变换

ECEM的结构是一个级联的结构,因此我们需要把本级的输入与上一级的输出串接起来。由于我们需要增强这个检测系统的非线性性能,因此这个串接并不是简单的本级输入等于上一级输出这么简单,而是使用了一个非线性的变换函数,记作h:
在这里插入图片描述
h函数选择的是sigmoid函数:
在这里插入图片描述
那么这个非线性的函数究竟做了什么能让检测性能变好呢?
观察sigmoid函数的形式,我们可以发现如果输入的x值越大,那么其变换系数就越大,也就是说大输入被抑制的程度低而小输入被抑制的程度高,这样一来我们在对原输出乘上这个变换系数,就可以让目标像素尽可能保留而背景像素被大幅抑制

另外,检测的最后一级就无需乘上这个非线性变换了。

总结

如果说上一篇HCEM是串联的形式,那么这一篇ECEM就是一个先并联后串联的结构,这也就是为什么标题起的是 Ensemble-Based Cascaded CEM,而非简单的Ensemble-Based CEM。个人认为,这篇文章的核心有如下几点:
(1)Ensemble-Based Cascaded结构(也就是先并后串);
(2)标准化(正则化)CEM的意义;
(3)多尺度扫描的过程;
(4)非线性变换系数引入的意义;

版权声明:本文为CSDN博主「MrBamboo2000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44226427/article/details/122436429

MrBamboo2000

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

TensorRTX 推演

前言 在github上下载到yolov5的第5版及其对应的tensorRTX版本,在目标硬件平台进行部署推演。 GitHub上tensorRTX步骤 (1)下载好tensorrtx中yolov5文

【原理篇】一文读懂Mask RCNN

Mask RCNN 何凯明大神的经典论文之一,是一个实例分割算法,正如文中所说,Mask RCNN是一个简单、灵活、通用的框架,该框架主要作用是实例分割,目标检测&#xff0