A Deep Learning Method for Change Detection in Synthetic Aperture Radar Images(变化检测论文复现附代码)

复现代码地址:https://github.com/xhwNobody/Change-Detection

 

论文地址:A Deep Learning Method for Change Detection in Synthetic Aperture Radar Images

 

中文地址:基于深度神经网络的SAR图像变化检测

Task:

                 

考虑两张已配准好的SAR 图像:

                    

两张SAR图像有相同的尺寸A*B,它们来自相同的地理位置不同的时刻,这两张SAR图像被相干噪声污染,需要设计高效的变化检测算法在两张图像中找到变化的区域。

 

算法的过程:

       步骤1.计算相似性矩阵Sij,再通过空间模糊聚类算法生成伪标签BI;

预分类(3.2.1)

相似度公式:,其中代表在t时刻图像上位置处(i,j)的灰度值。

伪标签矩阵是二值矩阵,矩阵中的两个值分别代表变化的类和未变化的类。但是并不是所有的伪标签都准确,因此需要选择一些合适的伪标签用于卷积神经网络的训练。

       步骤2.在伪标签中选择出合适的训练样本;

生成训练样本(3.2.2)

确定一个领域尺寸(如3x3),分别在两个图像上取像素块,对应位置的图像块进行堆叠。如果SAR图像中的像素点数量是m,那么将获得m个小样本图像。

选择合适的伪标签(3.2.3)

卷积神经网络需要样本进行训练,在训练网络之前,需要依据伪标签选取合适的训练样本用于训练。需要选取那些有较高概率正确分类的像素点来训练卷积神经网络。

通过如下公式来判断该样本点是否满足需求:

表示对应的标签值,表示中与有相同标签的像素点的个数。系数α决定了是否被选择作为样本。通过这个公式,就可以得到一批带有伪标签的训练样本,用来训练卷积神经网络。

       步骤3.将训练样本送入卷积神经网络中进行训练;

       步骤4.网络训练完成后,将测试样本送入卷积神经网络中得出分类结果(变化的类和未变化的类)。相关设置:在论文中,使用的卷积神经网络结构如上图所示,该卷积神经网络包含两个卷积层和两个池化层,卷积核大小为2*2,步长为1。第一个卷积层中卷积核个数为 12 个,第二个卷积层中卷积核个数是 24 个,两个池化层均采用均值池化的方法,损失函数为二元交叉熵损失。参数α控制着样本的选择,设置为 0.6。n代表着样本选择中的邻域大小,设置n为5。也就是每个选择出来的训练样本大小为5*5,然后在样本的最外层扩充一层 0,这样最终得到的样本大小为7*7。

       下面是三个数据集的Ground Truth(左)和复现的结果(右)(PS:不是太好,可能是SFCM写的有问题,也可能需要进一步调参,没有深究)。

               

                                    Ottawa                                                                                  FarmlandC                                                                                  FarmlandD

 以下是对Ottawa数据集进行调参过程中产生的各项定量指标:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-07-12 12:37  xhw19950606  阅读(805)  评论(4)    收藏  举报