当前位置: 首页 > news >正文

面向医学图像语义分割-MedISeg

本人之前也是做了好久医疗的哦 所以关注了 一下 搬来了这个~~

先送上源码地址和论文哦

论文地址

https://arxiv.org/pdf/2209.10307.pdf

源码和预训练模型地址

https://github.com/hust-linyi/MedISeg

动机

我们这篇论文的出发点是想要解决大家一直以来诟病的一个问题,即深度学习模型的architecture和setting过于复杂,导致实验结果的比较存在不公平性。

举个常见的栗子,比如大家都会用到的ResNet,几乎每个人都会在论文中说“Our backbone network is ResNet-50 or ResNet-101.”, 但是其实在部署的时候,ResNet的input stem存在两种不一样的形式,如下图:

 

Two implementation schemes of the input stem in ResNet 

(b)是在(a)上面的一个改进,用于减少计算量的。这种改进被证实是可以显著的影响模型的识别精度的,但是少有人在自己的论文中介绍backbone network的时候提及这种改进。那么,基于这两种不一样形式的backbone的实验结果比较,显然是不公平的。

方法

1. 按照深度学习模型部署的6个阶段,我们首先搜集了一些大家经常会使用但又被容易忽略的Tricks

2. 以2D和3D的医学图像为实验对象,进行了大量的实验以显式地探索这些Tricks对模型性能的影响

结论

1. Tricks很重要,可以显著地影响模型的识别性能

2. 某些Tricks具有跨数据、跨模态、跨模型的迁移性

3. Tricks本质上对应的是解决了语义分割中的一些Challenges,因此在部署Tricks的时候需要考虑到想要解决的Challenges之间的内在关联

4. 基于这些Tricks的实验结论可以帮助我们将来在解决2D和3D图像语义分割Challenges的时候提供实际的指导                     whaosoft aiot http://143ai.com 


下面简单的介绍一些我们的方法MedISeg、方法的优势、简单的讨论以及未来的方向。

这边主要做简单的介绍,更多详情请看原文,如有错误请各位大佬批评指正~

1. 我们的方法

我们首先收集了一系列针对不同模型部署阶段的Tricks。这些Tricks主要可以被划分为以下6个方面:

  • 预训练模型

  • 数据预处理

  • 数据扩增

  • 模型部署

  • 模型推理

  • 结果后处理

其次,在这些Tricks的基础上,我们通过实验探索了这些Tricks在一致的基准模型和数据集上对于实验结果的影响。为了能全面的覆盖2D和3D数据,我们以医学图像语义分割数据为实验对象,选择了4个常用的医学图像语义分割数据集,即2D ISIC 2018,2D CoNIC,3D KiTS19和3D LiTS,所采用的基准模型分别是2D-UNet和3D-UNet

2. MedISeg的优势

1)我们的工作提供了大量扎实的实验,在技术上更具有更强的可操作性和更现实的指导性

2)通过在2D和3D数据集上的大量实验,我们明确地阐明了这些Tricks对于实验结果的影响

3)基于所调查的Tricks,我们开源了MedISeg源码和预训练模型库,其全面的覆盖了2D、3D数据集以及不同的语义分割方法

3. 方法讨论 

Tricks本质上对应的是解决了语义分割任务中的一些Challenges。在本文中,我们主要围绕small dataset learning, class imbalance learning, multi-modality learning, 和domain adaptation四个方面展开了讨论。每一个Trick对应的Challenges分析请查看原文的Section 4。此外,Tricks的不同部署策略会带来效果上的差异。在本文中,我们对数据扩增中的策略展开讨论,发现不同的数据扩增方法组合在同样的数据集上带来的提升略有差异。另外,同样的策略在不同的数据集上也有有差异,这说明我们在选择Tricks的时候,还需要考虑到数据集本身的状况。比如当我们选择损失函数对应的Tricks的时候,选择的Tricks本质上是解决了class imbalance learning的问题,但要是我们的数据集中没有这个问题,那么这么Tricks就不能起到我们预想的效果。这其实也可以回答大家之前的一个疑问,为什么有些Tricks加在模型中是有效的,而有些是没有效果的,甚至有些时候Tricks之间好像是存在部署上的冲突的。本质原因就是由于Tricks解决的Challenges导致的

 图2 不同的数据扩增方法在3D KiTS19和3D LiTS数据集上的实验表现差异

4. 未来的方向

对于本文研究的内容以及面向医学图像语义分割任务,将来可以在以下几个方面继续展开研究:

1)调研和开发更多的面向医学图像语义分割的tricks

2) 继续在更多的方法和数据集上探索其他tricks的有效性。这也是我们接下来的一段时间会继续做的事情,对应的内容会持续在GitHub上进行更新

3)前面提到的,tricks其实对应的是解决了语义分割任务中的一些Challenges。那么反过来,我们其实也可以利用tricks来指导我们的模型设计,使得我们的模型也具有“又好又快”的效果

4)探索基于attention方法和框架的tricks

相关文章:

  • puzzle(017.9)HueBots
  • SIM卡被锁怎么办
  • 腾讯云服务器有那么多的型号标准型,计算型,内存型等等,到底该如何选择?
  • 【Android入门】6、ContentProvider:跨程序的数据共享:访问其他 App、被其他 App 访问
  • 文献学习(part102-A)--Autoencoders
  • SS-Model【6】:U2-Net
  • 创新战略|工业企业如何应对颠覆式变革带来的挑战?
  • HashMap不安全后果及ConcurrentHashMap线程安全原理
  • 22_access 阶段
  • 如何位图转换矢量图或者数字油画底稿
  • 阿里巴巴面试题- - -多线程并发篇(三十八)
  • python java php一起考研资料文件下载系统 微信小程序
  • 超好理解的子网和超网
  • Linux常用命令练习
  • Codeforces Round #813 (Div. 2) A. Wonderful Permutation
  • 【译】理解JavaScript:new 关键字
  • avalon2.2的VM生成过程
  • Django 博客开发教程 16 - 统计文章阅读量
  • es6(二):字符串的扩展
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Git学习与使用心得(1)—— 初始化
  • MaxCompute访问TableStore(OTS) 数据
  • orm2 中文文档 3.1 模型属性
  • Promise初体验
  • unity如何实现一个固定宽度的orthagraphic相机
  • 今年的LC3大会没了?
  • 前端面试之CSS3新特性
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #includecmath
  • (javascript)再说document.body.scrollTop的使用问题
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (篇九)MySQL常用内置函数
  • (原創) 未来三学期想要修的课 (日記)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)hibernate缓存
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .libPaths()设置包加载目录
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET 事件模型教程(二)
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET微信公众号开发-2.0创建自定义菜单
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @在php中起什么作用?
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [C#] 如何调用Python脚本程序
  • [C++进阶篇]STL中vector的使用