【论文阅读】(CVPR2023)用于半监督医学图像分割的双向复制粘贴

目录

  • 前言
  • 方法
    • BCP
      • Mean-teacher and Traning Strategy
      • Pre-Training via Copy-Paste
      • Bidirectional Copy-Paste Images
      • Bidirectional Copy-Paste Supervisory Signals
    • Loss Function
    • Testing Phase
  • 结论

在这里插入图片描述
先看这个图,感觉比较清晰。它整个的思路就是把有标签的图片和无标签的图片拼在一起,送入学生网络,输出 Q o u t Q^{out} Qout Q i n Q^{in} Qin。把无标签的图片送入教师网络得到输出 Y ~ p u \tilde{Y}^{u}_{p} Y~pu Y ~ q u \tilde{Y}^{u}_{q} Y~qu Y ~ p u \tilde{Y}^{u}_{p} Y~pu Y ~ q u \tilde{Y}^{u}_{q} Y~qu与GT与输入一样拼接得到 Y o u t Y^{out} Yout Y i n Y^{in} Yin作为监督信号,监督模型训练。student网络的参数经过EMA滑动移动平均得到的参数来更新teacher模型。
问题:

  1. 怎么选择拼接的区域的?
  2. label图像是否得到了充分利用?因为只使用了label image的一部分。
  3. 这样做的原理是什么?是假设labeled的image和unlabeled的image在同一个分布下吗?
  4. 损失函数有没有改进?
  5. 之前没有学习过teacher-student model,参数是怎么更新的用的什么函数?
  6. 这样做与原来半监督的方法相比,优势是什么?

前言

问题:半监督医学图像分割,有标记数据分布与无标记数据分布之间存在经验失配的问题。如果将有标签数据和无标签数据分开处理或以不一致的方式处理,从有标签数据中学习到的只是可能被大量丢弃。
方法:BCP在一个简单的Mean Teacher架构下,鼓励未标记数据从有标记的数据中向内和向外两个方向学习综合的共同语义。
对标记和未标记的数据一直学习过程可以在很大程度上减少经验分布差距。
具体:将标记图像(前景)中的随机裁剪复制粘贴到未标记图像(背景)中,未标记图像(前景)随机裁剪粘贴到标记图像(背景)中。
效果:在有5 %标注数据的ACDC数据集上, Dice性能提升超过21 %。足够好。

方法

在这里插入图片描述
这个图是给我们展示半监督倾斜设置下的失配问题。我们假设训练数据是从(a)这个分布中获得的,但是有标签的和没有标签的样本的分布分别为(b)和©。很难有很少的标记数据来构建整个数据集的精确分布。(d)通过使用BCP,标记和未标记的经验分布是对齐的,但是其他方法例如SSNet或交叉未标记的数据复制粘贴无法解决经验分布不匹配的问题。
在这里插入图片描述
可以看出BCP在标记数据和未标记数据性能差距小。

在这里插入图片描述
具体的数学表达式大家看原文吧。
这里简单介绍一下思想和方法。

BCP

Mean-teacher and Traning Strategy

首先使用标记的数据来预训练模型,然后使用预训练模型作为teacher network,给伪标记的图像生成伪标签。每次迭代中首先通过随机梯度下降来优化学生网络参数Θs。最后,我们使用学生参数 Θs 的 EMA 更新教师网络参数 Θt。最后测试使用的Θs。

Pre-Training via Copy-Paste

对标记数据进行了复制粘贴增强以训练监督模型,监督模型将在自我训练期间为未标记的数据生成伪标签。效果:增强了分割性能。

Bidirectional Copy-Paste Images

长话短说,是由一个0中心标签的M矩阵,这个M矩阵中间部分是0,四周是1(指示体素来自前景图片还是背景图片)。
x i n = x j l ⊙ M + x p u ⊙ ( 1 − M ) x^{in}=x^{l}_j\odot M+x^{u}_p\odot (1-M) xin=xjlM+xpu(1M)
M是0中心,所以点乘M是得到的边界,点乘(1-M)得到的是中心。和图上的情况一样 x j l x^{l}_j xjl中间部分复制粘贴到 x p u x^{u}_p xpu图像上。

Bidirectional Copy-Paste Supervisory Signals

监督信号也通过BCP生成。伪标签是通过在 P u P_u Pu上使用公共阈值0.5来确定的,对于二进制分割任务,或者在 Pu 上对多类分割任务采用 argmax 操作来确定。最终的伪标签 ̃ Yu 是通过选择 ̂ Yu 的最大连接分量获得的,这将有效地去除异常体素。
将伪标签和真实标签和student network输入的图片一样进行BCP。

Loss Function

标记图像的GT比未标记图像的伪标签准确,所以有一个系数 α \alpha α来控制标记图像的体素和未标记图像的体素对loss的贡献大小。
损失函数计算也用到 M M M。损失函数是Dice loss和Cross-entropy loss的线性组合。
预测是用student network预测的。
计算完loss,经过梯度反向传播和优化器更新,更新student network的参数,之后通过EMA更新teacher network。

Testing Phase

Qtest = F(Xtest; ̂ Θs)
其中̂ Θs是训练良好的学生网络参数。最终的标签图可以通过Qtest轻松确定,进行后处理即可。

后面讲了一些参数的选择,一些实验结果。
在这里插入图片描述

结论

总结:我们使用BCP,这减少了标记和未标记数据之间的分布差距。获得了很好的性能。
局限:我们没有专门设计一个模块来增强局部属性学习。虽然性能优于所有竞争对手,对比度极低的目标部件仍然难以很好地细分。

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

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

相关文章

揭秘亚马逊、ebay自养号测评底层环境防关联技术

今天珑哥讲的是纯人工的自养号方式,已经在做过的人应该都懂,实现自养号所使用的IP和浏览器都有哪些 ?都会有哪些问题。 一:市面上的IP有哪些?会遇到的问题? 922、luminati、googelfi、TM流量卡、Rola&…

大模型部署手记(3)通义千问+Windows GPU

1.简介 组织机构:阿里 代码仓:GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat & pretrained large language model proposed by Alibaba Cloud. 模型:Qwen/Qwen-7B-Chat-Int4 下载:http://huggingface…

WVP-28181协议视频平台搭建教程

28181协议视频平台搭建教程 安装mysql安装redis安装ZLMediaKit安装28181协议视频平台安装依赖下载源码编译静态页面打包项目, 生成可执行jar修改配置文件启动WVP 项目地址: https://github.com/648540858/wvp-GB28181-pro 说明: wvp-GB28181-pro 依赖redis和mysql中…

时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解

时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解 目录 时序分解 | Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现CEEMDAN完全自适应噪声集合经验模态分解时间…

TCP端口崩溃,msg:socket(): Too many open files

一、现象 linux系统中运行了一个TCP服务器,该服务器监听的TCP端口为10000。但是长时间运行时发现该端口会崩溃,TCP客户端连接该端口会失败: 可以看到进行三次握手时,TCP客户端向该TCP服务器的10000端口发送了SYN报文,…

Kafka:介绍和内部工作原理

展示Kafka工作方式的简单架构。 什么是Kafka?为什么我们要使用它?它是消息队列吗? 它是一个分布式流处理平台或分布式提交日志。 Kafka通常用于实时流数据管道,即在系统之间传输数据,构建不断流动的数据转换系统和构…

机器学习笔记(一)

1.线性回归模型 2. 损失函数 3.梯度下降算法 多元特征的线性回归 当有多个影响因素的时候,公式可以改写为: 当有多个影响因素的时候为了方便计算,可以使用 Numpy下面的点积方法, np.dot(w,x) 最后再加个b 就省略了很多书写步骤,这叫做矢量化 多元回归的梯度下降 左边是一…

postgresql-聚合函数增强功能

postgresql-聚合函数增强功能 按季度统计入职员工 按季度统计入职员工 select -- extract截取,按季度进行统计入职员工总数 extract(year from hire_date), count(*) filter(where extract(quarter from hire_date) 1) "第一季度", count(*) filter(wh…

Solidity 合约漏洞,价值 38BNB 漏洞分析

Solidity 合约漏洞,价值 38BNB 漏洞分析 1. 漏洞简介 https://twitter.com/NumenAlert/status/1626447469361102850 https://twitter.com/bbbb/status/1626392605264351235 2. 相关地址或交易 攻击交易: https://bscscan.com/tx/0x146586f05a451313…

Redis高可用之哨兵模式、集群

文章目录 一、Redis哨兵模式1.1 简介1.2 哨兵模式的作用1.3 哨兵结构1.4 故障转移机制(重要)1.5 主节点选举机制 二、部署Redis哨兵模式Step1 修改 Redis 哨兵模式的配置文件(所有节点操作)Step2 实现基于VIP(虚拟IP&a…

Vue中如何进行拖拽与排序功能实现

在Vue中实现拖拽与排序功能 在Web应用程序中,实现拖拽和排序功能是非常常见的需求,特别是在管理界面、任务列表和图形用户界面等方面。Vue.js作为一个流行的JavaScript框架,提供了许多工具和库来简化拖拽和排序功能的实现。本文将介绍如何使…

想要精通算法和SQL的成长之路 - 恢复二叉搜索树和有序链表转换二叉搜索树

想要精通算法和SQL的成长之路 - 恢复二叉搜索树和有序链表转换二叉搜索树 前言一. 恢复二叉搜索树二. 有序链表转换二叉搜索树 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 恢复二叉搜索树 原题链接 首先,一个正常地二叉搜索树在中序遍历下,遍历…