失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 基于典型相关分析(CCA)的多元变化检测算法(MAD)

基于典型相关分析(CCA)的多元变化检测算法(MAD)

时间:2024-02-16 22:28:22

相关推荐

基于典型相关分析(CCA)的多元变化检测算法(MAD)

基于典型相关分析的多元变化检测算法

1 典型相关分析(CCA)2 多元变化检测(MAD)3 实验链接

多元变化检测算法(Multivariate Alteration Detection,MAD)由A. A. Nielsen等人在论文Multivariate Alteration Detection (MAD) and MAF Postprocessing in Multispectral, Bitemporal Image Data: New Approaches to Change Detection Studies中首次提出,而后在论文The Regularized Iteratively Reweighted MAD Method for Change Detection in Multi- and Hyperspectral Data中,A. A. Nielsen提出了MAD的迭代版本IRMAD。

MAD基于典型相关分析CCA,是以投影特征差值方差最大化为准则提出的变化检测算法。

1 典型相关分析(CCA)

MAD算法的基础是典型相关分析(Canonical Correlation Analysis, CCA),因此下面先介绍CCA。CCA是简单相关、多重相关的推广,是研究两组变量之间相关性的一种统计分析方法,CCA也是一种降维技术。CCA是将高维的两组数据分别降维到1维,然后用相关系数分析相关性。降维的原则是降到1维后,两组数据的相关系数最大。

给定两组多元变量X和Y,默认X和Y维数相同,则形式化表示为

{C=[X,Y]TE(C)=[μX,μY]TΣ=Var(C)=[ΣXX,ΣXYΣYX,ΣYY]\left\{\begin{matrix}C=\left[X, Y\right]^T \\ E(C) =\left[\mu_X, \mu_Y\right]^T \\ \Sigma= Var(C)=\left[\begin{matrix}\Sigma_{XX},\Sigma_{XY}\\\Sigma_{YX},\Sigma_{YY}\end{matrix}\right] \end{matrix}\right.⎩⎪⎪⎨⎪⎪⎧​C=[X,Y]TE(C)=[μX​,μY​]TΣ=Var(C)=[ΣXX​,ΣXY​ΣYX​,ΣYY​​]​

将X ,Y投影后得到的一维向量fXf_XfX​和fYf_YfY​

fX=aTXfY=aTYf_X=a^TX \\ f_Y=a^TYfX​=aTXfY​=aTY

fXf_XfX​和fYf_YfY​的方差和协方差为

{var(fX)=aTΣXXavar(fY)=bTΣYYbcov(fX,fY)=aTΣXYb\left\{\begin{matrix}var(f_X)=a^T\Sigma_{XX}a \\ var(f_Y)=b^T\Sigma_{YY}b \\ cov(f_X,f_Y)=a^T\Sigma_{XY} b \\ \end{matrix}\right.⎩⎨⎧​var(fX​)=aTΣXX​avar(fY​)=bTΣYY​bcov(fX​,fY​)=aTΣXY​b​

CCA的优化目标是最大化ρ(fX,fY)\rho(f_X,f_Y)ρ(fX​,fY​),得到对应的投影向量a,ba,ba,b,即

argmaxa,bρ=cov(fx,fy)D(fX)D(fY)\mathop {argmax} \limits_{a,b} \rho=\frac{cov(f_x,f_y)}{\sqrt {D(f_X)D(f_Y)}}a,bargmax​ρ=D(fX​)D(fY​)​cov(fx​,fy​)​

由于分子分母增大相同的倍数,优化目标结果不变,可以采用和SVM类似的优化方法,固定分母,优化分子,优化问题转化为

argmaxa,baTΣXYbs.t.{aTΣXXa=1bTΣYYb=1\mathop {argmax} \limits_{a,b} \ a^T\Sigma_{XY} b \\ s.t.\left\{\begin{matrix}a^T\Sigma_{XX} a=1 \\ b^T\Sigma_{YY} b=1 \end{matrix}\right.a,bargmax​aTΣXY​bs.t.{aTΣXX​a=1bTΣYY​b=1​

求解方法是构造Lagrange等式

L=aTΣXYb−λ2(aTΣXXa)−θ2(bTΣYYb)L=\ a^T\Sigma_{XY} b-\frac{\lambda}{2}\left(a^T\Sigma_{XX} a \right)-\frac{\theta}{2}\left(b^T\Sigma_{YY} b \right)L=aTΣXY​b−2λ​(aTΣXX​a)−2θ​(bTΣYY​b)

LLL对aaa和bbb求导可以得到

ΣXX−1ΣXYb=λaΣYY−1ΣYXa=λb\Sigma^{-1}_{XX}\Sigma^{}_{XY}b=\lambda a \ \ \ \Sigma^{-1}_{YY}\Sigma^{}_{YX}a=\lambda bΣXX−1​ΣXY​b=λaΣYY−1​ΣYX​a=λb

将第二个式子带入第一个式子可得

ΣXX−1ΣXYΣYY−1ΣYX=λ2a\Sigma^{-1}_{XX}\Sigma^{}_{XY}\Sigma^{-1}_{YY}\Sigma^{}_{YX}=\lambda^2aΣXX−1​ΣXY​ΣYY−1​ΣYX​=λ2a

对该式求特征值和特征向量即可得到λ\lambdaλ和aaa,利用λ\lambdaλ和aaa即可求出bbb。aaa和bbb被称为典型变量(canonical variates),λ\lambdaλ即为ρ(fX,fY)\rho(f_X,f_Y)ρ(fX​,fY​)。

2 多元变化检测(MAD)

假设有两景不同时相的多波段影像XXX和YYY,它们含有ppp个波段,则MAD可以表述为以下优化问题

argmaxa,bvar(aTX−bTY)s.t.{aTΣXXa=1bTΣYYb=1\mathop {argmax} \limits_{a,b} \ var \left(a^TX-b^TY \right) \\ s.t.\left\{\begin{matrix}a^T\Sigma_{XX} a=1 \\ b^T\Sigma_{YY} b=1 \end{matrix}\right.a,bargmax​var(aTX−bTY)s.t.{aTΣXX​a=1bTΣYY​b=1​

根据约束条件我们可以得到var(aTX−bTY)=2(1−ρ(aTX,bTY))var \left(a^TX-b^TY \right)=2 \left(1- \rho \left(a^TX,b^TY\right) \right)var(aTX−bTY)=2(1−ρ(aTX,bTY))。基于上述CCA的求解方法求出aaa,bbb和ρ\rhoρ,只不过CCA是要先求最大的ρ\rhoρ,然后求第二大,第三大……而MAD是先求最小的ρ\rhoρ,然后求第二小,第三小……

求解出aaa和bbb后,最终MAD变量可以由下式计算

MAD=aTx^−bTy^MAD=a^{T}\widehat{x}-b^{T}\widehat{y}MAD=aTx−bTy​

由于MAD变量是XXX和YYY的线性组合,根据中心极限定理,MAD变量近似满足正态分布,因此MAD变量的平方除以方差之和服从自由度为ppp的卡方分布

Tj=∑i=1P(MADij2σMADi)∈χ2(p)T_{j}=\sum_{i=1}^{P}\left(\frac{MAD_{ij}^{2} }{\sigma_{MAD_i}}\right) \in \chi^{2}\left(p\right)Tj​=i=1∑P​(σMADi​​MADij2​​)∈χ2(p)

根据TjT_{j}Tj​即可判断各个像素是否发生变化。

而在论文中作者提出的IRMAD就是在MAD的基础上根据卡方距离进行加权迭代

wj=P{Tj>t}=P{χ2(p)>Tj}w_{j}=P\left\{T_{j}>t \right\}=P\left\{\chi^{2}\left(p\right)>T_{j} \right\}wj​=P{Tj​>t}=P{χ2(p)>Tj​}

然后让wjw_jwj​参与到下一次的均值和方差的计算中

Xi‾=∑j=1NwjXji∑j=1NwjSkl=∑j=1Nwj(Xjk−Xk‾)(Xjl−Xl‾)(N−1)∑j=1Nwj/N\overline{X_{i}}=\frac{\sum_{j=1}^{N}w_{j}X_{ji}}{\sum_{j=1}^{N}w_{j}} \\ S_{kl}=\frac{\sum_{j=1}^{N}w_{j}\left( X_{jk}-\overline{X_{k}}\right) \left( X_{jl}-\overline{X_{l}}\right)}{(N-1)\sum_{j=1}^{N}w_{j}/N}Xi​​=∑j=1N​wj​∑j=1N​wj​Xji​​Skl​=(N−1)∑j=1N​wj​/N∑j=1N​wj​(Xjk​−Xk​​)(Xjl​−Xl​​)​

反复迭代直到典型相关系数收敛。

3 实验

利用Python对MAD和IRMAD进行了实现。首先是MAD算法在泰州数据上的六个波段,如图3.1所示。

图3.1 MAD 6个波段

IRMAD在泰州数据上的六个波段。

图3.2 IRMAD 6个波段

图中非常亮的或者非常暗的区域代表变化、灰色区域代表未变化。可以看出在后两个波段,变化区域从未变化区域中被分离出来,前两个波段只包含少量变化信息。

由于TjT_{j}Tj​包含了所有MAD波段的信息,利用K-means算法对MAD和IRMAD的TjT_{j}Tj​进行阈值分割,得到binary change map如图3.3所示。

​图3.3 binary change map(左边为MAD,右边为IRMAD)

相较于MAD,IRMAD通过迭代更新权值,得到的binary change map更精确,噪声更少,道路等变化区域被更好地从非变化区域中提取出来。

利用ROC曲线将MAD算法和SFA算法进行比较,如图3.4所示。

图3.4 四种方法的ROC曲线和AUC

从ROC曲线和计算得到的AUC可以看出MAD算法和SFA算法都是非常好的非监督变化检测算法,它们都可以达到很高的精度。

链接

IRMAD的Python实现请见Github: /I-Hope-Peace/ChangeDetectionRepository/tree/master/Methodology/Traditional/MAD

提出IRMAD的论文 The Regularized Iteratively Reweighted MAD Method for Change Detection in Multi and Hyperspectral Data /document/4060945

两篇介绍CCA的博客

/weixin_41278720/article/details/80150098

/mbx8x9u/article/details/78824216

如果觉得《基于典型相关分析(CCA)的多元变化检测算法(MAD)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。