图像语义分割 -- UNET++

之前我们学习了U-Net的结构,以及模拟实现了一个模型。
现在我们继续回顾一下,U-Net的最大特征就是,在encoder-decoder的基础上进行了skip-connection的操作(浅层和深层特征的融合),我们之前实现的是一个四层的网络,作者的论文也用的是四层的。

难道必须是要四层么?于是有人就实验了不同的深度层次在不同的数据集上。请注意,每个圆圈圈都是表示一组卷积运算。
在这里插入图片描述
在这里插入图片描述

实验证明,并不是越深越好,也不是 4 层最好;
实验折射出这样的结论:不同层次(深浅)的特征的重要性 在不同数据集上 表现不同;U-Net 作者设计 4 层,只能说 4 层适合他的数据集;

有了上面的实验,那么问题来了,我们在考虑该模型的时候,到底是要选择几层呢?
最笨的办法是 挨个试,训练不同深度的模型,看看测试效果,显然这方法很耗时。

但是也有其他方式,U-Net 网络的思想,即 同时使用浅层和深层特征,在这个思想的前提下探讨网络深度,脑洞开一下,我干脆啊,把这 4 种不同深度的网络强行叠加起来;
这么做的思想是,我不管哪个层次的特征最重要,都给你算上,让模型自己去学习;

在这里插入图片描述

不得不说这样的思路全是是挺清晰的,感觉上是挺有用的,融合多种网络的来学习。只是,可惜这个原始的网络实际上是训练不了的。

在这里插入图片描述

因为红色的框框中是和网络断开的,无法进行反向传播,怎么办呢。

办法总比困难多,对上述网络做出改变。
1:修改结构
在这里插入图片描述

把长连接全部改成短连接;
这样做虽然可反向传播,但是长连接的作用是更好的利用浅层特征,改成短连接后,浅层特征被反卷积后的特征代替,显然信息丢失很多

2:U-Net++
在这里插入图片描述

把长连接全部加上

3:深监督
在这里插入图片描述

深监督是一种思想,它把 不同深度的 模型 的 输出 用一定的方法 统计起来,这样可以观测到不同 深度 的输出,从而更好的设计网络的深度;
再次强调,它只是一种思想,没有具体形式;

很明显,浅层和深层特征融合更加复杂了,而且是逐渐融合,不再是U-Net那样直接简单地融合。

我们将U-Net中的skip-connection,简称为直接连接,我们认为直接连接这种方式过于粗糙,会造成连接的两个卷积层输入拥有较大的语义差别,而这种语义差别会加大网络的学习难度,同时作者认为如果进行连接的卷积层的特征图具有相当程度的语义相似性,那么整个网络的学习难度会大大减少。
为什么会有语义不一致性呢,我们将U-Net的网络结构平铺展开,可以看到第一次下采样之前的特征图会被送到相当靠后的卷积层中进行特征的直接连接。然而我们知道,在深度卷积网络中,随着网络层数的加深,卷积层所输出的特征会越来越抽象,前几层网路所获得的特征可能是线条,边缘之类的特征,那最后一层可能就是更加抽象的特征,二者差距太大。
所以呢,U-Net++的方式更加细腻,特征提取也是越丰富。
这里也是学习一些基本的思想,网络实现也不难,就不实验了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值