目录
- 前言
- 1. 问题
- 2. 方法改进
- 3. 关于魔改
- 参考文献
前言
U-Net可以说是语义分割领域的老二哥了(大哥还是FCN),其结构简单优雅(对称结构),由编码器和解码器组成,很适合自己各种魔改,而且效果也很不错,用于比赛那是妥妥的。
code&paper: https://github.com/ZhangXiangd/semantic-segmentation
1. 问题
- 医学图像任务中,通常难以获取到成千上万的训练图像,如何在少量训练图像条件下取得较高的精度呢?
- 已提出的解决方法:Ciresan等人[1]通过滑动窗口在大尺寸的医学影像上进行采样,以每个像素及其周围区域内的像素作为单个样本(patch),这样就能得到较多数量的训练图像。
2. 方法改进
- Ciresan等人所提方法的缺点:(1) 重叠的patch存在大量的冗余,且对于每个patch都需要网络运行一次,速度很慢;(2) 无法妥善的去平衡(trade-off)定位精度和上下文信息,大的patch需要更多的池化层导致定位精度降低,而小的patch网络只能获取少量的上下文信息。
- 改进:(1) 对FCN进行改进,改进后的网络主要包括收缩路径和扩张路径,分别用于提取上下文语义信息和恢复空间细节信息。通过跨层连接将编码器的特征图经过裁剪和复制与解码器特征图concat,所以在上采样的过程中有大量的特征图通道数,有利于将信息传播到分辨率更高的层;
(2) 为了更精确的预测图像的边缘部分,采用overlap-tile策略,即:预测图中黄框部分,需要以蓝框部分作为输入,空白的部分通过镜像翻转来补齐,再对预测的结果做一个裁剪就能得到黄框部分对应的预测结果;(这个trick在做遥感影像分割时也很有效,能够减少预测结果的拼接痕迹)
(3) 数据增强。在训练数据少的时候必然要做数据增强,扩充样本的同时还能增强网络的泛化能力。文中做了平移、旋转和随机形变。
3. 关于魔改
- 更换编码器:使用各种预训练模型做encoder
- 减少解码器参数:使用upsampling+Conv代替transposeConv
- 加各种模块,如注意力模块或者新论文中提出的能提高网络性能的模块
参考文献
[1] Deep neural net-works segment neuronal membranes in electron microscopy images