【论文篇】【1】详解Non-local U-Nets for Biomedical Image Segmentation

详解Non-local U-Nets for Biomedical Image Segmentation

在这里插入图片描述

0.论文作者

在这里插入图片描述

1.Unet的不足

1.1 unet编码器均为局部操作,无法整合全局信息,同时下采样丢失空间信息,尤其对生物医学图像不利。unet编码器通常会堆叠卷积层与下采样交叉在一起,逐渐减小特征图的空间尺寸。卷积操作、下采样操作都是局部操作,运用小卷积核进行特征提取。通过级联的方式叠加卷积和下采样操作产生较大卷积核,因此能够聚集较大范围信息。由于生物医学图像分割通常受益于广泛的上下文信息,因此大多数模型需要深层的编码器,即堆叠更多的局部操作。这样会引入大量训练参数,尤其是在需要更多下采样的时候,因为通常这样特征映射的通道数会加倍此外,下采样会丢失更多的空间信息,这些信息对于生物医学图像分割至关重要

1.2 unet解码器同样为局部操作,上采样很难恢复全局信息,尤其是无法从编码器有效获取全局信息。unet解码器上采样如反卷积,反池化操作都是局部操作,上采样恢复细节信息需要全局信息。如果不考虑全局信息就很难做到这一点。

2.本文创新点

1.提出了全局聚合模块global aggregation block,汇聚全局信息得到更加精确的分割图

2.简化unet下采样到4x,使其更加高效快速且减少很多参数

3.non-local unet结构

网络使用的3d结构,上图示例输入为两个通道,输出为4类
网络使用的3d结构,上图示例输入为两个通道,输出为4类,每一次下采样通道加倍,反之上采样通道减半,短连接采用相加操作。优点有两点:

1.跳跃连接不会增加特征图的数量,从而减少了参数

2.相加可以视作残差连接,在训练中任然有效

4.Residual Blocks

提出的网络结构中相加操作等价于远程残差连接模块,并且基于global aggregation block,作者提出了四种残差网络,都采用了pre-activation模式。
在这里插入图片描述
a.regular residual block
标准残差模块,在跳跃连接求和后插入这样的模块

b.down-sampling residual block
下采样残差模块,下采样时使用

c.bottom block
底部模块,使用global aggregation block

d.up-sampling residual block
上采样模块,上采样时使用

5.Global Aggregation Block

在这里插入图片描述
x,y:输入输出
Conv_1N:输出通道为N的点卷积
Unfold(·):将D × H × W × C展开为(D ×H ×W)×C张量
QueryTransformCK (·): 生成CK feature maps的任何操作
CK, CV:是表示键和值的维度的超参数
K,V: 假设X的尺寸为D×H×W×C,则K和V的尺寸分别为(D×H×W)×CK和(D×H×W)×CV

第一步,生成query (Q), key (K) and value (V ) 矩阵。Unfold之前有Multi-Head操作,Multi-Head将通道拆分,Q的维度为(DQ × HQ × WQ) × CK,
在这里插入图片描述
第二步,自注意机制。A为注意力矩阵,用Q点乘K的转置,除以根号CK,再使用softmax,A的维度为(DQ × HQ × WQ) × (D × H × W)。O的维度为(DQ × HQ × WQ) × CV。大家可以画画图理解一下2d卷积的情况,本质还是non-local操作。
在这里插入图片描述
第三步,还原为原维度大小。
在这里插入图片描述

6.实验结果

在这里插入图片描述
在这里插入图片描述
可以看到精度提高同时参数更少,推理速度更快。
在这里插入图片描述
在这里插入图片描述

7论文下载连接

Non-local U-Nets for Biomedical Image Segmentation论文下载连接

码字不易,觉得我写的不错的可以点一下关注哦(⊙o⊙)求赞求关注。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 用 Java 实现根据 cp-nets 图生成 cp-nets 导出图的方法如下: 1. 读取 cp-nets 图的数据结构,包括点和边的信息。 2. 建立一个新图,用于存储 cp-nets 导出图。 3. 根据 cp-nets 图的点和边的信息,在新图中创建点和边。 4. 应用 cp-nets 导出算法,在新图中生成 cp-nets 导出图。 5. 输出 cp-nets 导出图的数据结构。 下面是一个简单的实现示例: ``` import java.util.ArrayList; import java.util.List; public class CPNet { private List<Node> nodes; private List<Edge> edges; public CPNet(List<Node> nodes, List<Edge> edges) { this.nodes = nodes; this.edges = edges; } public List<Node> getNodes() { return nodes; } public List<Edge> getEdges() { return edges; } public static class Node { private String name; public Node(String name) { this.name = name; } public String getName() { return name; } } public static class Edge { private Node source; private Node target; public Edge(Node source, Node target) { this.source = source; this.target = target; } public Node getSource() { return source; } public Node getTarget() { return target; } } public CPNet export() { List<Node> exportedNodes = new ArrayList<>(); List<Edge> exportedEdges = new ArrayList<>(); // Apply export algorithm to generate exported graph return new CPNet(exportedNodes, exportedEdges); } public static void main(String[] args) { List<Node> nodes = new ArrayList<>(); nodes.add(new Node("A")); nodes.add(new Node("B")); nodes.add(new Node("C")); List<Edge> edges = new ArrayList<>(); edges.add(new Edge(nodes.get(0), nodes.get(1))); edges.add(new Edge(nodes.get(1), nodes.get(2))); CPNet cpNet = new CPNet(nodes, edges); ### 回答2: CP-nets(条件偏好网络)是一种用于表示个体偏好关系的图形模型。根据CP-nets图生成CP-nets导出图,可以使用Java编程语言实现。 首先,我们需要定义一个CP-nets图的数据结构,可以使用邻接矩阵表示法或邻接链表表示法。假设我们使用邻接链表来表示CP-nets图,其中每个节点表示一个条件偏好关系。 接下来,我们可以使用Java的图形化库(比如JavaFX或Swing)来绘制CP-nets导出图。我们可以根据CP-nets图的数据结构,在图形界面上绘制节点和边,以表示条件偏好关系。 具体步骤如下: 1. 创建一个Java项目,并引入图形化库所需的依赖。 2. 设计CP-nets图的数据结构,可以包括节点类和边类。节点类应包含节点的属性,如名称、偏好值等。边类应包含边的属性,如起始节点、结束节点等。 3. 实现CP-nets图的读取功能,可以从文件中读取CP-nets图的数据,或者通过用户输入获取。 4. 使用图形化库创建一个窗口,作为CP-nets导出图的界面。 5. 将CP-nets图的节点和边在界面上绘制出来。可以根据节点的位置、大小和偏好值等属性来绘制节点,使用合适的线条来连接相邻节点。 6. 添加交互功能,比如点击节点展开或关闭其下级节点。 7. 运行程序,根据输入的CP-nets图数据,显示出CP-nets导出图。 通过上述步骤,我们可以使用Java实现根据CP-nets图得到CP-nets导出图的功能。编写并运行程序后,我们可以在图形界面上直观地观察和分析CP-nets图的结构和偏好关系。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值