Unet:Convolutional Networks for Biomedical Image Segmentation
在FCN的基础上设计解码器,并通过跨连接连接相同分辨率特征
什么是 UNet?
- Unet是针对医学图像开发的图像分割模型,一种U型结构,可认为是FCN基础上跨连接更彻底一点,即在每次下采样进行跨连接
Unet的网络结构?
- 输入:H * W * 3,输出是 H/n * W/n * C,n 是输出图与原图的大小比,C 是类别数
- 编码器:特征提取网络VGG/ResNet
- 解码器:特征融合网络,目标是将编码器学习的判别特征(较低分辨率)语义投影到像素空间(较高分辨率)以获得密集分类
Unet的损失函数?
- 输入标签的h * w,分割后得到的输出是H/n * W/n * C,其中C为每个像素的类别概率
- 使交叉熵损失(CrossEntropyLoss) 计算损失
Unet如何处理超大的医学图像?
- 分割时候不可能将原图太小输入网络,所以必须切成一张一张的小patch
- 在切成小patch的时候,Unet由于网络结构原因适合有重叠的切图
Unet的缺点?
- 很慢:因为这个网络必须训练每个 patch,并且因为 patch 之间的重叠有很多冗余,这样会导致同样特征被多次训练,造成资源的浪费,导致训练时间的加长且效率也会有所降低
- 定位准确性和获取上下文信息不可兼得: 大的 patches 需要更多的 max-pooling,这样会减少定位准确性,因为最大池化会丢失目标像素和周围像素之间的空间关系,而小 patches 只能看到很小的局部信息,包含的背景信息不够
Unet与FCN在特征融合时的差别?
- FCN是通过特征图对应像素值的相加来融合特征的
- UNet 通过通道数的拼接,这样可以形成更厚的特征,当然这样会更佳消耗显存
什么是 弹性变形?
- 可对图片模拟力按压的效果,对于分割类似线等细小物体有效果提升
- 对像素点各个维度产生(-1,1)区间的随机标准偏差,并用高斯滤波(0,sigma)对各维度的偏差矩阵进行滤波,最后用放大系数alpha控制偏差范围