基于互一致性学习的半监督医学图像分割

Mutual consistency learning for semi-supervised medical image segmentation

  • 基于互一致性学习的半监督医学图像分割
    • 背景
    • 贡献
      • 半监督学习
    • 其它缓解过拟合的方法
    • 实验
    • 方法
    • 损失函数
    • Thinking

基于互一致性学习的半监督医学图像分割

Medical Image Analysis 81 (2022) 102530

背景

医学影像数据标注困难、昂贵,小规模的数据容易导致深度学习过拟合,性能欠佳,半监督方法使用未标注的数据提高分割性能非常重要。
观察到,使用有限注释训练的深度模型在模糊区域(例如,粘性边缘或细分支)精度不高,用于医学图像分割。利用这些具有挑战性的样本可以使半监督分割模型训练更加有效

贡献

因此,我们提出的MC-Net+模型由两个新的设计组成。

  • 首先,该模型包含一个共享编码器和多个略有不同的解码器(即,使用不同的上采样策略)。计算多个解码器输出的统计差异来表示模型的不确定性,这表明了未标记的区域
  • 其次,我们在一个解码器的概率输出和其他解码器的软伪标签之间应用了一种新的相互一致性约束。通过这种方式,我们最小化了训练过程中多个输出的差异(即模型的不确定性),并迫使模型在这种具有挑战性的区域中生成不变的结果,旨在使模型训练正规化。
  • 我们在三个公共医疗数据集上比较了我们的MC-Net+模型与五种最先进的半监督方法的分割结果。使用两种标准半监督设置的扩展实验证明了我们的模型优于其他方法的性能,这为半监督医学图像分割开创了新的技术状态。
    •我们提出了用于半监督分割的MC-Net+模型,其关键思想是强制该模型在硬区域生成一致的低熵预测,可以有效地利用未标记的数据,提高半监督图像分割性能。
    •我们设计了一种新的互一致性方案,以利用模型训练的一致性和熵最小化约束,使模型能够学习广义特征表示。
    •大量实验表明,所提出的MC-Net+模型优于最近的五种方法,并为半监督医学图像分割提供了新的技术水平(SOTA)。

半监督学习

现有的半监督学习分为两类:
第一种方法是基于一致性的模型,输入的小扰动不应产生相应输出的明显偏差;第二类由几种熵最小化方法组成,这些方法基于聚类假设,即每个类的聚类应该是紧凑的,因此具有低熵。
深度模型的泛化能力应该与模型的不确定性高度相关。这些观察结果促使我们探索模型的不确定性,以帮助模型推广到这些硬区域,这也与Qiao和Peng(2021)的同时工作一致。
在这里插入图片描述
VNet全监督训练的,10%、20%、100%不同数据量,可见,数据量增加,V-Net模型只细化了少数硬区域的预测;(2) 随着用于训练的标记数据的增加,该模型易于输出较少的模糊结果。因此,我们假设深度学习模型的泛化能力应该与模型的不确定性高度相关。这些观察结果促使我们探索模型的不确定性,以帮助模型推广到这些硬区域,这也与Qiao和Peng(2021)的同时工作一致。通过估计的模型不确定性来更多地关注未标记的具有挑战性的区域
目前人们普遍认为,一致性约束熵最小化约束都可以提高半监督模型的特征判别能力。因此,在本文中,我们在MC-Net+模型中使用这两种技术来进行精确的半监督医学图像分割。

其它缓解过拟合的方法

  • 提高深度模型泛化能力的另一个研究方向是通过学习跨任务特征表示或进行无监督的预训练(You et al.,2021)。
  • 基于对比学习的模型(Chaitanya et al.,2020)可以进行自我监督训练,以缓解深度模型的过度拟合。
  • 例如,You等人,2022a采用全局/局部对比学习从未标记的数据中提取更广义的特征,并为半监督医学图像分割带来了显著的性能提升。
  • 此外,可以构建一些代理或辅助任务来显式正则化模型训练(Zhu et al.,2020;You等人,2020)。
  • 具体而言,形状或边界约束可用于形状细化,以促进医学图像分割(Ma等人,2020;Murugesan等人,2019)。
  • 一些辅助损失(例如,用于图像重建)也可以帮助模型提取更广义和有用的特征(Wang等人,2021;Castillo-Navarro等人,2020)。
  • 例如,You等人(2022c)将知识提取和多任务学习相结合,有效地利用了未标记的数据,实现了令人满意的半监督分割性能。

实验

数据集:LA、胰腺CT和ACDC数据集
进行了两种典型的半监督实验设置,即使用10%或20%的标记数据和其余的未标记数据进行训练
在这里插入图片描述
在这里插入图片描述
1)通过强迫三个解码器产生相似的结果(即降低模型的不确定性),获得了最显著的性能增益(平均骰子增益分别为5.28%和4.59%);
2) 使用多个略有不同的解码器,用DD标记,导致平均骰子增益分别为0.63%和0.13%。请注意,一项并行工作(Chen et al.,2021)使用了具有不同初始化参数的相同模型架构,而我们使用了不同的上采样策略来进一步增加模型内的多样性,从而获得更好的性能;
3) 鼓励MC标记的训练的相互一致性,经过锐化再计算损失总是比对CC或CC*标记的概率输出或软伪标签应用一致性约束要好

方法

在这里插入图片描述
四种不同的上采样方式,转置卷积,bilinear,nearest,bicubic
在这里插入图片描述

具体训练过程代码:

利用batch_sampler生成数据集,前面labeled_idxs是有标签的,后面unlabeled_idxs是无标签的
在这里插入图片描述
三个解码器,outputs是个列表,outputs[0]是主解码器的输出,outputs[1]、outputs[2]是另外两个解码器,最终测试的时候只用outputs[0];
前面labeled_bs个有标签的直接计算CELoss和DiceLoss,CEDice(YlabeledD1, label),CEDice(YlabeledD2, label),CEDice(YlabeledD3, label)
再对所有的outputs经过softmax和锐化处理得到y_pseudo_label,y_ori就是整体的outputs经过softmax
在这里插入图片描述
对所有的数据(有标签和无标签一起),计算三个解码器交叉的MSELoss,MSE(Yd1, Yd2锐化),MSE(Yd1, Yd3锐化),MSE(Yd2,Yd1锐化),MSE(Yd2, Yd3锐化),MSE(Yd3, Yd1锐化),MSE(Yd3, Yd2锐化)
在这里插入图片描述

损失函数

MSE(Yd1, Yd2锐化),MSE(Yd1, Yd3锐化),MSE(Yd2,Yd1锐化),MSE(Yd2, Yd3锐化),MSE(Yd3, Yd1锐化),MSE(Yd3, Yd2锐化)用于最小化不确定性
锐化公式:
在这里插入图片描述
MC损失,就是用锐化前的和锐化后的一致性损失,来自不同解码器
分割损失Lseg是有标签的部分计算的损失
在这里插入图片描述

Thinking

多个不同上采样的解码器,对所有数据进行训练,对每个解码器得到的有标签的数据进行有监督分割训练,对所有的数据进行锐化操作,进行判别器之间的交叉一致性训练。消融实验证明了用不同上采样的解码器可以提升精度,用锐化之后再计算一致性损失也能提高精度。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

排序:直接选择排序

直接选择排序: 本质: 直接选择排序的本质就是在数组中进行遍历挑选出最大的元素,讲最大的元素放到对应的位置后,再次选出次大的位置,而后又放到对应的位置..........................直到数组成为一个有序序列。 优…

编程应用实例,养生馆会员管理系统软件统计查询教程

一、前言 编程应用实例,养生馆会员管理系统软件, 导航栏菜单有 系统设置:可以设置操作员的权限以及打印机参数设置。 会员信息登记:可以直接用手机号登记电子会员卡 会员卡充值:可以直接报手机号充值,…

蓝牙挂耳式耳机什么牌子好?推荐几款自用不错的蓝牙耳机

"放弃纠结,挑选蓝牙挂耳耳机从此不再头疼!面对市面上琳琅满目的选择,到底哪个蓝牙耳机好用,成了一个谜,我这里有几款个人亲测过的蓝牙挂耳式耳机,让你在自用的道路上不再盲目,无论是办公、…

【项目日记(一)】高并发内存池项目介绍

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:项目日记-高并发内存池⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 项目日记 1. 前言2. 什么是高并发内存池…

【动态规划】02斐波那契数列模型_三步问题(easy)

题目链接:leetcode三步问题 目录 题目解析: 算法原理: 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码: 题目解析: 题目让我们求小孩到达n阶台阶的时候,可以有多少上楼梯方式; 由题可得&a…

作业12.7

1.实现一个登录窗口界面 源文件: #include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//设置界面大小,名称与图标this->setFixedSize(1280,720);this->setWindowTitle("泰坦陨落");thi…

Adobe系列软件:创意之旅的得力助手

在数字创意领域,Adobe系列软件一直以其卓越的性能和广泛的应用而备受瞩目。从图像处理、视频编辑到音频编辑,从网页开发到排版设计,这些软件都提供了强大的功能和工具,帮助用户实现他们的创意。 让我们详细介绍这些软件的作用&…

使用python操作excel文档

导入xlsxwriter包 python轻量化的语言,用来操作文档简直易如反掌,首先你需要导入的是import xlsxwriter包,他包括了操作文档所需要的全部工具方法,你只需要调用就好了。 操作excel指南 首先你需要创建一个文件xlsxwriter.Workb…

1.10 C语言之外部变量与作用域

1.10 C语言之外部变量与作用域 一、外部变量概述二、练习 一、外部变量概述 我们说,函数(不管是main函数还是其他函数)内部定义的变量,其作用范围都只在函数内部,我们把这些变量叫做自动变量或者局部变量。除了局部变…

从文字到使用,一文读懂Kafka服务使用

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

【UE5】瞬移+马赛克过渡效果

效果 步骤 1. 新建一个工程,创建一个Basic关卡 2. 添加第三人称游戏资源到内容浏览器 3. 新建一个材质,这里命名为“M_Pixel” 打开“M_Pixel”,设置材质域为“后期处理” 在材质图表中添加如下节点 此时效果如下,已经有马赛克的…

Textual Inversion

参考博客1:https://www.bilibili.com/read/cv25430752/

数据结构和算法-栈

数据结构和算法-栈 1. 栈的介绍 栈的介绍: 栈的英文为(stack)栈是一个先入后出的有序列表栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固…

2024 年前端技术发展大趋势一览

随着技术的不断演进,前端开发领域也在不断变化和发展。AI、Vue、Web3等都是当前前端开发的新趋势,它们为开发者提供了更多的机会和挑战。今天这篇文章,咱们就来聊一聊,最新前端技术趋势。 1.AI 年初的 ChatGPT 火爆全网&#xff0…

MongoDB的连接数据库,创建、删除数据库,创建、删除集合命令

本文主要介绍MongoDB的连接数据库,创建、删除数据库,创建、删除集合命令。 目录 MongoDB连接数据库连接到本地 MongoDB 实例连接到远程 MongoDB 实例 MongoDB创建和删除数据库MongoDB创建和删除集合创建集合删除集合 MongoDB连接数据库 连接 MongoDB 数…

SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置

作者:超图研究院技术支持中心-于丁1 SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置   三维场景框选是一种在三维空间中进行选择和操作的功能,它可以让使用者通过鼠标拖动来创建一个矩形…

kafka C++实现消费者

文章目录 1 Kafka 消费者的逻辑2 Kafka 的C API2.1 RdKafka::Conf2.2 RdKafka::Event2.3 RdKafka::EventCb2.4 RdKafka::TopicPartition2.5 RdKafka::RebalanceCb2.6 RdKafka::Message2.7 RdKafka::KafkaConsumer(核心) 3 Kafka 消费者客户端开发3.1 必要…

springboot监听器模式源码精讲

1.前言 很多时候我们看源码的时候看不下去,其中一个原因是系统往往使用了许多设计模式,如果你不清楚这些设计模式,这无疑增加了你阅读源码的难度。 springboot中就大量使用了设计模式,本文主要介绍其中的一种监听器模式&#xf…

谈谈 .NET8 平台中对 LiteDB 的 CRUD 操作

哪个啥!纯 C# 编写的 LiteDB 你还不会操作? LiteDB 简介LiteDB 安装1、同步版 LiteDB2、异步版 LiteDB.Async LiteDB StudioLiteDB CRUD 操作举例1、.net cli 命令创建项目2、项目添加相关 nuget 包3、改造项目结构4、改造项目代码 LiteDB vs SQLite 对比…

泳道图绘制全攻略,一图胜千言,快速上手

泳道图是一种流程图的形式,通过在不同的泳道中展示不同的参与者,帮助我们更好地理解和分析流程。它是一种非常有用的工具,可以帮助我们在团队协作、流程管理和问题解决等方面取得更好的效果。 1. 泳道图的定义 泳道图是一种以泳道为基础的流程…