Pseudo Label-Guided Data Fusion and OutputConsistency for Semi-Supervised Medical Image 阅读

论文提出了一种名为PLGDF的半监督医学图像分割框架,该框架结合平均教师网络,利用伪标签、数据融合、一致性评估和锐化操作提高分割性能。通过在多个数据集上的实验,PLGDF在少标记数据情况下展现出优于现有方法的性能。

论文:[2311.10349] Pseudo Label-Guided Data Fusion and Output Consistency for Semi-Supervised Medical Image Segmentation (longhoe.net)

code:ortonwang/PLGDF (github.com)

摘要:基于卷积神经网络的监督学习算法已经成为医学图像分割任务的基准,但其有效性严重依赖于大量的标记数据。然而,标注医学图像数据集是一个费力且耗时的过程。受使用标记和未标记数据进行训练的半监督算法的启发,我们提出了PLGDF框架,该框架建立在平均教师网络的基础上,用于分割注释较少的医学图像。我们提出了一种新的伪标签利用方案,将标记和未标记的数据结合起来,有效地增强了数据集。此外,我们在分割网络的解码器模块中加强了不同尺度之间的一致性,并提出了一个适合于评估一致性的损失函数。此外,我们还对预测结果进行了锐化操作,进一步提高了分割的准确性。在三个公开可用的数据集上进行的大量实验表明,PLGDF框架可以通过合并未标记数据大大提高性能。与此同时,与六种最先进的半监督学习方法相比,我们的框架产生了卓越的性能。本研究的代码可在https://github.com/ortonwang/PLGDF上获得。

医学图像分割,半监督学习,伪标签

I. INTRODUCTION 介绍

分割是医学图像处理与分析领域的一项基础任务[1]。临床医学中准确的图像分割为临床医生提供有价值的辅助信息,促进快速、准确、高效的诊断决策[2]。然而,手动标注感兴趣的区域非常耗时,并且依赖于医生的临床专业知识,导致大量的工作量和潜在的错误[3]。随着深度学习的快速发展,卷积神经网络(CNN)及其变体在计算机视觉任务中展示了强大的图像处理能力。全卷积网络[4]和U-Net[5]的引入极大地推动了自动图像分割[6]的发展。在此基础上,出现了许多进一步提高分割算法性能的研究[7][8][9]。例如,Ning等人提出了SMU-Net[10],该方法通过考虑背景中存在的纹理信息,利用显著背景表示来辅助前景分割。Pang等人引入了一种名为SpineParseNet的新型两阶段框架,用于在体积磁共振图像中自动解析脊柱[11]。此外,Chen等人提出了TransUNet[12],将CNN与Transformer[13]相结合用于医学图像分割,表现出色。然而,这些方法的成功在很大程度上依赖于大量的像素级标注数据,这只有通过熟练的医疗专业人员进行精确的标注才能实现[14]。这个过程既耗时又昂贵,限制了监督学习方法的适用性。为了解决这个问题,研究人员提出了基于半监督学习的医学图像分割方法[15]。与监督学习相比,半监督学习可以充分利用未标记数据中包含的信息,从而提高分割模型的泛化能力和准确性[16]。半监督学习的一种常见方法是使用伪标签策略。该方法通常使用标记数据来训练初始模型,然后将其应用于未标记数据以生成伪标签。这些伪标签作为未标记数据的近似标签,从而扩展了标记数据集。随后,使用扩展的数据集对模型进行再训练以提高其鲁棒性[17][18]Qiu等人引入了一种联邦半监督学习[19]方法来从分布式医学图像域学习,并为未标记的客户端引入了一种联邦伪标记策略,以减轻未标记数据中注释的不足。Bai等人提出了一种基于伪标记的迭代学习方法用于心脏MR图像分割[20]。该方法使用条件随机场对伪标签进行细化,并利用更新后的伪标签进行模型更新。半监督学习的另一种常见方法是基于一致性的方法[21]。该方法旨在结合未标记数据之间的一致性来增强模型的鲁棒性。在图像分割任务中,一致性可分为数据级一致性和模型级一致性。数据级一致性要求模型对同一图像的不同扰动产生一致的预测。例如,当对输入图像引入轻微的扰动或应用不同的数据增强技术时,模型应该产生相同的分割结果。另一方面,模型级一致性要求对相同输入的不同模型进行一致的分割结果。深度对抗训练[22][23]也是一种常用的方法,它通过使用判别器来对齐标记和未标记数据的分布,从而利用未标记数据。Wu等人介绍了MC-Net[24],它包括一个共享编码器和多个略有不同的解码器。该模型结合了解码器之间的统计差异来表示模型的不确定性并强制一致性约束。此外,均值-教师模型[15]及其扩展[25][26][27]在半监督医学图像分割任务中得到了广泛关注。在平均教师模型中,在训练过程中,学生网络的参数以教师网络为指导。模型训练包括最小化师生模型之间的误差。此外,其他算法在该领域也表现出了出色的性能。Luo等人提出了不确定校正金字塔一致性URPC[28],这是一种新的不确定校正金字塔一致性正则化框架。该框架提供了一种简单有效的方法来强制不同尺度的未标记数据的输出一致性。虽然框架简单有效,但其性能仍有进一步优化的空间,这表明这些方法的性能有进一步改进的潜力。因此,本研究也试图探索一些综合策略来提高半监督学习算法的性能。我们提出了一个新的框架,称为伪标签引导数据融合(PLGDF)。本文的主要贡献可以总结如下:•我们介绍了PLGDF框架,这是一个建立在平均教师网络上的新架构,包含了一个创新的伪标签利用方案。该框架在网络的解码器模块中集成了跨各种尺度的一致性评估。

•混合模块结合了标记和未标记的数据,增强了数据集的多样性。此外,集成锐化操作进一步提高了识别精度。

•在三个公开可用的

仅给定的三条引用内容未涉及“基于原型的伪标签细化方法用于半监督高光谱图像分类”以及 “Prototype-based pseudo-label refinement for semi-supervised hyperspectral image classification” 的相关信息,无法依据这些引用准确回答。不过,一般而言,在半监督高光谱图像分类里,基于原型的伪标签细化方法会先利用少量有标签样本构建原型,这些原型代表不同的类别特征。接着,用这些原型为无标签样本生成伪标签。之后,通过一系列细化操作来提升伪标签的质量,例如考虑局部上下文信息、特征相似性等。 伪代码示例(仅为概念示意): ```python # 假设 hyperspectral_data 是高光谱图像数据, labeled_indices 是有标签样本的索引, labels 是对应标签 import numpy as np def prototype_based_pseudo_label_refinement(hyperspectral_data, labeled_indices, labels): # 构建原型 prototypes = [] unique_labels = np.unique(labels) for label in unique_labels: label_indices = np.where(labels == label)[0] prototype = np.mean(hyperspectral_data[labeled_indices[label_indices]], axis=0) prototypes.append(prototype) # 为无标签样本生成伪标签 unlabeled_indices = np.setdiff1d(np.arange(len(hyperspectral_data)), labeled_indices) pseudo_labels = [] for idx in unlabeled_indices: distances = [np.linalg.norm(hyperspectral_data[idx] - proto) for proto in prototypes] pseudo_label = np.argmin(distances) pseudo_labels.append(pseudo_label) # 伪标签细化(简单示例:基于局部上下文) refined_pseudo_labels = [] for i, idx in enumerate(unlabeled_indices): # 这里简单假设周围 3 个样本作为局部上下文 local_indices = get_local_indices(idx, hyperspectral_data.shape) local_pseudo_labels = [pseudo_labels[np.where(unlabeled_indices == local_idx)[0][0]] for local_idx in local_indices if local_idx in unlabeled_indices] if len(local_pseudo_labels) > 0: most_common_label = np.bincount(local_pseudo_labels).argmax() refined_pseudo_labels.append(most_common_label) else: refined_pseudo_labels.append(pseudo_labels[i]) return refined_pseudo_labels def get_local_indices(idx, shape): # 获取周围 3 个样本的索引 rows, cols = shape[:2] row, col = np.unravel_index(idx, (rows, cols)) local_indices = [] if row > 0: local_indices.append(np.ravel_multi_index((row - 1, col), (rows, cols))) if row < rows - 1: local_indices.append(np.ravel_multi_index((row + 1, col), (rows, cols))) if col > 0: local_indices.append(np.ravel_multi_index((row, col - 1), (rows, cols))) if col < cols - 1: local_indices.append(np.ravel_multi_index((row, col + 1), (rows, cols))) return local_indices ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值