深入理解深度学习分割网络Unet——U-Net: Convolutional Networks for Biomedical Image Segmentation

深入理解深度学习分割网络Unet——U-Net: Convolutional Networks for Biomedical Image Segmentation背景Mask=Function(I)1.什么是图像分割问题呢?简单的来讲就是给一张图像,检测是用框出框出物体,而图像分割分出一个物体的准确轮廓。也这样考虑,给出一张图像I,这个问题就是求一个函数,从I映射到Mask。至于怎么求这个函数有多种方法。我们可以看到这个图,左边是给出图像,可以看到人和摩托车,右边是分割结果。2.求这个函数有很多方法,但是第一次将深…

大家好,又见面了,我是你们的朋友全栈君。

##背景
分割

	Mask = Function(I)
  1. 什么是图像分割问题呢? 简单的来讲就是给一张图像,检测是用框出框出物体,而图像分割分出一个物体的准确轮廓。也这样考虑,给出一张图像 I,这个问题就是求一个函数,从I映射到Mask。至于怎么求这个函数有多种方法。我们可以看到这个图,左边是给出图像,可以看到人和摩托车,右边是分割结果。
    图二
  2. 求这个函数有很多方法,但是第一次将深度学习结合起来的是这篇文章全卷积网络(FCN),利用深度学习求这个函数。在此之前深度学习一般用在分类和检测问题上。由于用到CNN,所以最后提取的特征的尺度是变小的。和我们要求的函数不一样,我们要求的函数是输入多大,输出有多大。为了让CNN提取出来的尺度能到原图大小,FCN网络利用上采样和反卷积到原图像大小。然后做像素级的分类。可以看图二,输入原图,经过VGG16网络,得到特征map,然后将特征map上采样回去。再将预测结果和ground truth每个像素一一对应分类,做像素级别分类。也就是说将分割问题变成分类问题,而分类问题正好是深度学习的强项。如果只将特征map直接上采样或者反卷积,明显会丢失很多信息。

图三
3. FCN采取解决方法是将pool4、pool3、和特征map融合起来,由于pool3、pool4、特征map大小尺寸是不一样的,所以融合应该前上采样到同一尺寸。这里的融合是拼接在一起,不是对应元素相加。

图四
4. FCN是深度学习在图像分割的开山之作,FCN优点是实现端到端分割等,缺点是分割结果细节不够好,可以看到图四,FCN8s是上面讲的pool4、pool3和特征map融合,FCN16s是pool4和特征map融合,FCN32s是只有特征map,得出结果都是细节不够好,具体可以看自行车。由于网络中只有卷积没有全连接,所以这个网络又叫全卷积网络。

##Unet网络结构图五

  1. 很多分割网络都是基于FCNs做改进,包括Unet。Unet包括两部分,可以看右图,第一部分,特征提取,VGG类似。第二部分上采样部分。由于网络结构像U型,所以叫Unet网络。

    1. 特征提取部分,每经过一个池化层就一个尺度,包括原图尺度一共有5个尺度。
    2. 上采样部分,每上采样一次,就和特征提取部分对应的通道数相同尺度融合,但是融合之前要将其crop。这里的融合也是拼接。
      个人认为改进FCN之处有:
      1. 多尺度
      2. 适合超大图像分割,适合医学图像分割
  2. Unet——输入输出
    图六
    医学图像是一般相当大,但是分割时候不可能将原图太小输入网络,所以必须切成一张一张的小patch,在切成小patch的时候,Unet由于网络结构原因适合有overlap的切图,可以看图,红框是要分割区域,但是在切图时要包含周围区域,overlap另一个重要原因是周围overlap部分可以为分割区域边缘部分提供文理等信息。可以看黄框的边缘,分割结果并没有受到切成小patch而造成分割情况不好。
    3.Unet——反向传播
    Unet反向传播过程,大家都知道卷积层和池化层都能反向传播,Unet上采样部分可以用上采样或反卷积,那反卷积和上采样可以怎么反向传播的呢?那什么是反卷积呢?先来讲下卷积的过程

     				Y = Matrix_1(Filter)* Matrix_2(Image)
    

Matrix_1和Matrix_2分别是将卷积核和图像转成矩阵函数。也就说给一个输入X,利用矩阵乘法能得到卷积后输出Y。

								Y=C*X

所以卷积可以分解成两个矩阵相乘。很显然,卷积反向传播就是C的转置相乘。举个例子:

							Y=[1,2]*[X,x_1]T

Y对x求导,dy/dx=[1,2]^T。
图7
反卷积就是转置卷积,也是一种卷积,可以看到图7,这个就是转置卷积,由小尺寸到大尺寸的过程。也就是说反卷积也可以表示为两个矩阵乘积,很显然转置卷积的反向传播就是也是可进行的。所以说整体是Unet是可以反向传播的。
3.Unet——与其他结构比较之FPN
这里写图片描述
这是FPN检测网络,可以看到红框,如果将红框到过来可以发现,FPN部分结构和Unet相似之处。从而说明Unet网络结构是基于多尺度的。

如果大家觉的文章有帮助或者有用,麻烦关注下我的个人公众号
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129940.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 对java中bean的理解

    对java中bean的理解简单笼统的说就是一个类,一个可复用的类。javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将

    2022年7月8日
    24
  • window.postMessage用法

    window.postMessage用法我们有时候需要在打开的两个页面之间之间通信 可能这种情况并不多 这时候 window postMessage 就显得特别有用 nbsp window postMessage nbsp 方法可以安全地实现跨源通信 通常 对于两个不同页面的脚本 只有当执行它们的页面位于具有相同的协议 通常为 https 端口号 443 为 https 的默认值 以及主机 nbsp 两个页面的模数 nbsp Document domain 设置为相

    2025年10月1日
    5
  • Docker 容器中运行 Docker 命令

    Docker 容器中运行 Docker 命令Docker容器中运行Docker命令在使用GitLab/Jenkins等CI软件的时候需要使用Docker命令来构建镜像,需要在容器中使用Docker命令;通过将宿主机的Docker共享给容器即可在启动容器时添加以下命令:–privileged\-v/var/run/docker.sock:/var/run/doc…

    2022年5月16日
    43
  • 带通滤波器作用和用途_什么是带通滤波器?工作原理及原理图详解

    带通滤波器作用和用途_什么是带通滤波器?工作原理及原理图详解带通滤波器(band-passfilter)是一个允许特定频段的波通过同时屏蔽其他频段的设备。比如RLC振荡回路就是一个模拟带通滤波器。带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。一个模拟带通滤波器的例子是电阻-电感-电容电路(RLCcircuit)。这些滤波器也可以用低通滤波器同高通滤波器组合来产生。一个理想的带通滤…

    2022年5月2日
    43
  • iPhone 各屏幕尺寸及解析[通俗易懂]

    一.iPhone各屏幕尺寸表手机型号屏幕物理尺寸屏幕密度开发尺寸像素尺寸倍图4/4s3.5inch326ppi320*480pt640*960px@2×5/5S/5c/SE4.0inch326ppi320*568pt640*1136px@2×6/6S/7/84.7inch326ppi375*667pt75…

    2022年4月11日
    2.0K
  • iOS之深入解析Xcode 13正式版发布的40个新特性

    iOS之深入解析Xcode 13正式版发布的40个新特性一、前言Xcode13包括适用于iOS15、iPadOS15、tvOS15、watchOS8和macOSBigSur11.3的SDK。Xcode13ReleaseCandidate支持iOS9及更高版本、tvOS9及更高版本以及watchOS2及更高版本的设备上调试。Xcode13需要运行macOS11.3或更高版本的Mac。二、通用Xcode13包括对Swift并发编程的原生支持、对XcodeCloud持续集成和

    2022年4月29日
    149

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号