本文介绍了一种从稀疏标注的体积图像中学习的体积分割网络
作者: Tom Hardy
首发:3D视觉工坊微信公众号
论文链接:https://arxiv.org/abs/1606.06650 (文末可直接下载)
代码链接:https://github.com/zhengyang-wang/3D-Unet--Tensorflow
主要思想
本文介绍了一种从稀疏标注的体积图像中学习的体积分割网络。
3D-UNet的两个特点和优势:
(1)在半自动设置中,用户注释要分割的体积中的某些切片。网络从这些稀疏注释中学习并提供密集的3D分割。
(2)在全自动设置中,我们假设存在代表性的,稀疏注释的训练集。在此数据集上进行训练,网络可以密集地分割新的体积图像。
通过将所有2D操作替换为3D操作,网络扩展了Ronneberger等人先前的U-Net体系结构。该实现执行实时弹性变形,以在训练期间进行有效的数据增强。
网络在复杂的,高度可变的3D结构(非洲爪蟾肾脏)上测试了性能,并在两种使用情况下均取得了较好的结果。
网络结构
在许多生物医学应用中,只需很少的图像即可训练出可以很好地泛化的网络。这是因为每个图像已经包含具有相应变化的重复结构。在体积图像中,这种效果更加明显,因此可以仅在两个体积图像上训练网络,以推广到第三幅图像。加权损失函数和特殊数据增强功能使我们能够使用很少的手动注释切片(即来自稀疏注释的训练数据)来训练网络。本文的重点是它可以从零开始在稀疏注释的卷上进行训练,并且由于其无缝的切片策略而可以在任意大的模型上工作。
网络结构
编码部分和解码部分。
- 输入为132x132x116的三通道voxel,输出为44x44x28的voxels。
- 编码部分每个层包含两个3×3×3卷积,卷积层后使用BN+ReLU激活函数,然后加上2×2×2 max pooling,stride为2。
- 解码部分,每一层都有一个2x2x2的上卷积操作,stride为2,紧接着是2个3x3x3的卷积和BN+ReLU激活函数。
- 和2D-UNet相似的shortcut连接,为解码层提供高分辨率的特征。
- 在最后一层中,1×1×1卷积将输出通道数减少到标签数,并使用Softmax作为损失函数。
- 3D-UNet结构共有19069955个参数。
详细的网络结构图请见下图:
实验结果
开源实现
Github上有一些比较优秀的3D-UNet的开源实现,下面将会给出几个链接:
1、https://github.com/shiba24/3d-unet(基于Pytorch实现)
2、https://github.com/zhengyang-wang/3D-Unet--Tensorflow(婴儿大脑图像分割)
3、https://github.com/shreyaspadhy/UNet-Zoo(各类U-Net汇总,包括3D U-Net)
4、https://github.com/tkuanlun350/3DUnet-Tensorflow-Brats18(3D Unet生物医学分割模型)
推荐阅读
重点介绍:1、3D视觉算法;2、vslam算法;3、图像处理;4、深度学习;5、自动驾驶;6、技术干货。博主及合伙人分别来国内自知名大厂、海康研究院,深研3D视觉、深度学习、图像处理、自动驾驶、目标检测、VSLAM算法等领域。
欢迎关注微信公众号
文件名 | 大小 | 下载次数 | 操作 |
---|---|---|---|
3D U-Net- Learning Dense Volumetric Segmentation from Sparse Annotation.pdf | 611.3KB | 0 | 下载 |