【语义分割】ST_Unet论文 逐步代码解读

这篇具有很好参考价值的文章主要介绍了【语义分割】ST_Unet论文 逐步代码解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【语义分割】ST_Unet论文 逐步代码解读



一、代码整体解读

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

主要工程文件为这5个

分别作用为:

  • 构造相应的deform 卷积
  • DCNN的残差网络
  • 编写相应的配置文件,可以改变相应参数
  • 模型的主函数和主框架
  • 模型的连接部分



二、辅助Decode代码框架

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

代码框架由3部分组成,encode,decode和decode中将图像还原成语义分割预测图

  • Transformer(config, img_size) 组成编码部分,包含主编码的DCNN和辅助的transformer
  • DecoderCup(config)组成解码部分,图像还原为[N,64,128,128]
  • SegmentationHead将图像变成6分类的[N,6,256,256]的图像

2.1 混合transformer和cnn的模型

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

整体思路是这样的,decode一共分为4个阶段

主要用空的数组来保存每一个阶段的输出值,与DCNN在每一个阶段通过RAM进行连接

在class TransResNetV2(nn.Module)函数中进行相应的具体编写

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

相应的RAM操作示意图

An和Sn分别表示第n阶段主编码器和辅助编码器的输出

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

一共组成分为4部分,将每一层都进行相应的整合,最后放在数组里面


2.2 Swin transformer 部分

将读入的数据进行打平操作

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

embeddings(trans_x)

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  这部分操作的一般情况下的Swin transformer一样,同样满足(2,2,6,2)的层数结构,只不过是,加入了相应的残差结构,经过了扁平化操作后的数据类型为[12, 4096, 96]

具体的transformer操作在这部分进行

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

在这个函数中主要是transformer块和SIM的残差组合

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  在这步之后,x就可以就是组成的tranform块输出的格式,其中是由shift_size来进行判断是W-MSA,还是SW-MSA,来进行的窗口移动,还是就单纯的结构的划分

shift_size=0 if (i % 2 == 0) else window_size // 2,  # 判断是不是SW_MSA

起了决定性的判断作用

这段代码进行执行4次,将每次执行的结果进行保存

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能


2.3 FCM 部分

if (i_layer < self.num_layers - 1):
    trans_x = self.Down_features[i_layer](trans_x)

在每一个Swin transformer阶段都进行了下采样,除了最后一个阶段

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

结构示意图

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

整体的代码逻辑都是按照这个思路来的,来进行的整合和结合



三、主Decode代码框架

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

首先进行的是root函数,主打的是一个对图片进行预先处理

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  对图片进行相应的变形,主要还是三步走的对策,卷积,归一,relu。进行DCNN卷积网络时基本都是这样进行的


3.1 基本卷积模块

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  将这两个归为一个操作,body里面是几个卷积的模块config.resnet.num_layers = (3, 4, 6, 3)组成的,重复的次数由设定好的值来进行重复

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

   PreActBottleneck(nn.Module) 里面的值就是很单纯的DCNN的卷积网络的堆积

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  在这里DCN加了一个, DeformConv2d,这个函数是自己编写的,一个可变形的卷积操作,其实他本质上和普通的卷积操作一样

后面也是相同的操作,通过RAM模块将相应的结果组合在一起


3.2 RAM

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  输入分为了主编码器和辅助编码器,总共的结合组成为3种,将不同变化的进行拼接

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

相应参数:

  • x 原始参数
  • short 经过了注意力通道
  • s1 tranformer辅助通道过来的数据

3.3 输出参数

输出参数值主要分为两类:

  • 结合所有参数的X [N, 32, 256, 256]
  • 每个阶段提取出来的特征数据features

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  将这两个数据进行带入Encode,进行解码,可以逐步还原成原始图像



四、Encode代码

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

代码主要分为两步来实现:

  • x 的卷积上采样
  • x与skip的融合后,进行相应的卷积操作

  skip是每个特征层的进过RAM后的保存数据,所有的融合卷积操作在block中完成


4.1 block函数解析

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

  在连接阶段主要是conv1和conv2,这两个函数, 进行上采样来保存维度一致,使他可以cat在一起 conv3和conv4在连接完成后,进行相应的上采样环节来使图像还原成原来的[n, 6, 256, 256]

4.2 上采样还原

【语义分割】ST_Unet论文 逐步代码解读,深度学习,计算机视觉,人工智能

这部分代码将这里独立出去了

在这里x的输入参数应该是(N,16,256,256)

在进行了一次卷积和上采用后,就恢复成了原始图像文章来源地址https://www.toymoban.com/news/detail-725434.html

到了这里,关于【语义分割】ST_Unet论文 逐步代码解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UNet-肝脏肿瘤图像语义分割

    目录 一. 语义分割 二. 数据集 三. 数据增强 图像数据处理步骤 CT图像增强方法 :windowing方法 直方图均衡化 获取掩膜图像深度 在肿瘤CT图中提取肿瘤 保存肿瘤数据  四. 数据加载 数据批处理 ​编辑​编辑 数据集加载   五. UNet神经网络模型搭建          单张图片预测图

    2024年02月04日
    浏览(61)
  • 基于MindSpore复现UNet—语义分割

    Unet模型于2015年在论文《U-Net: Convolutional Networks for Biomedical Image Segmentation》中被提出,最初的提出是为了解决医学图像分割问题,用于细胞层面的图像分割任务。 UNet模型是在FCN网络的基础上构建的,但由于FCN无法获取上下文信息以及位置信息,导致准确性较低,UNet模型由此

    2024年02月05日
    浏览(39)
  • UNet语义分割模型的使用-Pytorch

    最近有时间,跑了一下UNet模型,因为自己的深度学习基础不扎实,导致用了一些时间。目前只停留在使用和理解别人模型的基础上,对于优化模型的相关方法还有待学习。 众所周知,UNent是进行语义分割的知名模型,它的U形结构很多人也都见过,但是如果自己没有亲自试过

    2024年02月03日
    浏览(36)
  • 语义分割系列7-Attention Unet(pytorch实现)

    继前文Unet和Unet++之后,本文将介绍Attention Unet。 Attention Unet地址,《Attention U-Net: Learning Where to Look for the Pancreas》。 Attention Unet发布于2018年,主要应用于医学领域的图像分割,全文中主要以肝脏的分割论证。 Attention Unet主要的中心思想就是提出来Attention gate模块,使用soft-at

    2024年02月06日
    浏览(26)
  • 【Bubbliiiing视频记录】Pytorch 搭建自己的Unet语义分割平台

    b站 地址 语义分割:对图像每个像素点进行分类 常见神经网络处理过程:Encoder提取特征,接着Docoder恢复成原图大小的图片 分为三个部分 主干特征提取部分: 卷积和最大池化的堆叠 获得五个初步有效特征层 加强特征提取部分: 五个初步有效特征层进行上采样 + 特征融合

    2024年02月12日
    浏览(30)
  • 医学图像分割方向优质的论文及其代码【Medical Image Segmentation】UNet、transformer、计算机视觉

      作者:Yifei Chen, Chenyan Zhang, Yifan Ke, Yiyu Huang, Xuezhou Dai, Feiwei Qin   中文摘要: 由于收集过程具有挑战性、标记成本高、信噪比低以及生物医学图像特征复杂,传统的监督学习方法在医学图像分割方面历来遇到一定的限制。 本文提出了一种半监督模型DFCPS,创新性地融合了

    2024年04月13日
    浏览(32)
  • 深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程

    语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图、医疗影像等领域有着比较广泛的应用。我总结了使用UNet网络做图像语义分割的方法,教程很详

    2024年02月03日
    浏览(36)
  • 深度学习:使用UNet做图像语义分割,训练自己制作的数据集并推理测试(详细图文教程)

    语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图、医疗影像等领域有着比较广泛的应用。我总结了使用UNet网络做图像语义分割的方法,教程很详

    2024年01月18日
    浏览(35)
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]

    提出的架构,双注意力U-Net与特征融合(DAU-FI Net),解决了语义分割中的挑战,特别是在多类不平衡数据集上,这些数据集具有有限的样本。DAU-FI Net 整合了多尺度空间-通道注意力机制和特征注入,以提高目标定位的准确性。核心采用了一个多尺度深度可分离卷积块,捕获跨

    2024年02月04日
    浏览(49)
  • 【PyTorch 实战2:UNet 分割模型】10min揭秘 UNet 分割网络如何工作以及pytorch代码实现(详细代码实现)

      U-Net,自2015年诞生以来,便以其卓越的性能在生物医学图像分割领域崭露头角。作为FCN的一种变体,U-Net凭借其Encoder-Decoder的精巧结构,不仅在医学图像分析中大放异彩,更在卫星图像分割、工业瑕疵检测等多个领域展现出强大的应用能力。UNet是一种常用于图像分割的卷

    2024年04月28日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包