【双U-Net残差网络:超分】

Dual U-Net residual networks for cardiac magnetic resonance images super-resolution

(心脏磁共振图像超分辨率的双U-Net残差网络)

目前,心脏磁共振(CMR)成像能够提供心脏全方位的结构和功能信息,已成为心脏疾病诊断和治疗的重要工具。因此,提高CMR图像分辨率对心脏疾病的诊断和病情评估具有重要的医学价值。目前,大多数单幅图像超分辨率(SISR)重建方法存在特征信息挖掘不足、难以确定特征图各通道间的依赖关系、重建高分辨率图像时存在重建误差等问题。
为了解决这些问题,我们提出并实现了一种用于CMR图像超分辨率的双U-网残差网络(dual U-Net residual network(DURN))。具体而言,首先提出了一种U-Net残差网络(URN)模型,将其分为上分支和下分支。上分支由残差块和上采样块组成,用于提取和上采样深度特征;下分支由残余块和下采样块组成,以提取和下采样深度特征。在URN模型的基础上,采用对偶U-Net残差网络(DURN)模型,通过残差连接将提取的第一个URN和第二个URN之间相同位置的深度特征进行组合。该方法可以充分利用第一次URN提取的特征,提取低分辨率图像更深层次的特征。

介绍

心血管疾病是世界上最主要的死亡原因,每年因心血管疾病死亡的人数远远超过其他任何疾病。《中国心血管疾病报告2018》报告显示,我国心血管病患者约2. 9亿,死亡率高于肿瘤等疾病。心血管疾病居死亡率首位,占居民疾病死亡的40%以上,农村死亡率高于城市。我国心血管疾病患者数量迅速增加,心血管疾病的患病率甚至涉及年轻人群。随着现代医学的发展,为了正确诊断心血管疾病(并降低死亡率),磁共振成像(MRI)、计算机断层扫描(CT)、超声(US)等医学成像技术被广泛应用。医学影像技术可以定性、定量评价心脏解剖结构和心功能,为疾病诊断、病情监测和治疗计划制定提供支持。
目前,心脏MRI被公认为评价心功能的金标准。该技术具有非电离辐射、对软组织敏感性高、成像方向多样化等优点。但MRI的数据扫描时间较长,数据采集时间与重建图像质量之间的关系难以平衡。此外,增加扫描时间意味着可以收集更多的数据并且可以获得更高质量的重建图像;然而扫描时间的增加可能引入运动伪影并引起患者不适。另一方面,减少扫描时间将减少收集的数据量,这反过来将导致重建图像质量下降。因此,利用少量数据重建清晰的MRI图像具有重要的研究意义。
在过去的几十年中,许多研究者提出了一些传统的超分辨率(SR)重建算法,如双三次插值[1]、最大后验(MAP)、近邻嵌入和稀疏表示。传统的SR重建算法虽然取得了很好的效果,但也存在一些模糊问题。近年来,一些研究者提出了基于深度学习的SR重构算法。例如,受卷积神经网络(CNN)在计算机视觉的其他任务中的成功应用的启发,超分辨率卷积神经网络(SRCNN)算法使用简单的三个卷积层来执行低分辨率(LR)图像的特征提取、非线性映射和特征恢复。后来,一些研究者提出的残差网络和递归神经网络极大地促进了深度学习的快速发展。同时,在随机共振领域,也有研究者将随机共振重构与残差网络、递归神经网络相结合,提出了极深卷积网络(VDSR)、深度递归卷积网络(DRCN)、深度递归残差网络(DRRN)。这些方法通过多次卷积运算捕捉长距离邻域信息,加深了网络结构的深度,增加了卷积核的感受野,大大提高了图像重建的质量。但是,网络结构的深化往往导致计算量较大,同时也使网络优化训练更加困难。
为了解决这些问题,提出了一种用于超分辨率CMR图像的双U-Net残差网络(DURN)。具体地说,我们首先提出了一个U-Net残差网络(URN)模型。它有上分支和下分支。上行分支由残差块和上行块组成,用于提取和上采样深度特征;下行分支由残差块和下行块组成,用于提取和下采样深度特征。在URN模型的基础上,提出了双U-Net残差网络(DURN)模型,该模型通过残差连接将提取的第一个URN和第二个URN之间相同位置的深度特征进行组合。该方法可以充分利用第一URN提取的特征,提取LR图像更深层次的特征。

贡献

1)提出了一种双U-Net残差网络(DURN)用于超分辨率CMR图像,包括浅层特征提取、深层特征提取、上采样和重构。
2)然后提出了U-Net残差网络(URN)模型,通过对浅层特征连续上采样和连续下采样,从LR图像中提取深层特征。在此基础上,提出了一种双U-Net残差网络模型,通过合并相邻U-Net残差网络模型的相同位置特征,提取更深层次的特征。
3)在标准数据集上验证了DURN的优越性,不仅提高了峰值信噪比(PSNR)和结构相似性指数(SSIM)的性能,而且获得了更好的视觉效果。

方法

本文采用双U-网残差网络(DURN)对CMR图像进行重构,该网络包括浅层特征提取、深层特征提取、上采样和重构。在这里插入图片描述

网络架构

双U型网络残差网络(DURN)的结构如图1所示。其中,ILR和ISR表示DURN的输入LR图像和输出SR图像。注意,DURN首先使用初始卷积层来从所提取的LR图像提取浅特征。
请添加图片描述

其中Hinitial(·)表示初始卷积层的操作,并且Fshallow表示提取的浅特征。然后,Fshallow被用作对偶U-Net残差模型的输入以提取深特征。
请添加图片描述

其中HDunet(·)表示对偶U-Net残差模型的运算,Fdeep表示提取的深度特征。提取的深特征Fdeep和浅特征Fshallow通过残差连接,作为上采样模块的输入。
请添加图片描述

其中Hup(·)表示上采样操作,Fup表示上采样特征。
最后,卷积层将上采样后的特征重构为超分辨率图像ISR
请添加图片描述

其中Hrec(·)表示重构运算,HDURN(·)表示对偶U-Net残差网络(DURN)运算。
本文利用L1损失函数对DURN的参数θ进行优化。
请添加图片描述
优化过程是最小化L1损失函数。本文利用Adam算法来最小化L1损失函数。

Dual U-Net residual network (DURN) model(双U-Net残差网络(DURN)模型)

受U-Net网络在图像分割中的优异性能启发,提出了U-Net残差网络(URN)模型。图2为U-Net残差网络(URN)模型的结构图;如我们所看到的,URN模型由残差块、上块和下块组成。在这里插入图片描述
进一步将URN模型分为上分支和下分支;在上分支中,残差块和上分支构成一个完整的模块来提取和上采样深度特征,上分支的输入特征大小为H × W × 8。通过深度特征提取和上采样,上分支输出特征大小为H × W × 64。在下分支中,残差块和下块也形成一个整体模块来提取和下采样深度特征。下分支的输入特征大小为H × W × 64,通过提取和下采样深度特征,下分支的输出特征大小为H × W × 8
请添加图片描述
图3示出了残差块+上块和残差块+下块模型的结构。在图3中,残差块模型由Conv和PReLU组成,并采用局部跳跃连接联合收割机浅部和深部特征,充分利用了原始LR图像各层的特征。在图3(a)中,上块包括去卷积层和卷积层。上块首先使用去卷积层对特征进行上采样,使用卷积层对特征进行下采样;然后通过残差连接计算输入特征与下采样特征之间的误差,最后利用去卷积层对误差特征进行上采样。通过这些操作,上块可以实现深度特征提取和上采样。同时,上分块还可以通过误差计算提高提取和上采样的精度,图3(b)为下分块的结构。正如我们所看到的,下行块的结构与上行块的结构相似。下块还通过误差计算来提高提取和下采样的精度。然而,下块和上块之间的差异在于误差特征的计算方式下块使用卷积层来对误差特征进行下采样,并且上块最终使用去卷积层来对误差特征进行上采样。
请添加图片描述

现在,在URN模型的基础上,我们进一步提出了一种双U-Net残差网络(DURN)模型,如图4所示。可以看出,DURN模型通过残差连接将提取的第一URN和第二URN之间相同位置的深度特征结合起来。此操作可表示为在这里插入图片描述(i)X表示DURN模型的输入,并且Y1表示DURN模型的第一个URN的输出;(ii) Y s 1 Y^{s1} Ys1up Y s 2 Y^{s2} Ys2up表示第二URN的上分支的组合特征,(iii) Y s 1 Y^{s1} Ys1down Y s 2 Y^{s2} Ys2down下表示第二URN的下分支的组合特征,以及(iv)HRU(·)表示URN的残差块和上行分支的上行块的运算,HRD(·)表示URN的残差块和下行分支的下行块的运算。由上式可以分析出,DURN能够充分利用第一URN提取的特征,提取出更丰富的特征信息。算法1给出了DURN的总体过程。在这里插入图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ResNet-18是一种残差神经网络模型,它是由18个卷积层和全连接层组成的深度神经网络。残差神经网络是一种通过引入残差连接来解决梯度消失和梯度爆炸问题的网络结构。在ResNet-18中,残差连接通过跳跃连接的方式将输入直接添加到输出中,使得网络可以更好地学习到残差信息,从而提高了网络的性能和训练效果。 关于如何使用Pytorch编写一个ResNet-18残差神经网络,你可以按照以下步骤进行操作: 1. 导入必要的库和模块: ```python import torch import torch.nn as nn import torchvision.models as models ``` 2. 定义ResNet-18模型: ```python model = models.resnet18(pretrained=False) ``` 3. 修改最后一层的输出维度: ```python num_classes = 10 # CIFAR10数据集的类别数 model.fc = nn.Linear(512, num_classes) ``` 4. 定义损失函数和优化器: ```python criterion = nn.CrossEntropyLoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9) ``` 5. 加载数据集并进行训练: ```python # 这里假设你已经准备好了CIFAR10数据集 train_loader = ... test_loader = ... num_epochs = 10 for epoch in range(num_epochs): for images, labels in train_loader: # 前向传播 outputs = model(images) loss = criterion(outputs, labels) # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() # 在测试集上评估模型 with torch.no_grad(): correct = 0 total = 0 for images, labels in test_loader: outputs = model(images) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() accuracy = 100 * correct / total print(f'Epoch [{epoch+1}/{num_epochs}], Accuracy: {accuracy}%') ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值