论文题目:3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation
3D u-net,从稀疏注释中学习密集体分割
2D U-net的相关内容请见在下的另一篇论文笔记:
【论文】U-Net: Convolutional Networks for Biomedical Image Segmentation
目录
5.1 Semi-automated segmentation
5.2 Fully-automated segmentation
1. Introduction
Volumetric images play a key role in a dense 3D segmentation:
- Volumetric data is abundant in biomedical data analysis.
- Annotation of large volumes in a slice-by-slice manner is very tedious and inefficient, since neighboring slices show almost the same information.
- Especially for learning based approaches that require a significant amount of annotated data, full annotation of 3D volumes is not an effective way to create large and rich training data sets that would generalize well.
和分割2D平面图像相比,3D立体图像分割工作的不同点和难点在于它的数据。
上图是蟾蜍肾小管的3D共聚焦图像,它是实心的,用xy、xz、yz三个正交平面上的截面图来简单的示意,目的就是要从里面分割出对应的立体的肾小管。按照传统的基于学习的方法,要在这个实心的3D图像每一个维度上所有的截面数据进行标注,生成稠密标签数据集用于训练。但是从几何学上来说,立体的三个维度上有非常多的截面,数据量非常大,而且相邻的截面的数据差别非常小,因此,对每个截面打标签的方式生成训练集是非常低效、工作量巨大的,并且泛化性能不好。
We suggest a deep network that learns to generate dense volumetric segmentations, but only requires some annotated 2D slices for training.
- The proposed network extends the previous u-net architecture by replacing all 2D operations with their 3D counterparts.
- The implementation performs on-the-fly elastic deformations for efficient data augmentation during training.
因此,基于u-net网络可以使用少量的2D标签数据训练网络的思想,他们课题组在u-net的基础上进行拓展,提出了3D u-net,对立体图像三个维度上的少量的截面进行标注,然后将这个立体图像放入网络中训练,最后生成目标图像的3D分割结果。
它的拓展工作主要在两个方面:
-
拓展2Du-net网络结构,用3D操作代替原来的2D操作;
-
使用动态弹性形变来扩充数据。
下面来详细看看这些工作是如何实现的。
2. Data
Data augmentation:
- Generate smooth dense deformation, sampling random vectors from a normal distribution with standard deviation of 4 in a grid with a spacing of 32 voxels in each direction and then applying a B-spline interpolation.
- It is done on-the-fly, which results in as many different images as training iterations.
Data annotation:
- Manually annotating some orthogonal xy, xz, and yz slices in each volume using Slicer3D.
- The annotation slices were sampled as uniformly as possible in all 3 dimensions.
- 0: “inside the tubule” 1: “tubule” 2: “background” 3:“unlabeled”
All voxels in the unlabelled slices also get the label 3 (“unlabeled”).
对于3D分割的难点在于3D数据。
和2D u-net扩充数据的路数类似,作者也是使用弹性形变来扩充数据,在3D图像每个方向32个体素的网格中采样,从标准偏差为4的正态分布中抽取随机向量,然后应用b样条插值,生成平滑密集的变形。
不同的是,这里的数据扩充是动态实时进行的,使网络在训练迭代的时候,能够学习更多不同的图像。
在标注3D立体图像时,在xy、xz、yz三个正交平面上尽可能均匀地采样2D的截面数据,然后进行人工标注。下面这张图给出了示例,在每个正交平面采样截面数据。每个像素的标签有四类:在管内、管面、背景、未标记。对于其他所有没有被采样标注的截面,默认他们是未标记的。
(Slicer3D是医疗图像信息学、图像处理和三维可视化的开源软件平台)
3. Training
The Energy Function:
- Use softmax with weighted cross-entropy loss, similar to U-Net.
- Set the weights of unlabeled pixels to zero.
因为3D u-net沿用了2D u-net的损失函数计算方式,也是用交叉熵加权损失函数处理softmax结果,减少背景的权值,增加内部小管的权值。
此外,将未标记像素的权重设置为零,这样做,可以实现只从标记的像素学习,并将其推广到整个立体图像。这样就使得3D u-net能够在稀疏标注数据集上训练网络。
4. Network Architecture
下面来看看3D u-net的网络结构,它在2D u-net上进行了拓展。
2D U-net | 3D U-net |
与2D u-net相比——
共同点:
- 网络结构相同,都由收缩网络和扩展网络组成,左边收缩网络分析整个图像,提取图像特征信息,右边扩展网络提高分辨率和分割精度,中间使用contactnation进行特征图拼接。
不同点:
- 一,输入、输出都是三维数据;
- 二,用三维卷积、池化、上卷积操作代替了原来的二维操作;
- 三,在每一步ReLU之前引入batch normalization(批归一化)加快收敛速度。
有关batch normalization的内容,参考:https://www.cnblogs.com/shine-lee/p/11989612.html
5. Experiment
下面通过一些实验,来评估3D u-net在不同应用中的性能。
5.1 Semi-automated segmentation
半自动化分割实验:选择一个3D图像的三个正交面上的几张截面进行人工标注,训练3D U-net,然后用训练好的3D u-net对该3D图像进行分割,如下图所示。即 原汤化原食。
使用交并比IoU评价分割的准确率。
- 评估BN对3D U-net网络性能的影响,实验结果见下表。
每个subset里面包含25张左右的标签数据。对比可见,引入BN的3Du-net有最高的IoU,即:分割准确率最高。
- 评估带注释的截面数据的数量对3D u-net网络性能的影响,实验结果见下表。
GT slices表示三个维度上标签截面数据的数量。随着数量的增多,分割结果的IoU值越大,且在5,5,3时就可以取得较高值。
这些实验有效说明了3D u-net的确能够在少量的标签数据集上训练出较好的分割效果,BN的引入也改善了性能。
5.2 Fully-automated segmentation
全自动分割实验:在两个稀疏标注样本数据上训练,然后在第三个样本上测试,如下图所示。即 测试泛化能力。
实验中一共用了3个volume data,每次使用其中两个volume data训练3D u-net,然后用剩下的另一个volume data测试训练好的网络。且分别使用不同参数(BN or not)的3D u-net。
测试结果如下表,可见,3D u-net的IoU值最高,体现了3Du-net具有较好的泛化性能,但是它受数据集的差异的影响较大。
6. Conclusion
- 3D U-Net is based on the previous u-net architecture, able to already generalize from few annotated slices leading to an accurate 3D segmentation with little annotation effort.
- 3D U-Net saves experts from full volume annotation.
- 3D U-Net can learns from multiple sparsely annotated data sets to generalize to new data.
- 3D U-Net offers an accurate segmentation for the highly variable structures of the Xenopus kidney.
- We ran 70000 training iterations on an NVIDIA TitanX GPU, which took approximately 3 days.
总结3D u-net的工作,分为以下几点:
- 3D u-net是2D u-net在3D立体生物医学图像分割领域的拓展与应用,用少量标注的立体截面数据训练网络,实现较高精度的3D分割,大大减少了标注工作量。
- 避免了低效繁重的全立体标注。
- 有一定的泛化性能。
- 3D u-net能够分割具有复杂结构的立体医学图像,分割结果的准确率在当时来说是较好的。
- 但是他的训练时间挺长,七万次训练迭代要3天。