【医学图像处理】用于肝血管分割的平均教师辅助置信学习

2023-11-10

标题:Noisy Labels are Treasure: Mean-Teacher-Assisted Confident Learning for Hepatic Vessel Segmentation

作者:Donghuan Lu,腾讯天衍实验室;Xiu Li,清华大学深圳国际研究生院

来源:MICCAI 2021

代码:https://github.com/lemoshu/MTCL

主题:CT;图像分割;置信学习;迁移学习

1. 引言

❓ 论文想要解决的问题是什么?

由于肝血管的低对比度和复杂的形态学特征,从 CT 图像中手动分割肝血管比分割其他结构需要更多的专业知识和工作量,从而导致缺少高质量的肝血管标注数据,大多数数据都有相当多的未标记或标记错误的像素,也称为“噪声”。如果没有足够多的高质量标注数据,基于数据驱动的学习方法往往会遇到训练不足的问题。然而,输入低质量标注的数据可能会混淆网络,抵消高质量标注数据的有效性,导致性能下降。因此,如何稳健地利用大量噪声标签数据中的附加信息仍然是一个挑战。

❓ 解决上述问题的现有方法有哪些?

为了充分利用低质量标注数据,一些减轻噪声标签带来的负面影响的方法如下:

 

2. 方法

2.1 数据集

本研究使用两个公共数据集 3DIRCAb 和 MSD8,具有明显不同的注释质量,分别在本文中简称为 Set-HQSet-LQ

  1. 3DIRCADb:包含 20 张肝脏 CT 扫描图像,并提供高质量的肝脏和血管标注。
  2. MSD8:包含 443 张肝脏 CT 扫描图像,但标注质量较低,大约 65.5% 的血管像素没有标记,大约 8.5% 的像素被错误地标记为血管。

image.png

在实验中,3DIRCADb 中的图像被随机分成两组:10 张用于训练,其余 10 张用于测试;MSD8 中的所有样本都只用于训练,因为它们的低质量噪声标签不适合用于评估。

2.2 数据处理

  1. 裁剪图像:将所有图像裁剪到肝脏区域,图像大小为 320 × 320。
  2. 归一化:将每个像素的亮度截断到 [−100, 250] HU 的范围,然后进行最小最大归一化。
  3. 叠加概率图:我们观察到许多图像具有不同的强度范围和固有的图像噪声,这可能导致模型对高强度区域过于敏感。因此,引入基于 Sato Tubeness 滤波器的血管概率图来提供辅助信息。通过计算 Hessian 矩阵的特征向量,可以获得图像与 tube 的相似性,从而增强潜在的血管区域。将血管概率图作为辅助图像,直接与经过处理的 CT 图像进行拼接。通过联合考虑图像和概率图中的信息,网络可以感知更稳健的血管信号以获得更好的分割性能。

2.3 MTCL 网络结构

本文提出的 Mean-Teacher-assisted Confident Learning (MTCL) 网络结构如下:

image.png

2.3.1 Mean Teacher Model

将训练步骤 t t t 中学生模型的权重表示为 θ t \theta_{t} θt指数移动平均(EMA)用于更新教师模型的权重 θ t ′ \theta_{t}^{\prime} θt θ t ′ = α θ t − 1 ′ + ( 1 − α ) θ t \theta_{t}^{\prime}=\alpha \theta_{t-1}^{\prime}+(1-\alpha) \theta_{t} θt=αθt1+(1α)θt,其中 α \alpha α 是 EMA 衰减率并设置为 0.99。通过最小化 Set-HQ 上的监督损失 L s \mathcal{L}_{s} Ls 以及两个数据集上学生模型和教师模型预测之间的无监督一致性损失 L c \mathcal{L}_{c} Lc 来优化学生模型。

2.3.2 Self-denoising Process

上述 Mean Teacher 模型只能利用图像信息,而噪声标签的潜在有用信息仍未被利用。为了在不受标签噪声影响的情况下进一步利用低质量标注,本文提出了一种渐进式自去噪过程。

置信学习

置信学习(Confident Learning, CL)的概念来自论文 Confident learning: Estimating uncertainty in dataset labels,用于找出的标注错误的样本。置信学习的主要过程如下图所示:

image.png

第一步:估计噪声标签 y ~ \tilde{y} y~ 和真实标签 y ∗ y^{*} y 的联合分布

给定具有 n n n 个样本和 m m m 个类别的数据集 X : = ( x , y ~ ) n \mathbf{X}:=(\mathbf{x}, \tilde{y})^{n} X:=(x,y~)n,其中 y ~ \tilde{y} y~ 表示噪声标签(观察到的标签)。样本外预测概率 P ^ \hat{\boldsymbol{P}} P^ 可以通过教师模型来获得。如果具有标签 y ~ = i \tilde{y}=i y~=i 的样本 x \mathbf{x} x 具有足够大的 p ^ j ( x ) ≥ t j \hat{p}_{j}(\mathbf{x}) \geq t_{j} p^j(x)tj,则可以怀疑 x \mathbf{x} x 的真实标签 y ∗ y^{*} y j j j 而不是 i i i。这里,阈值 t j t_{j} tj 是通过计算标签为 y ~ = j \tilde{y}=j y~=j 的样本的平均预测概率 p ^ j ( x ) \hat{p}_{j}(\mathbf{x}) p^j(x) 得到的:

t j : = 1 ∣ X y ~ = j ∣ ∑ x ∈ X y ~ = j p ^ j ( x ) t_{j}:=\frac{1}{\left|\mathbf{X}_{\tilde{y}=j}\right|} \sum_{\mathbf{x} \in \mathbf{X}_{\tilde{y}=j}} \hat{p}_{j}(\mathbf{x}) tj:=Xy~=j1xXy~=jp^j(x)

在预测真实标签的基础上,进一步引入混淆矩阵 C y ~ , y ∗ \boldsymbol{C}_{\tilde{y}, y^{*}} Cy~,y,其中 C y ~ , y ∗ [ i ] [ j ] \mathbf{C}_{\tilde{y}, y^{*}}[i][j] Cy~,y[i][j] 是标签为 i i i、预测真实标签为 j j j x \mathbf{x} x 的个数:

C y ~ , y ∗ [ i ] [ j ] : = ∣ X ^ y ~ = i , y ∗ = j ∣ \mathbf{C}_{\tilde{y}, y^{*}}[i][j]:=\left|\hat{\mathbf{X}}_{\tilde{y}=i, y^{*}=j}\right| Cy~,y[i][j]:=X^y~=i,y=j,其中 X ^ y ~ = i , y ∗ = j : = { x ∈ X y ~ = i : p ^ j ( x ) ≥ t j , j = arg ⁡ max ⁡ l ∈ M : p ^ l ( x ) ≥ t l p ^ l ( x ) } \hat{\mathbf{X}}_{\tilde{y}=i, y^{*}=j}:=\left\{\mathbf{x} \in \mathbf{X}_{\tilde{y}=i}: \hat{p}_{j}(\mathbf{x}) \geq t_{j}, j=\underset{l \in M: \hat{p}_{l}(\mathbf{x}) \geq t_{l}}{\arg \max } \hat{p}_{l}(\mathbf{x})\right\} X^y~=i,y=j:={xXy~=i:p^j(x)tj,j=lM:p^l(x)tlargmaxp^l(x)}

利用构造的混淆矩阵 C y ~ , y ∗ \boldsymbol{C}_{\tilde{y}, y^{*}} Cy~,y,我们可以进一步得到 m × m m \times m m×m 联合分布矩阵 Q y ~ , y ∗ \mathbf{Q}_{\tilde{y}, y^{*}} Qy~,y

Q y ~ , y ∗ [ i ] [ j ] = C y ~ , y ∗ [ i ] [ j ] ∑ j ∈ M C y ~ , y ∗ [ i ] [ j ] ⋅ ∣ X y ~ = i ∣ ∑ i ∈ M , j ∈ M ( C y ~ , y ∗ [ i ] [ j ] ∑ j ∈ M C y ~ , y ∗ [ i ] [ j ] ⋅ ∣ X y ~ = i ∣ ) \mathbf{Q}_{\tilde{y}, y^{*}}[i][j]=\frac{\frac{\mathbf{C}_{\tilde{y}, y^{*}}[i][j]}{\sum_{j \in M} \mathbf{C}_{\tilde{y}, y^{*}}[i][j]} \cdot\left|\mathbf{X}_{\tilde{y}=i}\right|}{\sum_{i \in M, j \in M}\left(\frac{\mathbf{C}_{\tilde{y}, y^{*}}[i][j]}{\sum_{j \in M} \mathbf{C}_{\tilde{y}, y^{*}}[i][j]} \cdot\left|\mathbf{X}_{\tilde{y}=i}\right|\right)} Qy~,y[i][j]=iM,jM(jMCy~,y[i][j]Cy~,y[i][j]Xy~=i)jMCy~,y[i][j]Cy~,y[i][j]Xy~=i

第二步:找出错误标记的样本

本文利用论文 Confident learning: Estimating uncertainty in dataset labels 中介绍的 Prune by Class (PBC) 方法识别标签噪声。具体地说,对于每个类别 i i i,PBC 选择 n ⋅ ∑ j ∈ 1 , 2 , … m : j ≠ i Q y ~ , y ∗ [ i ] [ j ] n \cdot \sum_{j \in 1,2, \ldots m: j \neq i} \mathbf{Q}_{\tilde{y}, y^{*}}[i][j] nj1,2,m:j=iQy~,y[i][j] 个具有最低置信度 p ^ ( y ~ = i ; x ∈ X i ) \hat{p}\left(\tilde{y}=i ; \boldsymbol{x} \in \boldsymbol{X}_{i}\right) p^(y~=i;xXi) 的样本作为错误标记的样本,从而得到二值噪声识别图(binary noise identification map) X n \mathbf{X}_{n} Xn,其中“1”表示像素具有错误的标记。


关于置信学习更详细的知识可以参考以下资料:

  1. Northcutt, Curtis, Lu Jiang, and Isaac Chuang. “Confident learning: Estimating uncertainty in dataset labels.” Journal of Artificial Intelligence Research 70 (2021): 1373-1411.
  2. 置信学习-标注数据存在错误 - 知乎 (zhihu.com)

标签平滑

置信学习在识别标签噪声方面仍然存在不确定性。因此,本研究中没有直接进行硬校正,而是引入了平滑自去噪模块**(Smoothly Self-Denoising Module, SSDM)**来对给定的噪声分割掩模 y ~ \tilde{y} y~ 进行软校正。基于二值噪声识别图 X n \mathbf{X}_{n} Xn,平滑自去噪操作可以表示为:

y ˙ ( x ) = y ~ ( x ) + I ( x ∈ X n ) ⋅ ( − 1 ) y ~ ⋅ τ \dot{y}(\mathbf{x})=\tilde{y}(\mathbf{x})+\mathbb{I}\left(\mathbf{x} \in \mathbf{X}_{n}\right) \cdot(-1)^{\tilde{y}} \cdot \tau y˙(x)=y~(x)+I(xXn)(1)y~τ

其中 I ( ⋅ ) \mathbb{I}(\cdot) I() 为指示函数, τ ∈ [ 0 , 1 ] \tau \in[0,1] τ[0,1] 为平滑因子,根据经验设置为 0.8

2.4 损失函数

总损失是 Set-HQ 上的监督损失 L s \mathcal{L}_{s} Ls、两个数据集上的扰动一致性损失 L c \mathcal{L}_{c} Lc 和 Set-LQ 上的辅助自去噪置信学习损失 L c l \mathcal{L}_{c l} Lcl 的加权组合,计算公式为:

L = L s + λ c L c + λ c l L c l \mathcal{L}=\mathcal{L}_{s}+\lambda_{c} \mathcal{L}_{c}+\lambda_{c l} \mathcal{L}_{c l} L=Ls+λcLc+λclLcl

其中 λ c \lambda_{c} λc λ c l \lambda_{c l} λcl 分别是 L c \mathcal{L}_{c} Lc L c l \mathcal{L}_{c l} Lcl 的权重。

在不同的步骤中使用不同的 λ c \lambda_{c} λc,根据论文 Semi-supervised Brain Lesion Segmentation with an Adapted Mean Teacher Model λ c = exp ⁡ ( − 5 ( 1 − S L ) 2 ) (  when  S ≤ L ) \lambda_{c}=\exp \left(-5\left(1-\frac{S}{L}\right)^{2}\right)(\text { when } S \leq L) λc=exp(5(1LS)2)( when SL),其中 S S S 是当前的训练步数, L L L 称为斜升长度,根据经验设置 L = 400 L =400 L=400。当 S > L S > L S>L 时, λ c \lambda_{c} λc 设置为 1。同时,教师模型需要“预热”以提供可靠的样本外预测概率。因此, λ c l \lambda_{c l} λcl 在前 4000 次迭代中设置为 0,在其余训练迭代中调整为 0.5。

监督损失 L s \mathcal{L}_{s} Ls 是交叉熵损失、Dice 损失、焦点损失(Focal Loss)和边界损失(Boundary Loss)的组合,权重分别为 0.5、0.5、1 和 0.5。一致性损失 L c \mathcal{L}_{c} Lc 由体素均方误差 (MSE) 计算得出,而置信学习损失 L c l \mathcal{L}_{c l} Lcl 由等权重的交叉熵损失和焦点损失组成。
 

3. 实验过程与结果

3.1 实施

  • 硬件: NVIDIA Titan X GPU
  • 框架:PyTorch
  • 数据增强:随机翻转和旋转
  • 优化器:SGD
  • 批量大小:4
  • 评估指标:Dice 得分、精度(PRE)、平均表面距离(Average Surface Distance, ASD)和 Hausdorff 距离(HD)

3.2 对比研究和消融研究

对 Set-HQ 的测试集进行了比较研究,实验结果如下表和下图所示。“i”、“p”和“c”代表不同的输入类型:预处理后的图像、血管概率图以及两者拼接后的图像。可以发现,本文所提出的方法(表示为 MTCL©)在所有四个指标和视觉结果上都具有最佳性能。

U-Net(c, Mix) 表示在训练中使用了 Set-LQ。正如预测的那样,实验结果表明 Set-LQ 的噪声标签会导致不可避免的性能下降。

为了验证每个组件的有效性,我们使用以下变体进行了消融研究:(1)MT©:典型的 mean-teacher 模型(2)MT©+NL w/o CL:在 MT©的基础上,额外使用用 Set-LQ 的噪声标签(noisy labels, NL),没有 CL;(3)MTCL© w/o SSDM:没有 SSDM 的 MTCL。如表中结果所示,在 Set-LQ 的图像信息的辅助下,加入扰动一致性损失可以提高分割性能,同时缓解噪声标签导致的性能下降。通过 CL 的自去噪过程可以实现卓越的性能,并通过 SSDM 进一步改进。

Quantitative results of different methods.png

Visualization of the fused segmentation results of different methods.png

3.3 验证标签自去噪的有效性

来自 MSD8 的两个示例切片的可视化如下图所示,以进一步说明标签自去噪过程。结果表明,本文提出的网络可以识别出一些明显的噪声,提高噪声标记数据的质量。

Illustration of the self-denoising performance.png

 

4. 重要参考文献

5. 评审意见

官方评审意见

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【医学图像处理】用于肝血管分割的平均教师辅助置信学习 的相关文章

  • Linux 基础笔记 权限与文件管理

    Linux 基础笔记 权限与文件管理 字符界面中退出登录可用哪种方法 exit 命令或 Ctrl D 组合键 pwd命令的功能是什么 显示当前目录的绝对路径 当前目录为 home 使用以下哪个命令后可进入 home Studd test目录
  • React中常见的TypeScript定义使用

    前言 在我学习typescript时 想在react中使用typescript写代码 从头开始的时候是懵逼的 因为官方文档并没有使用typescript的教程 多是自己在网上查 自己看定义摸索 所以今天把我用过的 总结归纳一下 希望能帮助到
  • MySQL查询合并结果去重_MySQL数据表合并去重的简单实现方法

    场景 爬取的数据生成数据表 结构与另一个主表相同 需要进行合并 去重 解决 直接举例 首先创建两个表pep pep2 其中pep是主表 CREATE TABLE IF NOT EXISTS pep pep2 id INT UNSIGNED
  • 「从零开始造 RPC 轮子系列」01 我为什么要去造一个轮子?

    目录 好日子 为什么你需要学习造轮子 投资自己 不要成为调包侠 通过造轮子你能学到什么 下一步计划 好日子 宣布一件事情 好日子 12月有个好日子 20211202 从左往右读 接着从右往左读你会发现居然是对称的 这是属于程序员的 浪漫 身

随机推荐

  • android系统网络管理,详解安全管家Android平台上网管理功能

    Android系统在这几年忽然兴起 并成为如今最受欢迎的智能手机操作系统 却始终没有能够很好地对自身的上网管理功能做出很好的优化 小编也和很多人一样 是Symbian转战Android的 而作为一名伪资深智能手机用户 当感受到Android
  • C语言的union联合体,可实现不同类型数据的转换

    结构体和共用体的区别在于 结构体的各个成员会占用不同的内存 互相之间没有影响 而共用体的所有成员占用同一段内存 修改一个成员会影响其余所有成员 结构体占用的内存大于等于所有成员占用的内存的总和 成员之间可能会存在缝隙 共用体占用的内存等于最
  • python pd pandas.cut 出现 NAN的问题

    原因 pandas cut 设置lebel的时候是 0 n 只包含n不包含0 解决方法 重新设置一个lebel 使其包含特殊的格式 产生问题的例子 源代码 d2 pd cut DaysList bins 0 1700 1800 1900 2
  • 最新AI系统ChatGPT源码+支持OpenAI全模型+国内AI模型+AI绘画

    一 SparkAI智能创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统 本期针对源码系统整体测试下来非常完美 可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统 那么如何搭建部
  • Linux新手入门必须学会的相关知识

    Linux新手入门必须学会的相关知识 Linux基本知识 1 Linux基本介绍 Linux是什么 Linux的诞生过程 Linux内核与Linux内核发行版 常见的Linux发行版 2 Linux基础安全介绍 SSH登录方式介绍 SSH基
  • 嵌入式系统开发入门(一)

    1 开发工具概览 1 1硬件 1 1 1开发平台 基础系统 树莓派raspberry 选用4B版本 单片机系统 arduino 进阶系统 JETSON nano 1 1 2 配件 摄像头 开发板专用摄像头 树莓派 JETSON nano
  • python代码~满屏小练习

    完整代码如下 import tkinter as tk import random import threading import time def boom window tk Tk width window winfo screenwi
  • debian 11搭建ftp

    配置本地用户 创建用户 adduser user1 编辑配置文件 vim etc vsftpd conf grep v listen yes local enable YES 本地用户登陆限制 write enable YES 本地用户写权
  • QT教程:基本控件及相关类的介绍和使用

    一 QString类 Qt提供了自己的字符串处理类 不用担心内存分配以及关于 0结尾的这些注意事项 QSting会自动对占用的内存进行扩充 链接非常的迅速 实例 QString str hello str world 拼接字符串操作 对象函
  • Kafka工具类

    package com cnic utils import org apache flink api common serialization SimpleStringSchema import org apache flink api c
  • Visual Studio Coda配置GLSL开发环境

    前言 最近一狠心 决定去逼自己学习着色器 最近先开个头 记录一下 也方便以后有人来参考 为了方便调试 我为我的VSCode安装了如下插件 1 Shader languages support for VS Code 这个没什么好说的 安装好
  • ConnectionResetError: [Errno 104] Connection reset by peer

    Traceback most recent call last File root autodl tmp siamFC tools train py line 13 in
  • 新手注意事项-visual studio 来实现别踩白块儿

    自己之前为了熟悉easyx练习过一个简单的项目 别踩白块儿 链接在这里 别踩白块儿 当时比较稚嫩 很多东西都不会 可以说是只知道最基本的语法 头文件都不知道 一个一个查资料弄懂的 还是比较艰难哈哈 今天想着重新打开一下那个项目 结果运行错误
  • 计算机组成原理中主机概念,计算机组成原理概念术语

    计算机组成原理概念术语 第一章 1 主机 主机中包含了除输入输出设备以外的所有电路部件 是一个能够独立工作的系统 2 CPU 中央处理器 是计算机的核心部件 同运算器和控制器构成 3 运算器 计算机中完成运算功能的部件 由ALU和寄存器构成
  • 单个数码管循环显示1-9

    一 实验要求 使用51单片机控制单个数码管 使其循环显示0 9 二 实验原理 数码管 Segment Displays 由多个发光二极管封装在一起组成 8 字型的器件 引线已在内部连接完成 只需引出它们的各个笔划 公共电极 数码管实际上是由
  • 【Grafana】CentOS下安装MySQL+Grafana添加MySQL数据源

    Grafana CentOS下安装MySQL Grafana添加MySQL数据源 本文主要介绍在CentOS环境下安装MySQL数据库 然后在Grafana中添加MySQL数据源 根据传输数据在Grafana中绘制dashboard并显示
  • vue+条形码

    前言 在vue中生成条形码的插件 vue barcode 官方文档 vue barcode是JsBarcode的一个简单包装 所以在使用时的配置属性需要在JsBarcode中查看JsBarcode官方文档 展示效果 使用步骤 步骤一 安装
  • 05-思维导图Xmind快速入门

    文章目录 5 1 认识思维导图 5 2 Xmind的主要结构及主题元素 5 2 1 Xmind的多种结构 5 2 2 主题分类 5 2 3 Xmind的主题元素 章节总结 5 1 认识思维导图 什么是思维导图 思维导图是一种将思维进行可视化
  • Blender2.92下载安装教程

    Blender2 92下载安装教程 1 下载Blender 2 安装Blender 1 下载Blender 直达链接 Blender官网链接 手动复制 https www blender org 两种方式可自选 进入官网点击这里 可根据自己
  • 【医学图像处理】用于肝血管分割的平均教师辅助置信学习

    标题 Noisy Labels are Treasure Mean Teacher Assisted Confident Learning for Hepatic Vessel Segmentation 作者 Donghuan Lu 腾讯天