论文学习D2UNet:用于地震图像超分辨率重建的双解码器U-Net

标题:D^{2}UNet:Dual Decoder U-Net for Seismic Image Super-Resolution Reconstruction

——D2UNet:用于地震图像超分辨率重建的双解码器U-Net

期刊:IEEE Transactions on Geoscience and Remote Sensing

摘要:从U-Net派生的流行深度网络缺乏恢复详细边缘特征和弱信号的能力。在本文中,提出了一种双解码器U-Net(D2UNet)来探索数据的细节信息和边缘信息

  • 编码器输入通过Canny算法获得的低分辨率图像和边缘图像。
  • 双解码器由用于高分辨率恢复的主解码器和用于边缘轮廓检测的边缘解码器组成。这两个解码器与具有可变形卷积的纹理扭曲模块(TWM)相互作用。TWM旨在扭曲真实的边缘细节,以匹配低分辨率输入的保真度,尤其是边缘和弱信号的位置。
  • 损失函数是L1损失和多尺度结构相似性损失(MS-SSIM)的组合,以确保感知质量。
  • 在合成和野外地震图像上的结果表明,D2UNet不仅提高了噪声地震图像的分辨率,而且保持了图像的保真度。

一、Introduction—介绍

        野外勘探资料由于不可避免地受到环境条件和仪器性能的影响,往往存在分辨率低、噪声干扰等问题。我们可以从高质量的地震数据中观察到重要信息,如地层、储集层分布和断层信息。因此,提高分辨率和去噪是解决上述问题的两种流行技术。

        地震资料的分辨率是对地下结构空间测量的精度描述,它包括垂直和水平分辨率。高分辨率处理技术旨在拓宽频带,提高主频率。其本质是恢复微弱信号的真实振幅。常见的方法可分为三类:反褶积、吸收补偿和基于时间-频谱的频率扩展。

        随着地震数据规模的指数级增长,传统方法在高分辨率恢复、去噪和效率方面都表现不佳,这使得他们很难恢复详细的地质信息。图形处理单元(GPU)的支持提升了深度学习方法在高分辨率和降噪任务中的成功率。特别是,深度卷积神经网络(CNN)作为许多方法的衍生,可以很容易地利用GPU加速训练。

  • U-Net是一种编码器-解码器结构的网络,广泛用于高分辨率和去噪任务。然而,上述大多数方法仅用于分辨率或去噪任务。
  • 基于U-Net的SRDUNet可以同时处理这两个任务。它可以显著增强地震图像的详细结构和地层特征。但结果存在伪影、边缘过于平滑以及对弱信号的恢复效果较差。
  • 多任务学习(MTL)已成功应用于地震勘探领域。超分辨率多任务残差U-Net(M-RUSR)将地震速度模型的边缘图像作为速度模型高分辨率任务的辅助任务。结果表明,边缘图像学习提高了速度模型的高分辨率效果,具有更好的细节。

在本文中提出了一种新的方法,从以下三个方面:

  • 网络:提出了一种新的多任务网络D^{2}UNet,具有一个编码器和两个解码器。
    1. 编码器以Canny算法获得的低分辨率和边缘图像作为输入。
    2. 这两个解码器用于并行学习两个不同的任务。地震数据的高分辨率恢复是主要任务,边缘检测是辅助任务。辅助任务可以提供丰富的形状和边界信息,有助于生成更准确、更高质量的数据。它们通过具有可变形卷积的纹理扭曲模块(TWM)相互作用。它可以扭曲真实的边缘细节,以匹配低分辨率输入的保真度,尤其是边缘和弱信号的位置。
  • 训练数据:为了解决训练数据不足的问题,分别生成干净的高频有噪声的低频3D地震体成对数据。然后,使用Canny算法来提取相应的边缘图像。
    1. 最后,将有噪声的低分辨率地震图像和边缘图像作为输入,
    2. 将干净的高分辨率地震图像和边缘图像作为真实标签。
  • 损失函数:引入了联合损失函数。每个任务包括L1损失和多尺度结构相似性损失(MS-SSIM)。它们可以提高图像的感知质量。 

对合成地震资料和野外地震资料进行了大量的实验研究。结果表明,所提出的D^{2}UNet网络不仅可以提高噪声地震图像的分辨率,而且可以保持图像的保真度。

本文的其余部分组织如下。第二节介绍了地震数据超分辨率恢复的问题定义。第三节详细描述了所提出方法的网络结构和损失函数。第四节描述了训练数据集的生成方法和网络的训练细节。第五节讨论了我们的方法在合成数据和现场数据上的实验结果。最后,第六节结束。 

二、Problem Definition—问题定义

        根据传统的卷积模型,地震记录可以建模如下:

\hat{\textbf{y}} = \textbf{W}\hat{r} + \textbf{n}        (1)

其中,\hat{\textbf{y}}表示宽带子波w_{h}(t )滤波后的观测数据,\textbf{W}是地震子波w_{h}(t )形成的卷积矩阵,\hat{r}是通过\textbf{W}滤波后的全频带反射系数或带限制反射系数,\textbf{n}表示随机噪音。

        通过超分辨率反演方法建立的目标函数表示如下:

J_{\hat{r}} =_{\; \; \hat{r}}^{min} \! \frac{1}{2}\left \| \hat{\textbf{y}} - \textbf{W} \hat{r}\right \|_{2}^{2} + \mu Q(\hat{r})        (2)

其中,\mu是正则化系数,Q(\cdot )是约束函数。
  在图像处理中,地震图像的超分辨率重建被认为是一个低层次的视觉任务,可以建模如下:

\textbf{S}_{L} = D(\textbf{S}_{H}) \dotplus \textbf{n}        (3)

其中,\textbf{S}_{L}\textbf{S}_{H}分别表示低分辨率和高分辨率的地震图像。D(\cdot )表示退化映射函数。 

        在这项工作中,分别使用有噪声的低分辨率和无噪声的高分辨率图像作为输入和地面实况。它们由一对 \textbf{S}_{in} = (\textbf{S}_{L},\textbf{S}_{H}) 表示。我们的目标是从去除噪声的低分辨率图像\textbf{S}_{L}重建高分辨率图像\textbf{S}_{H},由以下方程表示:

\hat{\textbf{S}}_{H} = \textup{Net}(\textbf{S}_{L},\Theta )        (4)

其中,Net(\cdot ) 表示我们的模型,\Theta 表示网络的参数。

三、Method—方法

3.1 体系架构

图1:网络架构  

图2:输入:(a)噪声低分辨率地震图像,(b)对应(a)的边缘图像,(c)干净高分辨率地震图像,(d)对应(c)的边缘图像。 

        图1说明了所提出的D^{2}UNet网络架构。输入\textbf{x}^{d}包括两个部分,即原始地震图像和边缘图像,示例如图2(a)和(b)所示。将相应的高分辨率图像和边缘图像作为地面实况,示例如图2(c)和(d)所示。Canny边缘检测算子用于从原始地震图像中获得边缘图像。

        D^{2}UNet网络由一个编码器和两个并行解码器组成。

  • 编码器由四个下采样块组成,每个下采样块由“最大池化层+ [卷积层+批归一化层+ReLU] × 2”组成。最大池化使用步长为2的2×2内核。卷积层使用3×3卷积核。对于四个下采样块,特征通道分别为64、128、256、512和1024。
  • D^{2}UNet包含两个并行解码器,分别称为边缘解码器和主解码器,它们都包含四个上采样块。上采样块通过转置卷积来扩大特征图的大小。此外,转置卷积的输出通过跳过连接与来自相同级别的下采样块的特征图连接。虽然跳跃连接可以包含更多的保真度信息,但这些中间特征在很大程度上受到输入特征的影响,并且丢失了一些高质量的图像细节。为了克服保留真实的细节和提高保真度的问题,两个解码器使用具有可变形卷积的TWM来交互。 

        假设含噪声的低分辨率地震图像和边缘图像为\textbf{x}^{d} = (\textbf{x}^{s},\textbf{x}^{e}) \in R^{H\times W\times 2}。输入\textbf{x}^{s}通过编码器得到潜在向量F_{5,3}^{E} = E(\textbf{x}^{s})。为了保持其真实的图像边缘,我们使用边缘解码器D_{edge}将其解码回图像空间,表示如下: 

F_{4}^{e} = D_{edge}(F_{5,3}^{E})        (5)

其中,边缘解码器的多级特征分别表示为F_{i}^{e}i\in \left \{ 1,2,3,4 \right \}

        主解码器D_{main}用于生成高分辨率地震图像\textbf{x}^{m},而边缘解码器D_{edge}用于获取边缘信息和细节。D_{main}通过在多个空间级别从退化输入中提取输入特征来扭曲边缘特征F_{i}^{e}。在TWM中,我们使用最大空间分辨率的输入特征\textbf{x}^{e}作为输入,它可以保持低分辨率图像信息和边缘信息的最丰富的保真度。

        对于第 i 分辨率级别,F_{i}^{e}和高质量特征\textbf{x}^{e}被用作TWM的输入,表示如下:

F_{i}^{t} = \textup{TWM}(F_{i}^{e} , \textup{Conv}(\textbf{x}^{e}))        (6)

其中TWM是纹理扭曲模块。如图3所示,我们首先连接两个输入特征以生成偏移量。然后,将偏移量应用于可变形卷积以扭曲边缘特征以匹配输入的保真度,如下所示: 

\textup{offset} = \textup{Conv}(\textup{Concat}(F_{i}^{e},\textup{Conv}(\textbf{x}^{e})))

                F_{i}^{t} =\textup{ DeformConv}(F_{i}^{e},\textup{offset})        (7)

其中,DeformConv表示可变形卷积。 

 图三:纹理扭曲模块(TWM)

        然后,主解码器的特征 F_{i,1}^{m} 由三个特征级联而成,包括扭曲特征F_{i}^{t}、编码器中下采样块的特征F_{i,3}^{E} 以及主解码器中的转置卷积特征。该过程可表述如下:

F_{1,1}^{m} = \textup{Concat}(F_{1}^{t}, F_{4,3}^{E}, \textup{Deconv}(F_{5,3}^{E}))

                             F_{i,1}^{m} = \textup{Concat}(F_{i}^{t}, F_{(5-i),3}^{E}, \textup{Deconv}(F_{(i-1),3}^{m}))        (8)

其中 i\geq 2,Deconv表示转置卷积。边缘解码器的特征被用作包含丰富边缘信息的参考特征。 

        主解码器共同学习地震资料的主要特征和“参考特征”。

        此外,我们在主解码器的四个上采样块中添加了一个子像素卷积层,然后连接三个残差块。子像素卷积在图像超分辨率重建精度和计算性能方面都取得了重要的成功。我们使用子像素卷积层进行上采样。 它不仅能减少训练时间,节省 GPU 内存,还能提供更多上下文信息,进一步提高图像质量。子像素卷积层之后连接有三个残差块,能够学习到更多的高频信息和细节。每个残差块由两个 "卷积+批量归一化+ReLU "模块组成。跳跃连接涵盖了两个卷积层。最后,我们使用 1 × 1 卷积层来减少特征通道的数量,以符合地面实况。

3.2 损失函数

        论文中的损失函数定义如下:

L =\mathbb{W} (L_{d},\sigma _{d}) + \mathbb{W} (L_{e},\sigma _{e})        (9)

其中加权算子 \mathbb{W} 和可训练参数 \sigma_{i} 平衡两个任务之间的训练。L_{d}L_{e}分别表示主解码器分支和边解码器分支的损耗。 

        定义权重参数 \mathbb{W} 如下:

\mathbb{W}(L_{i},\sigma _{i}) = \frac{1}{2\sigma _{i}}L_{i} + log\sigma _{i}, \; \; \; \; i\in \left \{ d,e \right \}        (10)

其中,\sigma _{i} 的值用来度量与预测相关联的不确定性,对数项的作用是防止 \sigma _{i} 过度增加。通过动态调整多个损失项的贡献,可以自动平衡损失。

        损失项L_{d}L_{e}包括L_{1}\textup{MS-SSIM},表示如下:

L_{d} = \lambda L_{1}(\hat{x}^{d},\textbf{x}^{d}) + (1-\lambda ) L_{\textup{MS-SSIM}}(\hat{x}^{d},\textbf{x}^{d})

                   L_{e} = \lambda L_{1}(\hat{x}^{e},\textbf{x}^{e}) + (1-\lambda ) L_{\textup{MS-SSIM}}(\hat{x}^{e},\textbf{x}^{e})        (11)

其中,L_{1}被广泛用于图像超分辨率。\textup{MS-SSIM}是一种多尺度图像质量评价方法。\hat{x}^{d}\textbf{x}^{d}分别表示恢复的高分辨率地震图像和地面真实情况。\hat{x}^{e}\textbf{x}^{e}分别表示恢复的高分辨率边缘图像和地面真实情况。\lambdaL_{1}函数的权重参数,被设置为0.4。

        L_{1}损失定义如下:

L_{1} = \frac{1}{N} \: _{i,j}^{\sum }\left | \hat{x}(i,j) - \textbf{x}(i,j) \right |        (12)

其中 N 表示像素的总数。\textup{MS-SSIM}是一种多尺度图像质量评价方法,是\textup{SSIM}的改进版本。

        \textup{SSIM}的定义如下:

L_{\textup{SSIM}} (\mathbf{\hat{x},}\textbf{x}) = \left [ l(\mathbf{\hat{x}},\textbf{x}) \right ]^{\alpha } \cdot \left [ c(\mathbf{\hat{x}},\textbf{x}) \right ]^{\beta } \cdot \left [ s(\mathbf{\hat{x}},\textbf{x}) \right ]^{\gamma }        (13)

其中,

 l(\mathbf{\hat{x}},\textbf{x}) = \frac{2\mu _{\mathbf{\hat{x}}} \mu_{\textbf{x}} +c_{1} }{\mu _{\mathbf{\hat{x}}}^{2} + \mu _{\textbf{x}}^{2} + c_{1}}

 c(\mathbf{\hat{x}},\textbf{x}) = \frac{ 2 \sigma _{\mathbf{\hat{x}} \textbf{x}} +c_{2} }{\sigma_{\mathbf{\hat{x}}}^{2} + \sigma _{\textbf{x}}^{2} + c_{2}}

                  s(\mathbf{\hat{x}},\textbf{x}) = \frac{ \sigma _{\mathbf{\hat{x}} \textbf{x}} +c_{3} }{\sigma_{\mathbf{\hat{x}}} \sigma _{\textbf{x}} + c_{3}}        (14)

其中 \mathbf{\hat{x}} 和 \textbf{x} 分别表示恢复的高分辨率图像和地面真实情况。\mu 和 \sigma 分别表示图像的平均值和标准差。例如,\sigma _{\mathbf{\hat{x}} \textbf{x}} 表示图像\mathbf{\hat{x}}\textbf{x}之间的协方差。c_{1}c_{2}c_{3}表示三个常量,以避免分母太小而达不到最佳值。l(\cdot )c(\cdot )s(\cdot )分别表示计算亮度或幅度、对比度和结构的函数。\alpha\beta\gamma表示三个函数的相应权重。 

        MS-SSIM的定义如下:

L_{\textup{MS-SSIM}} (\mathbf{\hat{x}},\textbf{x}) = \left [ l_{M}(\mathbf{\hat{x}},\textbf{x}) \right ]^{\alpha_{M}} \cdot \prod_{j=1}^{M}\left [ c_{j}(\mathbf{\hat{x}},\textbf{x}) \right ]^{\beta _{j}} \left [ s_{j}(\mathbf{\hat{x}},\textbf{x}) \right ]^{\gamma _{j}}        (15)

其中,M=5表示从五个尺度测量SSIM。\alpha = \beta = \gamma = \left [0.0448, 0.2856, 0.3001, 0.2363, 0.1333 \right ]

四、Training Datasets—训练数据集 

        该方法是有监督的,需要大量无噪声的高分辨率图像作为地面真实图像。然而,这样的野外数据集在实践中却很少见。有许多文献证实了,仅对合成地震数据进行训练的网络处理与地震有关的任务的有效性和准确性。因此,我们通过构建真实的复杂结构模型来提取大量的高分辨率图像。

4.1 生成训练数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中rpm包与deb包的区别及使用

文章目录 1. rpm与deb的区别2. deb软件包的格式和使用2.1 deb软件包命令遵行如下约定2.2 dpkg命令2.3 apt-命令 3. Unix和Linux的区别Reference 1. rpm与deb的区别 有的系统只支持使用rpm包安装,有的只支持deb包安装,混乱安装会导致系统问题。 关于rpm和…

手拉手安装启动Kafka2.13

启动Kafka本地环境需Java 8以上 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 Kafka启动…

【ubuntu20.04】安装GeographicLib

下载地址 GeographicLib: Installing GeographicLib 我们是ubuntu20.04 ,所以下载第一个 GeographicLib-2.3.tar.gz 接着跟着官方步骤安装,会出错!!!!马的 官方错误示例:tar xfpz Geographi…

无重复字符串的最长子串

题目描述:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。 第一次提交记录 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:if not s:return 0lookup set()left res 0for right in range(len(s)):while s…

基于Springboot的箱包存储系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的箱包存储系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

一辆新能源汽车需要多少颗传感器?

随着科技的发展和环保意识的日益提高,新能源汽车(包括纯电动汽车、混合动力汽车等)在全球范围内越来越受到欢迎。这些汽车不仅减少了碳排放,还推动了汽车产业的创新。然而,这些高科技汽车的背后,隐藏着许多…

9.vector的使用介绍和模拟实现

1.vector的介绍及使用 1.1 vector的介绍 vector的文档介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组&#xff0c…

Another Redis Desktop Manager下载安装使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

基因组组装:Hifiasm 使用教程

简介 Hifiasm[1] 是一个快速的单倍型解析 de novo 组装软件,最初设计用于 PacBio HiFi 读取。其最新版本可以通过利用超长的 Oxford Nanopore 读取支持端粒到端粒的组装。Hifiasm 可以生成单样本端粒到端粒的组装,结合了 HiFi、超长和 Hi-C 读取&#xf…

【XR806开发板试用】自带mqtt的调试教学

1、下载代码 mkdir xr806_openharmony cd xr806_openharmony repo init -u ssh://gitgitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml repo sync -c repo forall -c git lfs pull **最近仓库在整合&#xff…

[Classifier-Guided] Diffusion Models Beat GANs on Image Synthesis

1、介绍 针对diffusion models不如GAN的原因进行改进: 1)充分探索网络结构 2)在diversity和fidelity之间进行trade off 2、改进 1)在采样步数更少的情况下,方差设置为固定值并非最优。需要将表示为网络预测的v ​​​…

前端开发攻略---Vue通过自定义指令实现元素平滑上升的动画效果(可以自定义动画时间、动画效果、动画速度等等)。

1、演示 2、介绍 这个指令不是原生自带的,需要手动去书写,但是这辈子只需要编写这一次就好了,后边可以反复利用。 3、关键API IntersectionObserver IntersectionObserver 是一个用于监测元素是否进入或离开视口(viewport&#x…

08 - 镜像管理之:镜像仓库harbor介绍

本文参考:原文1 1 Harbor仓库介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry 也是非常必要的。 之前介绍了Docker私有仓…

priority_queue的使用以及模拟实现

前言 上一期我们对stack和queue进行了使用的介绍,以及对底层的模拟实现!以及容器适配器做了介绍,本期我们在来介绍一个容器适配器priority_queue! 本期内容介绍 priority_queue的使用 仿函数介绍 priority_queue的模拟实现 什么…

自动驾驶规划方法综述

自动驾驶规划方法综述 附赠自动驾驶学习资料和量产经验:链接 最近看到一篇非常好的关于自动驾驶规划方法的综述(A Review of Motion Planning Techniques for Automated Vehicles),写的非常好,总结了近几十年来总动驾…

YOLOv5实战记录06 Gradio搭建Web GUI

个人打卡,慎看。 指路大佬:【手把手带你实战YOLOv5-入门篇】YOLOv5 Gradio搭建Web GUI_哔哩哔哩_bilibili 先放一张效果图: 零、虚拟环境激活 之前up说要激活环境时,我没当回事儿,今天突然想,激活环境然后…

LangChain教程 | 实践过程报错集 | 持续更新

这是本人最近在做langchain教程过程中的遇到的报错,不分先后顺序。 报错:TypeError: NoneType object is not iterable 这个报错很常见,咱们要看原始报错的位置是哪里,下面是我的截图: 找到源头之后,就在源…

缝合的作品(并查集/逆序)

、思路:首先是并查集来做,首先给给每个单词一个id,然后把它放到ans[i]处。 对于操作1:把a单词换为单词b,就相当于a、b两个集合结合。然后再给a单词赋一个新的id,用来进行操作2,因为之后的操作2…

蓝桥杯-【二分】肖恩的苹果林

思路:有点类似于找最大值的最小化。 代码及解析 常规的模板引用40% #include <bits/stdc.h> using namespace std; #define ll long long const ll N1e53; ll a[N]; ll m,n; ll chack(ll mid) {int res1,last0;for(int i1;i<n;i){ if(a[i]-a[last]>mid){res;las…

DeepStream做对象模糊的几种方法

有时候&#xff0c;我们需要对视频的敏感信息做模糊处理&#xff0c;比如模糊人脸&#xff0c;车牌。 有时候&#xff0c;也需要对整帧做模糊&#xff0c;或者遮挡。比如这个例子。 下面介绍几种模糊的办法。 1. 通过nvosd deepstream-test1是DeepStream最简单的一个例子&…