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.mzph.cn/news/31038.shtml

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

相关文章

AP2915DC-DC降压恒流驱动IC LED电源驱动芯片 汽车摩托电动车灯

AP2915 是一款可以一路灯串切换两路灯串的降压 恒流驱动器,高效率、外围简单、内置功率管,适用于 5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功 率管输出功率可达 12W,电流 1.2A。 AP2915 一路灯亮切换两路灯亮,其中一路灯亮可 以全亮&a…

【C++11】列表初始化 | decltype操作符 | nullptr | STL的更新

文章目录 一.列表初始化1. 花括号初始化2. initializer_list 二.decltype三.nullptr四.STL的更新1.STL新增容器2.字符串转换函数3.容器中的一些新方法 一.列表初始化 1. 花括号初始化 { }的初始化 C98中,标准允许使用大括号{}对数组或者结构体元素进行统一的列表初…

竞赛项目 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &a…

【Linux】网络编程套接字

文章目录 网络编程套接字1. 认识TCP协议2. 认识UDP协议3. 网络字节序4. socket编程接口4.1 sockaddr 结构 5. 简单的UDP网络程序6. 简单的TCP网络程序6.1 TCP socket的封装6.2 TCP协议通讯流程 网络编程套接字 1. 认识TCP协议 传输层协议有连接可靠传输面向字节流 2. 认识UD…

php通过各种函数判断0和空php实例

php通过各种函数判断0和空php实例 本文给大家介绍php同各种函数判断0和空的方法,在文章给大家补充介绍了php 语法里0不等于null为空的解决办法 补充:下面给大家介绍下php 语法里0不等于null为空的解决办法 今天遇到这样一个问题是这样的: php 语句里,我…

Blender如何给fbx模型添加材质贴图并导出带有材质贴图的模型

推荐:使用 NSDT场景编辑器快速助你搭建可二次编辑的3D应用场景 此教程适合新手用户,专业人士直接可直接绕路。 本教程中介绍了利用Blender建模软件,只需要简单几步就可以为模型添加材质贴,图,并且导出带有材质的模型文…

uniapp 使用canvas画海报(微信小程序)

效果展示&#xff1a; 项目要求&#xff1a;点击分享绘制海报&#xff0c;并实现分享到好友&#xff0c;朋友圈&#xff0c;并保存 先实现绘制海报 <view class"data_item" v-for"(item,index) in dataList" :key"index"click"goDet…

【OpenVINOSharp】 基于C#和OpenVINO2023.0部署Yolov8全系列模型

基于C#和OpenVINO2023.0部署Yolov8全系列模型 1 项目简介1.1 OpenVINOTM 2 OpenVinoSharp2.1 OpenVINOTM 2023.0安装配置2.2 C 动态链接库2.3 C#构建Core推理类2.4 NuGet安装OpenVinoSharp 3 获取和转换Yolov8模型3.1 安装ultralytics3.2 导出yolov8模型3.3 安装OpenVINOTM Pyt…

ssm学院党员管理系统源码和论文PPT

ssm学院党员管理系统源码和论文PPT002 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 选题意义、价值和目标&#xff1a; 随着鄂尔多斯应用技术学院招生规模的不断扩大&…

LeetCode209. 长度最小的子数组

题目&#xff1a;LeetCode209. 长度最小的子数组 描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子…

改进DevSecOps框架的 5 大关键技术

Markets and Markets的一项研究显示&#xff0c;全球DevOps的市场规模从2017年的29亿美元增加到2023年的103.1亿美元&#xff0c;预测期的年复合增长率(CAGR)为24.7%。人们对DevOps越来越感兴趣&#xff0c;因为DevOps不仅能够压缩软件的交付周期&#xff0c;还能提高交付的速度…

geeemap学习总结(1)——Anaconda-VSCode-geemap环境安装与配置

配置conda geemap 环境 通过Anaconda配置geemap环境较为方便&#xff0c;首先需在系统中完成 Anaconda安装。创建名为geemap的环境conda create -n geemap切换到新建的环境conda activate geemap安装geemap依赖包conda install -c conda-forge geemap 安装mambaconda install …

ACM算法竞赛中在编辑器中使用输入输出样例-CPH

通用方法 我们可以在编辑器中创建三个文件&#xff0c;一个是main.cpp,一个是test.in,一个是test.out分别用来写代码&#xff0c;输入输入数据&#xff0c;显示输出数据 这种方法的好处是不需要插件&#xff0c;在任何编辑器中都可以实现&#xff0c;例如Devc,sublime,vscode…

【Pyhthon实战】Python对全校电费查询采集并可视化分析

前言 今天,我来说说怎么抓取宿舍电费的过程。我们学校是在完美校园交电费的,我们可以不用取抓包完美校园的数据接口,我们可以直接登录学校的一卡通网站,每个学校都有,大家可以自己找找,这里我为什么要抓包呢,因为学校提供的网站已经打不开了,这里就不介绍怎么抓包了。 …

直播电商赋能跨境业务,Live Market创造全民参与的生态圈

全球疫情的影响让跨境电商业务受到了巨大的冲击&#xff0c;但同时也为跨境电商业务带来了新的机遇和挑战。直播电商作为电子商务行业的新兴业务版块&#xff0c;成为了跨境电商业务的一个重要推动力量。在这个背景下&#xff0c;直播电商成为了跨境电商业务的一个主流业务版块…

php-cgi.exe - FastCGI 进程超过了配置的请求超时时限

解决方案一&#xff1a; 处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题 内容转载&#xff1a; 处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题_php技巧_脚本之家 【详细错误】&#xff1a; HTTP 错误 500.0 - Internal Server Error C:…

python爬虫之scrapy框架介绍

一、Scrapy框架简介 Scrapy 是一个开源的 Python 库和框架&#xff0c;用于从网站上提取数据。它为自从网站爬取数据而设计&#xff0c;也可以用于数据挖掘和信息处理。Scrapy 可以从互联网上自动爬取数据&#xff0c;并将其存储在本地或在 Internet 上进行处理。Scrapy 的目标…

vue3中用watch监听响应式数据的注意点

如果你在vue3中使用reactive()方法创建响应式数据&#xff0c;然后又用torefs()方法将响应式数据解构成单一的ref响应式数据。 此时&#xff0c;如果你想用watch监听解构出来单一的响应式数据&#xff0c;watch不起作用。 此时&#xff0c;你需要用watch监听之前的reactive()…

Python如何打开pkl的sample text?(上篇)

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昨夜闲潭梦落花&#xff0c;可怜春半不还家。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python私教群【Emma】问了一个Python读取数据的问题&am…

mysql_docker主从复制_实战_binlog混合模式_天座著

步骤1&#xff1a;拉取镜像 docker pull mariadb:latest 步骤2.1&#xff1a;创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2&#xff1a;创…