基于全局上下文和注意力机制深度卷积神经网络的地震数据去噪
2021-09-28杨翠倩周亚同
杨翠倩,周亚同,何 昊,崔 焘,王 杨
(1.河北工业大学电子信息工程学院,天津300401;2.中海油田服务股份有限公司物探事业部,天津300451)
地震勘探正向深层勘探以及地面地质条件复杂区发展,对地震数据采集质量的要求不断提高[1]。在地震勘探中,地震数据不可避免被随机噪声干扰,从而影响地震数据后续处理。因此,有效消除随机噪声,最大限度保留有效信息是地震数据处理的关键步骤之一。
根据地震数据中噪声的特点,人们提出了多种压制噪声的方法。传统的去噪方法主要包括空间域去噪方法[2]、变换域去噪方法[3]、字典学习[4]和混合域去噪方法[5]。其中,空间域去噪方法主要利用块之间的相似性去噪,例如非局部均值滤波[6],但是由于块之间的权重计算代价过大、耗时过多,导致该方法不实用。基于变换域的去噪方法包括傅里叶变换、小波变换[7]和Shearlet变换[8]等,其基本思想是假设地震数据在变换域是稀疏的或可压缩的,将地震数据转换到其它域提高稀疏性。在变换域中,地震数据可以用一组稀疏基来表示。李民等[9]在Shearlet变换域中引入非局部均值对地震数据去噪,可以有效处理细节部分。上述方法需要估计噪声水平,然而噪声水平通常很难准确估计,并且可能产生不需要的伪影。基于字典学习的方法主要依赖稀疏编码和字典更新。NAZARI SIAHSAR等[10]提出了一种用于地震数据降噪的相干约束字典学习方法,该方法不需要先验噪声,但复杂度较高。基于混合域的去噪方法利用多域优势,能够在克服每个域的局限性的同时提高去噪效果。LI等[11]将小波域中高阶相关叠加合并到Curvelet变换中,用于消除地震随机噪声,但可能丢失复杂细节信息。
考虑到传统去噪方法的不足,有必要进一步探索新方法获得高质量的地震数据。卷积神经网络(convolutional neural network,CNN)采用独特的卷积结构,在特征学习[12]、目标检测[13]和图像去噪[14]等领域均取得了显著的应用效果。CNN作为一种数据驱动的学习方法,在压制复杂地震数据的随机噪声方面起着至关重要的作用,将含噪地震数据映射到无噪声的地震数据,从而恢复地震数据。ZHAO等[15]将改进的去噪卷积神经网络(de-noising convolutional neural network,DnCNN)用于压制沙漠低频噪声,能够在无需人工调节参数的情况下获得无噪声的地震剖面。然而,机械地叠加卷积层会使网络更难学习到有效特征,可能导致过度拟合或性能饱和[16]。ZHANG等[17]利用基于块的深度卷积神经网络去噪方法,训练多种CNN模型对数据块进行聚类和去噪,在压制随机噪声方面具有出色性能。然而,上述方法将所有通道一视同仁,忽略了关键特征的重要性。由于卷积运算局部感知的特点,导致感受野受限,无法获得输入特征图的全局信息。CAO等[18]提出了一种基于全局上下文的建模框架,其感受野能够覆盖整个特征图,从而克服了卷积神经网络关注局部特征的缺点,能够提取丰富的局部和全局信息。TIAN等[19]将注意力机制与CNN结合提出了ADNet网络,并且利用扩张卷积增大感受野,能够在复杂背景中提取噪声信息,获得了很好的去噪效果。
受全局上下文模块和注意力机制的启发,本文提出了一种基于全局上下文和注意力机制的深度卷积神经网络(global context and attention-based deep convolutional neural network,GC-ADNet)。其中,全局上下文模块对输入特征图进行全局上下文建模,能够获得丰富的深、浅层特征;注意力模块有助于网络从复杂背景中提取噪声。除此之外,还利用残差学习[20]避免梯度消失,批量规范化[21](Batch Normalization,BN)加速网络收敛,扩张卷积[22]增加感受野。地震数据的去噪实验结果表明,GC-ADNet在特定噪声水平和未知噪声水平两种情况下均优于其它去噪方法,比如三维块匹配滤波(BM3D)[23]、加权核范数最小化(WNNM)[24]、去噪卷积神经网络(DnCNN)[25]、盲去噪卷积神经网络(DnCNN-B)等的去噪效果。
1 GC-ADNet去噪方法
含随机噪声的地震数据表示如下:
y=x+n
(1)
式中:x表示无噪声地震数据;n代表随机噪声;y代表含噪地震数据。其中,x与n不相关。由于本文主要关注随机噪声的压制,所以假设噪声n为高斯噪声,且服从方差为σ,均值为0的正态分布,即n∈N(0,σ)。
地震数据去噪是从含噪地震数据中恢复无噪声的地震数据。使用均方误差训练网络,即使用以下损失函数来训练网络中的参数:
(2)
1.1 GC-ADNet基本原理
1.1.1 残差学习
在深度CNN中,一般认为,网络越深,性能越好。然而,当网络深度到达一定程度后,随着网络继续加深,会出现梯度消失/爆炸。虽然正则初始化解决了梯度消失/爆炸的问题,但会导致网络退化,即随着网络层数的增加,在训练集上的准确率趋于饱和,甚至下降。之后,残差学习解决了网络退化的问题,增强了网络的适应性。在本文中,利用残差学习将含有噪声的地震数据映射到残差数据中。为了得到无噪声地震数据x,只需从含噪地震数据y中减去预测到的噪声n,即
x=y-n
(3)
1.1.2 批量规范化
批量规范化类似于CNN中的卷积层,属于网络中的层间机制[26]。在网络训练过程中,输入数据的分布可能会发生变化,导致内部协变量偏移[27]。因此,在各层非线性激活前加入BN层对数据规范化处理,使每一层的输入数据具有近似相同的分布,从而能够有效避免梯度消失,并且加快网络训练,提高网络的收敛速度。
首先将每批训练样本大小设置为m,并且BN层的输出被规范化为:
yk=BNγ,β(xk)
(4)
(5)
(6)
(7)
(8)
1.1.3 扩张卷积
在CNN中,增大感受野是获取更多上下文信息的常用方法。一般来说,在CNN中扩大感受野的方法有两种:增加网络深度和扩大滤波器尺寸。然而,增加网络深度会导致网络性能下降,而扩大滤波器尺寸会增加参数数量和计算量。但是,扩张卷积能够在不增加计算量的同时增加感受野。若扩张因子f=2,对于卷积核大小为3×3,步长为1,层数为n的扩张卷积,其感受野大小可表示为(4n+1)×(4n+1)。而对于深度为n的普通卷积层网络,其感受野大小为(2n+1)×(2n+1)。例如,当f=2,n=10时,扩张卷积神经网络的感受野大小为41×41,相当于20层普通的CNN卷积层。基于以上原因,一些学者在CNN中使用扩张卷积增大感受野。例如,PENG等[28]利用对称跳跃连接和扩张卷积进行去噪,能够显著提高网络的训练效率;TIAN等[29]利用两个并行的网络和扩张卷积在增加网络宽度的同时增加感受野,提取更多特征,表现出了优异的去噪效果。
1.1.4 全局上下文模块
由于卷积具有局部感知的特点,只能对局部区域进行上下文建模,导致感受野受限。因此,堆叠多层卷积层进行建模,不仅计算量大,而且难以优化。全局上下文模块(GCBlock),可以克服卷积神经网络关注局部特征的缺点,对整个输入特征图进行上下文建模。全局上下文模块融合了非局部均值网络(Non-Local Network)[30]、压缩和激励网络(squeeze-and-excitation networks,SENet)[31]两种方法,其中,Non-Local Network采用自注意力机制建模,利用其它位置的信息增强当前位置的信息,但是计算量大;SENet对不同通道进行权值重标定,用于强调不同通道的重要性,但其不能充分利用全局上下文信息。所以,融合了两种方法的GCBlock不仅可以对全局上下文建模,提取全局信息,而且能够降低计算量。所以,增加GCBlock到网络中,用于提取全局上下文信息,从而获得更多、更丰富的浅层和深层特征。
1.1.5 注意力机制
提取合适的特征和关键的信息非常重要。然而,背景越复杂,提取特征越困难。注意力机制[32]使网络将注意力集中于感兴趣的区域,有利于提取特征。目前,注意力机制主要包括通道注意力和空间注意力。通道注意力着眼于强调不同通道对关键信息的贡献,若每个通道的数据都增加一个权重,该权重表示该通道与关键信息的相关度,那么权重越大,相关度越高。空间注意力机制用于强调特征图的关键区域,提取重要特征。然而,在地震数据去噪方面,注意力机制的研究还很少。在本文中,注意力模块包括卷积和相乘两部分,作用在空间尺度上。将注意力模块集成到CNN中进行地震数据去噪,建立远程依赖,即利用当前阶段指导前一阶段学习噪声信息,能够有效提取噪声。
1.2 GC-ADNet结构
通常,不同的网络结构可以提取不同的特征。本文采用基于注意力的卷积神经网络为基础,结合GCBlock形成一个新的网络,即GC-ADNet,其网络结构如图1所示。该网络包含两部分:主网络和GCBlock。
主网络包含17层,主要包括:Conv,ReLU,BN,Tanh和Dilated Conv。第1~15层包含Dilated Conv+BN+ReLU和Conv+BN+ReLU,其中,Dilated Conv的扩张因子为2。网络第1层的滤波器尺寸为1×3×3×64,2~15层的输入和输出通道为64,卷积核大小为3×3。第16层输入通道为64,输出通道为1,卷积核大小为3×3,即64×3×3×1。采用级联运算将含噪地震数据与第16层的输出特征图进行融合,以增强网络的特征表示能力。另外,Tanh可以将获得的特征转换为非线性特征的同时进行归一化。
图1中虚线框内为注意力模块,用来增强网络提取噪声的能力。主要包含两步:第一步利用第17层的1×1卷积将通道数转换为1,进行特征压缩;第二步利用所获得结果乘以第16层的输出,以提取更显著的噪声特征。最后利用残差学习将输入的含噪地震数据减去提取到的噪声,得到去噪后的地震数据。并且,在卷积过程中,采用零填充确保输出特征图大小与输入特征图大小一致。其中,⊗代表乘运算,⊕表示残差学习思想的实现,即实践中的减法运算。
图1 GC-ADNet网络结构
GCBlock的网络结构如图2所示,位于主网络第七、八层之间,用来增强网络获得全局上下文信息的能力。首先采用1×1卷积和Softmax函数,即滤波器尺寸为64×1×1×1,紧接着执行相乘操作,获得全局上下文信息。然后依次采用1×1卷积、LayerNorm、ReLU和1×1卷积进行特征转换,经过两个卷积后滤波器尺寸分别为64×1×1×16和16×1×1×64,其中LN表示在通道方向对输入地震数据进行归一化,最后利用相加操作进行特征融合,即将全局上下文特征聚合到每个位置的特征上。其中,H和W分别表示特征图的高和宽,C表示特征图数目。
图2 GCBlock网络结构
1.3 网络训练和测试
为了评估GC-ADNet的性能,训练了若干种不同的模型,包括已知噪声水平的模型和未知噪声水平的模型,对不同模型的去噪效果进行比较。通过计算峰值信噪比(peak signal-to-noise ratio,PSNR)和结构相似性(structural similarity index measurement,SSIM)来评估网络的降噪能力和局部细节的保持能力。
1.3.1 已知噪声水平的地震数据
基于CNN去噪方法的性能在很大程度上依赖于训练集的多样性。为了加强GC-ADNet的泛化能力,有必要利用尽可能丰富的训练集对网络进行训练。所以,利用人工合成和海上地震数据构造训练集,部分训练样本如图3所示。训练集的地震数据共有128道,每道128个采样点,即大小为128×128,共535个训练样本。由于不同窗口内的地震数据包含不同细节,因此在训练网络时,使用块大小为50×50、步长为10的滑动窗口来截取数据,同时采取旋转和翻转操作进行数据增强,在幅度归一化后生成包含88275个样本的数据集。在数据集中选取不同于训练集的14个地震数据作为测试集,包含人工合成和海上地震数据,测试集中的地震数据共有128道,每道128个采样点。
图3 训练集中部分样本
1.3.2 未知噪声水平的地震数据
对于未知噪声水平的地震数据,GC-ADNet遵循DnCNN盲去噪的训练策略,除执行与已知噪声水平相同的步骤外,噪声水平范围设置为σ∈[0,55]。使用β1=0.900,β2=0.999的Adam优化器,批大小设置为64,对于50个epoch,学习率从1×10-3(1~30),1×10-4(30~40)到1×10-5(40~50)变化,网络训练参数如表1所示。利用Pytorch训练网络,实验在华为云平台运行,配置为8核64GiB CPU,32GB的nvidia-v100 GPU。
表1 网络训练参数
2 实验及分析
2.1 全局上下文模块在主网络中的位置
分析全局上下文模块在主网络中不同位置的去噪效果。在噪声水平为15的情况下,考虑3个位置:主网络的第1层之后;第7层之后,即网络的中间位置;第15层之后。去噪结果如表2所示。从表2中可知,当全局上下文模块位于主网络的中间位置时,去噪效果最好,此时网络对全局上下文建模能力最强。
表2 不同位置上插入全局上下文模块的测试结果
2.2 消融实验
为了验证GCBlock和注意力模块在网络中的作用,在噪声水平为15的情况下,将GC-ADNet与不含GCBlock、不含注意力模块的网络进行比较,测试集上的PSNR和SSIM的性能曲线如图4所示。由图4可知,随着时期(epoch)的增加,不含GCBlock的网络和不含注意力模块的网络去噪后信噪比低于GC-ADNet。表3总结了不同模块组合对测试集去噪效果的影响。与GC-ADNet相比,不含GCBlock网络的PSNR和SSIM分别降低了0.22dB和0.0003;同时,不含注意力模块网络的PSNR和SSIM分别降低了0.19dB和0.0006,表明GCBlock和注意力模块在不同程度上增强了网络的去噪性能。
图4 不同模块对测试集去噪效果的影响a 测试集上的PSNR性能曲线; b 测试集上的SSIM性能曲线
表3 不同模块组合对测试集去噪效果的影响
2.3 已知噪声水平的地震数据去噪
2.3.1 不同深度学习模型收敛速度和去噪效果比较
图5展示了GC-ADNet和DnCNN在噪声水平为15时训练过程中的收敛速度。其中,loss代表由(2)式计算所得的损失函数值。由图5可见,GC-ADNet不仅起始值最小,且一直低于DnCNN,并持续下降趋于稳定。图6a和图6b分别显示了在σ=15时不同模型在测试集上的平均PSNR和平均SSIM。
图5 GC-ADNet和DnCNN在噪声水平为15时训练过程中的收敛速度
由图6可以看出,GC-ADNet的PSNR和SSIM高于DnCNN,去噪效果更好。
图6 σ=15时不同模型在测试集上的平均PSNR(a)和平均SSIM(b)
2.3.2 人工合成地震数据去噪结果
为了验证GC-ADNet的优越性,图7给出了测试集中的某人工合成地震数据及其采用不同方法得到的去噪结果。图7a为无噪声的人工合成地震数据;图7b为向图7a中加入噪声水平为25的高斯噪声所得地震数据,其PSNR为20.27dB,SSIM为0.5663;图7c至图7f分别为采用不同的去噪方法得到的结果,其PSNR和SSIM分别为35.11dB、0.9783,37.96dB、0.9884,40.57dB、0.9976,41.26dB、0.9979。观察图7可以发现,图7c和图7d中地震数据不同程度地出现了模糊、边缘不清晰的现象;图7e和图7f中地震数据质量很高,图7f中地震数据的同相轴最清晰,表明去噪后的地震数据与原始地震数据高度相似,说明了GC-ADNet去除噪声的有效性。
图7 某人工合成地震数据及采用不同方法得到的去噪结果a 无噪声地震数据; b 含噪地震数据; c BM3D去噪结果; d WNNM去噪结果; e DnCNN去噪结果; f GC-ADNet去噪结果
2.3.3 海上地震数据去噪结果
为了进一步验证GC-ADNet的去噪能力和保持局部细节的能力,针对测试集中的某海上地震数据,图8给出了不同方法的去噪结果。
图8a为不含噪声的地震数据;图8b为对图8a 添加方差σ=50的高斯噪声所得地震数据,其PSNR为14.08dB,SSIM为0.5500;图8c至图8f分别显示了采用不同去噪方法得到的去噪结果,其PSNR和SSIM分别为23.29dB、0.7642,23.53dB、0.9104,25.00dB、0.9547,25.50dB、0.9598。观察图8c和图8d 可知,BM3D和WNNM去噪后的地震数据不同程度出现模糊,同时边缘不清晰,无法保持地震数据的纹理和细节;从图8e和图8f可知,去噪后地震数据的纹理和细节都得到了较好的恢复;DnCNN去噪后的地震数据边缘部分出现了轻微的模糊,GC-ADNet去噪后的地震数据边缘清晰,并且PSNR和SSIM值比其它方法高。通过人工观察和客观评价指标可知,GC-ADNet能够在压制随机噪声的同时,保留更多的局部细节。
为了更清楚地观察去噪后的结果,对图8中红框部分采用变面积的方式显示,如图9所示。
图8 某海上地震数据及采用不同去噪方法得到的结果a 无噪声地震数据; b 含噪地震数据; c BM3D去噪结果; d WNNM去噪结果; e DnCNN去噪结果; f GC-ADNet去噪结果
图9a表示无噪声的地震数据;图9b表示含噪地震数据;图9c至图9f分别为采用不同去噪方法得到的去噪结果。从图9可以看出,4种去噪方法均能较好地压制随机噪声,然而,图9c和图9d中红色圆圈内的同相轴未完全恢复,并且边缘部分恢复效果相较于无噪声的地震数据相差较大。从图9e和图9f可以看出,两种深度学习去噪方法均较好地恢复了地震数据,图9e红色圆圈内仍有少部分噪声残留,边缘部分同样不清晰;图9f不仅恢复了地震数据,并且保持了地震数据的细节和纹理,进一步展示了GC-ADNet的优势。
为了更直观地分析去噪结果,图10给出了不同方法去噪后的残差剖面。在图10a和图10b中有较多地震数据残留,其噪声压制效果差;图10d中残留的地震数据较图10c少,这表明GC-ADNet具有更好的噪声压制能力和局部细节保持能力。
图10 海上地震数据不同去噪方法得到的残差剖面a BM3D; b WNNM; c DnCNN; d GC-ADNet
2.3.4 与其它去噪方法结果对比
为了进一步验证GC-ADNet去噪方法的优越性,将BM3D,WNNM,DnCNN,GC-ADNet 4种去噪方法应用于噪声水平为5,15,25,50的地震数据测试集,得到平均PSNR和平均SSIM,结果见表4。从表4可知,GC-ADNet得到的PSNR和SSIM较传统方法均有明显提高,与DnCNN相比,GC-ADNet的去噪效果更优。
表4 将不同去噪方法应用于噪声水平为5,15,25,50的地震数据测试集得到的平均PSNR和SSIM
2.4 未知噪声水平的地震数据去噪
采用GC-ADNet和DnCNN分别对噪声进行盲去噪。图11列出了GC-ADNet和DnCNN在训练过程中的收敛速度。从图11可以看出,随着epoch的增加,GC-ADNet的loss值始终低于DnCNN。在测试集上分别计算不同噪声水平下的平均PSNR和SSIM,所得实验结果如图12所示。
图11 GC-ADNet和DnCNN在训练过程中的收敛速度
由图12可见,随着噪声水平的增大,GC-ADNet的平均PSNR值和平均SSIM值始终高于DnCNN。表明对于盲去噪,GC-ADNet的去噪效果优于DnCNN。
图12 不同模型在不同噪声水平下的平均PSNR(a)和平均SSIM(b)
2.5 野外地震数据去噪
为了验证GC-ADNet的实用性,选取另一野外海上单炮数据进行测试,如图13a所示,该数据共有128道,每道250个采样点,道间距为12m,时间采样率为2ms。可以看出,地震数据受到随机噪声的干扰,同相轴不清晰。图13b至图13e分别显示了对该单炮数据采用不同方法得到的去噪结果;图13f显示了GC-ADNet去除的随机噪声。对比图13b、图13c、图13d和图13e 可知,BM3D去噪后的地震数据仍有噪声残留;WNNM去噪后地震数据过于平滑,部分同相轴没有被恢复;DnCNN和GC-ADNet去噪后的结果中局部同相轴保留更加完整,GC-ADNet比DnCNN去噪后的结果更加清晰,保持了地震数据的纹理和细节,进一步展示了GC-ADNet的有效性和实用性。
图13 某野外海上单炮数据及采用不同去噪方法得到的结果a 含噪地震数据; b BM3D去噪结果; c WNNM去噪结果; d DnCNN去噪结果; e GC-ADNet去噪结果; f GC-ADNet去除的随机噪声
3 结论
传统的地震数据去噪方法受频谱分布和方法调优的限制,去噪结果中往往存在噪声残留和数据模糊等问题。本文在ADNet的基础上加入了全局上下文模块,提出了一种压制随机噪声的深度卷积神经网络。GC-ADNet可以使网络获取更多的全局上下文信息,提取丰富的浅层和深层特征;同时,注意力模块能够有效提取复杂背景中的噪声。与传统去噪方法和其它深度学习方法相比,GC-ADNet不仅能够压制噪声,而且能够保留更多的局部细节。
通过对地震数据去噪及分析得出GC-ADNet比BM3D、WNNM和DnCNN等方法去噪效果更好,PSNR和SSIM值更高;同时盲去噪结果也优于DnCNN。从野外地震数据去噪结果来看,GC-ADNet能够压制随机噪声,保持地震数据细节和纹理。但本文方法在提取多尺度特征等方面存在不足,暂时无法充分利用地震数据的自相似性。在未来的工作中,我们将探索并改进方法以提取多尺度特征,增强去除随机噪声的能力。