论文原文:A Deep Convolutional Coupling Network for Change Detection Based on Heterogeneous Optical and Radar Images, 这篇论文讲的是利用对称耦合神经网络(Symmetric Convolutional Coupling Network)来对异构遥感影像进行变化检测的问题。
论文算法介绍:
异构图像(Heterogeneous images)指的是用不同类型的传感器获得的遥感影像.
例如光学影像(Optical images)和合成孔径雷达图像(Synthetic aperture radar (SAR) images)就是两类异构图像。
论文的大致算法过程:论文中提出的网络结构是对称的,两个异构的输入图像分别从网络的两侧输入到网络中,分别经过特征转换之后映射到新的特征空间,计算对应像素点之间的距离,然后进行阈值分割,就可以得到最终的change map。
论文中提出的网络结构如下图所示:
从网络的结构图中可以看出,这是一个两侧对称的网络,每一侧分别包含了一个卷积层,以及若干耦合层。卷积层的作用是提取影像的特征图,几个耦合层依次将卷积层所得到的特征转换到一个新的特征空间。在网络结构的中间,输入图像的像素表示形式用来定义目标函数。
公式化表示:
假设一侧的输入图像为$ I$,经过卷积层和若干耦合层得到的最终的特征表示为:
H=FCC(I)=Fmap(Fcov(I))
卷积层得到的结果可以表示为:
Ci=s(Wcovi∗I+bcovi)
Ci表示的是第
i个卷积核
Wcovi得到的特征图,
bcovi表示偏移,
s是激活函数。
耦合层的计算结果:
H=Fmap(C)
Fij(C)(x,y)=s(wijFi−1(C)(x,y)+bij)
其中
i=1,2,…,l表示耦合层的编号,
Fij(C)表示第
j个特征图在第
i个耦合层所得到的结
果,
(x,y)表示像素点的位置。
Wi是一个
ni∗ni−1 的权值矩阵。
bi是一个偏移向量。
差异图的产生:假设网络的输入图像分别是$I_1, I_2 $,分别经过卷积层和耦合层计算得到的结果是:
H1=FCC1(I1),H2=FCC2(I2)
最终需要的差异图像计算方式:
D(x,y)=∣∣h1(x,y)−h2(x,y)∣∣2
学习过程:
由于多时相影像之间不变的区域应该显示出较小的像素差异,论文将最终的优化函数定义为以下形式:
min:Fcop(θ,Pu)=x,y∑Pu(x,y)∣∣h1(x,y)−h2(x,y)∣∣2−λx,y∑Pu(x,y)
s.t.0≤Pu(x,y)≤1
这里的θ表示的就是网络结构中所有参数的集合。也就是:
θ=(Wcov,bcov,Wmap,bmap),
Pu是概率图,用来表示各个像素点未发生变化的概率。
−λ∑x,yPu(x,y)是一个正则项,用来防止
Pu变成全0的值。
网络的训练过程:注意到上面所有的参数中需要优化的是
θ和
Pu,我们可以对两者进行
交替优化。给定一个
θ,目标函数的形式是:
min:Fcop(θ,Pu)=x,y∑Pu(x,y)(∣∣h1(x,y)−h2(x,y)∣∣2−λ)
所以可以通过判断
∣∣h1(x,y)−h2(x,y)∣∣2和
λ之间的关系来优化得到
Pu(x,y):
Pu(x,y)=⎩⎪⎨⎪⎧0,∣∣h1(x,y)−h2(x,y)∣∣2<λ1,∣∣h1(x,y)−h2(x,y)∣∣2≥λ
这样就可以将目标函数的值优化为在
θ确定时的最低值。
给定
Pu,我们可以通过
BP算法对于
θ的各项值进行优化。具体优化学习过程如下图
网络参数的初始化:
论文中对网络参数的初始化方式并不是一般的随机初始化,而是通过逐层的去噪自编码器(DAE)进行学习
每层的参数,从而实现对输入图像一定程度上的去噪功能。去噪自编码器实际上可以说是自编码器的随机版。
就是对于输入图像的随机部分区域添加噪声。噪声的种类分别是乘性和加性噪声,分别服从高斯和Γ分布。随
机添加到原始影像,进行自编码器的学习,学习到的参数作为各层的初始参数。
实验过程:
在tensorflow下搭建了网络结构,另外,我没用DAE初始化网络参数,直接随机初始化了。数据集选取的是两幅
400∗400的
RGB遥感影像:
最后得到的变化图和基准图相对比:
除了一些噪声(可能是我没用DAE进行初始化),直观上看起来结果还不错,over。
====================================================================================================
完