蒋文杰,罗晓曙,戴沁璇
广西师范大学 电子工程学院,广西 桂林 541004
随着现代航天技术的快速发展,遥感图像已经广泛应用到获取地理数据、地球资源和应急灾害等领域[1-3]。在获取遥感图像的过程中,由于受到频率干扰、大气扰动和成像设备等多因素的影响,导致传统的遥感图像分辨率普遍偏低。高分辨率遥感图像相比低分辨率遥感图像,图像细节信息更加丰富,更有利于遥感数据的后续处理,因此,图像超分辨率重建作为提高图像分辨率的方法,在遥感图像和医学影像等领域展现出巨大的潜力和应用价值。
超分辨率重建技术作为一种提高图像分辨率的有效方法,其最早于20 世纪60 年代由Harris 等人[4]提出。目前超分辨率重建方法主要分为学习法[5]、插值法[6]和重建法[7]。其中,插值法用于估计未知像素值,该方法简单可行,但对纹理细节恢复不明显。重建法是根据先验知识对重建过程进行约束,虽然重建效果较好,但是计算复杂,运算时间长。学习法主要是通过高低分辨率图像间的映射关系来约束超分辨率重建,效果一般优于差值法和重建法。
2014 年Dong[8]等首次将卷积神经网络SRCNN(Super-Resolution Convolutional Neural Network)应用于图像超分辨率重建,该算法极大地提高了重建图像的视觉效果和量化指标。Kim等[9]提出了将残差思想引入卷积神经网络VDSR(Very Deep Super-Resolution),并将其运用到图像超分辨率重建上,该方法在降低学习成本的同时加快了学习速率。Lai等[10]提出了基于拉普拉斯金字塔的卷积神经网络模型,通过逐步上采样的方式实现了图像超分辨率重建。基于现有图像超分辨率重建算法的研究,提出了一种改进的遥感图像超分辨率重建模型,主要工作有以下三点:
(1)改进CGAN(Conditional Generative Adversarial Nets)[11],用于遥感图像超分辨率重建。
(2)在判别器网络中,引入梯度惩罚损失函数[12],提高训练的稳定性和收敛速度。
(3)相较于传统使用随机向量作为输入,采用低分辨率图像作为生成器输入,实现了四倍上采样的遥感图像超分辨率重建。
Goodfellow[13]及其学生于2014 年提出了生成对抗网络GAN[13](Generative Adversarial Network)。该网络作为一种概率生成模型包含了判别器D 和生成器G 两个模块,分别用于估计输入图片的真实概率和抓取数据的分布特征。判别器尽可能将真实图像和生成图像区别开来,而生成器则尽可能生成真实图片来欺骗判别器,两者进行极大极小值博弈,最终达到动态平衡,其过程如式(1)所示:
由于GAN 网络不可控,难以对输出进行控制。为了解决这个问题,条件对抗网络CGAN 是在GAN 的生成器和判别器都额外添加了一个条件y,生成器必须要生成和条件y匹配的样本,判别器不仅要判别图像是否真实,还要判别图像和条件y是否匹配。生成器G,输入为一个噪声z,输出一个图像G(z)。判别器D,输入为一个图像x,输出该图像为真实的概率D(x),CGAN的损失函数如式(2)所示:
CGAN结合了卷积神经网络强大的特征提取能力,在此基础上加以条件辅助生成样本。为得到高分辨率的遥感图像,在对网络进行训练时可将高分辨率的遥感图像作为额外输入,其作用相当于网络训练的控制条件,在训练过程中将上述的控制条件作为标签加到训练数据中,最后得到所需要的高分辨率遥感图像。
然而,如果CGAN网络中训练分布和生成分布之间存在的差异较少,且对生成分布和真实分布的度量采用JS散度衡量,这会导致判别器更容易分辨是生成图片还是训练图片,由此梯度问题将被放大,这会导致模型不收敛,难以训练,从而存在梯度消失的问题。
为了解决网络训练收敛速度慢的问题,WGAN[14](Wasserstein Generative Adversarial Nets)提出了使用Wasserstein距离作为网络训练的优化目标,其具体表达式如式(3)所示:
WGAN 使用Wassertein 距离去衡量生成数据分布和真实数据分布之间的距离,理论上解决了网络训练不稳定的问题。为了将Wassertein距离作为优化方式来训练网络,WGAN 需要满足Lipschitz连续性,最后只能将权重压缩到一个范围来强制满足Lipschitz 连续性。这会造成对深度神经网络拟合能力的极大浪费,另外对权重进行强制剪切容易导致梯度消失或者爆炸。
针对上述问题,提出了采用梯度惩罚来满足Lipschitz连续性。为了尽可能将判别器的梯度∇D(x)变大,而Lipschitz 连续性限制要求判别器的梯度∇D(x)不能超过K,所以两者的欧氏距离表达式如式(4)所示:
由于K是一个大于等于零的常数并且梯度∇D(x)不能超过K,为了方便计算,设K的数值为1,则与原来WGAN判别器的目标函数表达式结合的表达式如式(5)所示:
上式中λ是一个常数并且取值范围是0到1,由于式(5)的最后一项描述需要在整个样本空间进行采样,而实际训练网络的时候只需要在生成样本空间和真实样本空间两个空间的重叠区域进行采样。所以采用随机抽取一对真假样本以及0~1均匀分布的随机数的采样方式,如式(6)所示:
接着在xr和xg之间的连线上随机采样,如式(7)所示:
最后将采样的结果所满足的分布为p~x,此时可以得到判别器的损失函数,如式(8)所示:
这样做不仅解决了原先网络训练梯度消失和爆炸的问题,还使得网络实现了比WGAN 更快的收敛速度和更高质量的样本。
本文的CNN 生成器网络采用了包含两个1/2 间隔的卷积单元,9个剩余残差单元和两个反卷积单元,每个残差模块由一个卷积层,实例归一化层[15]和ReLU[16]激活组成。残差网络结构如图1所示。
图1 残差网络结构
深度学习对于网络深度遇到的主要问题是梯度消失和梯度爆炸,传统对应的解决方案是数据的初始化和正则化,但是这样虽然解决了梯度的问题,却存在网络性能的退化问题。而残差用来设计解决退化问题,其结构使得网络在输入特征基础上学习到新的特征,使得网络的性能进一步得以提升,同时也解决了梯度问题,残差单元的公式如式(9)所示:
其中,Xi表示残差学习的输入,θ表示残差学习的参数,Xi+1表示残差学习的输出。
在图像生成过程中,以高分辨率遥感图像作为条件变量,引导低分辨率图像重建。不同于一般的对抗网络生成器输入为任意随机向量,输入为1/4 采样的低分辨率遥感图像,输入的每张低分辨率遥感图像对应有高分辨率遥感图像进行重建。
对于判别器网络D,判别器采用PatchGAN[17]的方法,即对每张输出图像的每个N×N小块(Patch)计算概率,然后再将这些概率求平均值作为整体的输出。这样的结果通常通过卷积层来达到,最终输出的矩阵中的每一个元素,实际上代表着原图中一个比较大的感受野,也就是对应着原图中的一个Patch。该方法能够加快模型收敛和计算速度。PatchGAN结构如图2所示。
图2 PatchGAN结构
在对模型进行算法改进后,采取了适用于图像超分辨率重建的网络模型,生成器与判别器整体的网络结构如图3和图4所示。
其中,判别器的损失函数如式(10)所示:
损失函数包含对抗损失和内容损失,其中对抗损失如式(11)所示:
内容损失是估计生成图像和真实图像两者的差距,这里的内容损失为L2损失,它反映的是生成的特征图和真实的特征图之间的距离,具体的公式如式(12)所示:
图3 生成器网络结构
图4 判别器网络结构
最终得到的损失函数如式(13)所示:
上式中由于是加权合并,所以λ为0到1的常数。
由于在模型训练中需要大量的卷积计算,相对于CPU而言,GPU的运用将极大地缩短训练时间,加快训练速度。本实验使用的计算机配置是双E5-2637 v4 CPU,操作系统为Ubuntu 16.04,同时还使用了GTX1080Ti显卡、12 GB内存来加速训练。实验使用的平台是机器学习框架Tensorflow1.9。
本文采用的数据集,大约包含了1万张30类的高分影像,包含了机场、立交桥和车场等15 个类别,训练集和测试集的比例8∶2,进行1/4 采样,使用SSIM(结构相似度)和PSNR(峰值信噪比)两种评价算法对重建图像进行评价,同时使用SRCNN、FSRCNN、SRGAN重构出的超分辨率图像作为结果对比,其中红色矩形框代表的是感兴趣区域,如图5所示。
图5 输入图像
训练时,为了避免模型陷入局部最优解,首先预训练好VGG19 模型作为初始化模型。训练过程中,将生成器和判别器进行交替训练,学习率设置为0.000 2,迭代次数为500,训练时间为72 h,ROI 重建效果如图6所示。
重建效果由图6 可知,SRCNN 模型重建效果较为模糊,只能显示物体的轮廓;FSRCNN 的效果相较于SRCNN 有一定的改进,去模糊性效果显著并且显示出物体的部分细节纹理;SRGAN 模型在去模糊的基础上对图像细节恢复显著,但同时图像出现了部分失真,图像局部出现了扭曲;本文的方法相较于前面三种在去模糊和细节恢复上均取得了显著提升,重建效果最接近于原图。
评价超分辨率图像质量主要分为主观评价和客观评价,前者是通过观察人员的主观感受来评价重构图像质量,后者是根据量化指标[18-19]来衡量输出图像质量。选取了均方误差MSE(Mean Squared Error),峰值信噪比 PSNR(Peak Signal to Noise Ratio)和结构相似度SSIM(Structural Similarity Index)来综合评价重构图像性能,其中,MSE如下所示:
PSNR表示为:
SSIM如下所示:
在公式(14)中h,w,k分别表示图像的长、宽和通道;式(15)中的n等于 8;式(16)中的l(x,y)、c(x,y)、s(x,y) 分别表示图像的亮度、对比度和结构相似度。MSE越小代表重建图像和原图像误差越小,PSNR和SSIM越大表示重构图像越接近原始图像。
图6 各种超分辨率重建结果对比
为了更加客观和准确评价各种算法的重建图像,通过测试集(100张图片)对各种算法进行了比较,实验的对比结果如表1 所示。从表1 可知,相较于SRCNN、FSRGAN、SRGAN算法在测试集的评价结果,MSE分别减少了 29.03,5.09 和41.97,PSNR 分别提高了4.27 dB、1.79 dB 和0.76 dB,SSIM 指标略有提高。根据实验结果,证实了本文改进算法能够有效提升模型的准确率与稳定性。
表1 各超分辨率重建方法客观指标
提出了一种基于改进条件生成对抗网络的遥感图像超分辨率重建算法,构建了遥感图像超分辨率重建模型。通过在判别器中引入梯度惩罚函数对判别器梯度进行限制,同时训练了CNN生成器,使用内容损失和对抗损失作为目标函数,输入图像为低分辨率图像。实验结果表明在输出图像在视觉效果和评价指标均优于其他对比算法,提现了本文算法的优越性和先进性,后续将对特定类型的遥感图像做超分辨率重建。