语义分割模型——浅谈U-net相关理论

目录

1 U-net简介

1.1 U-net是什么

1.2 U-net的创新点及优势

2 U-net改进思路

2.1 编码器优化

2.2 跳跃连接优化

2.3 解码器优化

2.4 其他优化方式

2.5 注意事项


1 U-net简介

1.1 U-net是什么

Ronneberger等人于2015年基于FCN(全卷积神经网络)下提出的U型结构语义分割模型,提出时主要用于医学图像分割。

其结构如下图所示,左右对称,由网络左侧的编码器)路径、右侧的解码器路径和跳跃连接路径3部分组成:

(此图引用自 宋杰,李彩霞,李慧婷. 基于U-Net网络的医学图像分割研究综述[J]. 计算机技术与发展,2024, 34(01): 9-16.)

编码器(Encoder)路径:编码器路径又被称为收缩网络,通过4个连续的下采样(Downsampling)操作,达到图像尺寸变小,通道数翻倍的目的。而每一个下采样操作都有2个连续的3*3卷积+ReLU函数和1个最大池化操作组成。在这不断的下采样过程中,网络可以获取到图像的浅层特征信息。

解码器(Decoder)路径:解码器路径又被称为扩张网络,通过4个连续的上采样(Upsampling)操作,达到图像尺寸变大,通道数减半的目的。同理,每一个下采样操作都由对应2个连续的3*3反卷积组成,实现对图像尺寸的扩大。在这不断的上采样过程中,网络可以获取到图像的深层特征信息。

跳跃连接(Skip connection)路径:U-net在每一层的编码器和解码器之间设立了跳跃连接路径对二者进行连接,帮助模型将同一层相同尺寸的图像特征进行拼接。

最后,网络会进行一次1*1卷积,输出最后的分割图像。

因此,我们一般把U-net称之为基于Encoder-Decoder 架构下的语义分割网络。这种架构下Encoder 负责特征提取,Decoder 恢复原始分辨率。简单,但很有效,所以U-net在小样本数据集中也能发挥良好的效果。

1.2 U-net的创新点及优势

对比于同样基于Encoder-Decoder 架构进行设计的语义分割网络Segnet,U-net的创新点在于跳跃连接路径的设立,帮助模型成功将深层特征信息和浅层特征信息融合起来,实现粗粒度特征与细粒度特征的有效融合。

所以U-net最大的优势就在于可以跳跃连接路径为网络提供了更精细的图像特征,帮助网络实现像素级别的语义分割。

同时,U-net网络结构简单,所以运行速度快,针对小数据集进行训练不容易出现过拟合的问题。

再者,Encoder-Decoder 架构使得U-net网络易于进行改进,提升模型的精度。

2 U-net改进思路

2.1 编码器优化

U-net网络中每一次下采样核心是通过两个连续的3*3卷积进行的,为什么选用3*3卷积?U-net论文中提到其实卷积核的大小是可以自己定义的,所以你可以使用5*5卷积、7*7卷积都没关系。具体需要你根据你的数据集进行实验调整,但可以得知的是卷积核越小,能够大大地降低网络的总体计算复杂性。(1*1卷积不具有提升感受野的作用,即在降维时使用)

同时,模型中所选用的卷积神经网络的卷积核核大小是不变的,导致了感受野的固定,使得模型无法根据图像中目标对象的尺寸和形状进行调整。所以,对网络进行优化可以针对这个3*3卷积进行替换,下面时一些可供参考的思路:

(1)使用ASPP(空洞空间金字塔池化)模块进行下采样操作。

ASPP模块是Chen等在Deeplab v2模型中提出的基于组合空洞卷积的特征提取模块。空洞卷积对比于常规卷积,可以通过超参数“扩张率”获得不同的感受野,也就是说同样的3*3卷积,通过设置不同的扩张率可以获得不更大的感受野。因此,在此基础上,通过组合空洞卷积的方式,可以帮助模型在不同的感受野下对图像进行特征提取。

ASPP模块就是基于此类思路下进行设计的,其结构如图所示。

ASPP使用了四种不同膨胀率的空洞卷积块(包括卷积、BN、激活层)和一个全局平均池化块(包括池化、卷积、BN、激活层)得到一共五组feature map,将其concat起来之后获得输出。

(2)使用自适应卷积路径模块进行下采样操作。

既然只使用一种卷积核大小的卷积无法解决问题,那么是否可以同时使用多种卷积核大小的卷积,并根据图像调整对应卷积核大小的卷积的权重?这就是自适应卷积路径模块,其是基于SK-Net进行设计得出的,结构如下图所示:

其中 ,黄色和绿色代表两种不同卷积核大小的卷积,获取初始feature map之后进行相加,获得融合后的feature map。然后再通过全局平均池化、fc层等操作,得到两个维度与初始feature map相同的feature map。再对得到的两个feature map进行softmax处理,获得两个feature map对应的权重值,和初始feature map进行相乘,得到权重调整后的feature map。最后,再进行相加,得到输出。

此类自适应模块还可以继续进行拓展,拓展到3个卷积路径、4个卷积路径等等,需要根据数据集自己进行实验调整。

当然,除了使用自适应路径,Jin等还提出使用可变性卷积的方式,来帮助模型针对图像中不同尺寸、形状的目标对象进行自适应调整。此处不进行展开,感谢的读者可自行查阅对应的论文:Jin Q, Meng Z, Pham T D, et al. Dunet: A deformable network for retinal versel segmentation[J]. Knoeledge-Based Systems, 2019, 178(15): 149-162.

(3)和前两种思路类似,还可以使用Inception模块进行下采样操作。

Inception模块通过把不同的卷积核组合在一起,增大整体的感受野,结构如图形所示:

 其中,3*3卷积和5*5卷积之前的1*1卷积作用为减少参数,通过降维控制网络的计算复杂度。

2.2 跳跃连接优化

U-net于跳跃连接阶段将编码器和解码器的特征进行连接,帮助网络获取到了更精细的特征。但是深层特征和浅层特征是属于两种存在语义差距的特征,直接将二者进行融合,效果不佳,所以可以进行进一步优化。

此类问题,一般通过引入注意力机制进行解决。通过不同的注意力,可以赋予下采样的特征更多的位置信息等信息,在不同维度(通道,空间,坐标等)捕获不同的特征信息,进行加权等。

下面对一些比较典型的改进进行描述:

(1)Attention U-net:

Attention U-net是Oktay等人[17] 提出了一种基于栅格的注意力门(Attention Gate,AG)的语义分割网络,其结构如图所示:

可以看到, Attention U-net其实就是U-net的结构下,在跳跃连接路径上添加了注意力门(AG),然后对下采样的结果进行优化。其核心在于将U-net下采样过程的输出结果经过AG过滤(添加注意力系数,该系数中包含一个gating vector,包含图像的上下文信息),识别显著的图像区域,修剪特征响应,只保留与特定任务相关的激活,再与上采样结果进行连接,以消除跳接过程中的噪声和无关信息。

(2)CBAM:

CBAM则是Woo等提出的一种可以即插即用的组合注意力机制模块,其结构如图所示:

它由串行的通道注意力以及空间注意力组成,分别在通道维度和空间维度捕获图像特征信息,实现多层次的注意力操作。

类似于Attention U-net,我们可以在U-net的跳跃连接路径上引入CBAM,对U-net下采样过程的输出结果进行多层次的注意力,以赋予下采样结果更多的位置信息。

值得注意的是,原CBAM模块中是先进行通道注意力,再进行空间注意力。而在实际应用中,我们可以根据数据集进行调整,通道注意力与空间注意力的组合方式可以发生一定的变化。(甚至可以采取并行的方式)

拓展来说,我们还可以将通道注意力和空间注意力的一种换成其他注意力,或许也可以取得更好的效果。

2.3 解码器优化

U-net网络中主要通过反卷积的方式还原图像尺寸,但此类方式容易忽略了底层的内容,无法对图像的局部信息变化具有良好的反应能力。如果使用邻插值法和双线性插值法则会使得网络忽略了语义信息。

总体来说,针对解码器进行优化的研究不算多,改进的思路也比较有限,改进后性价比也远不如对编码器进行改进来得高,所以下面只列出一个相关改进思路供参考:

在上采样阶段引入上采样算子,通过加权组合在以每个位置为中心的预定义区域内重组特征,以内容感知的方式生成权重,每个位置都有多组这样的上采样权重。然而,这些权重并不作为网络参数学习,而是使用一个轻量级的,带有softmax 激活函数的全卷积模块来实时预测。

Wang J, Chen K, XU R, et al. CARAFE: Content-Aware ReAssembly of FEatures[C]//2019 IEEE/CVF International Conference on Computer Vision (ICCV). IEEE, 2020.

2.4 其他优化方式

除了上述优化方式,我们还可以通过改进U-net连接方式进行优化,比较出名的就是U-net++了。

U-net++是Zhou等提出了全连接U-net模型,该模型通过增加U-net网络1-4层每一层的编码器和解码器相互之间的跳跃连接路径,增加梯度流。即将每一层的编码器和解码器之间都进行相连,其结构如图所示:

该结构的下U-net可以获取所有网络深度下的图像特征,并从中学习不同层次的特征的重要性。

2.5 注意事项

当然,对U-net进行优化不是单方面进行的,意味着你可以在各个方面同时进行优化,比如同时对编码器和跳跃连接路径进行优化。或者,在编码器优化时,同时使用空洞卷积和自适应路径等,提出一种空洞卷积自适应的模块。

但同时,不是说组合的模块越多,网络优化效果就一定越好。引入的模块越多,他会导致模型的参数量越大,与此同时,模型的训练难度也就越大。如何在模型性能与轻量化之间做好平衡,也是我们需要进行考虑的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

预测房屋价格(使用SGDRegressor随机梯度下降回归)

线性回归:预测未来趋势01(预测房屋价格) 文章目录 线性回归:预测未来趋势01(预测房屋价格)前言一、案例介绍:二、架构图:(流程图)三、使用了什么技术&#xf…

代码随想录:二叉树18(Java)

目录 105.从前序与中序遍历序列构造二叉树 题目 代码 106.从中序与后序遍历序列构造二叉树 题目 代码 105.从前序与中序遍历序列构造二叉树 题目 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的…

利用Django中的缓存系统提升Web应用性能

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在构建现代Web应用时,性能通常是至关重要的考虑因素之一。为了提高用户体验和应…

设计模式(六):原型模式

设计模式(六):原型模式 1. 原型模式的介绍2. 原型模式的类图3. 原型模式的实现3.1 创建一个原型接口3.2 创建具体原型3.3 创建一个数据缓存类3.4 测试 1. 原型模式的介绍 原型模式(Prototype Pattern)属于创建型模式&…

人工智能(AI)与地理信息技术(GIS)的融合:开启智能地理信息时代

随着科技的不断发展,人工智能(AI)和地理信息技术(GIS)的应用越来越广泛,两者的结合更是为许多行业带来了前所未有的变革。本文将以“人工智能(AI)地理信息技术(GIS&#…

【八股】Spring篇

why Spring? 1.使用它的IOC功能,在解耦上达到了配置级别。 2.使用它对数据库访问事务相关的封装。 3.各种其他组件与Spring的融合,在Spring中更加方便快捷的继承其他一些组件。 IoC和DI 👉IOC是Inversion of Control的缩写,“…

德语口语学习的8种练习方法

简洁明了一点,方便大家理解,我总结了以下8点: 1.模拟对话: 创造实际生活场景,例如购物、问路、餐厅点餐等,并自言自语或者与伙伴一起模拟这些对话。 参加角色扮演活动,通过不同情境练习口语。…

文末送资料|跟着开源学技术-ChatGPT开源项目-chatgpt-java

目录 功能特性 最简使用 进阶使用 函数调用(Function Call) 流式使用 流式配合Spring SseEmitter使用 多KEY自动轮询 大家好,我是充电君 今天带着大家来看个Java版本的ChatGPT。这个开源项目就是chatgpt-java。 Github: h…

Django与mysqlclient链接不成功

先检查自己的python是什么版本,是64位还是32位,这个自己去网上查。 我的是32位的,因为直接pip下载不了,网上也没有32位的whl,所以卸载重装一个64位的3.9.6的python 网上直接搜mysqlclient,找到对应py39也…

Excel vlookup函数的使用教程 和 可能遇到的错误解决方法

使用VLOOKUP示例 被查询的表格 表一 A列B列C列A1aB2bC3c 要匹配的列 表二 F列G列H列ACBDA 要G列匹配字母,H列匹配数字 G 使用公式VLOOKUP(F5,A:D,3,0) 参数说明 F5 是表二 F列第五行的A A:D表是要匹配的数据列表在A到D列,就是表一 (注意…

什么样的汽车制造供应商管理平台 可以既高效又安全?

汽车制造供应商管理是汽车制造商最基础的工作项,因为在汽车制造环节,与供应商间存在着必不可少又高频的业务往来,而在汽车制造供应商之间,文件往来是确保业务顺利进行、沟通协作和质量控制的重要环节。这些文件往来涵盖了多个方面…

网络爬虫之爬虫原理

** 爬虫概述 Python网络爬虫是利用Python编程语言编写的程序,通过互联网爬取特定网站的信息,并将其保存到本地计算机或数据库中。 """ 批量爬取各城市房价走势涨幅top10和跌幅top10 """ ​ from lxml import etree impor…

通过本机端口映射VMware中虚拟机应用(例如同一局域网别人想远程连接你虚拟机中的数据库)

需要 虚拟机中安装一下达梦数据库,并且以后大家都连接你虚拟机中达梦数据库进行开发。。。。。。在不改动自己虚拟机配置,以及本地网卡任何配置的情况下如何解决?本虚拟机网络一直使用的NAT模式。 解决 找到NAT设置添加端口转发即可解决。…

高级IO—多路转接

🎬慕斯主页: 修仙—别有洞天 ♈️今日夜电波:Cupid - Twin Ver. (FIFTY FIFTY) - Sped Up Version 0:20━━━━━━️💟──────── 2:25 🔄 …

【FFmpeg】视频与图片互相转换 ( 视频与 JPG 静态图片互相转换 | 视频与 GIF 动态图片互相转换 )

文章目录 一、视频与 JPG 静态图片互相转换1、视频转静态图片2、视频转多张静态图片3、多张静态图片转视频 二、视频与 GIF 动态图片互相转换1、视频转成 GIF 动态图片2、 GIF 动态图片转成视频 一、视频与 JPG 静态图片互相转换 1、视频转静态图片 执行 ffmpeg -i input.mp4 …

《浪潮之巅》:时代的巨轮与公司的兴衰

《浪潮之巅》是一部引人深思的作品,作者吴军通过对AT&T等公司的兴衰历程的叙述,展现了在科技浪潮之巅,公司如何成长、兴盛,并最终可能面临困境或转型。读完这部作品,我对公司的发展、企业经营者的战略眼光以及硅谷…

保姆级银河麒麟V10高级服务器离线安装mysql5.7数据库

离线在银河麒麟高级操作系统v10安装mysql5.7 下载mysql5.7 MySQL :: Download MySQL Community Server (Archived Versions) 2、把下载好的包上传到服务器 3、解压 [root1-0001 ~]# cd /data/mysql[root1-0001 mysql]# tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz…

artifactory配置docker本地存储库

​一、概述 本地 Docker 存储库是我们部署和托管内部 Docker 镜像的位置。实际上,它是一个 Docker 注册表,能够托管的 Docker 镜像的集合。通过本地存储库,你可以保存、加载、共享和管理自己的 Docker 镜像,而无需依赖于外部的镜像…

Mac和VScode配置fortran

最近更换了mac电脑,其中需要重新配置各类软件平台和运行环境,最近把matlab、gmt、VScode、Endnote等软件全部进行了安装和配置。但是不得不说,mac系统对于经常编程的人来说还是非常友好的! 由于需要对地震位错的程序进行编译运行…

【继承和多态】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…