张翠军,安 冉,马 丽
1.河北地质大学 信息工程学院,石家庄050031
2.河北地质大学 人工智能与机器学习研究室,石家庄050031
遥感图像变化检测[1]是对同一地理位置不同时期获取的两幅或多幅图像进行分析和检测,从而获得地物变化信息的技术,在土地利用监控、农业监测、防灾预警、城市规划等许多领域都有广泛的应用。目前,遥感图像的变化检测方法和技术是遥感图像处理领域的研究热点和难点之一。
传统的遥感图像变化检测方法流程[2]一般分为三步:(1)应用图像预处理技术对图像进行配准、去噪等,消除成像因素带来的图像差异;(2)以图像差分、图像比值等方法生成差分图像;(3)对差分图像进行分类,从中提取变化类特征,分析变化类特征得到变化图。Gong等人[3-4]在小波域利用平均比值图像和对数比值图像的互补信息生成差分图像,并对FLICM算法进行改进,提出改良局部邻域模糊C 均值(Reformulated Fuzzy Local Infornation C-Means,RFLICM)聚类算法,对融合后的差分图像进行分类,得到图像的变化情况;刘陆洋等[5]利用对数比差异图和均值差异图合成新的差异图,再由主成分分析法得到新差异图每个像素的向量表示,最后通过模糊C均值聚类算法得到变化图,减少了散斑噪声对检测结果的影响,提高了变化检测的精度。上述方法都依赖于手工构建的特征表示,对复杂的高层次变化信息的建模能力有限,并且当变化类和非变化类的特征重叠或其统计分布建模不准确时,检测结果会产生误差。
近年来,深度学习技术发展迅速,在目标检测、语义分割和图像分类等领域中取得了显著效果,一些学者开始对深度学习在遥感图像变化检测中的应用进行研究。杨海伦[6]提出基于卷积神经网络的有监督特征学习,通过无监督特征学习生成特征图,再利用有监督的卷积神经网络从中提取更加抽象的特征,从而检测出遥感图像中的变化部分和非变化部分;赵景晨[7]提出一种基于超像素和孪生卷积神经网络模型,首先以超像素为单位进行局部特征计算和样本选择,实现对数据集的自动标注,然后利用孪生网络对标注后的数据集进行训练,最后以欧式距离来度量目标相似性,通过阈值分割提取变化结果,兼顾了两组图像各自的特征信息,但是阈值的选取较为困难;顾炼[8]将超列和FlowNet 的细化结构应用于U-Net 中,在U-Net 网络解码阶段对每一层进行预测,并将预测结果融入下一层的预测中,设计出FlowS-Unet网络,实现对遥感图像的变化检测;唐文博[9]将FPN结构融入U-Net网络,构建具有更深层语义特征的金字塔模型,并逐层与前一层特征图横向连接,有效融合多个层级的特征,丰富了编码阶段的特征语义信息,提高了变化检测对建筑物边缘信息的提取精度。深度学习技术在遥感图像变化检测中的应用取得了初步成效,但进一步提高变化检测的准确性仍然是该领域研究的主要难点之一。
本文提出了一种基于改进U-Net 的遥感图像中建筑物的变化检测方法。针对U-Net 网络进行遥感图像变化检测时,特征提取阶段容易出现梯度消失,导致模型过拟合的现象,提出用非对称卷积块(Asymmetric Convolution Block,ACBlock)来代替U-Net网络特征提取部分的标准卷积操作,增强网络中心骨架,防止模型过拟合;针对遥感图像数据集中图像背景复杂且小目标变化情况容易被漏检的问题,提出在U-Net网络中引入注意力机制,抑制模型对非变化类像素特征的学习,加强对变化类像素特征的学习,提取到更具代表性的特征,提高检测精确度。
U-Net 网络[10]是一个U 型对称网络,左侧是一个编码器,右侧是一个解码器。编码器用于提取图像特征、减少空间维度,解码器逐步恢复图像的细节信息和空间维度,两者之间阶跃连接,使解码器更好地恢复目标的细节信息,还原图像精度。编码器由4组相同的编码块组成,每组编码块包含2个卷积核为3×3的卷积层和一个下采样层,卷积层用以提取图像特征,下采样层用以过滤一些不重要的高频信息,减小特征维度,增大感受野。重复的卷积和池化操作可以充分提取图像的高层特征,每经过一个编码块,特征图尺度缩小一半而维度加倍。解码器由4组相同的解码块组成,每组解码块包含两个卷积核为3×3的卷积层和一个反卷积层,每组解码块都将特征图的尺度扩大一倍而将特征图的维度减半;同时,每组解码块的输入将与对应层编码块的输出相融合作为下一个反卷积层的输入,以降低编码块中下采样带来的信息损失。经过4 组解码块后得到与输入图片尺寸相同的64维特征图,将其映射为2维变化特征图。利用Softmax分类器计算变化特征图中每个像素属于变化类和非变化类的概率,对概率进行映射,得到以黑色为背景、白色为变化区域的变化图。U-Net模型结构如图1所示。
图1 U-Net网络结构图
利用U-Net 网络进行遥感图像中建筑物的变化检测,首先将两幅多时相图像合并通道,然后将合并通道后的数据送入U-Net模型进行测试,最后得到变化检测结果图,具体流程如图2所示。
图2 基于U-Net模型的遥感图像中建筑物变化检测
U-Net 网络在特征提取部分经过了5 个编码块,10次3×3的标准卷积操作,重复的卷积操作会使网络在特征提取部分产生大量信息损失,导致模型在训练中容易出现过拟合现象,影响变化检测的精度[11]。因此,本文对U-Net网络的内部结构进行了改进,在特征提取环节用非对称卷积块(ACBlock)代替3×3标准卷积以提高网络变化检测的精确度。ACBlock如图3所示。
图3 ACBlock模块
ACBlock 是由一组卷积核为3×3、1×3、3×1 的卷积结果累加得到的卷积操作,相当于在3×3卷积核的中心位置增加了两个卷积核为1×3、3×1的单个卷积操作,获得一个等价的输出,模块结构如图4 所示。用ACBlock代替特征提取部分的标准3×3 卷积可以在训练过程中丰富特征空间,将模型学到的知识融入方形核中,增强方形卷积核的中心骨架部分,减少因卷积操作带来的信息损失,在不增加额外参数和计算量的前提下增强模型对旋转扭曲的鲁棒性,从而提高模型精度。
图4 ACBlock模块结构图
变化检测的数据集图片中包含建筑物、植被、裸地、农田和水域等多种地物,而本文只关注发生变化的建筑物,其他类别地物及未发生变化的建筑物均作为背景处理,背景情况较为复杂,对变化检测结果的准确性有很大的干扰[12-13]。因此,本文提出在U-Net 网络的阶跃连接部分引入注意力机制调节特征权重,抑制模型学习与变化类像素无关的特征,重点学习与变化类像素相关的特征,加强网络对变化类建筑物特征的提取。注意力机制的结构如图5所示。
其中,g为解码部分的特征图矩阵,x为编码部分特征图矩阵,H、W、C分别代表特征图的长、宽、通道数,Wg、Wx为特征权重矩阵。注意力机制的具体操作分为三个步骤:
图5 注意力机制模块
(1)特征权重提取
其中,i、j对应特征图中像素位置。
通过公式(1)、(2)将编码部分的特征图x和解码部分的特征图g分别进行全局平均池化,得到特征图包含C个通道信息的权重矩阵Wx、Wg。
(2)特征权重更新
其中,σ1代表ReLU激活函数,σ2代表Sigmoid函数。
注意力机制通过两个全连接层实现特征权重的更新,首先,通过Wx点乘x、Wg点乘g实现一次编码部分特征图和解码部分特征图的全连接操作,减少参数计算量;然后,将全连接层结果求和后经过ReLU层,将结果与Ψ点乘再做一次全连接,过程如式(3)所示,权重矩阵Wg、Wx经过反向传播学习,得到g和x矩阵中每个元素的重要程度,据此对g和x矩阵继续前向传播的比例进行调整;最后,对每个像素的权重重新分配,经过Sigmoid层得到特征权重更新后的权重矩阵α如式(4)。
(3)更新后的特征权重映射到特征图
将更新后的权重矩阵α与特征图x点乘,将特征图中与变化类像素相关的通道权重加大,与其他像素相关的通道权重减小,得到具有注意力机制的特征图,并将其与特征图g阶跃连接,进入下一层解码层。
在U-Net 网络中引入注意力机制,得到的Att-Unet网络结构如图6所示。Att-Unet是在U-Net网络的阶跃连接部分引入了注意力门,将底层信息和当前通道的特征进行了一个通道层面的注意力控制,使不同通道之间的特征能够联系起来,而同类特征之间有了相互限制,比直接上采样恢复的图像更加精细,变化检测准确率也得到提高。
图6 Att-Unet结构示意图
实验数据选自QuickBird 卫星获取的广东某地区2015 年和2017 年的两幅遥感图像,图像样例如图7 所示。两幅遥感图像均包含红、绿、蓝和近红外四个通道,大小为15 106×4 000。
图7 数据集样例
3.2.1 色差匀衡与拉伸
两个时期的图像都是多景拼接数据,在红、近红外波段拼接痕迹不明显,但在蓝、绿波段拼接痕迹明显,使得图像存在一定的色差,会对后续模型的训练造成不良影响。因此,本文对图7所示的遥感图像进行了色差均衡和图像拉伸,以消除图像的波段拼接痕迹,下面以2015年图像为例展示了色差均衡与拉伸的过程。
(1)采用Canny边缘检测算法提取图像的波段拼接边界,并根据检测到的边界对图像进行分割。2015年图像由两部分拼接而成,存在一个拼接边界,图8 展示了拼接边界的检测和分割效果。
图8 边界分割
(2)每次提取一个部分作为感兴趣区域,将其他部分的信息屏蔽,生成如图9 所示的掩码图像(红色为感兴趣区域,黑色为信息屏蔽区域)。对各掩码图像的感兴趣区域进行2%拉伸[14],即首先将整张图像每个像素点的像素值按从小到大进行排序;然后将该序列中2%位置处的像素值作为下限minvalue,将98%位置处的像素值作为上限maxvalue;最后遍历图像中的每一个像素,若像素值小于minvalue,则将该点像素值设为0;若像素值大于maxvalue,则将该点像素值设为65 535;若像素值大于minvalue且小于maxvalue,则将该点像素值按比例拉伸至0~65 535。
图9 2015年图像掩码图
(3)用邻域平均法分别对两块感兴趣区域进行边界平滑,将平滑后的图像拼接在一起,得到色差均衡后的图像如图10所示。
图10 色差均衡后的图像
3.2.2 样本标注与扩充
(1)样本标注
本文利用ENVI 软件对2017 年图像与2015 年图像相比新增的建筑物进行了标注,并根据标注结果生成与原图大小相同的Ground Truth图,如图11所示。Ground Truth 为单通道灰度图,其中白色部分表示建筑物发生变化的像素,黑色部分表示未发生变化的像素。
图11 ENVI标注的Ground Truth图
(2)样本切分与增广
图12 样本切分后的部分数据集样例
数据集中两幅图像的大小均为15 106×4 000,生成的Ground Truth 图大小同样为15 106×4 000,若将其作为样本数据直接送入网络进行训练,会因遥感图像尺寸较大,导致训练过程出现内存不足的问题。为了保证实验的顺利进行,本文对标注后的数据集进行了以下操作:①将遥感图像按照7∶2∶1 的比例划分为互不重叠的训练集、验证集和测试集三个部分;②以随机位置窗口的方式利用滑动窗口将训练集、验证集和测试集图像切分为256×256大小的小尺寸图像,图12展示了样本切分后形成的数据集中部分代表性的样例;③对训练集中的图像进行水平翻转、逆时针旋转等操作进行数据增强,如图13所示。经过样本切分与数据增强后,用于训练的数据有1 750 对,每张图像大小为256×256,其中,正样本有969对,负样本有781对。
图13 数据增强后的图像样例
3.2.3 数据归一化
遥感图像各部分的亮度和像素值分布差异较大、数据分布不一致,直接将其送入网络进行训练,梯度下降过程数据形成的等高线是一组偏椭圆,迭代过程缓慢并且可能使模型陷入局部最优解,因此,本文对实验数据进行了归一化处理。利用均值归一化,将图像的像素值归一化到0~1之间,使训练数据有相似的分布,训练过程对应的等高线将变圆,梯度下降速度较快,模型的收敛速度也随之加快[15]。数据归一化前后的梯度下降情况如图14。
图14 归一化前后梯度变化
3.2.4 通道合并
U-Net 网络是一个单输入模型,在训练中难以兼顾两张不同时相图像的对应关系信息,因此,本文在模型训练之前先将不同时相的两张遥感图像的通道合并,再送入网络进行训练,如图15所示。
图15 合并通道
实验环境如表1所示。
表1 实验环境
4.2.1 损失函数
经典的二分类交叉熵损失函数如式(6):
其中,tn表示真实标签类别,当n为变化类像素时tn取值为1,否则,tn取值为0;pn代表预测n为变化类像素的概率且N是一个样本中总的像素数,n是样本中一个像素。
在数据分布不平衡的情况下,会使网络对占比高的类别识别度高,对占比低的类别识别度低,容易陷入局部极小值[16]。本文的数据集中存在变化类像素占比小或完全没有变化类像素的样本,样本分布不均衡。当样本中非变化类像素过多时,选用交叉熵函数作为损失函数,可能导致模型更侧重于对非变化类特征的学习,通过增加非变化类像素的预测概率来降低损失,而Dice损失函数只关注像素点是否被正确分类。因此,本文选用如式(7)所示的Dice损失函数作为交叉熵函数的补充,减轻类别不平衡对检测精度的影响,最终以式(8)所示的复合函数作为损失函数,提高模型在变化类像素较少时对变化类特征的学习。
其中,yn是预测类别,其他参数设定与式(6)相同。
4.2.2 优化器
优化器用于网络训练过程中更新模型参数,使损失函数降到最低。模型训练过程中常用的优化器有SGD、BGD、Adam 等[17]。其中,Adam 算法相当于Rmsprop 梯度下降法和momentum 梯度下降法的结合,收敛速度快,学习效果好,适用于各种神经网络。因此,本文选用Adam作为优化器,并且为了防止陷入局部最优解,引入了模拟退火算法调整学习率,使模型更好地收敛。
4.2.3 ReLU激活函数
卷积神经网络特征提取部分的作用是从大量的数据中提取出具有代表性的关键因子。原始数据通常由高度密集的特征组成,为了解开这些特征间的复杂关系,将其转换为稀疏特征,使提取的特征具有鲁棒性,在卷积神经网络中引入了ReLU激活函数[18],如式(9)所示:
当输入x大于等于0 时,输出值为x;当输入x小于0 时,输出值为0。这是一种具有单侧抑制特性的激活函数,卷积神经网络经过ReLU 函数后输出为0 的神经元越多,特征稀疏性越强,提取出来的特征更具有代表性,泛化能力越强。ReLU函数的曲线如图16所示。
图16 ReLU激活函数
本文采用端到端的训练方法,同时以Adam 作为梯度下降方式,将ReLU 函数作为激活函数,初始学习率设为0.000 1,并以模拟退火算法调节学习率,以100 epoch作为训练轮数进行模型训练。
本文采用F1 score 作为评价指标。F1 score 是衡量二分类问题精确度的重要指标,是召回率(Recall)和精确率(Precision)的调和平均,在利用F1 score 对模型精度进行评估时,每个像素点的分类结果都会影响得分。F1 score越高,得到的变化图的精确度越好。
其中,TP表示分类正确的正类别数,TN表示分类正确的负类别数,FP表示分类错误的正类别数,FN表示分类错误的负类别数。本实验中,正类别是变化类像素数,负类别是非变化类像素数。
本文通过引入注意力机制、ACBlock卷积块对U-Net网络进行改进,并利用改进后的模型对遥感图像中建筑物进行变化检测,表2展示了模型的训练时间对比情况。
从表2可以看出,U-Net模型的训练时间最短,其他四个模型相较U-Net 模型规模越来越大、参数越来越多,训练花费的时间也越来越长。Att-Unet 模型是在U-Net模型中引入了注意力机制,注意力机制中特征权重的提取和更新增加了模型参数量,从而增加了模型训练的时间;ACBlock+Unet模型是在U-Net的基础上引入了非对称卷积块,非对称卷积块中的三个分支输出相加的方式丰富了特征空间,但加操作的存在使模型训练时间增长;ACBlock+Att-Unet 模型是以上两种模型的结合,两种改进方式增加的参数之和更是模型训练耗时长的主要原因;ACBlock+Att-Unet+dataAugmentation的模型与上一个模型的参数量相同,但数据增强操作增加了训练样本数,从而增长了模型训练时间。
表2 不同改进模型训练时间对比
图17展示了两组实验结果。从图17的两组实验结果图可以看出,五种方法都提取到了变化的区域,但是提取效果有一定的差距。从图17(d)可以看出,U-Net模型可以提取出一部分的变化区域,但与Ground Truth图相比,还有一些细节区域没有提取到;图17(e)提取的变化图中包含了与周围未变化区域差别较小的变化区域,体现了加入注意力机制后的网络能更好地恢复图像细节;图17(f)提取的变化区域更清晰,说明ACBlock提取的特征更具代表性;图17(g)提取的变化区域最完整,说明注意力机制和ACBlock 对网络的双重作用使模型准确率得到了提升;从图17(h)可以看出,在进行数据增强以后,通过丰富数据集的多样性,模型性能得到了进一步提升,提取的变化区域也更为清晰和完整。表3、表4分别展示了用4.3节中的评估指标对两组测试结果进行评估的评估结果以及测试花费的时间。
图17 变化检测结果图
表3 第一组图像不同改进实验结果对比
表4 第二组图像不同改进实验结果对比
表3中统计了图17中第一组图像的测试结果,从中可以看出,在效率方面,U-Net模型测试所需时间最短,在其他方法中,随着网络参数的增加,测试所需时间也不断增长,但整体差别不大;在精度方面,五种方法的Accuracy 值都达到了95%以上,但利用U-Net 网络进行变化检测的召回率和F1 值较其他方法都比较低,而在U-Net 网络中分别引入了注意力机制和非对称卷积块后,模型在召回率、准确率和F1 值上都有了一定的提升,其中,ACBlock+Att-Unet 模型虽然准确率比U-Net模型的准确率低了0.077,但是召回率比U-Net模型高了0.230,在作为准确率和召回率的调和平均的F1 值上,ACBlock+Att-Unet模型比U-Net模型要高0.102,说明在U-Net模型上引入的两点改进,对模型性能的提升有很大作用,在进一步利用数据增强增加了数据集的多样性后,本文最终提出的基于ACBlock+Att-Unet+图像增强的方法能够较为完整地提取出建筑物的变化信息,且F1值较U-Net模型提升了将近20%。
表4统计了图17中第二组图像的测试结果,从中可以看出,在效率方面,U-Net模型测试所需时间最短,在其他方法中,随着网络参数的增加,测试所需时间也不断增长,但整体差别不大;在精度方面,五种方法的Accuracy值在逐步提升,最终达到了90%,但利用U-Net网络进行变化检测的召回率和F1 值较其他方法都要低。其中,在U-Net 中引入注意力机制后,模型的准确率虽较U-Net模型低了0.082,但召回率高了0.119,模型F1值比原始的U-Net模型高了0.040;在U-Net中引入非对称卷积块后,模型的准确率、召回率和F1值都有所提升。由以上数据分析可以得出,最终在U-Net中同时引入注意力机制和非对称卷积块而提出的基于ACBlock+Att-Unet+dataAugmentation的变化检测方法能够较为完整地提取出建筑物的变化信息,且F1值提升了将近10%。
本文通过引入非对称卷积块和注意力机制对U-Net模型进行改进,并将改进后的模型用于遥感图像变化检测算法,实现对建筑物变化情况的监测。一方面,将U-Net模型在特征提取部分的标准卷积操作替换成一组由卷积核为1×3、3×3 和3×1 卷积之和组成的非对称卷积块,增强了方形卷积核的中心骨架部分,使模型更具有鲁棒性;另一方面,在U-Net中引入了注意力机制,使模型训练时能通过抑制对非变化类像素的关注度,加强对变化类像素特征的学习,提高了模型对变化类建筑物像素的敏感性。改进后的模型能较为准确地检测出遥感图像中的变化类建筑物像素,且较原始U-Net 模型,改进后的模型在准确率和F1 score上都有提升。然而,改进后的模型网络框架较大,参数量增加,导致模型训练时间加长,因此,后续研究要朝着进一步提升模型准确率和加快模型训练速度的方向进行。