医学图像分割之MedNeXt

论文:MedNeXt: Transformer-driven Scaling of ConvNets for Medical Image Segmentation

ConvNeXt网络是一种借鉴Transformer的思想进行了改进实现的全卷积网络,其通过全卷积网络和逆向残差瓶颈单元的设计,可以实现比较大的空间感受野。本文在此基础上提出了新的可伸缩,标准化的网络结构MedNeXt

MedNeXt是一个全卷积的Encoder-Decoder模式的医学图像分割网络,适用于2d,3d的医学图像分割。模型内部ConvNeXt上采样,ConvNeXt下采样模块可以更好的实现特征的传递。同时论文提出了UpKern方法来通过小卷积核对大卷积核进行初始化来反之少量数据训练时候的模型饱和问题。MedNeXt还是可以自由伸缩的模型,支持多个维度(depth, width, kernel size)的伸缩来适应不同的应用场合。ConvNeXt在效果上也是略优于nnUNet
 

主要贡献:

(1)利用ConvNeXt这种全卷积网络的思想,设计了一个纯卷积模块(purely of ConvNeXt blocks)组成的网络结构MedNeXt

(2)有别于正常的上采样,下采样模块,论文提出了逆向残差瓶颈单元(Residual Inverted Bottlenecks),使用该模块来实现上下采样操作。该模块有助于保存丰富的特征同时提高了梯度的传递效果。

(3)提出了一个简单高效的不同大小kernel的参数初始化方法UpKern,保证模型具有较好的初始化。

(4)提出了模型伸缩的方法(Compound Scaling),保证了模型在宽度width (channels),感受野receptive field (kernel size) 深度depth (number of layers)等方向的伸缩。

网络结构:

网络的整体设计还是全卷积编码器-解码器这种U型结构。如果是3d分割输入为128*128*128,如果是2d分割输入为512*512

其中R代表通道的扩展率,C表示通道数,B表示block的堆叠次数,L表示输入的分辨率大小。

Steam block(粉色):

由于MedNeXt网络同时支持2d3d的分割任务。由于是全卷积的设计思想,所以不同输入图像的宽,高不会产生影响,但是不同的通道数却是会对模型产生影响。如果做到训练一个预训练模型,同时兼任2d3d任务呢?这就是steam模块的作用。该模块通过一个1*1*1的卷积实现,可以实现将不同通道数的输入都压缩在同样的通道数目上,这样就保证了模型参数的可复用。

MedNeXt block(黄色):

该模块整体是一个逆向的残差模块,模块先经过一个stride=1的深度可分离卷积(DW),然后做一个GroupNorm操作,这里有别于Swin-Transformers中的LayerNorm操作。这样做的目的是为了保证小batch训练的稳定性。然后再经过一个1*1*1卷积,对通道数进行R倍增加,并基于GELU激活,最后再经过一个1*1*1,对通道数进行压缩,最终保证输入的通道数等于输出的通道数,输入的分辨率等于输出的分辨率。最后将该分支的输出和shortcut直连的输出进行汇合,得到最终的模块输出。

MedNeXt 2x Down block(蓝色):

该模块与MedNeXt block的区别有2点。第1个区别是输入部分换为stride=2的深度可分离卷积(DW),实现了网络的下采样操作。第2个区别是shortcut分支加入了1*1*1卷积保证输出的通道数2倍增加,以及最后一个1*1*1卷积实现了通道数的2倍增加。最终输入特征通过MedNeXt 2x Up block可以实现2倍的下采样,通道2倍的升维。

MedNeXt 2x Up block(绿色):

该模块与MedNeXt block的区别有2点。第1个区别是输入部分换为stride=2的深度可分离反卷积(DW ConvTranspose),实现了网络的上采样操作。第2个区别是shortcut分支加入了1*1*1卷积保证输出的通道数2倍减少,以及最后一个1*1*1卷积实现了通道数的2倍减少。最终输入特征通过MedNeXt 2x Down block可以实现2倍的上采样,通道2倍的降维。

Output/Deep Supervision block(紫色):

该模块通过1*1*1卷积实现将特征缩放到classes维度。

UpKern:

Swin Transformer V2中大的attention-window的初始化是使用小的attention-window进行初始化的。偏置参数 B大小为(2M-1)×(2M-1)M表示attention-window中的patch个数,不同大小窗口的B是不一样的,这里也是通过空间插值(spatially interpolating)的方法进行实现的。本文的UpKern思想就来源于此。对于一样大小的卷积核使用直接复制权值的方法进行初始化,对于比较大的卷积核,通过对小的卷积核进行三线插值得到大的卷积核。通过这样的初始化方法可以避免模型的性能饱和。

论文给出了Pytorch版本的实现, 

import torch . functional as F
def upkern_init_load_weights ( network , pretrained_net ):pretrn_dct = pretrained_net . state_dict ()model_dct = network . state_dict ()for k in model_dct . keys ():# Only common keys and core algorithm in Demo codeif k in model_dct . keys () and k in pretrn_dct . keys ():inc1 , outc1 , * spt_dims1 = model_dct [k]. shapeinc2 , outc2 , * spt_dims2 = pretrn_dct [k]. shapeif spt_dims1 == spt_dims2 : # standard initmodel_dct [k] = pretrn_dct [k]else : # Upsampled kernel initmodel_dct [k] = F. interpolate (pretrn_dct [k],size = spt_dims1 ,mode =’trilinear ’)network . load_state_dict ( model_dct )return network

Compound Scaling of Depth, Width and Receptive Field

本文的模型通过调节block count (B)来调节深度(depth),调节expansion ratio (R) 来调节宽度(width),调节kernel size (k) 来调节感受野(receptive field size)。最终实现模型的可伸缩扩展。最终提出了SBML四种不同大小的网络来适应不同应用场景。

实验结果: 

总结:

本文提出了一种具备高度可扩展性的类ConvNeXt 3D 分割架构,其在有限的医学图像数据集上优于其它 7 个顶流方法,当中就包含了非常强的nnUNetMedNeXt设计作为标准卷积块的有效替代,完全可作为医学图像分割领域的新网络架构标杆之作!

 

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

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

相关文章

医学图像分割实操

整个实验过程包括: 1、数据集获取:https://zenodo.org/record/3757476 2、数据预处理:从.nii文件中提取包含目标区域的切片,如果不是很清楚医学图像格式的处理,也可以将.nii文件转换成png格式的图片,.nii…

【医学图像】图像分割系列.3 (uncertainty)

介绍几篇使用不确定性引导的医学图像分割论文:UA-MT(MICCAI2019),SSL4MIS(MICCAI2021),UG-MCL(AIIM2022). Uncertainty-aware Self-ensembling Model for Semi-supervise…

医学图像分割文章阅读笔记

1、Detection-aided liver lesion segmentation using deep learning 2、Automatic Liver and Tumor Segmentation of CT and MRI Volumes Using Cascaded Fully Convolutional Neural Networks https://github.com/IBBM/Cascaded-FCN 一、Method 第一步:数据预处理和神经网…

医学图像笔记(四)医学图像分割

医学图像笔记(四)医学图像分割 1、医学图像分割的开源工具2、其他分割2.1、3D VNet2.2、PE-VNet2.3、基于PyTorch的3D 医学图像分割2.4、3D UX-Net:超强的医学图像分割新网络2.5、医学图像分割优质开源代码 3、医学图像数据集3.1、百度AI stu…

UniverSeg:通用医学图像分割模型来了!

自从今年以来ChatGPT爆火和GPT-4的发布,一时间在大模型的潮流下,通用人工智能(AGI)也呼之欲出。随着本月初SAM和SegGPT等通用的CV大模型的提出,大模型和通用模型这把火也逐渐烧到的CV领域,特别是图像分割领…

[转]医学图像分割综述

原作者: Zeynettin Akkus & Alfiia Galimzianova & Assaf Hoogi & Daniel L. Rubin & Bradley J. Erickson 时间:2017 csdn作者链接: https://blog.csdn.net/xy9476/article/details/80587151 (转载为收藏) Abstract 这篇综…

最新《医学图像分割》综述,详述六大类100多个算法

来源:专知 医学图像自动分割是医学领域的一个重要课题,也是计算机辅助诊断领域的一个重要分支。U-Net由于其灵活性、优化的模块化设计和在所有医学图像模式中的成功,是最广泛应用的图像分割体系结构。多年来,U-Net模式获得了学术界…

通用医学图像分割模型UniverSeg

虽然深度学习模型已经成为医学图像分割的主要方法,但它们通常无法推广到涉及新解剖结构、图像模态或标签的unseen分割任务。给定一个新的分割任务,研究人员通常必须训练或微调模型,这很耗时,并对临床研究人员构成了巨大障碍&#…

Unet分割医学图像全记录/结果全白解决办法/多分类Dice loss

文章目录 任务介绍数据来源及预处理Unet实现过程中遇到的bug 任务介绍 本项目是基于Unet网络对心肌图像进行心池和心肌分割。写这篇博客为了记录下我在写模型时遇到的bug和思考,我发现好像没有一篇从头到尾的笔记,我作为小白真的遇到了很多大坑&#xf…

【医学图像】图像分割系列.4

介绍几篇使用Transformer结构做医学图像分割的论文:CASTformer(NeuralPS2022),PHNet(arXiv2023)。 Class-Aware Adversarial Transformers for Medical Image Segmentation, NeuralPS2022 解读&#xff1a…

医学图像分割实战——使用U-Net实现肾脏CT分割

使用U-Net实现肾脏CT分割 数据集准备数据来源数据预处理 网络结构及代码网络结构训练代码 训练过程参数设置:可视化 结果分析 数据集准备 数据来源 MICCAI KiTS19(Kidney Tumor Segmentation Challenge):https://kits19.grand-challenge.org/ KiTS201…

医学图像分割之 Dice Loss

文章目录 医学图像分割之 Dice Loss1. Dice coefficient 定义1.1. Dice 系数计算示例1.2. Dice-coefficient loss function vs cross-entropy 2. Dice 系数的 Pytorch 实现2.1. Dice 系数2.2. Dice Loss2.3. BCELoss2d 3. Dice 系数的 Keras 实现4. Dice 系数的 TensorFlow 实现…

医学图像分割常见评价指标(单目标)——包含源码讲解和指标缺陷

单目标分割常见评价指标 1 知道4个常见指标,TP,TN,FP,FN2 评价分割区域准确率2.1 Recall Sensitivity TPR(True Positive Rate)2.2 Specificity (True Negative Rate)2.3 Precision (PPV, 精确率)2.4 Dice Coefficient…

医学图像分割之Attention U-Net

目录 一、背景 二、问题 三、解决问题 四、Attention U-Net网络结构 简单总结Attention U-Net的操作:增强目标区域的特征值,抑制背景区域的目标值。抑制也就是设为了0。 一、背景 为了捕获到足够大的、可接受的范围和语义上下文信息,在标…

常用的医学图像分割评价指标

常用的图像分割评价指标非常多,论文中常用的指标包括像素准确率,交并比(IOU),Dice系数,豪斯多夫距离,体积相关误差。 下面提到的所有案例都是二分类,标签中只有0和1 目录 一:像素…

医学图像分割评判标准及程序代码

文章目录 1.图像分割指标2. 两个问题3.IOU和假阳性率4. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure 参考资源: 1.https://blog.csdn.net/zichen_ziqi/article/details/80408465 2.https://blog.csdn.net/HXG2006/article/details/79649154 …

基于Android studio开发的图灵智能聊天机器人

前言 在人工智能时代,开发一款自己的智能问答机器人,既可以提升自己的编程能力,又可以作为开发项目的实战练习。 百度有小度,小米有小爱,VIVO有小V,总之类似的智能聊天机器人是越来越多了。面对这些智能的机…

短视频矩阵源码开发部署--开原

短视频矩阵源码是一种常见的视频编码标准,它通过将视频分成多个小块并对每个小块进行压缩来实现高效的视频传输。在本文中,我们将介绍短视频矩阵的原理和实现,并提供示例代码。 开发链路解析 短视频矩阵系统源码开发链路包括需求分析、技术…

ChatGPT危了!注意力机制的神秘bug曝光!Transformer模型恐大受冲击...

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【Transformer】微信交流群 转载自:新智元 【导读】「注意力公式」存在8年的bug首现,瞬间引爆舆论。爆料者称,基于Transformer架构打造的模…

短视频抖音seo矩阵源码如何搭建开发?

抖音SEO矩阵源码排名逻辑采用一系列算法进行生成,其中包括用户行为、关键词匹配和内容质量等多维度指标的衡量。首先,用户行为是决定视频排名的主要因素,包括点赞数、评论数、观看时长和转发次数等。其次,关键词匹配也是影响排名的…