TransNetR:用于多中心分布外测试的息肉分割的基于transformer的残差网络

TransNetR Transformer-based Residual Network for Polyp Segmentation with Multi-Center Out-of-Distribution Testing 阅读笔记

1. 论文名称

《TransNetR Transformer-based Residual Network for Polyp Segmentation with Multi-Center Out-of-Distribution Testing》
用于多中心分布外测试的息肉分割的基于transformer的残差网络

论文来源:https://arxiv.org/pdf/2303.07428.pdf
源码: https://github.com/DebeshJha.

2. 摘要

结肠镜检查被认为是检测结直肠癌 (CRC) 及其癌前病变(即息肉)最有效的筛查测试。然而,由于息肉异质性和观察者间的依赖性,该手术的漏诊率很高。因此,考虑到临床实践中息肉检测和分割的重要性,提出了几种深度学习驱动的系统。尽管取得了改进的结果,但现有的自动化方法在实现实时处理速度方面效率较低。此外,在对患者间数据(尤其是从不同中心收集的数据)进行评估时,他们的性能显着下降。因此,我们打算开发一种新颖的基于实时深度学习的架构,即基于 Transformer 的残差网络(TransNetR),用于结肠息肉分割并评估其诊断性能。所提出的架构 TransNetR 是一个编码器-解码器网络,由作为编码器的预训练 ResNet50、三个解码器块以及网络末端的上采样层组成。 TransNetR 获得了 0.8706 的高骰子系数和 0.8016 的平均交集,并在 Kvasir-SEG 数据集上保持了 54.60 的实时处理速度。除此之外,这项工作的主要贡献在于通过在分布外(测试分布未知且与训练分布不同)数据集上测试所提出的算法来探索 TransNetR 的通用性。作为一个用例,我们在 PolypGen(6 个独特中心)数据集和其他两个流行的息肉分割基准数据集上测试了我们提出的算法。在分布外测试期间,我们在所有三个数据集上都获得了最先进的性能。 TransNetR 的源代码将在 https://github.com/DebeshJha 公开发布。

简单来讲:开发一个实时的分割网格,基于transformer的残差网络,编码器使用预训练ResNet50,有三个解码器块,最后网络末端有一个上采样层。实验表明,实时处理速度高,泛化能力强。

3. 介绍与相关工作

结直肠癌死亡率高,可通过结肠镜检查识别然后切除息肉以防止癌变,识别息肉要求医生能获得息肉的准确位置信息和精确边界细节,但传统结肠镜检查中,漏检率高。因为评估过程快,息肉外观高度变化,与周围粘膜相似。

现有成果面临的困境:

  • 在实际场景中性能受限制;
  • 息肉形状与性别、年龄、种族和地区相关,息肉位置与种族有关;
  • 不同结肠镜检查中心的视频捕获方式会造成域转移问题;
  • 只考虑性能,而不考虑泛化问题,即使用不同检查中心的数据集,因为无数据。

本文:
提出基于transformer的残差网络,以实现准确、实时的息肉分割,并推广得到分布外的数据(验证集是其他的),并保持了高性能和实时处理速度。
在iD 和OOD数据集上得到验证,不同中心的数据集的结果表明,泛化能力更强。

4.方法

在这里插入图片描述

TransNetR框架图与Residual Transformer模块图

输入的数据经过预训练的ResNet50,从中提起四个不同的中间特征图,中间特征图经过1x1卷积层,然后经过批量归一化和LeakyReLU激活函数。1x1卷积层可以减少特征通道数量,从而减少参数数量。然后进入三个解码器模块,缩减后的特征图被送入第一个解码器块,首先经过双线性上采样层,上采样层将特征图的空间维度增加了两倍,然后将其与下一个简化的特征图连接起来,进入Residual Transformer块。在Residual Transformer中,首先经过1x1卷积层,批量归一化和LeakyReLU激活函数,被重新整成补丁,然后进入transformer层,transformer层由多头自注意力组成,以学习更好的特征表示,再整回与之前一致的大小,再经过1x1卷积层,加批量归一化,add输入的特征图,经过LeakyReLU激活函数,再经过残差网络输出。第一个解码器块的输出被传递到第二个解码器块,再传递到最后一个。在最后一个解码器块中,残差transformer替换成简单的残差块,可以减少可训练的参数的数量,最终解码器的输出通过双线性上采样层,将特征图的空间维度增加两倍,再通过带有sigmoid激活函数的1x1卷积层。

残差transformer
以1x1的卷积层开始,然后是批量归一化和LeakyReLU激活函数,然后使用大小为4的补丁展平(铺成一行或者一列)特征图,然后传递到有四个头两层的transformer中,transformer块提供自注意力,使得更加鲁棒,然后重新整形成输入的形状,再经过1x1卷积,批量归一化,与输入特征图相加,然后通过LeakyReLU激活函数,再经过残差网络输入。

5.实验结果

使用了四个数据集完成实验:Kvasir-SEG、PolypGen、PolypGen、BKAI-IGH、Kvasir-SEG。Kvasir-SEG有1000张图片,其中880张作为训练集,其余作为测试集;再使用其他三个数据集做泛化能力评估,其中PolypGen是来自三个检测中心的不同人群,所以这样会更真实,贴近真实世界场景。

该模型使用Pytorch框架实现,并在NVIDIA RTX3090 GPU系统上进行实验。使用Anadam优化器,学习率为1e4,batch大小设置为8。使用的损失函数是二元交叉熵和dice损失的组合。使用广泛使用的评估指标(例如mIoU、mDSC、Recall)对TransNetR与SOTA方法的性能进行了定量比较、精度、F2 和处理速度(FPS)。
在这里插入图片描述
结果

学习能力:在测试集上,定性与定量结果如下:
在这里插入图片描述
在这里插入图片描述
泛化能力:在其他未见过的数据集上测试
在这里插入图片描述
在这里插入图片描述

消融实验:评估RT块的影响
在这里插入图片描述

6.总结

提出了一个基于transformer的残差网络,具有更高的处理速度(FPS=54.60,其实从数据表中可以看出,也并没有特别高,文中只强调了优于UACANet),更强的学习能力和泛化能力。

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

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

相关文章

考虑分布式电源的配电网无功优化问题研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

WebApIs 第五天

window对象 BOM(浏览器对象模型)定时器-延时函数JS执行机制location对象navigator对象histroy对象 本地存储 一.BOM(浏览器对象模型) ① BOM是浏览器对象模型 window 对象是一个全局对象,也可以说是JavaScript中的…

LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署 参考资料 1、LangChain ChatGLM2-6B 搭建个人专属知识库中的LangChain ChatGLM2-6B 构建知识库这一节:基本的逻辑和步骤是对的,但要根据Windows和现状做很多调整。 2、没有动过model_config.py中的“LORA_MOD…

微服务Ribbon-负载均衡策略和饥饿加载

目录 一、负载均衡策略 1.1 负载均衡策略介绍 1.2 自定义负载均衡策略 二、饥饿加载 (笔记整理自bilibili黑马程序员课程) 一、负载均衡策略 1.1 负载均衡策略介绍 负载均衡的规则都定义在IRule接口中,而IRule有很多不同的实现类&…

2023-arxiv-LLaMA: Open and Efficient Foundation Language Models

开放和高效的基础语言模型 Paper:https://arxiv.org/abs/2302.13971 Code: https://github.com/facebookresearch/llama 摘要 本文介绍了 LLaMA,这是⼀个包含 7B 到 65B 参数的基础语⾔模型的集合。作者在数万亿个令牌上训练模型,并表明可以…

gateway做token校验

本文使用springcloud的gateway做token校验 登录的本质&#xff1a;拿用户名和密码 换 token。 token会返回给浏览器&#xff08;存储&#xff09;&#xff0c;当访问的时候&#xff0c;携带token 发起请求。 token校验图 引入redis依赖 <dependency><groupId>or…

Mac 调试 ios safar

1. 打开Mac的 Safari 浏览器的“开发”菜单 运行 Safari 浏览器&#xff0c;然后依次选取“Safari 浏览器”>“偏好设置”&#xff0c;点按“高级”面板&#xff0c;然后勾选“在菜单栏中显示开发菜单”。 2. 开启IPhone的Safari调试模式 启用 Web 检查 功能&#xff0c;打…

基于chatgpt动手实现一个ai_translator

动手实现一个ai翻译 前言 最近在极客时间学习《AI 大模型应用开发实战营》&#xff0c;自己一边跟着学一边开发了一个进阶版本的 OpenAI-Translator&#xff0c;在这里简单记录下开发过程和心得体会&#xff0c;供有兴趣的同学参考&#xff1b; ai翻译程序 版本迭代 在学习…

ChatGPT: 提升程序员开发效率的秘密武器!

引言 在现代软件开发中&#xff0c;时间和效率显得尤为重要。程序员们需要在尽可能短的时间内编写高质量的代码&#xff0c;并使之处于状态良好的维护周期。为满足这些需求&#xff0c;人工智能技术逐渐成为软件开发的一项核心能力。ChatGPT作为自然语言生成模型中的佼佼者&am…

Spring之事务管理

文章目录 前言一、事务及其参数含义1.事务的四个特性2.事务的传播行为&#xff08;propagation&#xff09;3.事务隔离性4.事务的隔离级别&#xff08;ioslation&#xff09;5.timeout&#xff08;超时&#xff09;6.readOnly&#xff08;是否只读&#xff09;7.rollbackFor&am…

VSCode-Python传参数进行Debug

新建demo.py import argparse def parse_args():description "debug example" parser argparse.ArgumentParser(descriptiondescription) help "The path of address"parser.add_argument(--host,help help) parser.add_ar…

iview中table表头内容换行展示

如图效果图展示表头内容换行展示&#xff0c;代码如下&#xff1a; 在data中定义表头column Columns:[ {title: this.labelFn(Name, Name),key: name,align: center,}, ]在methods中定义方法 labelFn (name, str) {// 在需要换行的地方加入换行符 \n &#xff0c;在搭配最底…