LeViT-UNet:transformer 编码器和CNN解码器的有效整合

levi - unet[2]是一种新的医学图像分割架构,它使用transformer 作为编码器,这使得它能够更有效地学习远程依赖关系。levi - unet[2]比传统的U-Nets更快,同时仍然实现了最先进的分割性能。

levi - unet[2]在几个具有挑战性的医学图像分割基准上取得了比其他法更好的性能,包括Synapse多器官分割数据集(Synapse)和自动心脏诊断挑战数据集(ACDC)。

LeViT-UNet架构

levi - unet的编码器使用LeViT块构建,设计用于高效和有效地学习全局特征。解码器是使用卷积块构建的。

编码器从多个分辨率的输入图像中提取特征映射。这些特征映射被上采样,连接然后通过跳过连接传递到解码器。跳过连接允许解码器从编码器访问高分辨率的局部特征,有助于提高分割性能。

这种设计使模型能够综合transformer 和cnn的优点。transformer 刚擅长学习全局特征,而cnn擅长学习局部特征。通过结合这两种方法,levi - unet能够获得良好的分割性能,同时也相对高效。

LeViT编码器

编码器采用LeViT[1],主要由两个部分组成:卷积块和变压器块。卷积块通过对输入图像应用4层3x3卷积(步幅为2)来执行分辨率降低。在提取更多抽象特征的同时,这将图像的分辨率降低了一半。然后transformer块获取卷积块的特征映射并学习全局特征。

在编码器的最后阶段将来自卷积块和变压器块的特征连接起来。这使得编码器具有本地和全局特性。局部特征对于识别图像中的小而详细的物体很重要,而全局特征对于识别图像的整体结构很重要。通过结合局部和全局特征,编码器能够生成更准确的分割。

根据输入第一个transformer块的通道数量,开发了3个LeViT编码器:levi -128s, levi -192和levi -384。

CNN解码器

levi - unet的解码器将编码器的特征与跳过连接连接在一起。使得解码器能够从编码器访问高分辨率的局部特征,并采用级联上采样策略,利用cnn从前一层恢复分辨率。它由一系列上采样层组成,每个上采样层后面是两个3x3卷积层,一个BN和一个ReLU层。

实验结果

实现细节:数据增强(随机翻转和旋转),优化器(Adam,学习率1e-5,权重衰减1e-4),图像大小224x224,批大小8,epoch 350和400用于Synapse和ACDC数据集

LeViT模型优于现有模型,并且明显快于TransUNet,后者将Transformer块合并到CNN中。

上图显示了TransUNet、UNet、DeepLabv3+和levi -UNet四种不同方法的定性分割结果。其他三种方法更可能导致器官不足或者过度分割。例如,胃被TransUNet和DeepLabV3+分割不足(如上行第三个面板的红色箭头所示),被UNet过度分割(如第二行第四个面板的红色箭头所示)。

与其他方法相比,论文提出的模型输出相对平滑,表明在边界预测方面更具优势。

2篇论文:

[1] Benjamin Graham, Alaaeldin El-Nouby, Hugo Touvron, Pierre Stock, Armand Joulin, Herv’e J’egou, Matthijs Douze, LeViT: a Vision Transformer in ConvNet’s Clothing for Faster Inference, 2021

[2] Guoping Xu, Xingrong Wu, Xuan Zhang, Xinwei He, LeViT-UNet: Make Faster Encoders with Transformer for Medical Image Segmentation, 2021

https://avoid.overfit.cn/post/474870d5912d4cb3aeade0b47c1a97e3

作者:Golnaz Hosseini

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

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

相关文章

【Python】Python基础知识总结

🎉欢迎来到Python专栏~Python基础知识总结 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文中出现错误,希望…

线程本地变量交换框架-TransmitterableThreadLocal(阿里开源)

上文 :秒级达百万高并发框架-Disruptor TransmitterableThreadLocal介绍 TransmitterableThreadLocal简称TTL 是阿里巴巴开源的一个框架。TransmittableThreadLocal是对Java中的ThreadLocal进行了增强和扩展。它旨在解决在线程池或异步任务调用链中,Thre…

【DASOU视频记录】Transformer从零详细解读

文章目录 来源transformer的全局理解位置编码多头注意力机制残差Batch NormalLayer NormalDecoder 来源 b站链接 transformer的全局理解 输入中文,输出英文 细化容易理解的结构,就是先编码,再解码 进一步细化的结构,就是多个编…

ARM异常处理详解

前言: 学习一门处理器最重要的就是掌握该处理器的指令集和异常处理。 异常概念: 处理器在正常执行程序时可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来转去处理这个异常的事件,异常处理后再返回到被异常打…

Windows下PaddleOCR用NCNN部署

1.所用到的ncnn格式的模型文件 要问这些模型哪里来的,请看下面提示信息: 2.查看字典函数读取方法 char* readKeysFromAssets() {std::ifstream ifs("./model/paddleocr_keys.txt");if (!ifs.is_open()){return 0;}ifs.seekg(0, std::ios_base::end);int …

以太网数据链路层相关技术(六)

目录 一、概述 二、MAC地址 2.1 概述 2.2 MAC地址的意义 三、共享介质型网络与非共享介质网络 四、VLAN技术 一、概述 在各设备之间的数据传输时,物理层和数据链路层是必不可少的。其中,物理层的通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及…

1763_gcc编译c语言makefile自动生成工具的Perl实现_Linux

全部学习汇总: GreyZhang/g_makefile: Learn makefile from all kinds of tutorials on the web. Happy hacking and lets find an common way so we may dont need to touch makefile code any more! (github.com) 其实,调试完这个之后觉得之前Windows上…

docker环境部署postgres版本nacos

1、docker安装postgres 执行命令:docker pull postgres 拉取最新版postgres 2、查看postgres镜像是否安装成功: docker imags(查看镜像),可以看到已经拉取到了最新版本 的postgres镜像 3、编辑一个docker-compose.yml文件,账号是postgres&a…

DynaSLAM 2018论文翻译

Dynaslam:动态场景下的跟踪、建图和图像修复 摘要-场景刚性假设是SLAM算法的典型特征。这种强假设限制了大多数视觉SLAM系统在人口稠密的现实环境中的使用,而这些环境是服务机器人或自动驾驶汽车等几个相关应用的目标。 在本文中,我们提出了一个基于ORB…

【网络安全带你练爬虫-100练】第11练:xpath快速定位提取数据

目录 一、目标1:使用etree解析数据 二、目标2:使用xpath爬取指定数据 三、目标3:提取指定数据 四、网络安全小圈子 一、目标1:使用etree解析数据 其余的不用过多介绍,前面的练习都给大家已经过了一遍 def get_page…

Skywalking高级使用

Skywalking高级使用 RPC调用监控Mysql调用监控Skywalking常用插件获取追踪ID过滤指定的端点告警功能Skywalking原理Open Tracing介绍 RPC调用监控 Skywalking(6.5.0)支持的RPC框架有以下几种: (1) Dubbo 2.5.4 -> 2.6.0 (2) Dubbox 2.8.4 (3) Apache Dubbo 2.7.…