遥感图像变化检测方法、模型训练方法及对应装置转让专利

申请号 : CN202010854163.1

文献号 : CN111815627B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵巍罗振波吉翔

申请人 : 成都睿沿科技有限公司

摘要 :

本申请涉及遥感技术领域,提供一种遥感图像变化检测方法、模型训练方法及对应装置。其中,遥感图像变化检测方法包括:获取第一遥感图像和第二遥感图像;将第一遥感图像和第二遥感图像输入至预训练的神经网络模型,获得模型输出的第一蒙版图像;该神经网络模型包括设置于网络起始位置的第一模块;第一模块包括第一分支和第二分支,第一分支的输入为第一遥感图像,第二分支的输入为第二遥感图像;第一分支和第二分支在分支起始位置设置有第一类归一化模块,第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;第一分支的输出和第二分支的输出经拼接后作为第一模块的输出。该方法有利于提高神经网络模型检测遥感图像变化的准确率。

权利要求 :

1.一种遥感图像变化检测方法,其特征在于,包括:

获取第一遥感图像和第二遥感图像;

将所述第一遥感图像和所述第二遥感图像输入至预训练的神经网络模型,获得所述神经网络模型输出的第一蒙版图像;

其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第一遥感图像,所述第二分支的输入为所述第二遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;

所述第一蒙版图像中的每个像素值表示在该像素位置处所述第二遥感图像相对于所述第一遥感图像在地物类型上的变化情况;

所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有两个或两个以上的卷积层,所述第一分支和所述第二分支中的卷积层共享参数,且其中的至少两个相邻的卷积层之间设置有第一类归一化模块;

所述第一分支和所述第二分支中设置有所述第一类归一化模块的位置均包括第一支路和第二支路;其中,所述第一类归一化模块设置在所述第一支路中,所述第二支路为恒等映射,或者,所述第二支路中设置有第二类归一化模块,所述第二类归一化模块为批归一化模块;若所述第一类归一化模块位于分支的起始位置,则所述第一支路和所述第二支路的输入均为该分支的输入,若所述第一类归一化模块位于两个相邻的卷积层之间,则所述第一支路和所述第二支路的输入均为所述第一类归一化模块的上一个卷积层的输出;所述第一支路和所述第二支路的输出拼接后作为所述第一类归一化模块的下一个卷积层的输入。

2.根据权利要求1所述的遥感图像变化检测方法,其特征在于,所述神经网络模型还包括K个第二模块和K个第三模块,K为正整数;

所述第二模块包括依次连接的Ns个卷积模块,所述Ns个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,其中的第一个卷积模块中的卷积层的步长大于1,每个第二模块的各卷积模块中的卷积层的输出通道数相同,且均与该第二模块在所述K个第二模块中的序数s正相关,Ns为正整数;

所述第三模块包括依次连接的上采样模块、Ms个卷积模块以及加法模块,所述Ms个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,每个第三模块的各卷积模块中的卷积层的输出通道数相同,且均与该第三模块在所述K个第三模块中的序数s正相关,Ms为正整数;

所述第一模块、按照序数升序排列的所述K个第二模块以及按照序数降序排列的所述K个第三模块依次连接,在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及所述第一模块的输出,在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出。

3.根据权利要求2所述的遥感图像变化检测方法,其特征在于,在s=1时,Ms=Ns,在s>1时,Ms=Ns-1。

4.一种模型训练方法,其特征在于,包括:

获取训练集和验证集;其中,所述训练集和所述验证集中的每个训练样本均包括第三遥感图像和第四遥感图像;

确定神经网络模型中至少一个超参数的取值集合;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第三遥感图像,所述第二分支的输入为所述第四遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有两个或两个以上的卷积层,所述第一分支和所述第二分支中的卷积层共享参数,且其中的至少两个相邻的卷积层之间设置有第一类归一化模块;所述第一分支和所述第二分支中设置有所述第一类归一化模块的位置均包括第一支路和第二支路;其中,所述第一类归一化模块设置在所述第一支路中,所述第二支路为恒等映射,或者,所述第二支路中设置有第二类归一化模块,所述第二类归一化模块为批归一化模块;若所述第一类归一化模块位于分支的起始位置,则所述第一支路和所述第二支路的输入均为该分支的输入,若所述第一类归一化模块位于两个相邻的卷积层之间,则所述第一支路和所述第二支路的输入均为所述第一类归一化模块的上一个卷积层的输出;所述第一支路和所述第二支路的输出拼接后作为所述第一类归一化模块的下一个卷积层的输入;

从每个超参数的取值集合中选择一个取值构成超参数取值组合;

在所述训练集上训练与选择出的超参数取值组合对应的神经网络模型,直至模型收敛;

在所述验证集上统计训练好的神经网络模型的预测结果的准确率并记录所述准确率;

其中,所述预测结果为训练好的神经网络模型输出的第二蒙版图像,所述第二蒙版图像中的每个像素值表示在该像素位置处所述第四遥感图像相对于所述第三遥感图像在地物类型上的变化情况;

不断选择新的超参数取值组合用于所述神经网络模型的训练以及验证,直至遍历完所有的超参数取值组合;

根据记录的每个神经网络模型的预测结果的准确率,选择其中准确率最高的神经网络模型,并在所述训练集和所述验证集中的全部训练样本上训练所述准确率最高的神经网络模型,获得最终的神经网络模型。

5.根据权利要求4所述的模型训练方法,其特征在于,所述第一模块的所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有至少一个卷积层,其中每个卷积层的输出通道数均为D,D为正整数;

所述神经网络模型还包括K个第二模块和K个第三模块,K为正整数;

所述第二模块包括依次连接的Ns个卷积模块,所述Ns个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,其中的第一个卷积模块中的卷积层的步长大于1,且所述Ns个卷积模块中的每个卷积模块的输出通道数均为D×2s,s表示该第二模块在所述K个第二模块中的序数,Ns为正整数;

所述第三模块包括依次连接的上采样模块、Ms个卷积模块以及加法模块,所述Ms个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,且所述Ms个卷积模块中的每个卷积模块的输出通道数均为D×2s,s表示该第三模块在所述K个第三模块中的序数,Ms为正整数;

所述第一模块、按照序数升序排列的所述K个第二模块以及按照序数降序排列的所述K个第三模块依次连接,在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及所述第一模块的输出,在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出;

所述神经网络模型的超参数包括D、N1至NK以及M1至MK。

6.一种遥感图像变化检测装置,其特征在于,包括:

图像获取单元,用于获取第一遥感图像和第二遥感图像;

变化检测单元,用于将所述第一遥感图像和所述第二遥感图像输入至预训练的神经网络模型,获得所述神经网络模型输出的第一蒙版图像;

其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第一遥感图像,所述第二分支的输入为所述第二遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;

所述第一蒙版图像中的每个像素值表示在该像素位置处所述第二遥感图像相对于所述第一遥感图像在地物类型上的变化情况;

所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有两个或两个以上的卷积层,所述第一分支和所述第二分支中的卷积层共享参数,且其中的至少两个相邻的卷积层之间设置有第一类归一化模块;

所述第一分支和所述第二分支中设置有所述第一类归一化模块的位置均包括第一支路和第二支路;其中,所述第一类归一化模块设置在所述第一支路中,所述第二支路为恒等映射,或者,所述第二支路中设置有第二类归一化模块,所述第二类归一化模块为批归一化模块;若所述第一类归一化模块位于分支的起始位置,则所述第一支路和所述第二支路的输入均为该分支的输入,若所述第一类归一化模块位于两个相邻的卷积层之间,则所述第一支路和所述第二支路的输入均为所述第一类归一化模块的上一个卷积层的输出;所述第一支路和所述第二支路的输出拼接后作为所述第一类归一化模块的下一个卷积层的输入。

7.一种模型训练装置,其特征在于,包括:

训练数据获取单元,用于获取训练集和验证集;其中,所述训练集和所述验证集中的每个训练样本均包括第三遥感图像和第四遥感图像;

取值集合确定单元,用于确定神经网络模型中至少一个超参数的取值集合;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第三遥感图像,所述第二分支的输入为所述第四遥感图像;

所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有两个或两个以上的卷积层,所述第一分支和所述第二分支中的卷积层共享参数,且其中的至少两个相邻的卷积层之间设置有第一类归一化模块;所述第一分支和所述第二分支中设置有所述第一类归一化模块的位置均包括第一支路和第二支路;其中,所述第一类归一化模块设置在所述第一支路中,所述第二支路为恒等映射,或者,所述第二支路中设置有第二类归一化模块,所述第二类归一化模块为批归一化模块;若所述第一类归一化模块位于分支的起始位置,则所述第一支路和所述第二支路的输入均为该分支的输入,若所述第一类归一化模块位于两个相邻的卷积层之间,则所述第一支路和所述第二支路的输入均为所述第一类归一化模块的上一个卷积层的输出;所述第一支路和所述第二支路的输出拼接后作为所述第一类归一化模块的下一个卷积层的输入;

取值组合选择单元,用于从每个超参数的取值集合中选择一个取值构成超参数取值组合;

模型训练单元,用于在所述训练集上训练与选择出的超参数取值组合对应的神经网络模型,直至模型收敛;

模型验证单元,用于在所述验证集上统计训练好的神经网络模型的预测结果的准确率并记录所述准确率;其中,所述预测结果为训练好的神经网络模型输出的第二蒙版图像,所述第二蒙版图像中的每个像素值表示在该像素位置处所述第四遥感图像相对于所述第三遥感图像在地物类型上的变化情况;

迭代单元,用于不断选择新的超参数取值组合用于所述神经网络模型的训练以及验证,直至遍历完所有的超参数取值组合;

模型选择单元,用于根据记录的每个神经网络模型的预测结果的准确率,选择其中准确率最高的神经网络模型,并在所述训练集和所述验证集中的全部训练样本上训练所述准确率最高的神经网络模型,获得最终的神经网络模型。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-5中任一项所述的方法。

9.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-5中任一项所述的方法。

说明书 :

遥感图像变化检测方法、模型训练方法及对应装置

技术领域

[0001] 本发明涉及遥感技术领域,具体而言,涉及一种遥感图像变化检测方法、模型训练方法及对应装置。

背景技术

[0002] 遥感影像变化检测要解决的主要问题是,给定在不同时间拍摄得到的同一区域的若干遥感影像,判断出该区域中有哪些位置发生了用户需要监控的变化。这里所谓的变化,主要指地物类型的变化,如农地转建筑、荒地转林地等。近年来,随着深度学习技术的不断发展,人们开始利用神经网络模型进行遥感影像变化检测,然而,这些模型并未针对遥感影像变化检测任务进行专门设计,所以其检测准确率不高。

发明内容

[0003] 本申请实施例的目的在于提供一种遥感图像变化检测方法、模型训练方法及对应装置,以改善上述技术问题。
[0004] 为实现上述目的,本申请提供如下技术方案:
[0005] 第一方面,本申请实施例提供一种遥感图像变化检测方法,包括:获取第一遥感图像和第二遥感图像;将所述第一遥感图像和所述第二遥感图像输入至预训练的神经网络模型,获得所述神经网络模型输出的第一蒙版图像;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第一遥感图像,所述第二分支的输入为所述第二遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;所述第一蒙版图像中的每个像素值表示在该像素位置处所述第二遥感图像相对于所述第一遥感图像在地物类型上的变化情况。
[0006] 在上述方法中,神经网络模型的第一模块中设置有第一类归一化模块,该模块会统计输入图像的全局均值和全局方差,并将它们从输入图像中抹除,从而可以在一定程度上消除输入图像在数据特征分布上的差异,使得神经网络模型在检测遥感图像中地物类型的变化时能够聚焦于图像中的地物本身,而不至于过多受到外部环境因素的影响,从而有利于提高检测结果的准确率。
[0007] 在第一方面的一种实现方式中,所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有至少一个卷积层,所述第一分支和所述第二分支中的卷积层共享参数。
[0008] 通过设置卷积层可对输入图像进行特征提取,在第一模块中设置两个分支(第一分支和第二分支)分别提取第一遥感图像中的特征和第二遥感图像中的特征,使得两个特征提取过程互不干扰,并且由于第一分支和第二分支共享卷积层参数,使得两个特征的提取方式是完全一致的,从而不会在特征提取过程中引入新的差异,进而影响遥感图像的变化检测结果。
[0009] 在第一方面的一种实现方式中,所述至少一个卷积层包括两个或两个以上的卷积层,其中的至少两个相邻的卷积层之间设置有第一类归一化模块。
[0010] 两个相邻的卷积层之间设置的第一类归一化模块会统计输入特征图(即前一个卷积层输出的特征图)的全局均值和全局方差,并将它们从输入特征图中抹除,从而可以在一定程度上消除输入特征图中因数据特征分布不同而导致的差异,从而有利于提高神经网络模型输出的检测结果的准确率。而前面提到的第一分支和第二分支共享卷积层参数的设计,也确保了两个分支会采取完全相同的方式进行特征提取,不会将额外的差异引入到提取出的特征中,从而不至于影响第一类归一化模块处理输入特征图的效果。
[0011] 在第一方面的一种实现方式中,所述第一分支和所述第二分支中设置有所述第一类归一化模块的位置均包括第一支路和第二支路;其中,所述第一类归一化模块设置在所述第一支路中,所述第二支路为恒等映射,或者,所述第二支路中设置有第二类归一化模块,所述第二类归一化模块为批归一化模块;若所述第一类归一化模块位于分支的起始位置,则所述第一支路和所述第二支路的输入均为该分支的输入,若所述第一类归一化模块位于两个相邻的卷积层之间,则所述第一支路和所述第二支路的输入均为所述第一类归一化模块的上一个卷积层的输出;所述第一支路和所述第二支路的输出拼接后作为所述第一类归一化模块的下一个卷积层的输入。
[0012] 在每个第一类归一化模块处都可以设置两个支路,其目的在于赋予神经网络模型更强的学习能力,即网络将根据实际的数据学习如何组合两个支路的输出结果,而不是简单地利用单一支路的输出结果进行决策,从而有利于提高遥感图像变化检测的准确率。
[0013] 在第一方面的一种实现方式中,所述神经网络模型还包括K个第二模块和K个第三模块,K为正整数;所述第二模块包括依次连接的Ns个卷积模块,所述Ns个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,其中的第一个卷积模块中的卷积层的步长大于1,每个第二模块的各卷积模块中的卷积层的输出通道数相同,且均与该第二模块在所述K个第二模块中的序数s正相关,Ns为正整数;所述第三模块包括依次连接的上采样模块、Ms个卷积模块以及加法模块,所述Ms个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,每个第三模块的各卷积模块中的卷积层的输出通道数相同,且均与该第三模块在所述K个第三模块中的序数s正相关,Ms为正整数;所述第一模块、按照序数升序排列的所述K个第二模块以及按照序数降序排列的所述K个第三模块依次连接,在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及所述第一模块的输出,在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出。
[0014] 神经网络模型整体可视为一个U型网络,在U型网络的前半部分(第一模块和按照序数升序排列的K个第二模块)逐模块进行下采样(通过步长大于1的卷积层)减小特征图分辨率并增加通道数,在U型网络的后半部分(按照序数降序排列的K个第三模块)近乎对称地进行上采样(通过上采样模块)提高特征图分辨率并减小通道数,保证首尾对应模块输出的特征图形状一致。然后将U型网络前半部分的偏底层特征直接融合到U型网络后半部分的偏深层特征中去(利用第三模块中设置的加法模块)。
[0015] 这样设计的原因在于,在神经网络模型中,随着不断堆叠卷积层,网络提取的特征越来越复杂,特征的语义信息也越来越强,但是深层特征图因为距离原始输入太远,因此位置信息丢失也较多,不利于神经网络模型输出精确的蒙版图像。在上面的U型网络结构中将底层富含位置信息的特征图与深层富含语义信息的特征图相融合,可以让融合后的特征图兼具两者的有效部分,既能表征图像中的对象“是什么”也能定位图像中的对象“在哪里”,进而有利于神经网络模型输出高质量的蒙版图像。
[0016] 在第一方面的一种实现方式中,在s=1时,Ms=Ns,在s>1时,Ms=Ns-1。
[0017] 按照该实现方式中的设置,可以确保每个模块的运算量比较接近,神经网络模型中不易出现性能瓶颈。
[0018] 第二方面,本申请实施例提供一种模型训练方法,包括:获取训练集和验证集;其中,所述训练集和所述验证集中的每个训练样本均包括第三遥感图像和第四遥感图像;确定神经网络模型中至少一个超参数的取值集合;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第三遥感图像,所述第二分支的输入为所述第四遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;从每个超参数的取值集合中选择一个取值构成超参数取值组合;在所述训练集上训练与选择出的超参数取值组合对应的神经网络模型,直至模型收敛;在所述验证集上统计训练好的神经网络模型的预测结果的准确率并记录所述准确率;其中,所述预测结果为训练好的神经网络模型输出的第二蒙版图像,所述第二蒙版图像中的每个像素值表示在该像素位置处所述第四遥感图像相对于所述第三遥感图像在地物类型上的变化情况;不断选择新的超参数取值组合用于所述神经网络模型的训练以及验证,直至遍历完所有的超参数取值组合;根据记录的每个神经网络模型的预测结果的准确率,选择其中准确率最高的神经网络模型,并在所述训练集和所述验证集中的全部训练样本上训练所述准确率最高的神经网络模型,获得最终的神经网络模型。
[0019] 上述模型训练方法用于训练第一方面中的神经网络模型。该方法先在超参数的取值空间中搜索一组合适的超参数以确定最优的模型结构,然后训练该最优的模型结构获得最终的神经网络模型,从而得到的模型具有较好的预测性能。并且,由于在该神经网络模型中通过设置第一类归一化模块以消除遥感图像在数据特征分布上的差异,使得并不需要太多的训练样本就可以获得性能良好的模型,该特性使得本方案具有较高的实用价值,因为获取并标注遥感图像成本较高。
[0020] 在第二方面的一种实现方式中,所述第一模块的所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有至少一个卷积层,其中每个卷积层的输出通道数均为D,D为正整数;所述神经网络模型还包括K个第二模块和K个第三模块,K为正整数;所述第二模块包括依次连接的Ns个卷积模块,所述Ns个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,其中的第一个卷积模块中的卷积层的步长大于1,且所述Ns个卷积模块中的每个卷积模块的输出通道数均为D×2s,s表示该第二模块在所述K个第二模块中的序数,Ns为正整数;所述第三模块包括依次连接的上采样模块、Ms个卷积模块以及加法模块,所述Ms个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,且所述Ms个卷积模块中的每个卷积模块的输出通道数均为D×2s,s表示该第三模块在所述K个第三模块中的序数,Ms为正整数;所述第一模块、按照序数升序排列的所述K个第二模块以及按照序数降序排列的所述K个第三模块依次连接,在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及所述第一模块的输出,在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出;所述神经网络模型的超参数包括D、N1至NK以及M1至MK。
[0021] 上述实现方式中给出了一些可以通过参数搜索进行取值优化的超参数。
[0022] 第三方面,本申请实施例提供一种遥感图像变化检测装置,包括:图像获取单元,用于获取第一遥感图像和第二遥感图像;变化检测单元,用于将所述第一遥感图像和所述第二遥感图像输入至预训练的神经网络模型,获得所述神经网络模型输出的第一蒙版图像;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第一遥感图像,所述第二分支的输入为所述第二遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;所述第一蒙版图像中的每个像素值表示在该像素位置处所述第二遥感图像相对于所述第一遥感图像在地物类型上的变化情况。
[0023] 第四方面,本申请实施例提供一种模型训练装置法,包括:训练数据获取单元,用于获取训练集和验证集;其中,所述训练集和所述验证集中的每个训练样本均包括第三遥感图像和第四遥感图像;取值集合确定单元,用于确定神经网络模型中至少一个超参数的取值集合;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第三遥感图像,所述第二分支的输入为所述第四遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;取值组合选择单元,用于从每个超参数的取值集合中选择一个取值构成超参数取值组合;模型训练单元,用于在所述训练集上训练与选择出的超参数取值组合对应的神经网络模型,直至模型收敛;模型验证单元,用于在所述验证集上统计训练好的神经网络模型的预测结果的准确率并记录所述准确率;其中,所述预测结果为训练好的神经网络模型输出的第二蒙版图像,所述第二蒙版图像中的每个像素值表示在该像素位置处所述第四遥感图像相对于所述第三遥感图像在地物类型上的变化情况;迭代单元,用于不断选择新的超参数取值组合用于所述神经网络模型的训练以及验证,直至遍历完所有的超参数取值组合;模型选择单元,用于根据记录的每个神经网络模型的预测结果的准确率,选择其中准确率最高的神经网络模型,并在所述训练集和所述验证集中的全部训练样本上训练所述准确率最高的神经网络模型,获得最终的神经网络模型。
[0024] 第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
[0025] 第六方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

附图说明

[0026] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0027] 图1示出了本申请实施例提供的一种遥感图像变化检测方法的流程;
[0028] 图2示出了本申请实施例提供的神经网络模型中的第一模块的多种结构;
[0029] 图3示出了本申请实施例提供的神经网络模型的一种结构;
[0030] 图4示出了本申请实施例提供的一种模型训练方法的流程;
[0031] 图5示出了本申请实施例提供的一种遥感图像变化检测装置的结构;
[0032] 图6示出了本申请实施例提供的一种模型训练装置的结构;
[0033] 图7示出了本申请实施例提供的一种电子设备的结构。

具体实施方式

[0034] 遥感影像变化检测实现的主要功能是检测遥感图像中地物类型的变化。目前,虽然已经存在利用卷积神经网络模型进行遥感影像变化检测的方案,但其检测准确率并不高。发明人长期研究后认为,造成该现象的主要原因是领域适应问题,即由于不同的遥感图像中数据特征分布的不同(可以认为这些遥感图像属于不同的领域),会对检测结果造成极大的干扰。
[0035] 这种数据特征分布的差异往往来源于外部环境,如气候、季节、光照等因素的影响,并非实际地物的变化,但这种差异仍然会体现在遥感图像或根据遥感图像提取到的特征图中。例如,在同一地理位置拍摄的两张遥感图像中,白天拍摄的会比夜晚拍摄的更亮,具体体现为白天拍摄的遥感图像中像素值普遍偏大,这种像素值偏大并非由于图像中地物类型的变化引起,而是由于光照条件发生变化导致的。又例如,在夜晚拍摄到的遥感图像中可能存在灯光,神经网络模型中的某个通道可能对应提取到灯光的特征,然而,灯光只是夜晚环境下的一种现象,并不会实际影响地物类型的变化。
[0036] 发明人进一步研究发现,由地物类型变化所引起的图像变化,一般只发生在图像的局部,不会影响整张图像的数据特征分布;而由外部环境变化所引起图像变化,则往往作用在整张图像上,会显著影响整张图像的数据特征分布。遥感影像变化检测的关键点正在于排除外部环境变化带来的干扰,只去对地物类型的变化进行检测。
[0037] 然而,传统的卷积神经网络模型基本只能对图像的局部信息进行处理,而不会考虑全局的数据特征分布,从而也就难以解决领域适应问题。虽然理论上可以通过堆叠大量卷积层扩大卷积神经网络的感受野,使网络具有某种意义上的全局性,但其一,采集并标注遥感图像成本较高,很难采集到各种外部环境下的训练样本,而在训练样本不足的情况下难以训练深层的卷积神经网络;其二,研究表明卷积神经网络在理论上的感受野远小于实际的感受野,换句话说,卷积神经网络仍倾向于只对局部数据进行处理。综合以上两点,现有的卷积神经网络结构并不能有效检测遥感图像中的地物类型变化。
[0038] 针对现有技术中存在的上述问题,本申请实施例提供一种遥感图像变化检测方法,在神经网络模型中引入归一化处理步骤,从全局上消除不同的遥感图像在数据特征分布上的差异,从而有利于提高遥感影像变化检测的准确率。该方法将在后文详细介绍。
[0039] 需要指出,除了该遥感图像变化检测方法以外,发明人对领域适应问题的发现,以及发明人分析出的造成领域适应问题的原因,均应视为发明人对本专利申请的贡献,而不应视为现有技术中业已存在的内容。
[0040] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0041] 图1示出了本申请实施例提供的一种遥感图像变化检测方法的流程。图1中的方法可以但不限于由一电子设备执行,图7示出了该电子设备的一种可能的结构。参照图1,该方法包括:
[0042] 步骤S110:获取第一遥感图像和第二遥感图像。
[0043] 步骤S120:将第一遥感图像和第二遥感图像输入至预训练的神经网络模型,获得神经网络模型输出的第一蒙版图像。
[0044] 其中,第一遥感图像可以指一个基准图像,第二遥感图像可以指一个用于和第一遥感图像进行对比、以便确定地物变化的图像。将第一遥感图像和第二遥感图像一同输入至预训练的神经网络模型(其结构稍后说明),该神经网络模型将输出第一蒙版图像(即检测结果或者说预测结果),第一蒙版图像、第一遥感图像以及第二遥感图像分辨率相同,第一蒙版图像中的每个像素值表示在该像素位置处第二遥感图像相对于第一遥感图像在地物类型上的变化情况,即该方法具有像素级的检测精度。
[0045] 例如,第一蒙版图像可以是一个二值化的图像,其中,某个像素值取1表示在该像素位置处第二遥感图像相对于第一遥感图像在地物类型上发生了变化,某个像素值取0表示在该像素位置处第二遥感图像相对于第一遥感图像在地物类型上未发生变化。
[0046] 上述例子中的神经网络模型仅能检测一种地物类型的变化,例如农地转建筑(像素值取1表示农地转为了建筑,像素值取0表示农地仍然是农地)、荒地转林地(像素值取1表示荒地转为了林地,像素值取0表示荒地仍然是荒地)等,或者仅能检测出地物发生了变化但不区分其类型。如果要同时检测多种地物类型的变化,则第一蒙版图像中像素的取值将更加复杂,不再详细阐述。
[0047] 上述神经网络模型至少包括设置于网络起始位置的第一模块,第一模块包括第一分支和第二分支,第一分支的输入为第一遥感图像,第二分支的输入为第二遥感图像,第一分支和第二分支在分支起始位置设置有第一类归一化模块,第一分支的输出和第二分支的输出经拼接后作为第一模块的输出。其中,第一类归一化模块为实例归一化(Instance Norm)模块、组归一化(Group Norm)模块或层归一化(Layer Norm)模块。以实例归一化模块为例,其主要用于执行实例归一化操作,内部还可能包含ReLU等激活函数。
[0048] 图2示出了本申请实施例提供的神经网络模型中的第一模块的四种结构,分别如图2(A)至图2(D)所示,图2左下角还示出了图2(A)至图2(D)中各符号的含义。参照图2(A),左侧为第一分支,右侧为第二分支,Input1表示第一遥感图像,Input2表示第二遥感图像,IN表示实例归一化模块,箭头表示数据流向。
[0049] 不妨假设第一遥感图像是一个2048×2048×3(长×宽×通道数)的图像,实例归一化模块会对3个通道分别独立进行以下处理:计算这2048×2048个像素值的均值与方差,对这2048×2048个像素值减去均值并除以方差后输出,此时每个通道中像素值的均值变为0,方差则变为1。在一些实现方式中,还可以引入可学习的参数a和b(3个通道每个通道设置一组a和b),对上述减均值除方差的结果先乘上参数a再加上参数b后再输出,此时每个通道中像素值的均值变为b,方差则变为a。
[0050] 上述均值和方差都是根据每个通道中全部的像素值进行统计的,因此是全局意义上的均值和方差,不同的均值和方差,代表的正是遥感图像中的数据特征在分布上的差异(例如,白天拍摄的遥感图像的像素值均值偏高),从而用像素值减去均值并除以方差就相当于在一定程度上消除了遥感图像在数据特征分布上的差异(例如,遥感图像的像素值均值均变为0,相当于消除了两张遥感图像因光照分布不同导致的差异),进而将经实例归一化模块处理的第一遥感图像和第二遥感图像拼接后用于进一步检测地物类型的变化,可以使得神经网络模型在检测地物类型的变化时能够聚焦于图像中的地物本身,而不至于过多受到外部环境因素的影响,从而显著提高了检测结果的准确率。换句话说,通过设置实例归一化模块处理输入神经网络模型的图像,使得神经网络模型具有了抵抗数据分布不同所造成的干扰的能力。
[0051] 再者,由于减去均值并除以方差的操作本质上只是一个对数据进行平移与放缩的过程,并未改变数据的整体结构,因此对于检测结果不会产生负面影响。
[0052] 此外,该方法是通过改进神经网络模型的结构本身来提高检测结果的准确率,而并非是通过采集更多的遥感图像来训练神经网络模型以提高检测结果的准确率,因此方法的实施成本较低,实用价值较高。
[0053] 在上面的阐述中均以实例归一化模块为例,组归一化模块和层归一化模块也具有类似的效果,不再重复分析。相较而言,组归一化和层归一化都会根据多个通道中的数据统计均值和方差,通过扩大计算均值方差时的样本量以提高计算结果的稳定性,但针对本申请所要解决的图与图之间分布不同的问题,多通道混合统计不如单通道独立统计效果好(单通道独立统计即实例归一化)。
[0054] 在一些实现方式中,第一分支和第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有至少一个卷积层,并且第一分支和第二分支中的卷积层共享参数。参照图2(B),第一分支和第二分支在实例归一化模块之后,还分别设置有两个卷积层,其卷积核尺寸均为3×3,输出通道数均为D(D为正整数),两个分支对应的卷积层之间共享参数。
[0055] 通过设置卷积层可对输入图像进行特征提取,在第一模块中设置两个分支分别提取第一遥感图像中的特征和第二遥感图像中的特征,使得两个特征提取过程互不干扰,并且由于第一分支和第二分支共享卷积层参数,使得两个特征的提取方式是完全一致的,从而不会在特征提取过程中引入新的差异,进而影响遥感图像的变化检测结果。可以理解的,为保持这种一致性,第一分支和第二分支可以采用完全相同的网络结构。
[0056] 进一步的,若第一分支和第二分支中的卷积层有两个或两个以上,则可以在其中至少两个相邻的卷积层之间设置第一类归一化模块。参照图2(C),在两个卷积层之间也设置了实例归一化模块,这样每个分支中就包含两个实例归一化模块。可以理解的,若分支中包含更多的卷积层,也可以设置更多的实例归一化模块。
[0057] 根据前文内容,设置于分支起始位置的第一类归一化模块会统计遥感图像的全局均值和全局方差,而此处设置于两个卷积层之间的第一类归一化模块则会统计输入特征图(即前一个卷积层输出的特征图)的全局均值和全局方差,并将它们从输入特征图中抹除,从而可以在一定程度上消除输入特征图中因数据特征分布不同而导致的差异,从而有利于提高神经网络模型输出的检测结果的准确率。例如,特征图中的某个通道对应提取到灯光的特征,在实例归一化的过程中,该通道中的像素值减去均值除以方差就相当于消除了两张遥感图像因灯光分布不同所导致的差异。
[0058] 此外,由于第一分支和第二分支共享卷积层参数,不会将额外的差异引入到提取出的特征中,从而不至于影响第一类归一化模块处理输入特征图的效果。
[0059] 进一步的,在一些实现方式中,第一模块的第一分支和第二分支中设置有第一类归一化模块的位置均包括第一支路和第二支路。
[0060] 其中,第一类归一化模块设置在第一支路中;第二支路为恒等映射,或者,第二支路中设置有第二类归一化模块,且第二类归一化模块为批归一化(Batch Norm)模块。批归一化模块主要用于执行批归一化操作,内部还可能包含ReLU等激活函数。
[0061] 若第一类归一化模块位于分支的起始位置,则第一支路和第二支路的输入均为该分支的输入;若第一类归一化模块位于两个相邻的卷积层之间,则第一支路和第二支路的输入均为第一类归一化模块的上一个卷积层的输出。第一支路和第二支路的输出拼接后作为第一类归一化模块的下一个卷积层的输入。
[0062] 参照图2(D),以第一分支为例,分支的起始位置(也就是第一个实例归一化模块的位置)处设置有两个支路,两个支路的输入均为第一遥感图像,第一支路(左侧)中设置有实例归一化模块,第二支路(右侧)为一个恒等映射,两个支路的输出拼接后作为第一个卷积层的输入。两个卷积层之间(也就是第二个实例归一化模块的位置)设置有两个支路,两个支路的输入均为第一个卷积层的输出,第一支路中设置有实例归一化模块,第二支路中设置有批归一化模块,两个支路的输出拼接后作为第二个卷积层的输入。其中,批归一化模块具有加快网络的训练速度、控制梯度爆炸、防止过拟合等作用。
[0063] 在每个第一类归一化模块处都设置两个支路,其目的在于赋予神经网络模型更强的学习能力,即网络将根据实际的数据学习如何组合两个支路的输出特征,而不是简单地利用单一支路的输出特征进行决策,从而有利于提高遥感图像变化检测的准确率。
[0064] 前文仅介绍了神经网络模型中的第一模块,在第一模块之后,神经网络模型还可能包含其他模块。例如,在一些实现方式中,神经网络模型还包括K个第二模块和K个第三模块,其中K为正整数,可以对K个第二模块进行编号,分别为1至K,同样也可以对K个第三模块进行编号,分别为1至K。
[0065] 每个第二模块均包括依次连接的N(s Ns为正整数)个卷积模块,s为该第二模块在K个第二模块中的序数(取1至K中的整数)。Ns个卷积模块中的每个卷积模块均包括一个卷积层和一个批归一化模块,其中第一个卷积模块中的卷积层的步长大于1,其他卷积模块中的卷积层的步长等于1。同一个第二模块的各卷积模块中的卷积层的输出通道数相同,且均与该第二模块在K个第二模块中的序数s正相关。
[0066] 每个第三模块均包括依次连接的上采样模块、M(s Ms为正整数)个卷积模块以及加法模块,s为该第三模块在K个第三模块中的序数(取1至K中的整数)。Ms个卷积模块中的每个卷积模块均包括一个卷积层和一个批归一化模块,各卷积模块中的卷积层步长均为1,同一个第三模块的各卷积模块中的卷积层的输出通道数相同,且均与该第三模块在K个第三模块中的序数s正相关。
[0067] 第一模块、按照序数升序排列的K个第二模块以及按照序数降序排列的K个第三模块依次连接。在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第一模块的输出;在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出。
[0068] 图3示出了一种符合上面描述的神经网络模型的结构,在图3中,K=3。图3中首先分别示出了第一模块、第二模块、第三模块的结构,在图3的下方则是神经网络模型的总体结构,图3右侧中部还示出了图3中各符号的含义。
[0069] 其中,第一模块A1的结构和图2(D)中相同,不再重复介绍。
[0070] 第二模块Bs共有3个,分别记为B1、B2、B3,在第二模块Bs中,第一个卷积模块中的卷积层的步长为2,用于执行2倍的下采样,其他卷积模块中的卷积层步长均为1,卷积核尺寸为3×3,输出通道数为D×2s(这里的D即第一模块A1中的D相同),输出通道数和第二模块Bs的序数s成正相关关系。
[0071] 第三模块Cs共有3个,分别记为C1、C2、C3,在第三模块Cs中,上采样模块执行2倍的上采样(倍数和第二模块中的一致),上采样方式可以采用双线性插值等方法,各卷积模块中的卷积层步长均为1,卷积核尺寸为3×3,输出通道数为D×2s,输出通道数和第三模块Cs的序数s成正相关关系。加法模块的输入为第三模块Cs中最后一个卷积模块的输出,以及来自第一模块或第二模块的输出(称为跳跃连接skip connect)。
[0072] 参照图3中神经网络模型的总体结构,第一模块、按照序数升序排列(B1、B2、B3顺序)的3个第二模块以及按照序数降序排列(C3、C2、C1顺序)的3个第三模块依次连接。第一模块A1、第二模块B1以及第二模块B2的输出分别输入到第三模块C1、第三模块C2、第三模块C3中的加法模块中参与求和运算。第一模块A1的输入为第一遥感图像和第二遥感,第三模块C1的输出再经过适当处理后得到最终的预测结果,即第一蒙版图像。
[0073] 若最终得到的第一蒙版图像是一个二值化图像,即处理一个2分类问题,则可以像图3中示出的,在第三模块C1之后设置一个输出通道数为2的卷积层,并利用softmax函数(图3中未示出)将该卷积层的输出结果转化为2个分别对应“地物类型没有变化的概率”和“地物类型有变化的概率”的通道,这两个通道对应像素位置处的概率之和为1。然后,可以选择其中“地物类型有变化的概率”对应的通道,根据预设的阈值(如0.5)将其中的概率二值化,最终得到第一蒙版图像。若处理N分类问题(N>2),则可以在第三模块C1之后设置一个输出通道数为N的卷积层,其原理与2分类问题类似,不再具体说明。
[0074] 在另一些实现方式中,第三模块C1之后的卷积层也可以输出单通道的结果,然后使用sigmoid函数将其转换为概率。
[0075] 结合图3示出的结构可知,神经网络模型整体可视为一个U型网络,在U型网络的前半部分(第一模块和按照序数升序排列的K个第二模块)逐模块进行下采样(通过步长大于1的卷积层)减小特征图分辨率并增加通道数(输出通道数与序数正相关),在U型网络的后半部分(按照序数降序排列的K个第三模块)近乎对称地进行上采样(通过上采样模块)提高特征图分辨率并减小通道数(输出通道数与序数正相关,但第三模块按照序数降序排列),保证首尾对应模块输出的特征图形状一致。然后将U型网络前半部分的偏底层特征直接通过跳跃连接的方式融合到U型网络后半部分的偏深层特征中去(利用第三模块中设置的加法模块)。
[0076] 这样设计的原因在于,在神经网络模型中,随着不断堆叠卷积层,网络提取的特征越来越复杂,特征的语义信息也越来越强,或者说越来越能够反映图像中的对象“是什么”,但是深层特征图因为距离原始输入太远,因此位置信息丢失也较多,不利于神经网络模型输出精确的蒙版图像。在上面的U型网络结构中将底层富含位置信息的特征图与深层富含语义信息的特征图相融合,可以让融合后的特征图兼具两者的有效部分,既能表征图像中的对象“是什么”也能定位图像中的对象“在哪里”,进而有利于神经网络模型输出高质量的蒙版图像。
[0077] 在一种网络设计原则中,每个模块内部,特征图的分辨率、通道数尽量保持不变(例如,在第二模块或第三模块的起始位置处就进行下采样或上采样,之后不再改变特征图的分辨率)。通道数相同,代表特征的维度相同,信息量基本一致,因此可以认为处理相同通道数的特征图所需要的卷积层数量基本是一致的。
[0078] 在这一原则的指导下,第二模块中卷积模块的数量Ns和第三模块中卷积模块的数量Ms之间可以满足如下关系:在s=1时,Ms=Ns;在s>1时,Ms=Ns-1。
[0079] 具体到图3中,由于第二模块B1和第三模块C2的输出通道数一致,第二模块B2和第三模块C3的输出通道数一致,所以有M2=N1,M3=N2;第一模块A1和第三模块C1的输出通道数虽然一致,但由于第一模块A1是用于处理原始的遥感图像的,其内部结果和第二模块、第三模块也区别比较大,所以不妨让第三模块C1和与之最接近的第三模块C2具有相同的卷积模块个数,即M1=N1。
[0080] 此外,网络设计另一原则是尽量保持各模块的计算量接近,不要让有某一个模块占据大多数计算量,否则可能导致网络性能瓶颈。按照上述方式设计的U型网络结构,同层的模块之间运算量比较接近(因卷积模块个数相同),有利于避免网络性能瓶颈,并使得在取得相同准确率的情况下网络的执行速度较快。
[0081] 图4示出了本申请实施例提供的一种模型训练方法的流程。该方法用于训练一个可在图1的方法中使用的神经网络模型。图4中的方法可以但不限于由一电子设备执行,图7示出了该电子设备的一种可能的结构。参照图4,该方法包括:
[0082] 步骤S210:获取训练集和验证集。
[0083] 其中,训练集和验证集中的每个训练样本均包括第三遥感图像和第四遥感图像,第三遥感图像可以指一个基准图像,第四遥感图像可以指一个用于和第三遥感图像进行对比、以便确定地物变化的图像,此外,训练样本中还可以包含逐像素标签(标注出遥感图像中发生了变化的区域)。
[0084] 如果有已经制作好的训练集和验证集则可以直接获取使用,如果只有原始的训练样本则可以先划分出训练集和验证集再使用,例如,按照4:1的比例划分训练集和验证集。
[0085] 步骤S220:确定神经网络模型中至少一个超参数的取值集合。
[0086] 神经网络模型的结构前文已经介绍,这里可以选择前文介绍的任意一种结构,仅有的区别在于模型的输入和输出不同。
[0087] 超参数可以指一些能够决定模型结构的参数,不包括卷积层的权重、偏置等参数。不妨以图3示出的模型结构为例,模型中的超参数可以包括D、N1至N3以及M1至M3,当然图3是K=3的情况,K取其他值的情况也是类似。
[0088] 设定每个超参数的取值集合如下:
[0089] D的可能取值为{16,32,64};
[0090] N1、N2、N3、M1、M2、M3的可能取值均为{2,4,6}。
[0091] 步骤S230:从每个超参数的取值集合中选择一个取值构成超参数取值组合。
[0092] 例如,一个超参数取值组合可以是一组{D、N1、N2、N3、M1、M 2、M 3}的值。在选取超参数的取值时,还可以设置一定的限制条件以减小超参数的搜索范围,例如,要求M2=N1,M3=N2,M1=N1,设置该条件的原因在上文已经阐述。
[0093] 步骤S240:在训练集上训练与选择出的超参数取值组合对应的神经网络模型,直至模型收敛。
[0094] D、N1、N2、N3、M1、M 2、M 3的值确定以后,图3中神经网络模型的结构也就确定了。从而可以对该模型进行有监督的训练,一种可能的训练过程为:首先将训练样本中的第三遥感图像和第四遥感图像输入到模型当中,获得模型输出的第二蒙板图像,第二蒙版图像中的每个像素值表示在该像素位置处第四遥感图像相对于第三遥感图像在地物类型上的变化情况;然后根据第二蒙版图像和训练样本中的标签之间的差异计算预测损失;最后基于预测损失,利用反向传播算法更新神经网络模型的参数。
[0095] 步骤S250:在验证集上统计训练好的神经网络模型的预测结果的准确率并记录准确率。
[0096] 这里的预测结果就是指将验证集中的训练样本所包含的第三遥感图像和第四遥感图像输入至步骤S240中训练好的神经网络模型后,模型输出的第二蒙版图像。由于验证集中的训练样本也是具有标签的,所以预测结果的准确率可以统计并记录。
[0097] 步骤S260:判断是否遍历完所有的超参数取值组合。
[0098] 如果已经遍历完所有的超参数取值组合,则执行步骤S270,否则执行步骤S230,并选择一个之前未选择过的超参数取值组合。
[0099] 步骤S270:根据记录的每个神经网络模型的预测结果的准确率,选择其中准确率最高的神经网络模型,并在训练集和验证集中的全部训练样本上训练准确率最高的神经网络模型,获得最终的神经网络模型。
[0100] 每个超参数取值组合都对应一个神经网络模型的结构,并且在前面的迭代步骤中(步骤S230至步骤S260)已经记录了得到的每个神经网络模型在验证集上进行遥感图像变化检测的准确率,从而可以按照准确率选择其中最优的模型结构,并再次利用所有的训练样本训练该模型,直至得到最终的神经网络模型,该最终的神经网络模可用于执行图1中的方法。
[0101] 总结上面的模型训练方法,一方面,该方法先在超参数的取值空间中搜索一组合适的超参数以确定最优的模型结构,然后训练该最优的模型结构获得最终的神经网络模型,从而得到的模型具有较好的预测性能。
[0102] 另一方面,由于上述神经网络模型的结构本身(设置有第一类归一化模块)就决定了其能够抵抗因遥感图像中数据特征分布不同所造成的干扰,因此,并不需要太多的训练样本就可以获得性能良好的模型,使得该方法具有较高的实用价值。
[0103] 图5示出了本申请实施例提供的遥感图像变化检测装置300的功能模块图。参照图5,遥感图像变化检测装置300包括:
[0104] 图像获取单元310,用于获取第一遥感图像和第二遥感图像;
[0105] 变化检测单元320,用于将所述第一遥感图像和所述第二遥感图像输入至预训练的神经网络模型,获得所述神经网络模型输出的第一蒙版图像;
[0106] 其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第一遥感图像,所述第二分支的输入为所述第二遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;所述第一蒙版图像中的每个像素值表示在该像素位置处所述第二遥感图像相对于所述第一遥感图像在地物类型上的变化情况。
[0107] 在遥感图像变化检测装置300的一种实现方式中,所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有至少一个卷积层,所述第一分支和所述第二分支中的卷积层共享参数。
[0108] 在遥感图像变化检测装置300的一种实现方式中,所述至少一个卷积层包括两个或两个以上的卷积层,其中的至少两个相邻的卷积层之间设置有第一类归一化模块。
[0109] 在遥感图像变化检测装置300的一种实现方式中,所述第一分支和所述第二分支中设置有所述第一类归一化模块的位置均包括第一支路和第二支路;其中,所述第一类归一化模块设置在所述第一支路中,所述第二支路为恒等映射,或者,所述第二支路中设置有第二类归一化模块,所述第二类归一化模块为批归一化模块;若所述第一类归一化模块位于分支的起始位置,则所述第一支路和所述第二支路的输入均为该分支的输入,若所述第一类归一化模块位于两个相邻的卷积层之间,则所述第一支路和所述第二支路的输入均为所述第一类归一化模块的上一个卷积层的输出;所述第一支路和所述第二支路的输出拼接后作为所述第一类归一化模块的下一个卷积层的输入。
[0110] 在遥感图像变化检测装置300的一种实现方式中,所述神经网络模型还包括K个第二模块和K个第三模块,K为正整数;所述第二模块包括依次连接的Ns个卷积模块,所述Ns个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,其中的第一个卷积模块中的卷积层的步长大于1,每个第二模块的各卷积模块中的卷积层的输出通道数相同,且均与该第二模块在所述K个第二模块中的序数s正相关,Ns为正整数;所述第三模块包括依次连接的上采样模块、Ms个卷积模块以及加法模块,所述Ms个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,每个第三模块的各卷积模块中的卷积层的输出通道数相同,且均与该第三模块在所述K个第三模块中的序数s正相关,Ms为正整数;所述第一模块、按照序数升序排列的所述K个第二模块以及按照序数降序排列的所述K个第三模块依次连接,在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及所述第一模块的输出,在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出。
[0111] 在遥感图像变化检测装置300的一种实现方式中,在s=1时,Ms=Ns,在s>1时,Ms=Ns-1。
[0112] 本申请实施例提供的遥感图像变化检测装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
[0113] 图6示出了本申请实施例提供的模型训练装置400的功能模块图。参照图6,模型训练装置400包括:
[0114] 训练数据获取单元410,用于获取训练集和验证集;其中,所述训练集和所述验证集中的每个训练样本均包括第三遥感图像和第四遥感图像;
[0115] 取值集合确定单元420,用于确定神经网络模型中至少一个超参数的取值集合;其中,所述神经网络模型包括设置于网络起始位置的第一模块;所述第一模块包括第一分支和第二分支,所述第一分支的输入为所述第三遥感图像,所述第二分支的输入为所述第四遥感图像;所述第一分支和所述第二分支在分支起始位置设置有第一类归一化模块,所述第一类归一化模块为实例归一化模块、组归一化模块或层归一化模块;所述第一分支的输出和所述第二分支的输出经拼接后作为所述第一模块的输出;
[0116] 取值组合选择单元430,用于从每个超参数的取值集合中选择一个取值构成超参数取值组合;
[0117] 模型训练单元440,用于在所述训练集上训练与选择出的超参数取值组合对应的神经网络模型,直至模型收敛;
[0118] 模型验证单元450,用于在所述验证集上统计训练好的神经网络模型的预测结果的准确率并记录所述准确率;其中,所述预测结果为训练好的神经网络模型输出的第二蒙版图像,所述第二蒙版图像中的每个像素值表示在该像素位置处所述第四遥感图像相对于所述第三遥感图像在地物类型上的变化情况;
[0119] 迭代单元460,用于不断选择新的超参数取值组合用于所述神经网络模型的训练以及验证,直至遍历完所有的超参数取值组合;
[0120] 模型选择单元470,用于根据记录的每个神经网络模型的预测结果的准确率,选择其中准确率最高的神经网络模型,并在所述训练集和所述验证集中的全部训练样本上训练所述准确率最高的神经网络模型,获得最终的神经网络模型。
[0121] 在模型训练装置400的一种实现方式中,所述第一模块的所述第一分支和所述第二分支在设置于分支起始位置的第一类归一化模块之后,还设置有至少一个卷积层,其中每个卷积层的输出通道数均为D,D为正整数;所述神经网络模型还包括K个第二模块和K个第三模块,K为正整数;所述第二模块包括依次连接的Ns个卷积模块,所述Ns个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,其中的第一个卷积模块中的卷积层的步长大s于1,且所述Ns个卷积模块中的每个卷积模块的输出通道数均为D×2 ,s表示该第二模块在所述K个第二模块中的序数,Ns为正整数;所述第三模块包括依次连接的上采样模块、Ms个卷积模块以及加法模块,所述Ms个卷积模块中的每个卷积模块均包括卷积层和批归一化模块,且所述Ms个卷积模块中的每个卷积模块的输出通道数均为D×2s,s表示该第三模块在所述K个第三模块中的序数,Ms为正整数;所述第一模块、按照序数升序排列的所述K个第二模块以及按照序数降序排列的所述K个第三模块依次连接,在s=1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及所述第一模块的输出,在s>1时,第s个第三模块中的加法模块的输入包括:该加法模块的上一个卷积模块的输出以及第s-1个第二模块的输出;所述神经网络模型的超参数包括D、N1至NK以及M1至MK。
[0122] 本申请实施例提供的模型训练装置400,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
[0123] 图7示出了本申请实施例提供的电子设备500的一种可能的结构。参照图7,电子设备500包括:处理器510、存储器520以及通信接口530,这些组件通过通信总线540和/或其他形式的连接机构(未示出)互连并相互通讯。
[0124] 其中,存储器520包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。处理器510以及其他可能的组件可对存储器520进行访问,读和/或写其中的数据。
[0125] 处理器510包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,简称NPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器510为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
[0126] 通信接口530包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口530可以包括进行有线和/或无线通信的接口。
[0127] 在存储器520中可以存储一个或多个计算机程序指令,处理器510可以读取并运行这些计算机程序指令,以实现本申请实施例提供的遥感图像变化检测方法和/或模型训练方法。
[0128] 可以理解,图7所示的结构仅为示意,电子设备500还可以包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。电子设备500可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、嵌入式设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备500也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
[0129] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的遥感图像变化检测方法和/或模型训练方法。例如,计算机可读存储介质可以实现为图7中电子设备500中的存储器520。
[0130] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。