Semantic Class Distribution Learning for Debiasing Semi-Supervised Medical Image Segmentation¶
会议: CVPR 2026
arXiv: 2603.05202
代码: GitHub
领域: 医学图像
关键词: 半监督分割、类别不平衡、分布学习、代理分布、语义锚点
一句话总结¶
本文提出 SCDL(Semantic Class Distribution Learning),一个即插即用模块,通过类别分布双向对齐(CDBA)学习结构化的类条件特征分布并与可学习类代理双向对齐,结合语义锚点约束(SAC)利用标注数据引导代理学习正确语义,缓解了半监督医学图像分割中的监督偏差和特征表示偏差,在尾类器官上取得了显著提升。
研究背景与动机¶
-
领域现状:半监督医学图像分割(SSMIS)利用少量标注数据+大量无标注数据进行训练,主流方法包括一致性正则化、对比学习和伪标签等。然而,医学图像数据集普遍存在严重的类别不平衡——大器官(如肝脏)占据大量像素,小器官(如食管、肾上腺)像素极少。
-
现有痛点:类别不平衡与半监督机制的结合导致两个层面的偏差。(1)监督信号偏差:大类占主导的像素级梯度、伪标签的自增强效应都使监督偏向头部类。(2)特征表示偏差:现有方法(重加权、输出校准)仅在损失层或输出层操作,缺乏对类条件特征分布的直接约束,导致头部类特征紧凑而尾部类发散,特征空间中尾类被头类"吞噬"。
-
核心矛盾:无标注数据主要用于局部一致性正则化,很少被用来显式纠正类条件特征分布的倾斜——因此无标注数据并未帮助少数类建立良好的特征表示,不平衡持续存在。
-
本文目标:如何在特征空间层面直接缓解类别不平衡导致的表示偏差,而非仅在损失或输出层面(治标不治本)。
-
切入角度:为每个语义类学习一个代理分布(高斯分布),通过双向对齐约束使嵌入靠近对应代理、代理远离非目标嵌入,同时用标注区域的语义锚点为代理提供正确的语义监督。
-
核心 idea:通过学习类条件代理分布并双向对齐,在特征空间中直接重塑类别分布结构,使少数类也能获得稳定的表示学习信号。
方法详解¶
整体框架¶
SCDL 是一个挂在现有半监督分割网络上的即插即用模块,整条链路围绕「在特征空间里给每个类建一份代理分布」展开:编码器输出 token 嵌入后,CDBA 为每个语义类维护一个可学习的高斯代理分布,并把嵌入与代理双向对齐;接着从代理分布中采样、构造结构化先验注入解码器各层,让尾类也能拿到稳定的表示;与此同时,SAC 从标注区域抽取语义锚点,为这些随机初始化的代理校正出正确的语义方向。整套机制不改基线架构,只在嵌入空间额外加一组约束。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
A["输入图像<br/>有标注 + 无标注"] --> B["编码器 → token 嵌入 Z"]
B --> CDBA
subgraph CDBA["类别分布双向对齐 CDBA"]
direction TB
C["可学习高斯类代理<br/>N(μc, σc²)"]
D["软分配 + E2P/P2E 双向对齐"]
C --> D
end
CDBA --> SAMP
subgraph SAMP["代理采样与特征增强"]
direction TB
E["分布加权先验 + 中心相似度先验<br/>+ token 采样先验"]
end
SAMP --> F["拼接投影<br/>注入解码器各层"]
F --> G["分割输出"]
B -. 标注区域均值锚点 .-> SAC["语义锚点约束 SAC"]
SAC -. detach 只校正代理方向 .-> C
关键设计¶
1. 类别分布双向对齐(CDBA):让特征空间里的少数类不再被头部类吞噬
现有方法大多只在损失层或输出层做重加权,从没碰过类条件特征分布,结果是头类特征紧凑、尾类发散,尾类在特征空间里被头类"吞噬"。CDBA 改在嵌入空间直接动手:为每个语义类 \(c\) 维护一个可学习的高斯代理分布 \(p(u|c) = \mathcal{N}(\mu_c, \text{diag}(\sigma_c^2))\),再算每个 token 嵌入对各代理的软分配 \(P(c|z_{i,l}) = \text{softmax}_c(\cos(z_{i,l}, \mu_c))\)。对齐是双向的——Embedding-to-Proxy 把嵌入往它软分配到的代理拉,Proxy-to-Embedding 则让每个代理学会区分属于和不属于该类的嵌入:
之所以能纠偏,关键全在那个软分配:每个嵌入都按权重参与所有代理的梯度更新,所以即便食管这种像素极少的尾类,它的代理也能持续收到学习信号,不会因为频率低就被淹没掉。E2P 给代理吸引力、P2E 给区分力,两股力合起来才把各类分布在特征空间里重新撑开。
2. 代理采样与特征增强:把学到的分布变成能注入解码器的语义先验
光把分布学出来还不够,得让它真正帮到分割解码。这一步从代理分布里采样,构造三种互补先验喂给解码器:分布加权先验 \(\mathbf{r}^{dist}\) 从代理分布采 \(S\) 个样本,用嵌入与采样点的平均余弦相似度作权重去加权组合代理均值,因此保留了方差、带有不确定性信息;中心相似度先验 \(\mathbf{r}^{center}\) 直接用嵌入与各代理均值的余弦相似度加权,提供互补的确定性信号;token 采样先验 \(\mathbf{z}^{sam}\) 则对每个 token 做局部扰动采样以增强鲁棒性。三者拼接后过一个轻量投影层注入解码器各阶段。分布先验管不确定性、中心先验管确定性,一软一硬正好互补,使头部和尾部类都能往解码器贡献结构化信息。
3. 语义锚点约束(SAC):给随机初始化的代理一个正确的语义起点
代理是随机初始化的,没有约束很容易学歪、学到错误的类对应关系。SAC 用标注数据来兜底:对每个类,先用 ground-truth 掩码遮掉非目标区域再过编码器,取标注区域类感知嵌入的均值当语义锚点 \(\text{anchor}_c = \frac{1}{|\mathcal{Z}_c|}\sum_{z \in \mathcal{Z}_c} z\),再用余弦相似度损失把代理均值拉向锚点:
锚点在反向传播里被 detach,所以 SAC 只更新代理、不会反过来扰动编码器。它依赖的是少量标注数据的"确定性信号"——哪怕标注极少也够用,因为只要锚点把代理方向定对,精度完全可以在后续训练里慢慢磨。这一点在消融里得到印证:CDBA 单独上时 DSC 涨了但 ASD 反而升高,正是缺了语义监督导致对齐不稳;SAC 一加进来 ASD 就骤降,说明把代理方向锚定对,对边界几何质量影响很大。
损失函数 / 训练策略¶
总损失 = 基线分割损失 + \(\mathcal{L}_{E2P}\) + \(\mathcal{L}_{P2E}\) + \(\mathcal{L}_{SAC}\)。SCDL 模块的权重衰减设为 1e-4。其他配置随基线方法不同而变化(如 GenericSSL、DHC、GA-CPS 等)。batch size 为 4,在 NVIDIA A40 GPU 上训练。
实验关键数据¶
主实验¶
Synapse(20% 标注)和 AMOS(5% 标注)数据集结果:
| 方法 | Synapse DSC↑ | Synapse ASD↓ | AMOS DSC↑ | AMOS ASD↓ |
|---|---|---|---|---|
| GenericSSL 基线 | 55.94 | 6.14 | 35.73 | 45.82 |
| SCDL-GenericSSL | 58.90 (+2.96) | 5.79 | 47.35 (+11.62) | 22.84 |
| DHC 基线 | 46.16 | 10.04 | 40.11 | 40.65 |
| SCDL-DHC | 49.17 (+3.01) | 10.59 | 49.28 (+9.17) | 17.47 |
| GA-CPS 基线 | 66.29 | 5.44 | 50.90 | 13.77 |
| SCDL-GA-CPS | 67.50 (+1.21) | 3.32 | 61.57 (+10.67) | 10.08 |
| GA-MagicNet 基线 | 66.00 | 3.42 | 59.15 | 8.66 |
| SCDL-GA-MagicNet | 66.75 (+0.75) | 3.65 | 62.16 (+3.01) | 5.65 |
尾类器官的显著提升(Synapse, SCDL-DHC 相比 DHC):
| 器官 | DHC | SCDL-DHC | 提升 |
|---|---|---|---|
| 门静脉和脾静脉 (PSV) | 30.7 | 42.6 | +11.9 |
| 食管 (Es) | 14.7 | 23.5 | +8.8 |
| 右肾上腺 (RAG) | 27.9 | 36.7 | +8.8 |
AMOS 上更极端的恢复(SCDL-DHC):右肾上腺 0%→33.9%,左肾上腺 0%→30.3%。
消融实验¶
在 Synapse 上(GA-CPS 基线):
| 配置 | DSC↑ | ASD↓ | 说明 |
|---|---|---|---|
| 基线 | 66.29 | 5.44 | GA-CPS |
| + CDBA | 66.77 (+0.48) | 6.24 | DSC 提升但 ASD 上升 |
| + CDBA + SAC | 67.50 (+1.21) | 3.32 | SAC 加入后 ASD 骤降 2.92 |
关键发现¶
- CDBA 单独使用能提升 DSC 但可能损害 ASD(边界质量),SAC 的加入至关重要——它不仅进一步提升 DSC,还大幅改善边界精度
- SCDL 的增益主要集中在尾类/小器官上:在 AMOS 5% 标注下,DHC 的右/左肾上腺 Dice 从 0% 恢复到 33.9%/30.3%,说明 SCDL 有效防止了极度少数类被完全忽视
- 在强基线(如 GA-MagicNet DSC=66.00)上提升幅度适中(+0.75%),但在弱基线上提升显著(GenericSSL AMOS +11.62%),说明 SCDL 更善于纠正严重的类别偏差
- ASD 的改善在加入 SAC 后尤为显著(从 6.24 降至 3.32),表明语义锚点约束有助于改善边界几何质量
亮点与洞察¶
- 即插即用的设计:SCDL 可以无缝集成到任何现有 SSMIS 方法中,无需修改基线架构,这极大提升了其实用价值
- 软分配机制消除类频率偏差:与硬分配不同,每个嵌入按软权重影响所有代理的学习,少数类代理即使在极少样本下也能持续接收梯度信号
- 三种先验的互补设计很有想法:分布加权先验考虑方差(不确定性),中心先验考虑均值(确定性),token 采样先验增加鲁棒性
- 将无标注数据用于分布级学习而非仅用于一致性正则化,是一个重要的范式转变——无标注数据参与了全局类分布的建模
局限与展望¶
- 代理使用各向同性高斯假设(对角协方差矩阵),可能不够灵活表示复杂的类边界形状
- SAC 的语义锚点取均值简单但粗糙,对于多模态分布(如一个器官在不同切面的外观差异大)可能不足
- 消融中 CDBA 单独使用时 ASD 反而上升,说明仅有分布对齐而缺乏语义监督可能引入不稳定性
- 仅在 CT 多器官分割上验证,缺少 MRI、病理、视网膜等其他模态的实验
相关工作与启发¶
- vs DHC: DHC 使用动态混合课程学习处理半监督不平衡,SCDL-DHC 在其基础上 DSC 提升 3%+,且对尾类改善更大
- vs GA-MagicNet/GA-CPS: GA 系列使用几何感知增强处理不平衡,SCDL 提供了正交的分布级解决方案,二者可以叠加
- vs CLD: CLD 使用对比分布学习但主要在输出层面操作,SCDL 在嵌入空间直接约束类条件分布
评分¶
- 新颖性: ⭐⭐⭐⭐ 类代理分布的双向对齐+语义锚点约束是新的组合
- 实验充分度: ⭐⭐⭐⭐ 两个数据集四种基线方法的系统验证,但缺少非 CT 模态
- 写作质量: ⭐⭐⭐⭐ 问题定义清晰,三层偏差分析(监督/表示/分布)有深度
- 价值: ⭐⭐⭐⭐ 即插即用模块对半监督医学分割社区有直接价值