在生物医学方面,有很多3D图像,一层一层转化为2D切片很难且工作量大,而且也不高效,因为相邻切片之间的信息相似性很大。而用整个3D体积的全部数据去训练既低效又极有可能过拟合(如abus假阳性严重),同时无法创造出海量数据去好好训练(数据扩增上的困难)。
3D Unet只需要少部分2D的标注切片就可以生成密集的立体的分割。此网络主要有两个不同的作用方式,一是在一个稀疏标注的数据集上训练并在此数据集上预测其他未标注的地方,另一个方法是在多个稀疏标注的数据集训练,然后预测新的数据。
3D UNet基于之前的U-Net结构,不同的是将所有2D操作改为3D操作,同时为了加快收敛,避免训练瓶颈,使用了BN。并在训练时依据当前Batch信息进行了归一化和标准化。同时相比较于U-Net ,加权softmax损失函数,将未标记像素的权重设置为零,可以只从已标记的像素中学习。背景的softmax损失表达式中的权重被减少,而管内的权重增加,这样做有利于更好地分割,因为绝大多数地方是背景,相当于起到了突出强调作用。网络结构如下:
通过对医疗图像研究的分析,可以得到在许多生物医学应用程序中,只需要很少的图像就可以训练一个适当地概括的网络。这是因为每个图像都已经包含了具有相应变化的重复结构。在立体图像中,这种效果更加明显。这样我们就可以在两个容量图像上训练一个网络,从而推广到第三个。加权损失函数和特殊的数据增强使我们仅用少量手动标注的片来训练网络。u-net的体系结构和数据增强允许从很少的带注释的示例中获得非常好的泛化性能的学习模型,并显示适当地应用刚性转换和轻微的弹性变形仍然会产生生物学上可信的图像。
这里使用的数据是爪蟾肾胚,标记时0表示在管内,1表示管壁,2表示背景,3表示未标记,对经常出现的背景进行了加权,增加了内部小管的权重,以达到小管和背景体素对损耗的平衡影响。带有标签3的体素(“未标记的”)不会对损失计算有贡献,即重量为0。并通过cuDNN 加速。
通过旋转、缩放和灰度变化以及在标签和真实数据上的弹性变化进行数据扩增。在实验过程中,作者还采取了交叉验证和对比验证,对半自动和全自动分割两种情况,最好的是3D+BN,其次是3D(无BN),最后是2D+BN。77个切片样本分为3个子集进行3折交叉验证。
部分参考:https://blog.csdn.net/wyzjack47/article/details/81118483;https://github.com/ellisdg/3DUnetCNN