一 U-net 提出的背景及好处

原论文为:U-Net: Convolutional Networks for Biomedical Image Segmentation

1.1提出背景:

  1. Unet提出的初衷是为了解决医学图像分割的问题;

  2. 一种U型的网络结构来获取上下文的信息和位置信息
  3. 为了解决细胞层面的分割的任务

1.2在医学领域的优势 :

1.医疗影像语义较为简单、结构固定。需要去筛选过滤无用的信息。医疗影像的所有特征都很重要,因此低级特征和高级语义特征都很重要,所以U型结构的skip connection结构(特征拼接)更好派上用场

2. 医学影像的数据较少,获取难度大,数据量可能只有几百甚至不到100,因此如果使用大型的网络例如DeepLabv3+等模型,很容易过拟合。大型网络的优点是更强的图像表述能力,而较为简单、数量少的医学影像并没有那么多的内容需要表述。

3.医学影像任务中,往往需要自己设计网络去提取不同的模态特征,因此轻量结构简单的Unet可以有更大的操作空间。

二 U-net网络的核心框架

U-net网络框架

相当于  Encoder-Decoder的结构:

Unet网络非常的简单,前半部分就是特征提取,后半部分是上采样。

Encoder:左半部分,由两个3x3的卷积层(RELU激活函数)再加上一个2x2的maxpooling层(最大池化层)组成一个下采样的模块

Decoder:有半部分,由一个上采样的卷积层(去卷积层)+特征拼接concat+两个3x3的卷积层(ReLU)反复构成

关于CNN网络的一些知识复习(之前学过但忘记了)

1.卷积操作(向上采样):

具体计算例子:中间滤波器filter与数据窗口做内积,其具体计算过程则是:4*0 + 0*0 + 0*0 + 0*0 + 0*1 + 0*1 + 0*0 + 0*1 + -4*2 = -8

主要有一下几个重要参数:

 输入图像的尺寸 (n*n)、卷积核的尺寸(Kernel)、填充尺寸(Padding)、

     步长(Stride)、卷积核的个数 n(对应生成的通道)、输出尺寸(m*m)

输出图像的尺寸满足这个公式:

输出的尺寸=(输入的尺寸-核的尺寸+2*填充尺寸)÷步长+1

m=(n-k+2*p)/s+1

2 最大池化操作(max pooling):

从上图可以看出,池化的结构和卷积一样,都是在输入的数组内以一个指定的大小扫描全图,但是池化不用计算,只做筛选。最大池化就是筛选出区域内最大值,平均池化就是计算区域的平均值。

3.RELU(激活函数):

                         

4.反卷积操作(向下采样):

转置卷积不是卷积的逆运算,转置卷积也是卷积,(实际就是按照一定规则在图像周围补充0,在进行卷积)具体规则:

输出的高度和宽度计算公式:

U-net包括两部分,基于FCN 。第一部分,特征提取。第二部分上采样部分。由于网络结构像U型,所以叫Unet网络。
特征提取部分:每经过一个池化层就一个尺度,包括原图尺度一共有5个尺度。收缩路径就是常规的卷积网络,它包含重复的2个3x3卷积,紧接着是一个RELU,一个max pooling(步长为2),用来降采样,每次降采样我们都将feature channel减半。

上采样部分:每上采样一次,就和特征提取部分对应的通道数相同尺度融合,但是融合之前要将其crop。这里的融合也是拼接。扩展路径包含一个上采样(2x2上卷积),这样会减半feature channel,接着是一个对应的收缩路径的feature map,然后是2个3x3卷积,每个卷积后面跟一个RELU,因为每次卷积会丢失图像边缘,所以裁剪是有必要的,最后来一个1x1的卷积,用来将有64个元素的feature vector映射到一个类标签。

5.overlap-tile重叠平铺策略(可以把分辨率较大的图像化分成小区域图片有利于计算):

overlap-tile策略:
  该策略的思想是:对图像的某一块像素点(黄框内部分)进行预测时,需要该图像块周围的像素点(蓝色框内)提供上下文信息(context),以获得更准确的预测。简单地说,就是在预处理中,对输入图像进行padding,通过padding扩大输入图像的尺寸,使得最后输出的结果正好是原始图像的尺寸, 同时, 输入图像块(黄框)的边界也获得了上下文信息从而提高预测的精度,本文用的是mirror padding(以边的对角线为中轴线进行镜像)。

医学图像是一般相当大,但是分割时候不可能将原图太小输入网络,所以必须切成一张一张的小patch,在切成小patch的时候,Unet由于网络结构的原因,因此适合用overlap的切图 overlap部分可以为分割区域边缘部分提供文理等信息, 并且分割结果并没有受到切成小patch而造成分割情况不好。

6.细胞分割任务中的另一个挑战是分离同一类别的接触物体。 

参见图3。为此,我们使用了加权损失,这些位于touching cells之间的背景在损失函数的权重很高。

我个人的理解就是,在不同的区域之下设置不同的权重,在细胞边界分割之处可以设置较大的权重,在其他的区域可以设置一些较小的权重,在原论文中并没有提出这样做法所提升的效能

7. 训练部分:(这个暂时未搞明白)

8.论文中的一些不足:

就是在拼接(crop)过程中,特征提取部分的图像大小和向上采样部分的图像大小不同,这就需要裁剪,这就会导致最终提取的图像大小会比原图像小,会有图像的损失。

   主流的解决方法,在特征提取部分进行Padding处理,在卷积和RELU中间加入             bn(batch  normalization) 。

9.接下来学习

1. 交叉损失函数(在逻辑回归学习时接触过

2.batch  normalization

3.搞清损失函数以及具体训练过程

U-net网络框架 学习笔记相关推荐

  1. Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析)

    Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析_2020.06.25) 前言: Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一 ...

  2. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  3. ET服务器框架学习笔记(十)

    ET服务器框架学习笔记(十) 文章目录 ET服务器框架学习笔记(十) 前言 一.ET之Service 1.Service主要数据 2.Service主要逻辑 3.Service其他逻辑 二.ET之Ne ...

  4. ET6.0服务器框架学习笔记(二、一条登录协议)

    ET6.0服务器框架学习笔记(二.一条登录协议) 上一篇主要记录ET6.0的服务器启动功能,本篇主要记录ET6.0完整的一条协议,从配置到生成协议数据,到从客户端发送给服务端,再发送回客户端的流程 文 ...

  5. 15Java网络编程学习笔记

    Java网络编程学习笔记 文章目录 1 网络基础 1.1 网络通信 1.2 网络 1.3 IP地址 1.5 域名 1.6 端口号 1.7 网络通信协议 1.8 TCP协议 1.9 UDP协议 2 In ...

  6. 27Vert.X框架学习笔记

    vert.x框架学习笔记 文章目录 1 Vert.x简明介绍 1.1 Vert.x能干什么 1.2 Vert.x快速体验 1.3 Vert.x的简单介绍 1.4 Vert.x的一些优势 1.4.1 异 ...

  7. SpringMVC框架--学习笔记(下)

    接上篇:SpirngMVC框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81038382 17.全局异常处理: 系统中异常包 ...

  8. SpringMVC框架--学习笔记(上)

    1.SpringMVC入门程序: (1)导入jar包:spring核心jar包.spring-webmvc整合Jar包 (2)配置前端控制器:web.xml文件中 <?xml version=& ...

  9. mybatis框架--学习笔记(下)

    上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...

  10. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

最新文章

  1. ROSE 好的参考资料 http://topic.csdn.net/t/20020716/14/878323.html
  2. MXNET学习笔记(二):模型的保存与加载
  3. 孙剑亲自撰文:我在 Face++ 的这半年
  4. 【CV实战】年轻人的第一个深度学习图像分割项目应该是什么样的(Pytorch框架)?...
  5. mvc 前段定义变量_3分钟短文 | Laravel blade模板里优雅地定义PHP变量
  6. VMware vSAN网络设计中不得不说的事
  7. 【原】数据库排序规则导致的问题
  8. 实心和空心哪个抗弯能力强_为什么轮胎不设计成实心的?不怕爆胎 480阅读
  9. git删除多余的tracked文件(git提示ignored tracked with git)
  10. bert中的cls和sep等等
  11. java的GUI:个人所得税计算
  12. 汽车ESP系统建模及仿真研究(2022-09-20)
  13. 纳德拉:没有Excel的世界是无法想象的
  14. 第二章 马尔可夫决策过程及表格型方法
  15. jy-12-SPRINGMYBATIS02——云笔记03-刘苍松
  16. 指定window.print 打印区域
  17. ffmpeg通过OpenGL给视频添加下雪特效源码
  18. cacti 画图 断续问题处理
  19. 英语读书笔记-Book Lovers Day 06
  20. Mysql删除文件夹中的data文件(删除数据)

热门文章

  1. 【观察】海外本地化机遇与挑战并存,跨境电商如何跑出“加速度”?
  2. 虚拟机与本机可以互ping,但是Xshell连不上虚拟机 的解决方法
  3. InstallShield打包
  4. RxSwift 介绍与简单使用
  5. 线程2--主线程(main线程)
  6. 三菱FX3Uplc控制的三轴程序通用编程,程序带有注解,有原点回归,机器手加减速设置
  7. 海洋cms模板,海洋cms模板程序源码,海洋cms模板制作方法
  8. PCB学习(一)——立创EDA边框设置
  9. 使用Arduino和TTP223电容式触摸传感器制作触摸检测器
  10. 你想要的虚幻UE游戏人物模型素材都在这里,细致又齐全