Pan-GAN:用于遥感图像融合的无监督全色图像锐化方法

📝论文下载地址

  [论文地址]

👨‍🎓论文作者

Jiayi Ma,Wei Yu,Chen Chen,Pengwei Liang,Junjun Jiang

📦模型讲解

[背景介绍]

  在遥感系统中,卫星可以获得两种完全不同的方式的图像:多光谱图像和全色图像。多光谱图像具有较高的光谱分辨率,但空间分辨率较低。而全色图像具有较低的光谱分辨率和较高的空间分辨率。
  遥感图像融合中的全色图像锐化是指将全色图像与低分辨率的多光谱图像融合,得到高分辨率的多光谱图像。近年来,基于卷积神经网络的全色图像锐化方法取得了最先进的性能。但是现有的基于CNn的策略需要监督,低分辨率多光谱图像是简单地对高分辨率图像进行模糊和下采样得到的。另一方面,它们通常忽略全色图像丰富的空间信息。

  如上图所示,左边第一幅为低分辨率的多光谱图像,左边第二幅为全色图像,左边第三幅是通过PNN的融合结果,最后是通过Pan-GAN的融合结果。

[模型解读]

  在本节中,作者提出了无监督全色图像锐化框架Pan-GAN,用于多光谱图像和全色图像融合。

[总体结构]

  目前多光谱与全色图像融合的深度学习方法中都是选取高分辨率的多光谱图像,对其插入高频信息生成全色图像,对其进行高斯模糊和下采样获得低分辨率的高光谱图像。融合的GroundTruth为初始的高分辨率的多光谱图像。这样的操作很有可能没有意义,现实中,LRMS和HRMS不是简单的上下采样的关系。所以作者提出了Pan-GAN利用原始图像无监督地生成HRMS融合图像。

  为了保持全色图像的光谱信息和全色图像的空间信息,作者将全色图像锐化问题定义为一个多任务问题,并利用生成对抗策略求解,如上图所示。本文使用的所有LRMS图像都有4个光谱波段。首先,对LRMS图像插值到与全色图像相同的分辨率,然后将它们通道堆叠。叠加图像的第一通道为全色图像,其余通道对应于插值后的LRMS图像。然后将通道堆叠后的图像输入生成器 G G G G G G输出是全色图像锐化结果,即融合图像HRMS图像。

  为了克服这一难题,将保留LRMS图像的光谱信息和保持全色图像的空间信息作为两个任务,分别利用两种判别器进行处理。第一个判别器 D 1 D_1 D1称为光谱判别器,其目的是使生成的图像的光谱信息与LRMS图像的光谱信息一致。首先对LRMS图像进行插值,使其与生成器的输出HRMS图像具有相同的分辨率,然后将HRMS图像和上采样的LRMS图像输入到 D 1 D_1 D1中,可以使HRMS图像与原始LRMS图像的光谱分布一致。第二个判别器称为空间鉴别器,其目的是使生成的图像的空间信息与全色图像的空间信息一致。HRMS图像进行通道维的平均池化,以获取单通道图像。然后将该单通道图像和全色图像输入到 D 2 D_2 D2中,使HRMS图像的空间分布与原始全色图像的空间分布一致。在训练过程中,一旦这两个判别器不能区分输入信号,就可以得到理想的HRMS图像。

[损失函数]
[生成器损失函数]

L G = L s p e c t r a l + L s p a t i a l L_G=L_{spectral}+L_{spatial} LG=Lspectral+Lspatial
  其中 L G L_G LG表示 G G G的总损失,右侧第一项 L s p e c t r a l L_{spectral} Lspectral表示生成的HRMS图像与原始LRMS图像的光谱信息之间的光谱损失,其定义如下:
L spectral  = 1 N ∑ n = 1 N ∥ ↓ I f ( n ) − I m s ( n ) ∥ F 2 + α L a d v 1 \mathcal{L}_{\text {spectral }}=\frac{1}{N} \sum_{n=1}^{N}\left\|\downarrow I_{f}^{(n)}-I_{\mathrm{ms}}^{(n)}\right\|_{F}^{2}+\alpha \mathcal{L}_{\mathrm{adv1}} Lspectral =N1n=1NIf(n)Ims(n)F2+αLadv1
   I f ( n ) I_f^{(n)} If(n)表示生成的HRMS图像, ↓ I f ( n ) \downarrow I_f^{(n)} If(n)代表将生成器的融合图像下采样到与LRMS图像分辨率相同, I m s ( n ) I_{ms}^{(n)} Ims(n)表示原始LRMS, ∣ ∣ ⋅ ∣ ∣ F ||\sdot ||_F F代表矩阵F-范数, α \alpha α是平衡损失的超参数。公式中右手边的第一个项称之为基础损失,目的是为了将光谱信息保留在LRMS图像中。仅仅依靠插值并不能代表LRMS与HRMS图像之间的关系。因此在公式中引入第二项,其定义如下:
L a d v 1 = 1 N ∑ n = 1 N ( D 1 ( I f ( n ) ) − c ) 2 L_{adv1}=\frac{1}{N}\sum_{n=1}^N(D_1(I_f^{(n)})-c)^2 Ladv1=N1n=1N(D1(If(n))c)2
  其中 D 1 D_1 D1为判别器, c c c为判别器对生成器生成结果的置信度。
  其中 L s p a t i a l L_{spatial} Lspatial表示 L G L_G LG的空间损失,其定义如下:
L s p a t i a l = μ 1 N ∑ n = 1 N ∣ ∣ ▽ A P ( I f ( n ) ) − ▽ I p a n ( n ) ∣ ∣ F 2 + β L a d v 2 L_{spatial}=\mu \frac{1}{N}\sum_{n=1}^N||\triangledown AP(I_f^{(n)})-\triangledown I_{pan}^{(n)}||_F^2+\beta L_{adv2} Lspatial=μN1n=1NAP(If(n))Ipan(n)F2+βLadv2
  其中 I p a n ( n ) I_{pan}^{(n)} Ipan(n)表示原始全色图像, ▽ \triangledown 表示梯度算子来提取高频空间信息, μ \mu μ是平衡损失光谱损失和空间损失的超参数, β \beta β是平衡两个损失的超参数。 A P ( ⋅ ) AP(\sdot) AP()代表沿通道的平均池化的函数。空间信息不能完全用梯度来表示,也同样加上第二项,可以写成:
L a d v 2 = 1 N ∑ n = 1 N ( D 2 ( A P ( I f ( n ) ) ) − d ) 2 L_{adv2}=\frac{1}{N}\sum_{n=1}^N(D_2(AP(I_f^{(n)}))-d)^2 Ladv2=N1n=1N(D2(AP(If(n)))d)2
  其中 D 2 D_2 D2为判别器, c d cd cd为判别器对生成器生成结果的置信度。

[判别器损失函数]

  Pan-GAN中有两种判别器,一种用于光谱判别,另一种用于空间判别。其损失函数可统一定义为:
L D = 1 N ∑ n = 1 N ( D ( I ( n ) ) − b ) 2 + 1 N ∑ n = 1 N ( D ( I f ( n ) ) − a ) 2 \mathcal{L}_{\mathrm{D}}=\frac{1}{N} \sum_{n=1}^{N}\left(D\left(I^{(n)}\right)-b\right)^{2}+\frac{1}{N} \sum_{n=1}^{N}\left(D\left(I_{f}^{(n)}\right)-a\right)^{2} LD=N1n=1N(D(I(n))b)2+N1n=1N(D(If(n))a)2
  其中 I ( n ) I^{(n)} I(n)表示拟合的目标图像, a a a b b b分别表示目标图像 I ( n ) I^{(n)} I(n)和生成的HRMS图像 I f ( n ) I_f^{(n)} If(n)的标签, D ( I ( n ) ) D(I^{(n)}) D(I(n)) D ( I f ( n ) ) D(I_f^{(n)}) D(If(n))分别表示目标图像和生成的HRMS图像的分类结果。本文采用最小二乘损失作为损失函数。
  为了保持光谱特征,作者设置 D = D 1 D=D_1 D=D1 I ( n ) = ↑ I m s ( n ) I^{(n)}=\uparrow I^{(n)}_{ms} I(n)=Ims(n),光谱判别器是区分使生成的HRMS图像与插值的LRMS图像。在对抗的过程中,光谱判别器不能对 I f ( n ) I_f^{(n)} If(n) ↑ I m s ( n ) \uparrow I_{ms}^{(n)} Ims(n)进行区分则达到目标。
  为了保持空间特征,作者设置 D = D 2 D=D_2 D=D2 I f ( n ) = A P ( I f ( n ) ) I_f^{(n)}=AP(I^{(n)}_{f}) If(n)=AP(If(n)),空间判别器是区分使生成的HRMS图像与原始全色图像。在对抗的过程中,空间判别器不能对 I f ( n ) I_f^{(n)} If(n) A P ( I f ( n ) ) AP(I^{(n)}_{f}) AP(If(n))进行区分则达到目标。

[网络结构]

  Pan-GAN主要包括三个部分:生成器、光谱判别器、空间判别器。他们都是由卷积神经网络组成。

[生成器网络结构]

  在本文中,作者采用最初用于图像超分辨的PNN架构。与残差网络相比,PNN的结构更简单,易于训练。相应地,生成器结构维三个卷积核分别为 9 × 9 9\times 9 9×9 5 × 5 5\times 5 5×5 5 × 5 5\times 5 5×5的卷积层。步长为1加上padding,每层提取的featuremap的个数设置为64,32和4。为了加快模型训练的收敛速度,使其更加稳定,作者采用了DcGAN设计的准则,即除最后一层卷积的激活函数为tanh外,所有激活函数均为ReLU。采用除最后一层外都采用BN,避免了梯度消失的问题。此外,作者还为PNN增加了一些跳跃连接。这些跳跃连接可以将更多细节传递给后面的层,以充分利用有效信息。

[判别器网络结构]

  Pan-GAN由两个判别器组成,即光谱判别器和空间鉴别器,但它们在不同的输入条件下具有相同的结构。判别器使用了全卷积的神经网络,每个神经网络由六层组成。前五层卷积核尺寸为3 × 3 \times 3 ×3,最后一层卷积核尺寸为 4 × 4 4\times 4 4×4。前5层的步长设置为2,最后一个设置为1。在不同的层中提取的featuremap的数量分别设置为16、32、64、128、256和1。此外,除了第一层之外,其他五层使用BN和Leaky ReLU作为激活函数。对于光谱判别器,输入的是生成的HRMS图像或插值后的LRMS图像。对于空间判别器,输入的是原始全色图像或生成的HRMS图像沿通道维平均池化后生成的单通道图像。判别器的输出是分类结果。

[结果分析]

[消融实验]

  本节进行了不同损失组合的消融研究。考虑到光谱对抗损失( L s p e c t r a l L_{spectral} Lspectral)和空间对抗损失( L s p a t i a l L_{spatial} Lspatial)是否得到性能优化。仅保留生成器且仅保留基本损耗优化的生成器网络、保留空间判别器的生成对抗网络、保留光谱判别器的生成对抗网络、保留光谱判别器和空间判别器的生成对抗网络,如下图所示。之后会更新指标的计算方法。

[对比实验]
  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
遥感图像融合是指将多源多光谱或多分辨率的遥感图像通过一定的算法融合成一副新的图像,以获得更丰富的信息和更准确的结果。Python作为一种功能强大且易于使用的编程语言,可用于实现遥感图像融合的算法。 在Python中,可以使用多种库和工具来进行遥感图像融合。其中,最常用的是OpenCV和Scipy。OpenCV提供了丰富的图像处理和计算机视觉功能,可以用于图像的读取、处理和融合。Scipy则提供了一些图像处理和数学运算所需的函数和工具。 实现遥感图像融合的一种常用方法是基于像素的融合。这种方法将两幅图像的每个像素进行权重相加,以获得融合后的像素值。权重可以是根据像素的位置、光谱信息或其他特征来确定的。通过遍历图像的每个像素并计算相应的权重,可以实现图像的融合。 以下是使用Python实现遥感图像融合的简单示例代码: ```python import cv2 import numpy as np # 读取多光谱图像和全色图像 multi_img = cv2.imread('multi_band_image.tif') pan_img = cv2.imread('panchromatic_image.tif') # 将多光谱图像转为灰度图像 gray_multi = cv2.cvtColor(multi_img, cv2.COLOR_BGR2GRAY) # 调整全色图像的尺寸与多光谱图像相同 pan_resized = cv2.resize(pan_img, (multi_img.shape[1], multi_img.shape[0])) # 定义融合权重 alpha = 0.5 beta = 1 - alpha # 像素级融合 merged_img = cv2.addWeighted(gray_multi, alpha, pan_resized, beta, 0.0) # 显示结果 cv2.imshow('Merged Image', merged_img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码中,通过使用OpenCV库中的`imread()`函数读取多光谱图像和全色图像。然后,使用`cvtColor()`函数将多光谱图像转换为灰度图像。接下来,调整全色图像的尺寸与多光谱图像相同,以便进行像素级融合。最后,使用`addWeighted()`函数将多光谱图像和全色图像进行融合,并通过`imshow()`函数显示融合后的图像。 这只是使用Python实现遥感图像融合的一个简单示例,实际的融合算法可能更加复杂,具体的方法和参数选择应根据具体的需求来确定。希望这个简单的示例能帮助你了解如何使用Python进行遥感图像融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值