zoukankan      html  css  js  c++  java
  • 图像分割

    铺垫

    在图像分割领域,全卷积网络 FCN 是非常经典的网络,而 U-Net 在医学图像分割方面表现的更加突出;

    FCN vs U-Nnet

    相同点:二者都采用了 encode 和 decode 的经典思路,也就是 AutoEncode 的思路;

    这种思路起初被用于 图像压缩和去噪,后来被用到图像分割,是不是很厉害呢?所以别看他简单,重要的是思想;

    不同点

    1. U-Net 是一种完全对称的结构,网络的 decode 部分仍然是卷积结构,而 FCN 的 decode 相对简单,只是 deconvolution 反卷积操作;

    2. skip connection 的使用,U-Net 是叠操作,FCN 是加操作;

    叠操作:1,2 ==> [1, 2]

    加操作:1, 2 ==> 3

    一个 decode 被玩出这么多花,是不是很厉害?所以,别觉得简单;

    学习 U-Net 的重点是掌握 网络结构的思想,而非 U-Net 本身; 

    FCN 和 U-Net 都是非常经典的基础网络结构,事实上,他们已经被多次引用,扩展后的网络屡次发表顶会;

    U-Net

    下面我们认识一下主角

    看起来稍微有些乱;

    我们把它的 拓扑结构 抽取出来,这样更接近它的实质,排除细节的干扰;

    这就是 大部分 分割网络 的拓扑结构; 

    分为三部分:

    下采样:增加 对输入微小噪声 的鲁棒性,也就是关注主要矛盾,提取特征,增加感受野大小;

    上采样:对特征进行还原;

    skip connection:把浅层特征 叠加到 深层特征上,同时关注了浅层和深层特征;

    扩展

    思考一下,U-Nnet 把这个拓扑结构扩展成它的模样,如果让你去扩展,你会如何?

    思考-网络深度

    这是网络设计时必须要考虑的问题;

    首先,我要明确的告诉你,模型的深浅 并不是 作者设计多少就是多少;

    U-Net 的重点就是 同时利用了 深浅层特征,那为什么 它 4 层就最深了呢?

    有人在 他自己的数据集上 训练了不同深度 的 U-Net 并测试,结果如下

    实验证明,并不是越深越好,也不是 4 层最好; 

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

    灵魂之问:到底要多深? 

    最笨的办法是 挨个试,训练不同深度的模型,看看测试效果,显然不是很高大上;

    回到 U-Net 网络的思想,即 同时使用浅层和深层特征,在这个思想的前提下探讨网络深度,脑洞开一下;

    把 4 种不同深度的网络强行叠加起来;

    这么做的思想是,我不管哪个层次的特征最重要,都给你算上,让模型自己去学习

    可惜的是这个网络中的红色区域无法进行反向传播,因为网络是断开的;

    怎么解决呢?这才是本文的核心,即如何设计一个网络;

    网络设计

    针对上面的问题,给出几套方案

    1.  修改网络结构

    把长连接全部改成短连接;

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

    虽然说这个设计不是很完美,但注意,这个设计也发表在 CVPR 上了哦,所以搞起来吧;

    2. U-Net++

    很简单,把长连接全部加上,这就 CVPR 了 

    3. deep supervision,深监督

    深监督是一种思想,它把 不同深度的 模型 的 输出 用一定的方法 统计起来,这样可以观测到不同 深度 的输出,从而更好的设计网络的深度;

    再次强调,它只是一种思想,没有具体形式;

    下图就是 把 深监督 套到了 U-Net++ 上;

    深监督最大的意义在于 剪枝 

    剪枝在移动端的作用十分明显;

    在训练时 我们训练不同深度融合的网络,如果 浅层网络的结果已经满足需求,那么深层网络的权重将置零,也就等于没了,在测试时,速度会大大提升;

    参考资料:

    https://zhuanlan.zhihu.com/p/44958351  大神之作,坚决只看这一篇

  • 相关阅读:
    JavaScript 深入之从原型到原型链
    js重写内置的call、apply、bind
    js中flat方法的实现原理
    【我的物联网成长记6】由浅入深了解NB-IoT【华为云技术分享】
    GO富集分析示例【华为云技术分享】
    华为“方舟编译器”到底是啥?一文看懂TA如何让手机性能再突破【华为云技术分享】
    无码系列-7-代码的语文修养_上篇【华为云技术分享】
    机器学习笔记(一)----基本概念【华为云技术分享】
    性能达到原生 MySQL 七倍,华为云 Taurus 技术解读【华为云技术分享】
    【立即报名】人脸情绪识别案例分享【华为云技术分享】
  • 原文地址:https://www.cnblogs.com/yanshw/p/12511216.html
Copyright © 2011-2022 走看看