一、前言

FCN是语义分割模型的先驱,而U-Net作为FCN的衍生物,在很多方面都与FCN有着异曲同工之处(有关FCN的内容请查阅我的上一篇文章https://blog.csdn.net/dongjinkun/article/details/109586004),比如,都舍弃了参数众多的全连接层,选择全卷积的方式。现在语义分割大多数的网络模型都是在U-Net这个“优雅的”网络结构上进行修改,所以U-Net有多么的重要,大家自己心里应该有一杆秤了。下面请跟随我的思路一步一步的深挖U-Net这个优雅的网络模型吧!!!

二、U-Net网络结构

  • 1.U-Net由一个contracting path 和一个expanding path组成,contracting path主要是为了利用卷积层对特征进行提取,expanding path对feature map进行上采样,以便对图像进行像素级别的预测。
  • 2.U-Net也运用了与FCN相同的技巧(skip结构,文中copy and crop就是指的skip结构),将浅层的卷积核得到的局部、细节特征与深层卷积核得到的全局、抽象特征相结合,以便更加精准的对图像进行分割。
  • 3.U-Net并不像FCN那样简单的将特征相加,而是先concatenate生成双倍通道的特征图,然后再卷积。

三、Overlap-tile strategy

细心的小伙伴可能会发现,U-Net并不是一个严格意义上的对称结构,在同一层上特征图的size会有所减小,(以0开始计数,从上往下依次为0,1,2,3,4),例如第1层:contracting path路径上该层特征图size:284*284;而expanding path路径上该层特征图size:200*200。为什么会出现这种情况呢?因为U-Net使用的是valid卷积(换句话说,就是没有padding,若使用了padding,则被称为same卷积),使用valid卷积,若卷积层非常多,那么特征图会越来越小。显然,如果我们输入的是原图,经过U-Net之后,输出图像会比原图像小,但是我们想进行像素级别的预测啊,必须要保持输入图像size = 输出图像size,那么如何保持输入图像size = 输出图像size呢?

  • 最简单的方式当然是用same卷积了,但是论文中没用到它,显然same卷积存在弊端。而且模型越深层得到的feature map抽象程度越高,受到padding的影响会呈累积效应。
  • 另一种方式是直接对最后输出的feature map作一次上采样,可以使用插值或者转置卷积的方法,若使用插值,由于其是不可学习的,会带来一定的误差;而使用转置卷积的话,又会增加参数量,并且模型也不一定能学习得好。
    论文中是怎么解决这个问题的呢?
    论文中提到了一种叫做overlap-tile的策略,就是输入网络前对图像进行padding,使得最终的输出尺寸与原图一致。特别的是,这个padding是镜像padding,这样,在预测边界区域的时候就提供了上下文信息。下图右是原始图像,下图左是经过镜像padding处理后的图像。
    Overlap-tile策略可搭配patch(图像分块)一起使用。当内存资源有限从而无法对整张大图进行预测时,可以对图像先进行镜像padding,然后按序将padding后的图像分割成固定大小的patch。这样,能够实现对任意大的图像进行无缝分割,同时每个图像块也获得了相应的上下文信息。另外,在数据量较少的情况下,每张图像都被分割成多个patch,相当于起到了扩充数据量的作用。更重要的是,这种策略不需要对原图进行缩放,每个位置的像素值与原图保持一致,不会因为缩放而带来误差。

    小知识:镜像padding

    一种颜色代表一步,以红色为例,将[1,3]这一列作为参照物,参照物右边为[2,4],经过镜像后,显然左边也应该为[2,4],依次类推,就能得到一个镜像padding。

四、相关概念解释

细心的小伙伴可能会发现,实验结果表格里出现了好几个非常陌生的概念,分别是pixel error、rand error以及warping error。

4.1 pixel error

评估图像分割问题最简单的方法。比较预测的label和实际的label,错误的点除以总数,就是像素误差。
优点是简单,但是对于位置的偏移过分敏感,肉眼不可见的偏移都会产生大量的像素误差。

4.2 rand error

4.3 warping error

五、参考文献

  • https://blog.csdn.net/asun0204/article/details/79002875
  • https://zhuanlan.zhihu.com/p/281404684
  • U-Net: Convolutional Networks for Biomedical Image Segmentation

白话详细解读(五)-----U-Net相关推荐

  1. 白话详细解读(六)----- BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

    一.论文简介 论文链接:https://openaccess.thecvf.com/content_ECCV_2018/html/Changqian_Yu_BiSeNet_Bilateral_Segm ...

  2. 白话详细解读(一)-----GoogLeNet(Inception V1-Inception V3)

    一.背景 GoogLeNet.VGGNet分别是2014年ImageNet挑战赛的第一名和第二名,相对于VGGNet的网络结构,GoogLeNet则进行了大胆的尝试,提出了Inception结构,这种 ...

  3. 白话详细解读(四)-----FCN

    全卷积神经网络详解(逻辑感超强) 大多数人接触"语义"都是在和文字相关的领域,或语音识别,期望机器能够识别你发出去的消息或简短的语音,然后给予你适当的反馈和回复.嗯,看到这里你应该 ...

  4. 白话详细解读(二)-----AlexNet

    一.AlexNet简介 2012年,Alex Krizhevsky可以算作是LeNet的一个更深和更广的版本,可以用来学习更加复杂的对象. Alex的要点 1.用ReLU得到非线性,用ReLU非线性函 ...

  5. 白话详细解读(七)----- Batch Normalization

    转载:https://www.cnblogs.com/guoyaohua/p/8724433.html Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要 ...

  6. 白话详细解读(七)----- CBAM:Convolutional Block Attention Module

    一.CBAM简介 论文链接:https://x.sci-hub.org.cn/scholar?hl=zh-TW&as_sdt=0%2C5&q=CBAM%3A+Convolutional ...

  7. NLP突破性成果 BERT 模型详细解读 bert参数微调

    https://zhuanlan.zhihu.com/p/46997268 NLP突破性成果 BERT 模型详细解读 章鱼小丸子 不懂算法的产品经理不是好的程序员 ​关注她 82 人赞了该文章 Goo ...

  8. android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)

    上篇文章主要介绍了关于BLE的一些基础操作,我们能够大概了解到蓝牙操作的一些流程,上文末介绍了本人的一个BLE开源库,支持蓝牙一对多的连接方式,该库封装了蓝牙的开启.扫描.连接.断开.连接超时...一 ...

  9. 经典神经网络论文超详细解读(三)——GoogLeNet InceptionV1学习笔记(翻译+精读+代码复现)

    前言 在上一期中介绍了VGG,VGG在2014年ImageNet 中获得了定位任务第1名和分类任务第2名的好成绩,而今天要介绍的就是同年分类任务的第一名--GoogLeNet . 作为2014年Ima ...

最新文章

  1. 手把手教你研发属于自己的智能无人机
  2. mysql 打包 脚本_windows下mysql自动备份压缩打包时间命名批处理脚本
  3. spawn-fcgi 启动python 程序失败
  4. javascript RegExp正则表达式
  5. pad点餐系统 内存管理的一点总结
  6. Layui组件 sliderVerify 实现滑块验证
  7. ArcSDE:C#创建SDE要素数据集
  8. scala 主构造函数_Scala主构造器和辅助构造器
  9. Android Studio实现简单的图书馆订座系统
  10. 解除网页百度云自动关联客户端,可通过迅雷或浏览者下载
  11. 主流的web前端开发及调试工具
  12. 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等
  13. Linux触摸板设置
  14. Jetpack Room基本用法
  15. android通知栏的点击事件,android自定义通知栏以及点击事件
  16. 目标检测:SSD改进之DSSD的论文详解
  17. HTTP权威指南-连接部分
  18. 2019河南对口升学高考试卷计算机专业课,2019年河南省对口升学:考试和录取
  19. 一套全开源的智慧园区管理系统源码
  20. 北斗定位模块成就智慧物流

热门文章

  1. Python导入模块Import和from+Import区别
  2. SharePoint Set-SPUser 命令拒绝访问
  3. HDU 5828 Rikka with Sequence (线段树+剪枝优化)
  4. 机器学习导论(张志华):主元分析
  5. Python中矩阵SVD分解及还原
  6. 【设备】WIN10怎么用佳能LIDE120扫描仪?
  7. [云炬创业基础笔记]第五章创业机会评估测试3
  8. [云炬创业基础笔记] 第四章测试8
  9. 【科大星云诗社动态20201204
  10. 科大星云诗社动态20210211