【论文学习】MICCAI 2024 || CausalCLIPSeg:通过因果干预释放 CLIP 在医学指代表达分割中的潜力

CausalCLIPSeg

CausalCLIPSeg: Unlocking CLIP's Potential in Referring Medical Image Segmentation with Causal Intervention

MICCAI 2024

CausalCLIPSeg:通过因果干预释放 CLIP 在医学指代表达分割中的潜力

这篇论文通过 CLIP 理解医学文本,通过因果干预减少错误的背景依赖,从而实现"文本指定哪里,就分割哪里"的医学图像分割。

输入包括:

  • 一张胸部 X 光图像;
  • 一句文本描述,例如"左肺和右肺下部各有一个感染区域"。

输出是该描述所指的病灶 mask

该方法希望利用报告中的病灶数量、左右位置、上下位置等信息辅助分割。

难点是医学图像的病灶边界模糊,且背景、设备、采集协议等因素可能与标签偶然相关,导致模型学到"伪相关"

X 光图像 ──> CLIP 视觉编码器 ──> 多尺度视觉特征

文本描述 ──> CLIP 文本编码器 ──> 全局文本特征

跨模态动态解码 / 文本-像素匹配

因果特征分支 ──> 分割 mask

混杂特征分支 ──> 对抗约束

模型由三部分组成:

  1. CLIP 图像与文本编码器;
  2. 文本---像素对齐解码器;
  3. 因果干预模块。

创新点 1:用 CLIP 做医学文本引导的像素级分割

创新点 2:因果干预模块

创新点 3:对抗式 min-max 训练

摘要

医学指代表达分割旨在根据文本描述,对所指示的病灶进行精确分割。由于视觉数据与文本数据的属性不同,实现两者之间的有效对齐具有挑战性。

受大规模预训练视觉---语言模型的启发,我们提出了 CausalCLIPSeg:一个利用 CLIP 的端到端医学指代表达分割框架。尽管 CLIP 并未在医学数据上训练,我们通过定制的跨模态解码方法,将 CLIP 丰富的语义空间迁移到医学领域,实现文本与图像像素之间的对齐。

此外,为减轻混杂偏差------这种偏差可能使模型学习到虚假的相关性,而非有意义的因果关系------CausalCLIPSeg 引入了因果干预模块。该模块能够自行标注混杂因素,并从输入中挖掘因果特征,用于分割判断。

我们还设计了一种对抗式 min-max 博弈:在优化因果特征的同时,抑制混杂特征。大量实验表明,所提出的方法取得了当前最优性能。代码已公开于:https://github.com/WUTCM-Lab/CausalCLIPSeg

理解

  1. CLIP 原本学的不是医学知识:CLIP 在大量"自然图片 + 文字说明"上训练,例如"狗在草地上""一辆红色汽车"。它学会了图像和文字在语义上的对应关系,但没有专门见过 X 光、肺部感染或医学报告。但 CLIP 已经具备"图文对应"的通用能力:例如它知道文字中的不同概念应对应图像中的不同视觉模式。论文认为这种通用的"图像---文本语义匹配能力"可以迁移到医学领域
  2. 跨模态解码器把"整句文本"变成"像素级查询条件":论文额外设计了一个解码器,过程大致是:

  • CLIP 文本编码器

    全局文本特征

    生成一组与该文本相关的动态卷积核

    在图像特征图的每个位置扫描

    得到每个像素与该文本的匹配程度

    输出病灶 mask
  1. 例如输入:"右下肺有一个感染区域"。模型不是只输出"这是一张有感染的胸片",而是把这段话转成一个"查询器",在胸片的各个位置寻找最符合"感染区域 + 右下肺"语义的位置;匹配高的位置最终形成分割 mask。利用 CLIP 原有的图文匹配表示能力作为初始化,再通过医学图像分割训练和专门的文本---像素解码器,让它适应医学语义与像素级定位任务。

引言

医学图像分割是许多临床应用的重要前提,例如计算机辅助诊断、手术规划和图像引导干预。然而,医学图像本身具有复杂性和多样性,这常常给自动分割方法带来显著挑战。尤其是,病灶可能造成严重的形态扭曲和灰度/强度变化,从而干扰分割模型。引入先验知识,例如病灶数量和位置,可能会有所帮助。

医生撰写的医学报告能够提供关于医学图像的描述性细节和上下文信息,帮助分割模型更好地勾画病灶。此外,获取这些文本几乎不需要额外成本,因为它们通常已经存储在医疗机构的电子病历系统中。与需要额外人工劳动的手工标注不同,我们可以利用已有医学报告来提升分割性能,而无需额外采集数据或进行新的标注工作。

作为一项开创性工作,文献 3 在 QaTa-COV19 数据集上补充了文本描述,并设计了一个指代表达分割网络。然而,当前针对这种同时利用图像和文本的多模态分割任务的研究仍然较少。

在多模态深度学习领域,CLIP 4 是一种基于对比学习的大规模预训练视觉---语言模型,近年来受到越来越多关注。与 SAM 5 等单模态基础模型相比,CLIP 更适合处理多模态任务。它从 4 亿个图像---文本对中学习图像级视觉概念,因此能够理解图像与文本之间的语义关系。CLIP 已在多种单模态和多模态下游任务中表现出良好效果 4,6,7,8,9,10,11,这表明它有潜力应用于具有挑战性的医学指代表达分割任务。

然而,CLIP 所包含的丰富知识来源于图像级训练目标。因此,直接将 CLIP 应用于像素级稠密预测任务时,通常无法获得最优性能。本文将 CLIP 用于根据指代表达进行医学图像分割,而这一方向此前尚未得到充分研究。我们的核心观点是:尽管 CLIP 没有在医学数据上训练,但可以通过将其强大的语义结构迁移并约束到医学领域,继承其潜在语义空间中的许多优势。

另一方面,医学图像中的病灶通常边界模糊 12,13,14,而一些无病灶区域可能与病灶具有相似外观,从而使分割模型产生混淆。这种问题源于混杂因素:在传统的似然估计学习中,混杂因素会诱导模型学习到虚假的相关性。此外,CLIP 的使用在一定程度上会加剧这一问题,因为 CLIP 的训练目标与医学指代表达分割任务并不完全一致。

为了减轻这种混杂偏差,需要引入因果干预 15。例如,若能够收集某一目标在各种不同背景和环境下的图像,模型就更可能关注目标本身,而不是上下文。但在医学场景中,穷尽所有可能病灶背景的图像几乎不可行。

为此,我们提出了一个因果干预模块。该模块以无监督方式自行标注混杂因素,并从输入中挖掘因果特征,从而提高分割性能。我们假设输入中同时包含因果因素和非因果因素,且只有前者真正决定分割结果。该模块的目标是抑制混杂特征,同时保留因果特征。此外,我们设计了一种对抗式 min-max 博弈:优化因果特征,同时惩罚混杂特征。该方法无需穷尽采集各种上下文环境的数据,也能帮助模型学习与病灶真正相关的表征。

本文的技术贡献主要有三点:

  • 我们将 CLIP 引入医学指代表达分割任务,并设计了名为 CausalCLIPSeg 的框架。
  • 我们提出因果干预模块,以消除混杂偏差。
  • 我们的方法在 QaTa-COV19 数据集上取得了当前最优性能。
因果背景

在本文中,"混杂偏差"是指背景因素和其他外部变量对模型病灶分割过程造成的干扰。

"虚假相关性"与混杂偏差密切相关。例如,某种设备痕迹经常与病灶同时出现,模型可能误以为设备痕迹本身就是病灶依据;这种表面上有关联、实际上没有因果关系的现象,就是虚假相关。

"有意义的因果关系"指理想情况:模型仅依赖病灶区域本身的视觉特征来生成分割 mask,而不受到混杂因素影响。

"挖掘因果特征"是指提取符合上述有意义因果关系的视觉特征。

"自行标注混杂因素"则指模型能够自适应地识别并提取可能属于背景干扰或无关信息的特征。

理解

模型容易把"真正的病灶特征"和"碰巧经常与病灶一起出现的背景特征"混在一起。论文希望把这两类信息分开,让模型主要根据真正的病灶来分割。

假设训练数据中,很多重症患者的片子都有某种设备、图像质量差或特定拍摄风格,同时这些患者也更容易出现大范围肺部感染。模型可能学到:看到设备痕迹 / 某种图像风格,推测有感染或大面积感染

但这并不是正确的医学判断。真正应该依据的是肺部病灶的纹理、形状和位置。

但收集所有背景很难,理想情况下,训练集中应包含:有病灶 + 各种设备/背景/医院;无病灶 + 各种设备/背景/医院

这样模型会发现:设备、医院、图像风格都不稳定,只有病灶本身才是稳定依据。

但医学图像中影响因素太多:不同医院、不同机器、不同扫描协议、不同患者体位、不同病情程度等。要让每一种病灶都出现在每一种背景组合中,几乎不可能。

因果干预模块怎么做:论文不提供"哪些是混杂因素"的人工标签,而是让网络自己学习一个 mask,把特征图拆成两部分:

原始图像特征 F

学习一个注意力 mask M

┌──────┴──────┐

▼ ▼

M × F (1 - M) × F

因果特征 混杂特征

  1. (M x F):网络认为更应该用于分割的特征;
  2. ((1-M) x F):网络认为可能是背景干扰的特征。

对抗式 min-max 博弈:

因果特征分支 混杂特征分支

│ │

▼ ▼

要分割得好 要分割得不好

训练目标是:

  • 让"因果特征分支"尽量能准确预测病灶 mask;
  • 同时让"混杂特征分支"尽量无法预测正确 mask。

因此,若某些信息对病灶分割很有用,模型更倾向把它放到因果分支;如果某些信息只是背景干扰,就应被放进混杂分支,且这个分支不能凭它得到正确分割。

所谓 min-max,就是两个目标互相对抗:

  • 最小化因果分支:让因果分支分得更准;
  • 最大化混杂分支:让混杂分支分得更差。

方法

图 1 展示了所提出的 CausalCLIPSeg 模型。该模型由三个关键部分组成:

  1. 由 CLIP 驱动的文本编码器和视觉编码器,用于提取多模态特征表示;
  2. 用于实现文本---像素对齐的解码器;
  3. 用于消除分割目标与虚假相关之间混杂偏差的因果干预模块。
图一

图 1. 所提出的 CausalCLIPSeg 模型概述

模型有两个输入:

  • 左上:胸部 X 光图像;
  • 中下:文本描述,例如:"双侧肺部感染,共两个感染区域,均位于左肺和右肺下部。"

(右侧的 GT 是真实标注的病灶 mask,用于训练监督,不是模型输入)

图像分支提取视觉特征:image → vision encoder → 图像特征

图像进入视觉编码器,即 CLIP 的视觉编码部分/ResNet 主干,得到多尺度视觉特征。

视觉特征随后一分为二:

  • 一条直接经过跳连,保留原始特征;
  • 一条进入 A.M.,即 Adversarial Masking(对抗式掩码)模块。

两条路径在圆圈处融合后,进入后续的因果模块。

masker:将特征拆成"因果"和"混杂"两部分

它对输入视觉特征依次进行:

coordinate convolution

convolution

sigmoid

生成 mask M

得到一个 attention mask,再计算它的互补 mask

然后将特征图按元素相乘,拆成两类:

原始特征 F

├── M × F → causal features(红色)

└── (1 - M) × F → confounding features(蓝色)

图中红色格子表示被分到因果分支的特征;蓝色格子表示被分到混杂分支的特征。

文本分支提取文本语义:text → text encoder → 文本特征

输入文本经过 CLIP 文本编码器,变成一个全局文本特征向量。

这个向量随后被送到两个带星号的小模块中。星号表示:文本特征被转换为动态卷积核/查询条件,用来指导图像特征的像素级匹配。

两个分割分支:红色上支:因果特征分支;蓝色下支:混杂特征分支

causal features + text feature

因果解码器 Dc

预测 mask

交叉熵损失 Lc

红色分支利用模型认为"真正和病灶有关"的特征进行分割。

它的目标是尽可能接近右侧真实标注 GT,因此红色损失是正常最小化的

confounding features + text feature

混杂解码器 Ds

预测 mask

对抗损失 -λLs

蓝色分支使用模型认为的背景、伪影或成像风格等混杂特征。

但训练目标不是让它分得好,而是让它难以分对。这表示通过对抗训练,模型会被迫减少混杂特征中与正确分割相关的信息。

CLIP 驱动的文本与视觉编码器
文本编码器

我们采用与文献 4 相同的改进版 Transformer 架构作为文本编码器。

对于输入的一段文本描述,首先使用与 GPT-2 16 相同的字节对编码(BPE)分词器,将其转换为一个文本 token 序列。该分词器的词表大小为 49,152。文本序列的开头和结尾分别加入 SOS(句子开始)和 EOS(句子结束)标记。

随后,Transformer 对该序列进行编码,并将最高层中 EOS token 对应的激活表示转换为全局文本特征:

其中,T 表示文本特征的维度。

视觉编码器

对于视觉编码器,本文使用预训练的 ResNet-101。

给定输入图像:

从 ResNet 的第 2 到第 4 个阶段提取多尺度视觉特征,记为 F_i。其中,H 和 W 分别表示图像的高和宽。

用于文本---像素对齐的跨模态解码

解码器 D 的目标是将文本特征 tau 与输入图像中的像素进行对齐,从而生成分割 mask。

具体而言,首先通过一个可学习的线性投影,将文本特征 tau 映射到 D 维嵌入空间:

其中:

  • C:视觉特征图的通道数;
  • K:动态卷积核的大小;
  • 最后的 1:对应动态卷积的偏置项。

得到的文本嵌入进一步拆分为:

以及:

其中,W{tau} 可以理解为由文本动态生成的卷积核,b{tau} 是偏置。

另一方面,视觉特征图 F 先通过插值和卷积上采样到较高分辨率。然后,将文本特征与视觉特征进行交叉相关:

其中:

  • up(F):上采样后的视觉特征;
  • *:卷积/交叉相关操作;
  • b{tau}{1}:将标量偏置 b{tau} 加到每一个空间位置;
  • S:最终的响应图。

这个公式本质上表示:将文本描述转换为一个动态卷积核,并让它在整张图像的特征图上逐位置"搜索"。理想情况下,响应图 S 中高响应的位置,就应对应文本所描述的病灶区域。

因果干预模块

为了让模型学习到更鲁棒的语义特征,作者引入了一个直接作用于 CLIP 编码器特征表示的因果干预模块。

因果视角

作者使用结构因果模型描述医学指代表达分割中的四个关键变量:

  • T:文本描述;
  • I:医学图像;
  • Y:真实分割 mask;
  • C:混杂因素。

图 2 中,每一条直接连线表示变量之间的因果关系:

图二

图 2. 医学影像分割的结构因果模型

这表示期望的因果关系:图像中的病灶信息和文本描述共同决定最终的分割 mask。

如果模型仅根据病灶信息识别这种关系 I, T -> Y,则认为模型是无偏的。

但实际中还存在如下路径:

其中,C 表示成像条件等混杂因素,例如:

  • 成像伪影;
  • 图像采集协议;
  • 扫描仪型号;
  • 影响图像外观的其他因素。

这些因素会影响图像中的像素强度和外观。由于模型不可避免地会利用成像线索进行分割,因此也会存在 C -> Y 的联系。

由此,混杂因素 C 会通过这条"后门路径":

同时干扰图像、文本与分割标签之间的关系。例如,背景像素本身并不会导致分割 mask 的变化,但通过混杂因素,背景和 mask 之间可能会形成虚假的统计相关性,进而导致病灶预测错误。

对抗式掩码机制

为了让特征在因果上更充分地支持分割,作者设计了对抗式掩码机制。该机制通过一个 masker,迭代地识别包含较多因果信息的特征,并将其与混杂特征分离。

具体来说,masker 会生成一对互补的注意力 mask:

它们控制特征图中每一个位置:

  • Mi:关注因果效应相关特征;
  • barMi:关注混杂效应相关特征。

这些 mask 在训练和推理阶段都会生成,并且是由模型学习得到、随输入变化的。

将第 i 个尺度的视觉特征记为 F_i,则因果特征 Fi^c 和混杂特征 Fi^s 定义为:

其中:

  • F 由坐标卷积(coordinate convolution)和普通卷积串联构成;
  • odot 表示逐元素相乘;
  • Fi^c:因果特征;
  • Fi^s:混杂特征。

通过这种方式,模型尝试将输入特征拆分为"更应该用于病灶分割的部分"和"可能包含背景干扰的部分"。

医学图像中的病灶可能跨越不同尺度,因此模型还需要整合多尺度信息。作者首先采用 CARAFE 算子 17,将不同阶段的因果特征和混杂特征调整到统一尺度;然后分别拼接;最后通过 1 x 1 卷积得到融合后的因果特征 F^c 和混杂特征 F^s。

对抗训练

作者使用两个结构相同、但参数独立的解码器:

  • Dc:利用因果特征 F^c 预测分割 mask;
  • D_s:利用混杂特征 F^s 预测分割 mask。

总损失定义为:

其中:

这里:

  • l{ce}:交叉熵损失;
  • Y:输入图像的真实分割 mask;
  • lambda:平衡两项损失的系数。

训练时,模型希望:

  • 最小化 Lc:让因果特征分支能够正确完成分割;
  • 最大化 Ls:让混杂特征分支尽量无法完成正确分割。

也就是说,模型通过对抗训练,鼓励有效的病灶分割信息集中到因果特征中,同时减少混杂特征中与病灶 mask 有关的信息。

实验

数据集与评估指标

我们在 QaTa-COV19 数据集上开展实验。该数据集包含 9,258 张 COVID-19 胸部 X 光图像,并带有 COVID-19 病灶区域的人工标注。该数据集由卡塔尔大学和坦佩雷大学的研究人员构建。

一项较新的工作 3 为 QaTa-COV19 数据集补充了文本标注,文本内容包括:

  • 双肺是否均受到感染;
  • 感染区域的数量;
  • 感染区域的大致位置。

例如:

"双侧肺部感染,共四个感染区域,位于左肺上部和下部,以及右肺上部、中部和下部。"

文献 3 将数据集划分为:

|-----|
| 划分 |
| 训练集 |
| 验证集 |
| 测试集 |

我们采用两种常用评估指标来验证所提方法及对比方法的有效性:

  • Dice 系数(Dice);
  • 平均交并比(mean Intersection-over-Union,mIoU)。
实现细节

我们使用 PyTorch 实现该方法,并在单张 NVIDIA RTX 4090 GPU 上运行实验。

具体设置如下:

  • 输入图像被调整为 (224 \times 224) 像素;
  • 最大输入句子长度设置为 20 个 token;
  • 编码器使用 CLIP 预训练权重初始化;
  • 视觉编码器采用 ResNet-101 主干网络;
  • 最多训练 2,000 个 epoch;
  • 若验证集性能在连续 100 个 epoch 内没有提升,则采用早停策略终止训练;
  • 优化器使用 Adam 20
  • 学习率调度器使用余弦退火策略;
  • 初始学习率为 (3 \times 10^{-5});
  • 对抗训练系数 (\lambda) 设置为 0.05。

此外,作者进行了多次重复实验,观察到实验结果波动很小。例如,该模型 Dice 的标准差不超过 0.002。

与当前最优方法的比较

表 1 展示了 QaTa-COV19 数据集上的实验结果,并将所提出的 CausalCLIPSeg 与其他竞争方法进行比较。

表一

表1. 在QaTa-COV19数据集上与最先进方法的定量比较

与此前性能最优的 LViT 3 相比,CausalCLIPSeg:

  • Dice 提升了 1.55%
  • mIoU 提升了 1.79%

这说明,该模型能够有效地将 CLIP 的图像级知识迁移到像素级分割任务中,并具有更好的跨模态匹配能力。

此外,与仅使用图像的分割方法 21,22,23,24,25,26,27 相比,该框架取得了约 5%--7% 的显著性能提升,说明引入文本信息确实有助于医学图像分割。

图 3 对 CausalCLIPSeg、U-Net 21 和 LViT 3 进行了定性比较。结果表明,CausalCLIPSeg 的错误标注区域更少,病灶边界更精确。这说明该方法学习到了更鲁棒的语义特征,并减少了混杂偏差的影响。

图三

图 3. QaTa-COV19 数据集上的定性分析结果

消融实验

作者在表 2 中进行了消融实验,用于评估不同组件的重要性。

表二

表2. 我们提出的CausalCLIPSeg方法在QaTa-COV19数据集上的消融研究。我们分析了该方法各组成部分的影响。

需要注意的是,对抗式掩码是因果干预模块不可缺少的组成部分,而对抗损失则专门用于指导该模块学习。因此,作者对整个因果干预模块进行消融,而没有将对抗掩码和对抗损失完全分开单独测试。

具体而言,作者分别移除了:

  • CLIP 的预训练权重;
  • 所提出的因果干预模块;

以构建基础模型并进行比较。

结果显示,同时重新加入 CLIP 预训练和因果干预模块后:

  • Dice 提升了 2.71%
  • mIoU 提升了 3.66%

单独去除 CLIP 预训练权重会使 Dice 下降 1.60%

单独去除因果干预模块会使 Dice 下降 1.50%

这些消融结果表明,CLIP 编码器和因果干预建模对于实现当前最优的医学指代表达分割性能都具有重要作用。

此外,为了更深入理解各个组件的优势,作者在图 4 中展示了可视化结果。尤其可以看到:当病灶区域和非病灶区域在外观上较为相似时,因果干预模块能够缓解较差的分割结果。

图四

图 4. CausalCLIPSeg 的定性消融研究

结论

在本研究中,我们提出了 CausalCLIPSeg:一个端到端的医学指代表达分割框架。该框架利用 CLIP 和专门设计的跨模态解码方法,实现图像像素与文本线索之间的对齐。

为减轻混杂偏差,我们引入了因果干预模块。该模块能够自行标注混杂因素,并挖掘因果特征,从而实现更鲁棒的分割。进一步地,我们设计了对抗式 min-max 博弈,在优化因果特征的同时,对混杂特征进行惩罚。

通过大量实验,CausalCLIPSeg 在医学指代表达分割任务上取得了当前最优性能,显示出将大规模预训练视觉---语言模型的能力迁移到专业医学应用中的巨大潜力。

未来的工作包括:将该方法扩展到其他多模态医学数据分析任务,并研究进一步提升模型抵抗虚假相关能力的方法。

致谢

本研究部分受到以下项目支持:

  • 国家重点研发计划(2022ZD0160604);
  • 国家自然科学基金(62101393 / 62176194);
  • YZBSTCACC 高性能计算平台;
  • MindSpore 深度学习框架(https://www.mindspore.cn)。

利益披露

作者声明:不存在与本文内容相关的利益冲突。

相关推荐
物联网软硬件开发-轨物科技17 小时前
【轨物方案】从五维感知到一键顺控:箱变智能化不是一个传感器能解决的事
人工智能·科技·其他·机器人·开源
Swift社区18 小时前
Python 开发环境怎么选?PyCharm、VS Code、Trae 谁更适合 AI 开发?
人工智能·python·pycharm
SLD_Allen18 小时前
Kubernetes + Ray + Volcano:云原生AI训练调度体系
人工智能·云原生·kubernetes
七牛开发者18 小时前
Codex 实践系列 Vol.04:用 Goal 和 Plan 管住一个长任务
java·数据库·人工智能·github·copilot
qq_2676128918 小时前
从工具整合到AI协作:Gitee DevOps平台如何重塑企业研发全流程效能
人工智能·gitee·devops
2401_8595062418 小时前
大漆(天然生漆)产品的品控体系与检测标准——一份行业技术观察
人工智能
Eloudy18 小时前
一键构建 pytorch cpp lib 前端和 wheel
人工智能·pytorch·gpu
秋天的一阵风18 小时前
🔥 Network 里那坨 "data:" 我真看吐了,自制开源 Chrome 插件,AI 流式调试直接开挂
前端·人工智能·后端
Wang's Blog18 小时前
AI Agent白手起家53: 动态提示词与情感分析模块实战
人工智能
benbenAItalk18 小时前
能看图、听声、读视频:多模态大模型到底“多“在哪?
人工智能·语音识别