Superpixel-Based Unsupervised Band Selection for Classification of Hyperspectral Images 【简单来说,算法根据ERS熵率超像素分割算法对HSI数据提取主成分,方便进行超像素分割,并根据主成分的分割对应HSI数据的立方体数据形成超像素小块。文章要做的是波段选择,主要是根据AP近邻传播算法对所有的波段进行聚类,因为AP算法不同于其他聚类算法,他的聚类中心是待聚类数据中真实存在的数据,因此,文章想要根据AP算法对高光谱数据的波段进行聚类,获得所有的聚类中心,这些中心一定是最能表达高光谱数据的波段,因此选择这些波段即可。但是AP算法的输入最重要的就是待聚类数据的一个相似性矩阵,因此文章根据ERS算法获得超像素小块和RCA算法设计两种相似性矩阵的计算方法。】
A 超像素小块
传统空间信息通过固定邻域窗口提取。对于HSI,固定窗口通常不能满足分类要求因为图像中地物目标的不同大小和复杂形状。 超像素算法通过采用的分割模型能够分为基于图和基于聚类的方法。两个类别的典型算法是:ERS,熵率超像素分割;SLIC,简单线性迭代聚类。ERS,图像被映射到一个图上,其中每个像素被看作是顶点,像素对相似性定义为边权重。通过最大化图拓扑目标函数获得紧密同质且大小相似的超像素。SLIC可以看作迭代K-meansshengcheng超像素,但是,SLIC只考虑了像素的相似性,不能获得全局图像特性,导致欠分裂错误。 波段选择方法中超像素块考虑了三个特性:
每一个超像素小块应该保持同质,也就是每一个超像素块都是一个类别
超像素小块的形状应该相对固定且紧密
满足以上要求的前提下,应该使超像素数量尽可能小。
因此,本文采用ERS构造超像素小块。假设HSI数据为
X
=
{
x
1
,
x
2
,
⋯
 
,
x
L
}
⊂
R
N
×
L
X = \{x_1,x_2,\cdots ,x_L\} \subset R^{N \times L}
X = { x 1 , x 2 , ⋯ , x L } ⊂ R N × L ,
x
i
=
{
x
i
1
,
x
i
2
,
⋯
 
,
x
i
N
}
x_i = \{x_{i1},x_{i2,\cdots , x_{iN}}\}
x i = { x i 1 , x i 2 , ⋯ , x i N } ,N是样本数量,L是波段数。
x
i
x_i
x i 是每一个光谱段的相应,可以看作数据立方体的一个ground truth大小的层。另
S
C
=
{
S
C
1
,
S
C
2
,
⋯
 
,
S
C
K
}
SC=\{SC_1,SC_2,\cdots, SC_K\}
S C = { S C 1 , S C 2 , ⋯ , S C K } 为超像素块的集合,其中
S
C
k
=
{
x
1
(
k
)
,
x
2
(
k
)
,
⋯
 
,
x
n
k
(
k
)
}
(
k
=
1
,
2
,
⋯
 
,
K
)
SC_k= \{x_1^{(k)},x_2^{(k)},\cdots,x_{nk}^{(k)}\}(k=1,2,\cdots,K)
S C k = { x 1 ( k ) , x 2 ( k ) , ⋯ , x n k ( k ) } ( k = 1 , 2 , ⋯ , K ) ,K表示超像素块的数量,
x
i
(
k
)
x_{i}^{(k)}
x i ( k ) 表示第k个超像素块中第i个像素,
n
k
n_k
n k 是第k个超像素块的像素个数。超像素块构建算法为: 输入 :HSI数据集
X
=
{
x
1
,
x
2
,
⋯
 
,
x
L
}
X = \{ x_1,x_2, \cdots ,x_L \}
X = { x 1 , x 2 , ⋯ , x L } 输出 :超像素小块集合
S
C
k
=
{
x
1
(
k
)
,
x
2
(
k
)
,
⋯
 
,
x
n
k
(
k
)
}
SC_k = \{x_1^{(k)},x_2^{(k)},\cdots,x_{nk}^{(k)}\}
S C k = { x 1 ( k ) , x 2 ( k ) , ⋯ , x n k ( k ) } 算法 :
生成分割基图像 对原始HSI使用主成分分析获得前三个主成分 组合前三个主成分用于分割基图像生成
超像素map和超像素生成 超像素map生成:在分割基图像上构造一个图,目标函数由图上随机游走的熵率和获得紧凑、均匀和平衡的超像素的平衡项组成。使用迭代贪婪算法优化目标函数,最终会选择图中边的子集,从而超像素map S,其将基图像过分割为不同的均匀区域. 超像素生成:map S的划分是指将所有像素分割成SN个不相交的超像素,也就是,
S
=
{
S
1
,
S
2
,
⋯
 
,
S
S
N
}
,
S
i
∩
S
j
=
∅
,
i
≠
j
S=\{S_1,S_2,\cdots, S_{SN}\},S_i \cap S_j = \emptyset ,\quad i \ne j
S = { S 1 , S 2 , ⋯ , S S N } , S i ∩ S j = ∅ , i ̸ = j
在HSI上构建超像素小块 根据超像素map S获得每个超像素
S
i
S_i
S i 的空间位置和像素数量
n
s
n_s
n s 从HSI中获得NS个非重叠的像素向量,通过组合这些提取的SN个像素向量构建超像素小块,也就是
S
C
=
S
,
S
C
K
=
S
k
,
K
=
S
N
,
n
k
=
n
s
SC= S,SC_K = S_k,K=SN,n_k = n_s
S C = S , S C K = S k , K = S N , n k = n s
说白了,可以理解为取HSI的第一个主成分进行ERS分割,会获得这个主成分对应坐标对应的超像素分割类别,将其映射到HSI 立方体数据中,获得超像素小块。
B 基于超像素小块的波段准则
波段选择算法的性能取决于采用的波段准则的函数。在选择的波段特性中,像素在同一类中应该有较强的相关性,也就是在类内变化小,类间判别性较强,且冗余度低。在相关性成分分析(RCA)中,用于数据表示的特征空间能够被一个全局线性变换投影和改变,其中相关维度权重高,非相关维度权重低。RCA的目标是对嵌入高维空间的数据进行距离度量学习和降维。本文考虑了基于RCA解的两类波段度量。每个波段度量包含两个标准:波段优先级标准(BPC)和波段相关标准(BCC)。 这里根据下面AP算法返回来看,波段优先级标准(BPC)就是波段自相似性,相似性矩阵的对角元素,在AP算法中对角元素,也就是自相似性表示一个点作为聚类中心的参考度。波段相关标准(BCC),也就是波段之间的相似性度量。
1)基于度量学习的波段准则
相关成分分析的基本思想是识别和降低数据中的全局不需要的可变性,用于学习距离度量,可以将其视为学习白化变换矩阵来分配较低的权重指向具有较大可变性的方向。大变异的方向主要是由于类内变化,与分类任务无关。因此,第一个波段标准来自度量学习。先前工作中的相关维度是通过获得具有正约束的块内协方差来估计的,其中仅考虑了光谱接近和空间附近的像素,而没有考虑类概念。对于HSI,在每个超像素小块的像素来自一个具有同质光谱特性的局部空间区域,并且和给定的类相关。为了对同质区域的可变性建模,定义基于度量学习的波段准则(ML-BC),超像素小块内的协方差矩阵记为:
C
^
S
C
=
1
N
S
C
∑
k
=
1
K
∑
i
=
1
n
k
(
x
i
(
k
)
−
m
k
)
(
x
i
(
k
)
−
m
k
)
T
\widehat{C}_{SC} = \frac{1}{N_{SC}}\sum_{k=1}^{K}\sum_{i=1}^{n_k}(x_i^{(k)}-m_k)(x_i^{(k)}-m_k)^T
C
S C = N S C 1 k = 1 ∑ K i = 1 ∑ n k ( x i ( k ) − m k ) ( x i ( k ) − m k ) T 其中
m
k
m_k
m k 是第k个超像素小块的均值向量,
N
S
C
=
∑
k
=
1
K
∣
S
C
k
∣
N_{SC} = \sum_{k=1}^{K}|S C_k|
N S C = ∑ k = 1 K ∣ S C k ∣ ,
∣
.
∣
|.|
∣ . ∣ 表示集合的大小。 白化转换的目的是估计并最小化数据的内部协方差,以使学习的度量更有效地用于新特征空间中的分类。 因此,与超像素小块内协方差矩阵相关联的白化变换矩阵计算如下:
W
M
L
=
C
^
S
C
−
1
/
2
W^{ML} = \widehat{C}_{SC}^{-1/2}
W M L = C
S C − 1 / 2 至于波段选择,在超像素小块内选择的波段也要低变化,因此基于度量学习的波段
x
p
x_p
x p 的BPC计算为:
B
P
C
M
L
(
x
p
,
x
p
)
=
W
M
L
(
x
p
,
x
p
)
p
=
1
,
2
,
⋯
 
,
L
BPC^{ML}(x_p,x_p) = W^{ML}(x_p,x_p)\quad p=1,2,\cdots,L
B P C M L ( x p , x p ) = W M L ( x p , x p ) p = 1 , 2 , ⋯ , L 两个波段间的BCC记为:
B
C
C
M
L
(
x
i
,
x
j
)
=
W
M
L
(
x
i
,
x
j
)
p
=
1
,
2
,
⋯
 
,
L
;
i
≠
j
BCC^{ML}(x_i,x_j) = W^{ML}(x_i,x_j)\quad p=1,2,\cdots,L;i\ne j
B C C M L ( x i , x j ) = W M L ( x i , x j ) p = 1 , 2 , ⋯ , L ; i ̸ = j
2)基于表示学习的波段准则
在上述的度量学习过程中,得到的白化变换本质上是对各个方向的可变性进行重新扫描,使其均衡。这样,总变异性较小的维度可能会导致不稳定。为了考虑这个问题,需要设计另一个波段准则来同时考虑超像素小块内部的可变性和总可变性。为了达到这个目标,我们使用超像素小块来估计这些相关的维度,并强调超像素小块内部协方差很小,但是总体协方差很大。本文将全局超像素小块协方差矩阵定义为:
C
^
t
s
c
=
1
N
S
C
∑
i
=
1
N
S
C
(
x
i
−
m
)
(
x
i
−
m
)
T
\widehat{C}_{tsc} = \frac{1}{N_{SC}}\sum_{i=1}^{N_{SC}}(x_i-m)(x_i-m)^T
C
t s c = N S C 1 i = 1 ∑ N S C ( x i − m ) ( x i − m ) T m是所有超像素小块的均值向量。
C 基于超像素的波段选择
相似度传播基于相似性度量在数据上进行聚类,AP过程包括寻找最优集合的聚类中心,也就是每个点到其中心的相似性之和最大化。传统的AP利用负的欧式距离描述相似性,本文引入新的测度也就是
B
P
S
,
B
C
C
BPS,BCC
B P S , B C C ,分别包括两种计算方法,用于波段测量。
B
M
(
x
i
,
x
j
)
=
{
−
S
C
F
T
S
⋅
1
B
P
C
(
x
i
.
x
j
)
⋅
M
a
x
M
i
n
i
=
j
−
∣
1
B
C
C
(
x
i
,
x
j
)
∣
i
≠
j
BM(x_i,x_j)=\left\{ \begin{aligned} -SCFTS \cdot\frac{1}{BPC(x_i.x_j)}\cdot\frac{Max}{Min}\quad i=j \\ -|\frac{1}{BCC(x_i,x_j)}| \quad \quad \quad i\ne j\\ \end{aligned} \right.
B M ( x i , x j ) = ⎩ ⎪ ⎪ ⎨ ⎪ ⎪ ⎧ − S C F T S ⋅ B P C ( x i . x j ) 1 ⋅ M i n M a x i = j − ∣ B C C ( x i , x j ) 1 ∣ i ̸ = j
i
=
1
,
2
,
⋯
 
,
L
;
j
=
1
,
2
,
⋯
 
,
L
i=1,2,\cdots,L;\quad j=1,2,\cdots,L
i = 1 , 2 , ⋯ , L ; j = 1 , 2 , ⋯ , L 其中Max和Min是
B
P
C
(
x
i
,
x
j
)
BPC(x_i,x_j)
B P C ( x i , x j ) 的最大和最小值,也就是波段的自相似性。SCFTS,超像素小块的特征阈值标量,通过设置适当的值得到期望的光谱波段。||表示BCC绝对值。BM在负域中定义,即,小值表示大的相似性。 通过同时将BPC和BCC引入波段测量结构,可以选择和保留高判别性和低冗余波段子集。该BM测度作为输入测量作用于AP。 AP算法理解 上文中关于责任度和可信度的更新,算法的输入输出等问题说的很清楚,以下是波段测量方法与AP算法的结合,关键在于根据超像素小块的方法构建新的相似度矩阵,引入到AP算法之中。
a
(
x
i
,
x
j
)
=
{
m
i
n
{
0
,
r
(
x
j
,
x
j
)
+
∑
k
{
m
a
x
(
0
,
r
(
x
p
,
x
j
)
)
}
}
p
∈
1
,
2
,
⋯
 
,
N
,
p
∉
(
i
,
j
)
∑
p
{
m
a
x
(
0
,
r
(
x
p
,
x
i
)
)
}
p
∈
1
,
2
,
⋯
 
,
N
,
p
=
i
a(x_i,x_j)=\left\{ \begin{aligned} min\{0,r(x_j,x_j)+\sum_k\{max(0,r(x_p,x_j))\}\}\quad p\in 1,2,\cdots,N,p\notin (i,j)\\ \sum_p\{max(0,r(x_p,x_i))\}\quad \quad \quad \quad \quad p\in 1,2,\cdots,N,p=i\\ \end{aligned} \right.
a ( x i , x j ) = ⎩ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎧ m i n { 0 , r ( x j , x j ) + k ∑ { m a x ( 0 , r ( x p , x j ) ) } } p ∈ 1 , 2 , ⋯ , N , p ∈ / ( i , j ) p ∑ { m a x ( 0 , r ( x p , x i ) ) } p ∈ 1 , 2 , ⋯ , N , p = i
r
(
x
i
,
x
j
)
=
B
M
(
x
i
,
x
j
)
−
m
a
x
{
a
(
x
i
,
x
p
)
+
B
M
(
x
i
,
x
p
)
}
k
∈
1
,
2
,
⋯
 
,
N
a
n
d
p
≠
j
r(x_i,x_j) = BM(x_i,x_j) - max\{a(x_i,x_p)+BM(x_i,x_p)\}\quad k\in 1,2,\cdots,N and \quad p\ne j
r ( x i , x j ) = B M ( x i , x j ) − m a x { a ( x i , x p ) + B M ( x i , x p ) } k ∈ 1 , 2 , ⋯ , N a n d p ̸ = j
算法流程
输入 :高光谱数据集
X
=
{
x
1
,
x
2
,
⋯
 
,
x
L
}
X = \{ x_1,x_2, \cdots ,x_L \}
X = { x 1 , x 2 , ⋯ , x L } 超像素个数K 超像素小块特征阈值 SCFTS 输出 :选择波段集合
Y
=
{
x
1
,
x
2
,
⋯
 
,
x
l
}
l
<
<
L
Y= \{ x_1,x_2, \cdots ,x_l\}\quad l<<L
Y = { x 1 , x 2 , ⋯ , x l } l < < L 算法
利用ERS算法对高光谱数据进行处理,获得高光谱超像素小块
S
C
k
=
{
x
1
(
k
)
,
x
2
(
k
)
,
⋯
 
,
x
n
k
(
k
)
}
SC_k = \{x_1^{(k)},x_2^{(k)},\cdots,x_{nk}^{(k)}\}
S C k = { x 1 ( k ) , x 2 ( k ) , ⋯ , x n k ( k ) }
估计超像素小块的可变性,也就是计算超像素块内的协方差矩阵
C
^
S
C
\widehat{C}_{SC}
C
S C ,和全局超像素块协方差矩阵
C
^
t
s
c
\widehat{C}_{tsc}
C
t s c
利用超像素块计算白话转换矩阵
W
=
C
^
S
C
−
1
/
2
W = \widehat{C}_{SC}^{-1/2}
W = C
S C − 1 / 2
建立波段准则,也就是BPC,BCC
BPC: SML-AP 仅考虑超像素小块内的变化
B
P
C
(
x
p
,
x
p
)
=
W
(
x
p
,
x
p
)
BPC(x_p,x_p) = W(x_p,x_p)
B P C ( x p , x p ) = W ( x p , x p ) SRL-AP 考虑波段的全局变化性,结合特征分析计算BPC,对角化
C
^
t
s
c
⋅
C
^
S
C
−
1
\widehat{C}_{tsc}\cdot\widehat{C}_{SC}^{-1}
C
t s c ⋅ C
S C − 1 找到L个非零正的特征值及对应的L维特征向量,根据公式计算优先分数
ρ
\rho
ρ ,
B
P
C
(
x
p
,
x
p
)
=
ρ
p
BPC(x_p,x_p) = \rho_p
B P C ( x p , x p ) = ρ p
BCC:
B
C
C
(
x
i
,
x
j
)
=
W
(
x
i
,
x
j
)
BCC(x_i,x_j) = W(x_i,x_j)
B C C ( x i , x j ) = W ( x i , x j )
计算波段间的测量矩阵BM
更新责任度和信任度矩阵
根据责任度和信任度最大准则确定聚类中心C,并根据SCFTS确定聚类中心的个数
n
c
n_c
n c
重复6-7步,直到聚类中心的稳定。最终波段表示子集
Y
=
C
Y=C
Y = C ,且波段的数量
l
=
n
c
l=n_c
l = n c
流程图就如下所示: