网络结构
本文提出了一个分割网络——Unet,Unet借鉴了FCN网络,其网络结构包括两个对称部分:前面一部分网络与普通卷积网络相同,使用了3x3的卷积和池化下采样,能够抓住图像中的上下文信息(也即像素间的关系);后面部分网络则是与前面基本对称,使用的是3x3卷积和上采样,以达到输出图像分割的目的。此外,网络中还用到了特征融合,将前面部分下采样网络的特征与后面上采样部分的特征进行了融合以获得更准确的上下文信息,达到更好的分割效果。
Over-tile策略
参考https://www.zhihu.com/question/268331470/answer/368865906。
Unet使用一种称为overlap-tile的的策略,使得任意大小输入的图片都可以获得一个无缝分割。over-tile策略如下图所示:
该策略的思想是:对图像的某一块像素点(黄框内部分)进行预测时,需要该图像块周围的像素点(蓝色框内)提供上下文信息(context),以获得更准确的预测。
这样的策略会带来一个问题,图像边界的图像块没有周围像素,因此作者对周围像素采用了镜像扩充。下图中红框部分为原始图片,其周围扩充的像素点均由原图沿白线对称得到。这样,边界图像块也能得到准确的预测。
另一个问题是,这样的操作会带来图像重叠问题,即第一块图像周围的部分会和第二块图像重叠。因此作者在卷积时只使用有效部分(valid part of each convolution),虽然卷积的时候会用到周围的像素点(蓝色框内),但最终传到下一层的只有中间原先图像块(黄色框内)的部分(可理解为不加padding)。
至于为什么要对图像分块不输入整张图像则是因为内存的限制,有的机器内存比较小,需要分块输入。即便如此,相较之前的滑窗输入,Unet已经快乐非常多了,其一是因为不用取那么多块,其二是因为取块时候没有那么大的重叠。
边缘像素加权
本文中另一个比较有意思的点是对于细胞边缘的分割像素点加大了损失权重,使得网络更加重视边缘像素的学习。
训练
损失函数
如上所述,Unet使用了加权的softmax损失函数。对于每一个像素点都有自己的权重。从上面d图中不同颜色可以看到。权重公式如下:
数据增强
由于医学数据通常是非常少的,因此数据增强就变得异常重要。显微镜图像一般需要旋转平移不变性,弹性形变和灰度值变化鲁棒性。训练样本的随机性变形似乎是训练之后少量标注图像的分割网络的关键。
此外,文中还使用了dropout技术。
小结
Unet是一个稠密预测(分割)网络,个人认为本文比较有意思的地方有两个:第一个是overlap-tile策略,解决了边缘区域没有上下文的问题;第二个是使用了加权损失以使得网络更加重视边缘像素的学习。
参考:
U-Net: Convolutional Networks for Biomedical Image Segmentation.
论文笔记:Unet用于医学图像分割的卷积网络(UNet Convolutional Networks for Biomedical Image Segmentation)
如何理解u_net中的overlap_tile策略?
网友评论