图像分割网络之UNet


UNet首次在2015年MICCAI上发表,在医疗影像上分割取得了很好的效果。
医疗影像有如下特点:

  • 图像语义较为简单、结构较为固定。医疗影像都是一个固定的器官成像,由于器官本身结构固定和语义信息没有特别丰富,所以高级语义信息和低级特征都显得很重要。
  • 数据量少,单幅图像分辨率高。经常只能获得一百多例的数据,因此要避免模型复杂,出现过拟合。
  • 多模态。例如ISLES脑梗竞赛提供了CBF,MTT,CBV,TMAX,CTP等多种模态的数据。

UNet通过数据增强很好的解决了训练数据量不足的问题,并通过网络的U型结构很好的将低级高分辨信息和高层语义信息进行了结合。

1.本文主要内容

本文设计了一种网络和训练策略来实现医学图像分割,该策略依赖于大量使用数据增强来有效的利用可标注的样本,该网络结构由捕获上下文的收缩路径和支持精确本地化的对称扩展路径组成。

1.1 网路结构

UNet基于FCN全卷积网络的基础上进行设计,包括左侧的收缩路径和右侧的扩展路径。
左侧的收缩路径由经典的卷积网络结构组成,包括重复两次的3x3卷积的使用,采用Relu激活函数,和2x2的max pooling结构。每次下采样使特征通道数加倍。
右侧的扩展路径由转置卷积进行扩展两倍,并且特征通道数减半,对收缩路径传入的特征通过裁剪边缘使两者维数相同,进行组合。在最后一层,使用1x1卷积将每个64分量特征向量映射到期望数量的类。该网络总共有23个卷积层。
UNet网络结构图

1.2 Overlap-tile strategy

为了解决高分辨率图像的分割问题,提出了重叠平铺策略。此策略允许通过重叠平铺策略对任意大图像进行无缝分割。为了预测图像边界区域中的像素,通过镜像输入图像来外推缺失的上下文。此平铺策略对于将网络应用于大图像非常重要,否则分辨率将受到GPU内存的限制。

为了对黄色框中的图像进行分割,需要将蓝色框中的图像输入网络。从图一也可以看到网络的输入输出大小并不是相等的。仔细观察黄色框左上角的图像,能够发现他们是利用镜像对称得到的。
Overlap-tile strategy

1.3 数据增强

数据增强能够有效的提高网络的不变性和稳定性,尤其对医学图像分割问题,样本较少。采用平移、旋转,灰度变形。随机弹性形变是训练分割网络的关键。我们使用随机位移向量在粗略的3x3网格上生成平滑变形。采用在收缩路径的末端采用dropout也能得到隐式的数据增强。

1.4 加权损失

为了更好的实现边界分割,对边界的像素计算的损失采用更大的权重,损失函数采用交叉熵函数。
在这里插入图片描述
w ( x ) w(x) w(x)表示对应像素误差损失的权重, x x x表示对应的像素。
在这里插入图片描述
w c ( x ) w_c(x) wc(x)是平衡不同样本的权重, d 1 ( x ) d_1(x) d1(x), d 2 ( x ) d_2(x) d2(x)表示像素点距离最近的细胞边缘的距离和距离第二近的细胞边缘的距离。距离越小,权重越大。

2. 本文方法特点

  • 提出了U型的网络结构,通过收缩路径提取特征,通过扩展路径实现对像素的预测。和FCN相比,每次上采样过程只过大二倍特征尺寸,结果更精确。从收缩路径提取的更高分辨率的特征和上采样特征的结合,提高了分类精度。
  • 利用弹性形变实现了数据增强。

3.使用到实际过程时的问题

  • 所使用的弹性形变的数据增强方法不适合在刚性物体分割时应用。
  • 所有的卷积过程都是没有加pad的,这样就会导致每做一次卷积,特征的长宽就会减少两个像素,最后网络的输出和输入大小不一样。这提高了网络的设计难度。

参考资料

https://www.zhihu.com/question/269914775?sort=created

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像分割是计算机视觉领域中的重要任务,其目标是将图像分割成多个不同的区域,以便更好地理解图像中的内容。UNet是一种常用于图像分割的深度学习模型,通过使用PyTorch框架,可以更加高效地实现UNet模型。 UNet模型由编码器和解码器组成,编码器用于提取图像的特征,而解码器则用于将提取到的特征映射回原始图像尺寸。在PyTorch中,可以使用nn.Module来定义UNet模型的结构,通过继承nn.Module类来自定义编码器和解码器的网络结构,然后使用torch.nn.functional中的函数来定义模型的前向传播过程,实现特征提取和特征映射。 在训练UNet模型时,可以使用PyTorch提供的优化器和损失函数来对模型进行优化,如Adam优化器和交叉熵损失函数。通过对训练数据进行迭代训练,可以不断优化UNet模型,以使其能够更好地实现图像分割任务。 在应用UNet模型进行图像分割时,可以使用PyTorch提供的图像处理库对输入图像进行预处理,并使用训练好的UNet模型对图像进行分割,得到分割后的图像结果。这样可以快速、高效地实现图像分割任务,并且在PyTorch框架中还可以使用GPU加速来提高计算速度。 总之,通过使用PyTorch框架实现UNet模型进行图像分割任务,可以更加方便地定义模型结构、训练模型和应用模型,从而实现高效、准确的图像分割

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值