U-Net论文详解

U-Net:生物医学图像分割的卷积神经网络

U-net 是基于FCN的一个语义分割网络,适合用来做医学图像的分割。
摘要
有许多成功利用大量带标注训练数据的神经网络。在这篇论文里,我们提出一个网络和训练策略,更有效的利用了数据增强来使用可获得的带标注数据。这个算法包括一个收缩路径来捕捉语义和一个扩展路径来精准定位。这个网络可以端到端训练非常少的图片,但是在ISBI(电子显微镜的细胞图像分割)挑战中表现超越了之前最好的网络。另外,这个网络很快,512*512图像花费少于1s。

1 介绍

卷积网络的典型利用是在分类任务,输出任务的单个类标签。然而,在许多视觉任务,尤其是生物医学图像处理,目标输出应该包括定位等,每个像素都应该有类标签。另外,大量的训练图片往往超过生物医学图像的任务要求。所以,Ciresan等训练了一个神经网络,用滑动窗口来预测每个像素的类标签,提供像素的周围区域(patch)作为输入。首先,这个网络可以定位。第二,输入的是patches,这样训练数据就比图片数据多很多。这个网络大幅度赢得了ISBI2012。

明显的,Ciresan的方法有两个缺点。第一,它很慢,因为这个网络必须训练每个patch,并且因为patch间的重叠有很多的冗余(冗余会造成什么影响呢?卷积核里面的W,就是提取特征的权重,两个块如果重叠的部分太多,这个权重会被同一些特征训练两次,造成资源的浪费,减慢训练时间和效率,虽然说会有一些冗余,训练集大了,准确率不就高了吗?可是你这个是相同 的图片啊,重叠的东西都是相同的,举个例子,我用一张相同的图片训练20次,按照这个意思也是增大了训练集啊,可是会出现什么结果呢,很显然,会导致过拟合,也就是对你这个图片识别很准,别的图片就不一定了)。第二,定位准确性和上下文间不可兼得。大的patches需要更多的max-pooling层这样减小了定位准确性(为什么?因为你是对以这个像素为中心的点进行分类,如果patch太大,最后经过全连接层的前一层大小肯定是不变的,如果你patch大就需要更多的pooling达到这个大小),因为Pooling层会降低分辨率,丢失信息),而小的patches只能看到很小的局部信息,包含的背景信息不够。许多现在的方法使用不同层的特征来同时兼容定位和利用context。
在这篇论文,我们建立了一个更好全卷积方法。我们定义和扩展了这个方法它使用更少的训练图片但产生更精确的分割。
这里写图片描述
(1)使用全卷积神经网络。(全卷积神经网络就是卷积取代了全连接层,全连接层必须固定图像大小而卷积不用,所以这个策略使得,你可以输入任意尺寸的图片,而且输出也是图片,所以这是一个端到端的网络。)
(2)左边的网络contracting path:使用卷积和maxpooling。
(3)右边的网络expansive path:使用上采样与左侧contracting path ,pooling层的featuremap相结合,然后逐层上采样到392X392的大小heatmap。(pooling层会丢失图像信息和降低图像分辨率且是不可逆的操作,对图像分割任务有一些影响,对图像分类任务的影响不大,为什么要做上采样?:因为上采样可以补足一些图片的信息,但是信息补充的肯 定不完全,所以还需要与左边的分辨率比较高的图片相连接起来(直接复制过来再裁剪到与上采样图片一样大小),这就相当于在高分辨率和更抽象特征当中做一个折衷,因为随着卷积次数增多,提取的特征也更加有效,更加抽象,上采样的图片是经历多次卷积后的图片,肯定是比较高效和抽象的图片,然后把它与左边不怎么抽象但更高分辨率的特征图片进行连接)
(4)最后再经过两次卷积,达到最后的heatmap,再用一个1X1的卷积做分类,这里是分成两类,所以用的是两个神经元做卷积,得到最后的两张heatmap,例如第一张表示的是第一类的得分(即每个像素点对应第一类都有一个得分),第二张表示第二类的得分heatmap,然后作为softmax函数的输入,算出概率比较大的softmax类,选择它作为输入给交叉熵进行反向传播训练

卷积层的数量大约在20个左右,4次下采样,4次上采样。输入图像大于输出图像,因为在本论文中对输入图像做了镜像操作。
我们方法对于FCN的的重要改进是上采样部分我们有大量的特征通道,使得传播语义信息到高分辨率层。结果,扩展层或多或少对称于收缩层,产生了一个u型的结构。该网络没有任何的全连接层,每个像素都利用了输入图像的full context。该方法允许任意大图片的无缝分割通过一个overlap-tile策略。为了预测框中图像,缺失区域通过镜像输入图像扩张。这种tiling方法对于应用网络到大图像很重要,因为否则结果会被gpu内存限制。为了预测黄色区域的分割,需要蓝色区域作为输入。
这里写图片描述
因为我们的任务只能获得很少的训练数据,我们通过弹性变形来数据增强。这在生物医学图像分割是很重要的,因为变形很常见。
另一个细胞分割的挑战是同一类别连接物体的分离。如图三。为此,我们使用加权损失函数,连接细胞间的背景标签分离获得较大的权重。
我们的方法在ISBI取得了很好的效果。

训练
该论文是基于Caffe,使用动量为0.99的SGD,损失函数为交叉熵,训练输入图片与它们对应的分割图片(输入图片和最后的图片的尺寸不一样)。该训练模型和传统的训练模型没什么不同,都是注意权重初始化随机,数据增强等。
这里写图片描述
公式1 这是softmax函数,ak(x)表示每一像素点对应类的得分
公式2 给像素分配权重然后进行加权,d1(x)表示图中某一背景像素点到离这个点最近的细胞边界的距离,d2(x)表示离这个像素点第二近的细胞的距离,你们可以举一下特例算一下这个权重公式会发现(带入数字算很简单,我就不举例子了),即在细胞边界附近的像素点给的权重会大一些,离细胞比较远的像素点的权重会小一些,为什么这么做呢?因为,如果同类细胞贴的比较近,可能就会增大训练的难度,减少准确率,毕竟卷积会考虑该像素点周围的一些特征,而两个相同的类的细胞贴在一起,就容易误判,所以对这种两个相同类贴在一起的细胞边界,给予较大的权重,使的训练之后分类分割更准确

数据增强

数据增强在训练样本比较少的时候,能够让神经网络学习一些不变性,弹性变换是本文使用的方法。(因为弹性形变是实际细胞中比较常见的一种形变,如果我们能采取数据增强的算法去使网络学习这种形变的不变性,就可以在分割数据集很小的情况下,使网络具有遇见弹性形变还是可以准确的检测出,相当于就是把原图,做了下弹性变形,然后,就相当于扩大了数据集嘛,自然网络就能适应这种弹性变化了,在遇见弹性变形的时候一样可以正确的分类分割)

这里写图片描述
这里写图片描述

总结

u-net网络在不同的生物医学图像分割中有很好的表现。数据增强使得只需很少的带标注数据,只需训练十小时。我们确信u-net网络可以很容易的应用到更多的任务。

  • 22
    点赞
  • 215
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Docker是一种基于容器的虚拟化技术,它提供了一种轻量级的容器化解决方案,可以将应用程序及其依赖项打包到一个可移植的容器中,以便在任何地方运行。在Docker中,容器之间的通信是通过网络实现的,在本文中,我们将详细介绍Docker中的网络通信。 Docker中的网络类型 Docker提供了四种不同类型的网络,分别是: 1. 桥接网络(Bridge Network):桥接网络是Docker的默认网络,它允许容器之间相互通信,并且可以与主机通信。在桥接网络中,每个容器都有一个独立的IP地址,并且可以通过容器名称或IP地址进行访问。 2. 主机网络(Host Network):主机网络将容器直接连接到主机网络上,容器与主机共享同一个网络接口和IP地址,因此可以与主机网络上的其他设备进行通信。 3. 网络绑定(None Network):网络绑定不为容器配置任何网络,这意味着容器无法通过网络与外界进行通信。通常,这种网络类型用于测试和调试容器应用程序。 4. Overlay网络(Overlay Network):Overlay网络用于跨主机容器之间的通信。它允许在多个主机上运行分布式应用程序,并提供了自动发现和负载均衡的功能。 Docker网络配置 在Docker中,可以使用docker network命令来管理网络。可以使用以下命令创建一个新的桥接网络: ``` docker network create my-network ``` 可以通过以下命令将容器添加到网络中: ``` docker run --name my-container --network my-network my-image ``` 在此命令中,--network选项指定要将容器添加到的网络名称。 可以使用以下命令列出所有可用的网络: ``` docker network ls ``` 可以使用以下命令查看特定网络的详细信息: ``` docker network inspect my-network ``` 在Docker中,还可以使用--link选项将一个容器链接到另一个容器。这将创建一个虚拟网络接口,允许容器之间进行通信。以下命令将容器my-container链接到容器my-other-container: ``` docker run --name my-container --link my-other-container my-image ``` 在此命令中,--link选项指定要链接的容器名称。 总结 在Docker中,容器之间的通信是通过网络实现的。Docker提供了四种不同类型的网络,包括桥接网络、主机网络、网络绑定和Overlay网络。可以使用docker network命令来管理网络,可以使用--link选项将一个容器链接到另一个容器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值