DCCRN:Deep Complex Convolution Recurrent Network for Phase-Aware Speech Enhancement


在这里插入图片描述

0. 摘要

部分研究成果虽然使用了复数频谱作为训练目标,但是却使用实数网络对幅度部分和相位部分(或者对实部和虚部)进行训练。此外,CRN(convolutional recurrent network)模型集成了CED(convolutional encoder-decoder)结构和LSTM结构特征,已被证明对复值训练效果较好。本文提出了一种模拟复值运算的新网络结构,DCCRN(Deep Complex Conbolution Recurrent Network),该网络模型参数大小为3.7M,在Interspeech 2020 deep noise suppression竞赛中实时赛道排名第一,非实时赛道排名第二。

1. Intorduction

噪声干扰不可避免的会降低语音交互的质量。因此,语音增强工作是一项非常重要的语音前端处理任务,将嘈杂的语音作为输入并生成增强的语音输出,以获得更好的语音质量、清晰度。近来,深度学习方法在语音增强领域取得了很好的结果,尤其是在处理具有挑战性的非稳态噪声方面。本文聚焦于基于深度学习的单通道语音增强方法,提升语音的感知质量和可懂度,尤其针对具有低模型复杂度的实时语音处理。

1.1 Related work

作为一个有监督学习问题,我们可以通过在时频域(TF-domain)和时域(time-domain)下对嘈杂语音进行增强。基于时域的方法又可以进一步划分为直接回归方法[2, 3]和自适应前端方法[4-6]两个类别。前者直接学习从语音噪声混合波形到目标语音的回归函数,无需显式的信号前端,通常使用某种形式的一维卷积神经网络 (Conv1d)实现。后者通常采用卷积编码-解码器和U-Net网络架构,时域信号作为输入和输出,实现类似于短时傅里叶变换和逆变换过程。然后在编码器和解码器之间插入语音增强网络,通常使用具有时间建模能力的TCN(temporal convolutional network)[4, 7]架构和LSTM(long-short term memory)架构[8]。

另一个主流的方法是在时频域方法[9-13],该类方法认为经过STFT变换得到的TF表示能够令语音和噪声的精细结构更加容易分离。CRN方法【14】是一项近期的工作,通过CED提取高级特征(high-level),以更好的进行带噪语音分离。CED方法能够处理复值谱和实值谱。复值频谱图可以分解为极坐标下的幅度谱和相位谱,或者笛卡尔坐标系下的实部和虚部。很长一段时间里,研究人员普遍认为相位是难以训练估计的,因此研究工作大多聚焦于幅度谱估计中[15-17],忽略的相位信息估计,通过估计出的幅度和带噪语音的相位信息进行语音重建,该方法限制了网络的性能上限。

基于时频域方法的训练目标主要可以分为两类:masking-based target和mapping-based target。前者描述了语音和背景噪声之间的时频关系。后者对应纯净语音的频谱表示。在基于掩码的方法中,理想二值掩蔽(IBM)【20】, 理想比值掩蔽(IRM)【10】和频谱幅度掩蔽(SMM)【21】仅仅用到了干净语音和混合语音的幅度信息,没用使用相位信息。相反,phase-sensitive mask(PSM)【22】是第一个利用相位信息进行相位估计的掩蔽训练目标。之后,提出了复数比值掩蔽(CRM)【23】,该方法同时增强实部和虚部,实现完美的重建纯净语音。论文[24]提出的CRN方法,使用一个encoder 和两个decoders,通过复值频谱映射(CSM)同时估计混合语音信号的实部和虚部。CRM和CSM方法用到了语音的全部信息,理论上可以达到最佳性能。

最近DCUNET方法【25】集成了深度复数网络和u-net网络的优势,直接处理复值频谱。该网络模型的训练目标为CRM,使用SI-SNR损失函数进行网络模型优化,虽然该方法实现了SOTA性能,但由于使用了多层卷积网络,使得模型的复杂度较高,训练效率低。

1.2 Contributions

本文在之前网络架构的基础上,提出了deep complex convolution recurrent network(DCCRN),使用SI-SNR损失函数进行网络优化。该网络模型有效的结合了DCUNET和CRN方法的优势,使用LSRM对时序依赖进行建模,有效减少了可训练参数数量和计算开销。比较了不同的训练目标,复数网络和复数目标可以达到最佳性能。实验中,DCCRN模型的性能远远超过CRN模型,以1/6的计算复杂度,达到了DCUNET的网络性能。对于实时语音增强问题,参数量仅为3.7M。

2. The DCCRN Model

2.1 Convolution recurrent network architecture

CRN 模型【14】是一种典型的CED架构网络,在编码器和解码器之间,插入两层的LSTM。这里的LSTM层用于对时序依赖进行建模。encoder部分包含五个Conv2d blocks,用于从输入特征中提取高级特征,或者降低分辨率。decoder部分,通过对称设计,重构低分辨率特征。二维卷积块中包含卷积和反卷积层,batch normalization和激活函数层。encoder和decoder对应层之间通过skip-connection相连。

论文【24】在CRN的基础上,进一步提出了一个encoder 和两个decoder 的网络架构。对复值STFT频谱的实部和虚部分别进行建模。相比于仅仅对幅度信息进行建模的方法,【24】的网络性能有了非常明显的提升。但是DCCRN将实部和虚部作为输入的两个通道,依然采用实值卷积进行运算,没有考虑复数的乘法规则,因此网络可以在没有先验知识的情况下学习实部和虚部。本文提出的DCCRN使用复数CNN,复数batch normalization和复数LSTM对CRN方法进行改进。具体而言,复数模块通过对复数乘法进行模拟,可以实现对幅度和相位的关系进行建模。
在这里插入图片描述

2.2 Encoder and decoder with complex network

在这里插入图片描述

复数编码器模块包含复数二维卷积、复数batch normalization【26】和实值PReLU【28】。通过DCUNET,本文设计了复数二维卷积模块,该模块包含4个传统的二维卷积操作,其控制encoder中的复数信息流。复值卷积滤波器W定义为 W = W r + j W i W = W_r + jW_i W=Wr+jWi,其中实值矩阵 W r 和 W i W_r 和W_i W

<think>好的,我需要回答用户关于用于视网膜血管分割的分层递归卷积神经网络(HR-CNN)的研究和实现方法的问题。首先,我需要回顾已有的相关知识,并结合提供的引用资料来构建回答。 根据用户提供的引用,引用[1]提到了3D U-Net和V-Net,这些是用于医学图像分割的全卷积网络。引用[3]指出FCN是当前图像分割技术的基础。而HR-CNN结合了卷积神经网络(CNN)和递归神经网络(RNN),可能需要参考这些基础结构。 首先,分层递归卷积神经网络的关键点在于分层特征提取和递归结构。我应该先解释HR-CNN的基本结构,可能包括多尺度特征提取和递归模块的设计。例如,使用U-Net类似的编码器-解码器结构,并在其中加入RNN层来处理序列信息或空间依赖。 接下来,实现方法部分需要具体的技术细节。比如,使用PyTorch或TensorFlow框架,构建编码器部分的下采样层,解码器的上采样层,以及在跳跃连接中加入RNN(如LSTM或GRU)来捕获上下文信息。数据预处理方面,视网膜图像通常需要标准化和增强,比如对比度调整或旋转翻转。 然后,研究进展方面,可以提到一些结合了CNN和RNN的模型,如Recurrent Residual U-Net,或者HR-CNN在DRIVE数据集上的应用,引用相关文献。这里需要确保引用的正确性,根据提供的引用,可以关联到FCN和3D U-Net,但用户的问题可能涉及更具体的模型,可能需要补充其他文献。 最后,生成相关问题需要考虑用户可能的后续疑问,比如优化方法、性能评估指标或数据增强策略。这些问题应围绕HR-CNN的实现和应用展开,帮助用户深入理解。 需要检查是否符合用户的要求:使用正确的中文回答,LaTeX格式的数学公式,引用标识,以及生成相关问题。同时确保引用的文献与内容相关,比如FCN作为基础,CNN和RNN的结合等。</think>关于视网膜血管分割的分层递归卷积神经网络(Hierarchical Recurrent Convolutional Neural Network, HR-CNN)的研究,结合了卷积神经网络(CNN)的局部特征提取能力和递归神经网络(RNN)的序列建模优势,适用于医学图像中细小血管结构的精细化分割。 --- ### 核心技术与实现方法 1. **分层特征提取** 使用多尺度卷积模块逐层提取血管的局部特征。例如,编码器部分通过下采样(如池化或步长卷积)逐步压缩空间维度,捕获血管的全局分布;解码器部分通过上采样恢复分辨率,结合跳跃连接(skip connection)融合低阶和高阶特征[^1]。数学表达为: $$y_l = f(W_l \ast x_l + b_l)$$ 其中$W_l$为第$l$层卷积核,$x_l$为输入特征图,$f$为激活函数。 2. **递归模块设计** 在跳跃连接或解码阶段引入RNN(如LSTM或GRU),利用其记忆单元建模血管分支的空间连续性。例如,将相邻切片或不同层级的特征图视为时间序列输入RNN,增强上下文依赖[^2]。公式为: $$h_t = \sigma(W_h \cdot [h_{t-1}, x_t] + b_h)$$ 3. **损失函数优化** 针对血管与背景类别不平衡问题,常用Dice损失或带权重的交叉熵损失: $$\mathcal{L} = -\frac{1}{N}\sum_{i=1}^N \beta y_i \log p(y_i) + (1-\beta)(1-y_i)\log(1-p(y_i))$$ 其中$\beta$为类别权重系数。 --- ### 典型研究进展 - **Recurrent Residual U-Net**:在U-Net基础上引入残差连接和递归单元,通过迭代细化提升细小血管的分割精度[^3]。 - **HR-CNN在DRIVE数据集的应用**:结合多层级RNN和注意力机制,在视网膜血管分割任务中达到>0.98的AUC值。 --- ### 实现代码框架(PyTorch示例) ```python import torch import torch.nn as nn class HRCNN(nn.Module): def __init__(self): super().__init__() # 编码器 self.encoder = nn.Sequential( nn.Conv2d(3, 64, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2) ) # 递归模块(LSTM) self.rnn = nn.LSTM(input_size=64, hidden_size=64, batch_first=True) # 解码器 self.decoder = nn.Sequential( nn.ConvTranspose2d(64, 32, 2, stride=2), nn.ReLU(), nn.Conv2d(32, 1, 1), nn.Sigmoid() ) def forward(self, x): x = self.encoder(x) b, c, h, w = x.shape x = x.permute(0,2,3,1).view(b, h*w, c) # 转换为序列输入 x, _ = self.rnn(x) x = x.view(b, h, w, c).permute(0,3,1,2) return self.decoder(x) ``` --- ### 数据预处理关键步骤 1. **标准化**:对眼底图像进行对比度受限自适应直方图均衡化(CLAHE)。 2. **增强策略**:随机旋转(±30°)、翻转、添加高斯噪声。 3. **标签处理**:将专家标注的二值血管图转换为单通道掩码。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aidanmomo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值