用 STAPLE 做掩码共识
数据集该记录哪一份掩码,又是谁画得更好?STAPLE 估计一条潜在边界,并给出每位标注者的敏感度与特异度;当认真的标注者人数处于劣势时,它优于多数表决。
一致性回答的是"他们是否一致",它并不回答"数据集该记录哪一份掩码,又是谁画得更好"。 那是另一个问题,需要另一套模型。
为什么不用 MACE
MACE 把每位标注者建模为在一个有限的共享标签集上"知道答案或在猜"。而掩码存在于一个无界的空间中,没有可供估计的类别型变量。硬把掩码塞进这套模型,就意味着要凭空造出一个标签集,而造出来的东西会左右最终结论。
STAPLE 做了什么
STAPLE(Warfield、Zou 与 Wells,2004)是医学影像领域处理这一问题的成熟工具。它在逐像素标签上运行期望最大化,并为每位标注者估计:
| 含义 | 数值偏低意味着 | |
|---|---|---|
| 敏感度 | 在真正的前景中,你包含了多少? | 分割不足——把边界画进去了 |
| 特异度 | 在真正的背景中,你正确排除了多少? | 分割过度——把周围也慷慨地圈了进来 |
两者都会报告,因为它们的纠正方式恰好相反。单一的"准确率"数字会把这两种失效评成同一分,也就无法告诉标注者该改什么。
加权共识,而非多数表决
认真标注者的分歧对共识的影响,大于粗心者的分歧,而算法会从数据本身推断出谁是谁。
在两位认真标注者以二比三落于下风、其余为噪声标注者的场景下实测:
| 方法 | 相对真值的 Dice |
|---|---|
| 多数表决 | 0.846 |
| STAPLE | 1.000 |
表决会让那三位噪声标注者说了算。STAPLE 则注意到,认真的那一对彼此一致,而噪声的三位彼此并不一致。
值得知道的注意事项
- 某位标注者若对同一类别标了三个实例,其贡献为它们的并集。STAPLE 是逐像素比较的,要把各实例区分开,就得先在标注者之间做实例匹配——那属于检测问题,已在几何形状上的一致性中单独回答。
- 携带掩码的标注者不足两位的条目会被计数并跳过,而不是被无声丢弃。否则覆盖率会被高估。
成本控制
成对比较的复杂度对标注者人数以及每个条目的实例数都是平方级的。一个五位标注者、每张图 50 个实例的项目,每张图要做 25,000 次掩码解码,这足以让一次管理页加载卡死。
系统设有硬性预算 max_pairs,默认 200,000。触及该上限时:
- 该条目会被整体跳过,绝不做一半,因为处理到一半的条目会让均值偏向恰好被算到的那几对标注者;
- 报告会置
truncated: true,并说明实际纳入了多少条目。
一个被截断却看起来完整的一致性数字,比没有数字更糟,因为它会被人引用。