发布时间:2022-09-24 08:30
链接:SNUNet-CD: A Densely Connected Siamese Network for Change Detection of VHR Images | IEEE Journals & Magazine | IEEE Xplore
变化检测是遥感影像分析中的一项重要任务,它广泛应用于自然灾害监测与评估、土地资源规划和其他领域。作为一个“像素到像素”的预测任务,变化检测对原始位置信息的利用很敏感。常用的变化检测方法总是注重提取深层的语义特征变化,忽视了浅层的高分辨率、细粒度特征的重要性,这导致了目标边界像素的判断缺失和细小变化的遗漏。
本文提出了一个用于变化监测的稠密连接孪生网络,命名为SNUNet-CD(联合孪生网络与Nested-UNet)。SNUNet-CD通过编码器与解码器之间紧密的信息传输减少了深层网络训练中位置信息的丢失,同时还提出了一种集成通道注意力机制(ECAM)进行深层监督。通过ECAM可将不同语义级别的最具代表性的特征进行细化,并用于最终的分类。实验结果表明,本文所用方法极大地改进了许多评估标准,与其他先进的变化检测算法相比,本文所用方法在精度和计算量上有更好的权衡。
关键词:变化检测、深度学习、全连接孪生网络、遥感影像
变化检测是检测同一地区不同时间的多时态遥感影像发生语义变化的像素。许多因素可以导致“语义变化”,例如要素的变形、相对运动、新增或消失。变化检测的难点在于最终的变化图不应包含“非语义变化”,例如相机的运动、传感器的噪声、光线的变化等。另一个难点是,“变化”的定义可能因为应用方向和人的主观意识而各有不同。例如,在许多案例中,双时相影像来源于不同的季节,如图1。
图1 CDD数据集中的不同季节的双时相遥感影像
注:(a)与(b)为原始影像;(c)为变化情况;(d)为FC-Siam-diff(一种常用的变化检测方法)的结果;(e)为本文方法的结果。
这里“变化”指的是人工设施的变化,如建筑物和汽车,季节性的变化被视为干扰因素。因此,许多传统的变化检测方法(如差分、CVA和PCA&K-means)可以在简单的场景中取得有效的结果,但在复杂场景下表现不佳。
近年来,许多场景分割的神经网络模型已经应用于变化检测任务来提取更深层次的特征。首先,U-Net创建了基准模型,然后,孪生网络嵌入成为变化检测的标准模型。为了提升变化检测的性能,许多功夫用在深层特征的提取和细化上。论文[10]中使用金字塔模型提取多尺度特征,论文[9]和论文[12]中使用深层监督来增强浅层特征的表现力和识别能力,引入注意力机制来细化特征,获得更好的特征表示,例如论文[9]中的空间和通道注意力、论文[10]的自注意力、论文[11]的双层注意力等。
尽管这些方法在实际应用中取得了成功,但一个共同的问题是:连续下采样过程丢失了准确的空间位置信息,这往往导致像素边缘检测不准确和细小目标的遗漏,如图1d所示。许多研究表明,神经网络的浅层包含了细粒度的位置信息,深层则包含了粗粒度的语义信息。受到DenseNet和NestedUNet的启发,我们设计了变化检测的稠密连接孪生网络,通过编码器与解码器之间的稠密跳跃连接,可以保留高分辨率、细粒度的特征表示。由于最终的骨干网络是孪生网络与嵌套U-Net网络结构的联合,我们将其命名为SNUNet-CD。
SNUNet-CD的骨干有不同层次的多组输出。为了实现最终的浅层特征、深层特征和语义信息的自然融合并抑制深层监督的语义差距,我们在深层监督中引入了通道注意力机制(CAM),提出了集成通道注意力机制(ECAM)。实验结果表明,ECAM可以对多层次的语义特征进行融合和细化,并取得更好的结果。
本文的贡献如下:
1)我们提出了基于NestedUNet的稠密连接SNUNet-CD模型用于遥感变化检测,SNUNet-CD模型降低了深层神经网络中定位信息的丢失。
2)提出了ECAM模块用于融合和细化多层次语义特征,一定程度上抑制了语义错误和位置错误。
3)通过一系列实验比较,我们的方法在F1评分和计算复杂度上优于其他最先进的(SOTA)方法,我们的源码发布在GitHub上。 https://github.com/likyoo/Siam-NestedUNet.
本文的组织结构如下:第二部分描述了本文提出的变化检测方法,第三部分包括了一系列实验定量对比和分析,最后第四部分为本文的结论。
SNUNet-CD是一个标准的编码-解码结构,并使用了孪生网络作为编码器。双时相图像分别输入到孪生网络的两个分支中,两个分支的参数共享。两个相同的卷积滤波器对两幅影像进行特征提取,并形成相同位置的特征图。孪生网络分别提取双时相的图像特征后,连接两个分支的特征来确保信息的完整性。
为了保持高分辨率特征和细粒度的位置信息,我们在编码器-解码器间使用了稠密跳跃连接机制,如图2所示。
图2 SNUNet-CD的编码器和子解码器之间的信息传输示意图
在对图像1和图像2进行下采样过程中,两个分支的特征将被融合,融合后的高分辨率、细粒度的特征将通过跳跃连接依次传输到解码器中,补偿解码器深层的位置信息损失。例如,在第一次降采样之后获得的输出包含XA1.0和XB1.0,X1.0是两者连接得到的融合特征。在稠密跳跃连接中,首先,融合特征X1.0与X2.2的2*上采样结果连接并输入到X1.3卷积块中;第二步,由于X1.3的2*上采样结果是X1.0的2倍大小,需要对进行X1.0上采样;同样地,为了实现整个系统的稠密连接,除原始大小的节点外,需要对编码器中的每个节点都进行上采样。
因此,SNUNet-CD的完整流程图如图3所示。图像1和图像2输入到孪生编码器网络中,每个节点的降采样输出都会有一个子解码器来恢复原始大小。通过跳跃连接,编码器中的精细位置特征将被传输到4个子解码器中,浅层的位置信息将直接应用于深层,保持了细粒度的信息。为了进一步利用细粒度特征,浅层子解码器节点的输出将与同分辨率的深层子解码器节点的输出连接。
图3 SNUNet-CD结构的说明
注:(a)为SNUNet-CD的主干,向上、向下的箭头分别表示上采样、下采样;虚线箭头表示细粒度特征的跳跃连接(灰色表示编码器与子解码器之间的连接,红色表示子解码器之前的连接);节点Xi.j表示卷积块,具体结构可见(c);(b)为ECAM,(d)为常规的CAM。
在图3a中,每一个节点Xi.j表示一个卷积块(图3c所示),卷积块是一个残差单元结构。特别的是,第一个卷积层之后会插入短接,以保持所有卷积块的统一。
设xi. j为节点 Xi.j 的输出,xi. j计算公式如下:
H(·)为卷积块的操作,P(·)是用于降采样的2*2的最大池化,U(·)是使用转置卷积进行上采样,[]是信息通道的连接,用于融合特征。当j=0时,编码器下采样并提取特征;当j>0时,稠密跳跃连接机制生效,细粒度特征从编码器中依次传入到深层解码器。
具体来说,在SNUNet-CD中,随着编码器的深化,特征图的通道数将会增加,又随着解码器的深化而逐渐减少。图4显示了通道数的变化情况。
图4 SNUNet-CD的通道数变化
注:图4对应图3a中蓝色虚线框的部分,“3”指的是3通道RGB图像,“n”指的是特征图的初始通道数。
SNUNet-CD的骨干最终有4个输出,大小与原始影像相同,节点X0.j的输出为x0.j。4张特征图的大小相同,但包含了不同层次的语义特征和位置特征。具体来说,浅层子解码器的输出包含了细粒度特征和更精确的位置信息,深层子解码器的输出包含更多粗粒度特征和更丰富的语义信息。当然,在融合这些特征时,需要一个自动通道选择机制来抑制语义差异和位置差异。
因此,如图3b所示,ECAM是设计用于在不同组之间自动选择并关注更有效的信息。在结构上,ECAM是CAM在深层监督和集成学习的扩展。首先,4组骨干的输出将进行合并,使用CAM提取组内关系,同时,4组输出联合用另一组CAM提取组间关系。具体来说,ECAM的表述如下:
σ指的是Sigmoid函数,MLP是多层感知,AvgPool和MaxPool是平均池化和最大池化操作,[]是4个特征图的连接,repeat(n)(·)是在通道维度中重复n次注意映射和连接,⨂是逐像素累积。最后,1个1*1的卷积用来获取变化图Yˆ。h(·) 表示1*1的卷积层生成2*H*W的变化图(“2”表示变化和无变化)。
在变化检测领域,无变化像素的数量往往远超变化像素的数量。为了削弱正负样本不平衡的影像,我们使用了混合损失函数(加权交叉熵和重叠度结合),混合损失函数计算如下:
在加权交叉熵损失计算中,变化图Yˆ可视为点的集合:
yˆk表示Yˆ中的点,此处包含2个值。H和W表示变化图Yˆ的高和宽,变化图Yˆ与原始影像图像大小相同,加权交叉熵(WCE)损失函数计算如下:
其中,“class”的值为0或1,分别对应“不变化”和“变化”的像素。同时,变化图Yˆ通过Softmax()层计算重叠度损失,Y为真实值。
为了评价我们的算法,我们设计了一系列在CDD数据集(变化检测领域最常见的评价数据集)上的对比实验。CDD数据集包含11组不同季节的RGB多光谱影像(来源于谷歌地球),这些影像的空间分辨率从3cm至1米。在论文[1]中,通过裁剪、旋转操作,从原始影像中提取了16000组256*256像素的图像,其中10000组作为训练数据集,验证和测试数据集各3000组。定量评估的指标包含3项:精度、召回率和F1指标。
我们使用Pytorch实现了SNUNet-CD,在训练中,批处理大小为16,并应用Adam作为优化器,学习率设置为0.001,每8次训练衰减0.5。每个卷积层的权重通过kaiming归一化。我们使用NVIDIA Tesla v100显卡实施并训练了100遍使模型收敛。
在变化检测领域,选择几种具有代表性的基于深度学习的方法进行对比。FC-EF,FC-Siam-conc和FC-Siam-diff是变化检测的基线模型,他们是UNet和孪生网络的简单联合。论文[12]中UNet++_MSOF模型,输入连接图到UNet++骨干并且使用多重侧向输出融合进行深度监督。[9]中的INF模型使用预训练后的VGG16作为编码器,并利用多重侧向输出进行深度监督。论文[11]中的DASNet在变化检测的对比中引入了论文[19]中的双重注意力机制。
在我们的对比实验中,我们考虑了准确性和计算速度上的平衡。在SNUNet-CD上,网络的广度(特征图的通道数,图4中的n)设定为可调节的超参数,用于平衡准确性和计算速度。众所周知,网络越广,需要的计算量越大,捕获的细粒度特征越多。
表1中列出的定量评价结果表明,SNUNet-CD在复杂场景的变化检测应用中的性能优异。在CDD数据集上,16通道的SNUNet-CD模型比其他先进的模型表现更好,模型仅有3.01M的参数和27.56G的计算需求。实际上,孪生编码器和解码器的稠密连接是性能提升的主要因素,图5中SNUNet-CD(没有CAM)可以论证。如图6所示,细粒度的位置信息传输提升了对边缘像素的判断和对细小目标的检测。另一方面,不同于UNet++_MSOF模型,应用孪生网络使SNUNet-CD模型避免了双时相图像的空间特征的纠缠和不对应。
表1 CDD数据集上的性能对比
注:符号“*”指的是我们重新实现的结果
图5 计算速度与F1指标 “-cn”指初始通道数为n
如图5所示,ECAM的作用不可忽略。尽管稠密连接减轻了深层网络中位置信息的丢失,但在深度监督中仍存在语义差距。ECAM可以改善不同粒度、语义的要素的组间关系和组内关系,在一定程度上减轻了语义差距。如图6h所示,我们使用热图来可视化ECAM后的要素图,热图是由所有特征图的方法得到。通过ECM,变化区域的能量更高,目标边缘的能量更强。也就是说,变化目标的边缘增强、位置更准确,这提升了检测的性能。
图6 CDD数据集上的可视化结果
注:(a)与(b)为原始的双时相影像;(c)为真实变化;(d)为FC-Siam-diff的结果;(e)为IFN的结果;(f)为DASNet的结果;(g)为32通道SNUNet-CD的结果;(h)为SNUNet-CD中ECAM的热图。
在本文中,我们提出了一个用于超高分辨率影像变化检测的稠密连接的孪生网络,命名为SNUNet-CD。通过编码器和解码器间的稠密跳跃连接,SNUNet-CD可以保持高分辨率、细粒度的标识,减轻了对目标边缘像素的判断缺失和小目标的遗漏。在结构上,SNUNet-CD可以看做是孪生网络、嵌套UNet(NestedUNet)和ECAM的联合。对比其他变化检测的研究,SNUNet-CD可以检测更多细节上的变化,并在准确性和计算速度上有更好的平衡。未来,我们将重点研究提取和利用光谱信息进行变化检测,并将我们的方法推广到高光谱遥感影像上。
[1] M. A. Lebedev, Y. V. Vizilter, O. V. Vygolov, V. A. Knyaz, and A. Y. Rubis, “Change detection in remote sensing images using conditional adversarial networks,” ISPRS Int. Arch. Photogramm., Remote Sens. Spatial Inf. Sci., vol. XLII-2, pp. 565–571, May 2018.
[2] W. A. Malila, “Change vector analysis: An approach for detecting forest changes with Landsat,” in Proc. LARS Symposia, 1980, p. 385.
[3] T. Celik, “Unsupervised change detection in satellite images using principal component analysis and k-means clustering,” IEEE Geosci.Remote Sens. Lett., vol. 6, no. 4, pp. 772–776, Oct. 2009.
[4] O. Ronneberger, P. Fischer, and T. Brox, “U-Net: Convolutional networks for biomedical image segmentation,” in Proc. Int. Conf. Med.Image Comput. Comput.-Assist. Intervent., Cham, Switzerland: Springer,2015, pp. 234–241.
[5] R. Caye Daudt, B. Le Saux, and A. Boulch, “Fully convolutional Siamese networks for change detection,” in Proc. 25th IEEE Int. Conf. Image Process. (ICIP), Oct. 2018, pp. 4063–4067.
[6] F. Rahman et al., “Siamese network with multi-level features for patchbased change detection in satellite imagery,” in Proc. IEEE Global Conf.Signal Inf. Process. (GlobalSIP), Nov. 2018, pp. 958–962.
[7] Y. Zhan, K. Fu, M. Yan, X. Sun, H. Wang, and X. Qiu, “Change detection based on deep Siamese convolutional network for optical aerial images,” IEEE Geosci. Remote Sens. Lett., vol. 14, no. 10,pp. 1845–1849, Oct. 2017.
[8] E. Guo et al., “Learning to measure change: Fully convolutional Siamese metric networks for scene change detection,”2018,arXiv:1810.09111.[Online].Available: http://arxiv.org/abs/1810.09111
[9] C. Zhang et al., “A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images,” ISPRS J. Photogramm. Remote Sens., vol. 166, pp. 183–200, Aug. 2020.
[10] H. Chen and Z. Shi, “A spatial-temporal attention-based method and a new data set for remote sensing image change detection,” Remote Sens.,vol. 12, no. 10, p. 1662, 2020.
[11] J. Chen et al., “DASNet: Dual attentive fully convolutional Siamese networks for change detection of high resolution satellite images,”2020, arXiv:2003.03608. [Online]. Available: http://arxiv.org/abs/2003.03608
[12] D. Peng, Y. Zhang, and H. Guan, “End-to-end change detection for high resolution satellite images using improved UNet++,” Remote Sens.,vol. 11, no. 11, p. 1382, 2019.
[13] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., Jun. 2015, pp. 3431–3440.
[14] Z. Zhou et al., “UNet++: A nested u-net architecture for medical image segmentation,” in Deep Learning in Medical Image Analysis and Multi-modal Learning for Clinical Decision Support. Cham, Switzerland:Springer, 2018, pp. 3–11.
[15] Z. Zhou et al., “UNet++: Redesigning skip connections to exploit multi-scale features in image segmentation,” IEEE Trans. Med. Imag.,vol. 39, no. 6, pp. 1856–1867, Dec. 2019.
[16] G. Huang, M. M. R. Siddiquee, M. Tajbakhsh, and J. Liang, “Densely connected convolutional networks,” in Proc. IEEE Conf. Comput. Vis.Pattern Recognit., Jul. 2017, pp. 4700–4708.
[17] S. Woo, J. Park, J.-Y. Lee, and I. S. Kweon, “Cbam: Convolutional block attention module,” Proc. Eur. Conf. Comput. Vis. (ECCV), Sep. 2018,pp. 3–19.
[18] K. He, X. Zhang, S. Ren, and J. Sun, “Identity mappings in deep residual networks,” in Proc. Eur. Conf. Comput. Vis., Cham, Switzerland:Springer, 2016, pp. 630–645.
[19] J. Fu et al., “Dual attention network for scene segmentation,” in Proc.IEEE/CVF Conf. Comput. Vis. Pattern Recognit. (CVPR), Jun. 2019,pp. 3146–3154.
[20] S. Zagoruyko and N. Komodakis, “Wide residual networks,” 2016,arXiv:1605.07146. [Online]. Available: http://arxiv.org/abs/1605.07146
龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本
Go结构体SliceHeader及StringHeader作用详解
[SpringBoot的@Async注解和关键字synchronized的使用]
分库分表真的适合你的系统吗?聊聊分库分表和NewSQL如何选择
Google Earth Engine (GEE) 导出数据到Drive account (Google Drive)目录
利用Hessian矩阵的Frangi 滤波器-python版本
VCS中使用coverage metrics进行代码覆盖分析
python pillow库画图_python几种柱状图画法以及简单图片处理pillow库的学习