3D U-Net

论文地址:https://arxiv.org/abs/1606.06650
项目地址:https://lmb.informatik.uni-freiburg.de/resources/opensource/unet.en.html

1. 论文背景

(1)医学数据分析中立体数据是常见的(CT、MRI);
(2)slice-by-slice的标注方式是冗余并且低效的。

2. 论文亮点

原文:In this paper, we suggest a deep network that learns to generate dense volumetric segmentations, but only requires some annotated 2D slices for training.
核心:训练过程只要求一部分2D slices,去生成密集的立体分割。
具体有两种方法:
(1)在一个稀疏标注的数据集上训练并在此数据集上预测其他未标注的地方;
(2)在多个稀疏标注的数据集上训练,然后泛化到新的数据。
在这里插入图片描述
上图很好地表达了论文中的两种方法:
(a)利用少部分切片做完整的密集预测(立体分割);
(b)在标注的数据集上训练模型,再应用到新的无标注数据上直接做密集预测。

3. 3D Data

在讲解论文细节之前,先了解一下什么是3D data
在这里插入图片描述

这是一张“纸”的二维图像,单位像素表示的是在xy轴方向隔多远距离(mm)取一个灰度值。显然,对于同一张“纸”,像素越多,图片就越清晰,而像素是由手机质量决定的。对于脑子、肺这样的器官,是一个立体的目标,仅仅靠二维图像难以有效表达出来,因此CT\MRI图像都进行了三维表达,那么自然就需要三维的像素(像素体voxel)来进行衡量。
通过上面的描述你应该知道像素是长宽高空间在图像上的表达。举个例子,假设CT探测器采集野为256mm,而CT矩阵(图像)大小为512*512,那么像素体长宽即为XY轴采集的大小:256mm / 512 = 0.5mm,Z轴采集大小决定像素体高度。
CT图像各向同性:指图像像素在X轴、Y轴、Z轴方向的大小一致。

4. 论文细节

4.1 模型结构

在这里插入图片描述

与U-Net基本类似,这里主要强调一下几点:
(1)与U-Net输入相比,这里输入是立体图像(132×132×116),并且是3个channel。
(2)ReLU之前加了BN,使得收敛速度加快。
(3)通过在最大池化之前加倍doubling通道数量channels来避免bottlenecks。(参见论文

4.2 3D卷积

至于3D卷积的细节参见上一篇博客
核心:3D卷积的结果反映在channels的变化上,其他与2D基本没有区别。

由于该paper论文没有复现成功,所以始终把握不住要义,等通过其他项目的学习再回头来更新博客,也希望各位大牛不吝指教~


**********我是分割线**********

2019年12月23日更新,通过多个 3D Unet 项目的学习,对该结构有了一定的了解,现按以下顺序帮助读者进一步了解 3D Unet。(最近申请了一个b站账户,所以接下来可能会录制项目视频讲解,哈哈哈哈)

  1. Pytorch API介绍
  2. Conv3d的具体实现
  3. 项目中如何应用?

1. Pytorch API介绍

参考链接: https://pytorch.org/docs/stable/nn.html#conv3d
在这里插入图片描述
与2D卷积操作一样,nn.Conv3d参数依次为 输入通道数、输出通道数、卷积核大小、卷积步长 等。

2. Conv3d的具体实现

对于Conv2d,一个由输入通道数数量组成滤波器可产生一张 Feature Map,这张 Feature Map 是对数据更高层次的抽象表达,不同滤波器得到的是不同类型的表达(即多张 Feature map),具体实现可用下图表示:
在这里插入图片描述

但是如果各个 feature map 之间有联系怎么办呢(比如视屏帧)?2D卷积操作显然没有考虑到各个 feature map 之间的联系,由此引入3D卷积。
在这里插入图片描述
那么这个32 * 32 * 32的结果就考虑到了前面层中各个feature map之间(可以是时间维度、深度维度等)的联系。那么想得到多个不同类型的特征结果呢?显然多使用几个不同的滤波器(上图黄色立方体)即可。


所以你经常会在 3D Unet 的项目中见到如下的维度变化:

  • torch.size([5, 256, 64, 64, 64]) --> torch.size([5, 512, 32, 32, 32])

注:输入通道数为256,输出通道数为512.

3. 项目中如何应用?

对于项目中如何使用 3D 卷积,我有如下两点体验:

  1. 第三维度上联系密切,比如医学图像上各个slice之间是有联系的,这种情况下是可以考虑3D卷积的。
  2. 使用 3D 卷积要注意输入通道数、输出通道数与提取的特征图(立方体)之间的区别。
  • 17
    点赞
  • 125
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值