1.一种基于生成对抗网络的遥感图像超分辨重建方法,包括步骤1:预处理遥感图像数据集,制作高、低分辨率遥感图像及对应的标签作为训练数据集;步骤4:将待处理的低分辨率遥感图像和标签输入到训练好的生成模型,获得超分辨率重建的高分辨率遥感图像;
其特征在于:还包括,步骤2:使用稠密块构建用于训练的生成对抗网络模型,在生成网络中引入场景约束子网络、边增强子网络和噪声抑制子网络,在判别网络中引入谱归一化,损失函数中引入条件对抗损失,引入内容保真度;步骤3:将步骤1得到的低、高分辨率遥感图像和对应标签作为训练集输入到生成对抗网络中进行模型训练,训练过程中设定一个阈值作为训练是否结束的判断条件,如果前后两次损失差连续多次小于该阈值说明对抗生成结束,自动终止训练。
2.根据权利要求1所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤1中训练集制作过程为:(1)从遥感图像数据集和辅助标签集随机采样一批高分辨率图像和标签,作为高分辨率图像训练集;(2)对高分辨率遥感图像训练集中图像进行双三次插值下采样(下采样比例为r,r=2n,n=0,1,2,3……),获得的低分辨率遥感图像和对应标签作为低分辨率图像训练集。
3.根据权利要求2所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,采用集成Dense block构建生成对抗网络模型。
4.根据权利要求3所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,生成网络中引入辅助标签构建场景约束子网络。
5.根据权利要求4所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,生成网络中引入边增强子网络:
通过拉普拉斯算子对初步超分辨率图像进行边缘检测,抽取边缘信息,如下式;
E(x,y)表示抽取的边,L(x,y)表示拉普拉斯算子,I(x,y)表示初步超分辨率图像;
利用Dense block提取边缘图并将其同时转换为LR空间,同时使用一个mask(掩码)分支来学习要检测的图像mask;随后通过子像素卷积操作将增强的边缘图投影到HR空间上,如下式;
其中B(·)是双三次下采样算子,E(·)表示边缘增强部分中的密集子网络,用于特征提取和融合,M(·)代表mask分支,以学习图像掩码以抑制噪声和虚假边缘;PS(·) 是带有子像素卷积的上采样操作,用于将边缘图转换为HR空间; 是生成网络输出的初步超分辨率遥感图像,而不是最终的SR图像。
6.根据权利要求5所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,生成网络中引入噪音抑制网络,使用全变分损失(TV):基于TV的优化算法如下式:
式中:λ为权重系数。
7.根据权利要求6所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,通过多个卷积层和Dense连接层构建判别网络,并加入谱归一化层。
8.根据权利要求7所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,使用像素方均方误差损失(pixel-wise mean square error,pMSE)和视觉感知损失(VGG)共同构成内容损失,强制生成器生成流形一致的初步超分辨遥感图像:像素方均方误差损失(pixel-wise mean square error,pMSE)和视觉感知损失(VGG)分别如下,这里引入了辅助标签l:。
9.根据权利要求8所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,使用基于Wasserstein距离增加辅助标签约束的对抗损失函数:通过辅助标签施加条件的条件对抗损失如下:
l表示辅助类别标签信息,G表示生成网络,D表示判别网络,θg表示生成网络的参数,θd表示判别网络的参数, 和 分别表示原始图像IHR和待超分辨率图像ILR中第(x,y)像素点的像素值,W和H分别表示 和 的图像大小,r表示比例因子,α和β为控制三种损失比例的权重系数,通过训练过程获得。
10.根据权利要求9所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤2中,引入了内容保真项,最终GAN的对抗过程用公式如下:
。
11.根据权利要求10所述的基于生成对抗网络的遥感图像超分辨重建方法,其特征在于:步骤3所述模型的训练过程用下列算法所示的伪代码表示:假设:遥感图像数据集为X,批量采样器为SA,比例因子为R,辅助标签为L,边缘检测运算符为O,双三次插值下采样运算符B;确保网络G和D分别具有参数θg和θd;
最小批大小为m,总迭代次数为I,损失函数比较阈值为Lη,计数器cnt=0;
for iter
(HR,l)←SA(X,L);
LR←B(HR);
输入LR-HR图像对和标签到判别器和生成器中;
使用下式通过增加其随机梯度来更新判别器D;
使用下式通过沿其随机梯度下降来更新生成器G;
SR←G(LR|l);
Edge←O(SR);
SR←TV(SR);
SR←SR⊕Edge;
判断前后两次损失函数差,是否小于损失函数比较阈值,如果小于cnt=cnt+1;
if cnt>=10退出循环;
结束循环。