经典论文解析——Unet和Vnet——图像分割

article/2025/9/25 6:31:14

Unet & Vnet

  • 1.Unet
    • 1.1 网络简介
    • 1.2 网络结构
    • 1.3 网络训练技巧
  • 2.Vnet
    • 2.1 网络简介
    • 2.2 网络结构

  前言说点题外话,最近在实习了,所以总结整理的时间不多,之前的系列也会继续做,只是更新速度会放慢一些。我尽量还是本着以质为主的原则写博客,不弄太水的文章,希望对看过的读者能有帮助,以及对自己能有提升。
  言归正传,最近实习上下班在地铁上看了两篇论文,两者相关性还蛮大,所以放一起介绍。它们就是图像分割领域的 Unet(“U-Net Convolutional Networks for BiomedicalImage Segmentation”)和 Vnet(“V-Net Fully Convolutional Neural Networks forVolumetric Medical Image Segmentation”)。

1.Unet

1.1 网络简介

  在论文前言,作者简要介绍了以下几件事:

  • 卷积网络的兴起,对图像领域的进步起到了多么多么大的进步;
  • 经典卷积网络大部分都是针对图像分类任务的,但是在一些特定场景,如医疗图像处理领域,通常是需要像素级的分类任务,也就是图像分割任务;
  • 为了解决医疗图像即需要像素级分割任务,又因为该领域具备缺少大量数据集的特点,所以Ciresan用滑窗法来解决该问题。但是有两点明显不足:a. 效率太低(太慢了);b. 滑窗法的感受野(有效视野)大小和分割精度呈负相关关系。
  • 作者以FCN全卷积神经网络为基础设计了Unet,其中包含两条串联的路径。数据先经过传统的特征提取路径(论文中称压缩路径,contracting path),将图像压缩为由特征组成的feature maps。然后再经过特征复原路径(论文中称扩展路径, expansive path),将提取的特征解码为与原始图像尺寸一样的分割后的预测图像。具体结构见下文的网络示意图。
  • 在扩展路径上,和FCN网络不同的是,作者保留了大量的feature map通道,从而使更多的信息能流入最终复原的分割图像中。另外,为了降低在压缩路径上损失的图像信息,作者还将压缩路径的feature map叠加在扩展路径同尺寸的feature map上,再进行卷积和上采样工作,以此整合更多信息进行图像分割。
  • 由于数据较少,所以数据增广必不可少。作者采用了弹性变形(elastic deformations)的图像增广,以此让网络学习更稳定的图像特征。因为作者的数据集是细胞组织的图像,细胞组织的边界每时每刻都会发生不规则的畸变,所以这种弹性变形的增广是非常有效的。
  • 另外,细胞组织图像的一大特点是,多个同类的细胞会紧紧贴合在一起,其中只有细胞壁或膜组织分割,因此,作者在计算损失的过程中,给两个细胞重合的边缘部分增加了损失的权重,以此让网络更加注重这类重合的边缘信息,具体如下图所示(图取自论文)
    在这里插入图片描述

1.2 网络结构

  论文作者还是很亲民的,给了一张Unet的网络结构图,有了这张图,对Unet的网络结构理解可以说是大有好处。小二,上图:
在这里插入图片描述  这图怎么理解呢,从左上方开始,沿着U型一致到右上方,就是Unet的完整路径。以左上角第一层(stage)为例,输入图像是 572 × 572 × 1 572\times572\times1 572×572×1的单通道图像,经过蓝色箭头( 3 × 3 3\times3 3×3卷积层)卷积后,转变为 570 × 570 × 64 570\times570\times64 570×570×64。为什么图像尺寸缩小了?因为论文里提到"only uses the valid part of each convolution",所谓的valid convolution就是不使用padding的卷积(题外话,卷积操作其实有三种类型,和padding与否,padding多少有密切关系,大家可以去查一下英文专业术语和卷积类型的对应关系)。所以,经过 3 × 3 3\times3 3×3的卷积后,图像尺寸缩小了2。同理,再卷积后就变成了 568 × 568 × 64 568\times568\times64 568×568×64
  在左侧一个stage结束后,会经过一个红色箭头( 2 × 2 2\times2 2×2池化层),然后,图像尺寸就缩小了一倍,变成了 284 × 284 × 64 284\times284\times64 284×284×64,进入左侧第二个stage,每次图像尺寸缩小一倍,对应的feature map数量也增加一倍。同样的过程重复操作4次,到第5个stage,也就是Unet结构的最下方时,就完成了压缩路径的操作,此时的feature maps尺寸为 28 × 28 × 1024 28\times28\times1024 28×28×1024
  然后开始右侧的扩展路径。首先经过一个绿色箭头( 2 × 2 2\times2 2×2上采样卷积,也称为反卷积或转置卷积),可以将图像尺寸扩大一倍,那么相对应的,也需要将feature map数量缩小一倍,得到 56 × 56 × 512 56\times56\times512 56×56×512的数据(即图中右侧倒数第二层输入的蓝色方块部分)。可以看到,右侧倒数第二层(也称扩展路径第4个stage)的输入是白色方块和蓝色方块叠加形成的1024通道的数据。白色方块哪来?从压缩路径第4个stage池化前的feature maps复制过来的。这就是上文说过的,为了补充图像尺寸压缩损失的信息,需要将压缩路径的feature maps和对应扩展路径的feature maps叠加的过程。然后,以 56 × 56 × 1024 56\times56\times1024 56×56×1024的输入进行两次valid卷积,然后再上采样→叠加→卷积…。重复四次后,就得到 388 × 388 × 64 388\times388\times64 388×388×64的输出
  最后再用 1 × 1 1\times1 1×1的卷积把数据压缩成 388 × 388 × 2 388\times388\times2 388×388×2这里是2通道是因为作者只需要将数据集划分为前景和背景两类即可(当然二分类任务也可以只用单通道),如果是多分类,可以修改为对应的类别数量。综上所述,可以看到,Unet的结构确实名副其实,是一个很对称的U型网络。
  此外,每个 3 × 3 3\times3 3×3卷积层后使用ReLU函数激活。当然,如果你想可以在此之前再加上BN层,但是原论文是没有说明的。
  这里可能有细心的读者会问了,输入图像明明是 572 × 572 572\times572 572×572,为什么输出的预测图像却是 388 × 388 388\times388 388×388
  因为这里作者在预处理图像时用了一个小技巧,叫**“Overlap-tile"**,具体什么意思呢?可以参考下图:
在这里插入图片描述  首先,实际要进行图像分割的区域是图中的黄色区域;但是如果只用黄色区域进行分割,那很明显在黄色区域边缘的分割效果就可能很差,因为它们周边能提供的特征信息相比中间图像区域要少很多。所以,为了保证边缘的分割效果,输入网络的实际图像尺寸应该要略大于目标区域,也就是图中的蓝色区域。如果蓝色区域超出了原始图像的边界,那也不能用zero-padding的方式填充,而是要用镜像的方式进行padding,这样至少能保证细胞轮廓的完整性。因此,其实蓝色区域就是网络输入尺寸 572 × 572 572\times572 572×572,而黄色目标区域就是 388 × 388 388\times388 388×388。这样,在完成下一个 388 × 388 388\times388 388×388区域的预测时,前后两次预测的蓝色区域会有所重叠,所以才叫"Overlap-tile strategy"。

1.3 网络训练技巧

  • 基本配置:使用momentum=0.99的SGD进行训练,momentum取0.99是作者希望梯度能结合尽量多的之前的动量。为了尽可能利用GPU,作者选用的网络输入图像尺寸是尽可能大。
  • 损失函数:网络输出 388 × 388 × 2 388\times388\times2 388×388×2的数据后,将 388 × 388 388\times388 388×388的每个像素经过softmax操作,然后对每个像素求取交叉熵损失。其中,每个像素的交叉熵损失是带有权重的,正如上文所述,重合的边界权重较大。权重的计算和设计可以参见论文,这里不详细展开了。
  • 网络参数的初始化:对于深度较深的神经网络,参数初始化是非常重要的。作者采用标准差为 2 / N \sqrt{2/N} 2/N 的高斯分布作为参数初始化方式,其中N表示一个神经元的输入参数数量,如 3 × 3 × 64 3\times3\times64 3×3×64的卷积操作, N = 3 × 3 × 64 = 576 N=3\times3\times64=576 N=3×3×64=576
  • 数据增广
    • 图像平移;
    • 图像旋转;
    • 图像弹性变形,使用双三次插值进行变形后的填充;
    • 压缩路径最后使用了dropout层;

2.Vnet

2.1 网络简介

  相比于Unet,Vnet其实就是Unet的一个变型。所以论文就不展开介绍了,了解了Unet的同学再去看Vnet的文章是比较轻松的。Vnet论文主要是针对医学图像提出的,作者使用的数据集是三维图像,而不是二维,这个和常见数据是有点区别,但其实做法类似。最后输出是单通道的三维数据,代表每个像素的前景/背景概率,如果概率>0.5则是前景。因此,网络的输出最终要经过sigmoid函数激活。

2.2 网络结构

在这里插入图片描述  从图像上可以看出,Vnet和Unet确实是很像的。但是由于论文是针对三维图像提出的,所以图中用方格代表feature map。另外,还可以看出,Vnet也借用了Unet从压缩路径叠加feature map,从而补充损失信息的方法(橙色线路)。这里需要特别说明的,也是Vnet和Unet最大的不同,就是在每个stage中,Vnet采用了ResNet的短路连接方式(灰色路线)。相当于在Unet中引入ResBlock。这是Vnet最大的改进之处。
  另外,Vnet第一个stage在短路部分只进行了一次卷积操作,在第二个stage进行了两次…这和Unet每个stage卷积操作次数相同的结构是略有不同的。
  最后,Vnet由于是医学图像领域的网络,且其数据集是二分类任务,所以他们采用了医学图像常用的Dice loss。简单来说,Dice其实就是分割领域的类似IOU一样的指标。假设A是预测出的所有前景像素集合,B是ground truth的前景像素集合,则:
D i c e = 2 ∣ A ⋂ B ∣ ∣ A ∣ + ∣ B ∣ , D i c e L o s s = 1 − 2 ∣ A ⋂ B ∣ ∣ A ∣ + ∣ B ∣ Dice = \frac{2|A\bigcap B|}{|A|+|B|},\quad Dice Loss=1-\frac{2|A\bigcap B|}{|A|+|B|} Dice=A+B2AB,DiceLoss=1A+B2AB
  具体的Dice系数细节,可以参阅这篇博客。


http://chatgpt.dhexx.cn/article/4hrfMDt2.shtml

相关文章

TAP/TUN Vnet veth

TAP 设备与 VETH 设备 TUN/TAP 设备是一种让用户态程序向内核协议栈注入数据的设备,一个工作在三层,一个工作在二层,使用较多的是 TAP 设备。VETH 设备出现较早,它的作用是反转通讯数据的方向,需要发送的数据会被转换成…

[深度学习论文笔记]3D AGSE-VNet: An Automatic Brain Tumor MRI Data Segmentation Framework

[深度学习论文笔记]3D AGSE-VNet: An Automatic Brain Tumor MRI Data Segmentation Framework 3D-AGSE-VNet:一种自动脑肿瘤MRI数据分割框架 Published: Jul 2021 Abstract by BMC Medical Imaging 论文:https://arxiv.org/abs/2107.12046 摘要&#x…

动手学习深度学习keras版——从零开始实现Vnet 2D版

从零开始实现Vnet 2D版 1. 数据处理1.1 数据集介绍1.2 数据提取和转换1.3 Keras的数据生成器(generator)构造 2. Vnet 2D版网络实现2.1 Loss函数设计2.2 网络结构实现 3. 开始训练啦4. 网络预测(inference)5. 结果展示6. 踩坑经验总结 工作需要,暂时换成keras来写网…

安卓 VNET 抓取 wskey 教程

图文示例机型:一加8 就设置可能长得不一样,功能均一致,请根据个人系统设置进行证书安装操作 wskey 相对于 cookie 的有效期更长,可以通过 wskey 转换智能化管理后台,省心 下载安装 VNET 抓包 APP 文件文件大小&#xf…

azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 使用 Azure 门户创建和管理 Azure Database for MySQL VNet 服务终结点和 VNet 规则Create and manage Azure …

【Microsoft Azure 的1024种玩法】六十三.通过全局 VNet 对等互连实现同一区域不同网段的虚拟网络实时打通

【简介】 虚拟网络对等互连是两个虚拟网络之间的网络连接, 虚拟网络对等互连可以通过 Azure 主干网络连接同一区域或不同区域的虚拟网络进行打通实现实时通信,本篇文章主要介绍了如何通过全局 VNet 对等互连的方式将同一区域不同网段的虚拟网络中虚拟机…

【Azure】微软 Azure 基础解析(七)Azure 网络服务中的虚拟网络 VNet、网关、负载均衡器 Load Balancer

本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx…

好用的Android抓包神器 VNET

很多网友要我发前几个青龙面板抓变量用到软件,马上安排。 黑科技VNET 最-好用的Android抓包神器 VNET是Android平台下功能最强大的网络抓包工具,支持HTTP&HTTPS,TCP&UDP,IPv6&IPv4,多终端显示&#xff0…

爬虫从入门到精通(19) |安卓手机端抓包软件VNET介绍

提前声明:该专栏涉及的所有案例均为学习使用,如有侵权,请联系本人删帖! 文章目录 一、前言二、介绍1.功能2.安装3.root和非root 一、前言 对于一些抓取较为严的软件,有时候我们不好抓到包,这个时候我们也可…

VNET原理与实现(1)

神经网络什么的早就不是新概念了,不过学了这么久,还一直在二维图像上打转,所以今天开始入手三维图像分割,先从可爱的VNET开始吧,从胖嘟嘟的外形看,这应该是个软柿子,那就试着捏一捏吧&#xff0…

UNet 、3D-UNet 、VNet 区别

UNet 、3D-UNet 、VNet 区别 医学图像的几个常用模型,简单总结一下。 三个model的代码在我的Github上,可以参考一下:https://github.com/VickyLLY/unet_and_vnet 文章目录 UNet 、3D-UNet 、VNet 区别一、UNet二、3D-UNet三、VNet 一、UNet…

程序员如何写一份更好的简历!!

概述 面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时。现在就有求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔。写得太短的话觉得没诚意,写得太长的话又无从下手。关键的是大多数求职者没有做面试官的经验,也没…

Java程序员简历模板

从「目标职位」的角度讲讲,如何做一份简历才能提高你拿到 Offer 的几率。 文章目录 简历重点一、HR如何刷简历二、简历排版顺序三、专业技能四、项目经验2013/06 -- 至今 伟业网上电商系统2012/03 -- 2012/08 人事管理系统 总结 简历重点 大家觉得简历就是自我赞歌…

程序员简历项目经验怎么写?

我是一个典型的互联网公司程序员,也见过无数的程序员简历,包括很多优秀的程序员简历,看了可以让人眼前一亮,优美简洁的简历模板,项目经验工作重点突出;也见过更多的写得不好的简历。程序员怎么写简历?程序员简历项目经…

程序员简历上写这种项目,难怪面试当炮灰。。。

目录: 高级工程师必备:系统设计能力如何让你的项目更有技术含量 上篇文章 《我只是把握好了这3点,1个月后成功拿下大厂offer!》我们聊了聊Java工程师在跳槽前的1个月,如何利用较短的时间从技术广度、技术深度、基础功…

程序员如何写简历|附10个模版

卷友们好,我是rumor。 今天卷到简历这个事情上来了。千万不要误会,我没有在写自己的简历。 而是我经常会收到一些简历,有些是发到了邮箱里求内推,有些是卷友让我帮忙看一下,直到最近的某一天,我打开了一份…

【无标题】程序员个人简历模板

程序员个人简历模板1 姓 名: 国 籍: 中国 目前住地: 广州 民 族: 汉族 户 籍 地: 茂名 身高体重: 168 cm kg 婚姻状况: 未婚 年 龄: 28 岁 求职意向及工作经历 人才类型&#x…

Java程序员面试简历模板(30套简历模板+300套简历)

需要免费领取简历模板和简历套装欢迎加群862461829 【群里还含有:Java80g学习视频Java学习书籍Java项目实战源码安装软件等】 各类资源都有哦~ 简历是你吸引面试官的第一步,如何让你的平平无奇的简历包装的更好,而又足以让面试官相信你足够…

浅析海量数据处理问题

生活中我们经常会遇到一些海量数据处理的问题,那么怎样的问题就算是海量数据了呢?来看以下这几个问题: 给定一个大小超过 100G 的文件, 其中存在 IP 地址, 找到其中出现次数最多的 IP 地址 。给定100亿个整数, 找到其中只出现一次的整数(位图…

教你如何迅速秒杀掉:99%的海量数据处理面试题

教你如何迅速秒杀掉:99%的海量数据处理面试题 本文经过大量细致的优化后,收录于我的新书《 编程之法:面试和算法心得》第六章中,新书目前已上架 京东/ 当当 作者:July出处:结构之法算法之道blog 前言 一般而…