结肠镜息肉检测:用精选片段训练的模型,在完整检查上崩塌

德国班贝格大学 xAILab 的六位研究者,用围绕息肉裁剪出来的结肠镜数据集重新训练了四个实时目标检测器——Faster R-CNN、YOLOv8、YOLOv11 和 RT-DETR,然后把它们放到 60 段完整、未经剪辑的检查录像上测试。落差非常明显:YOLOv11 在 SUN 基准上的 mAP50 为 0.724,到了完整检查上只剩 0.164;在假报警率对齐的条件下,其逐帧敏感度降到 0.240。真正的发现是这种不对称:反过来,用完整检查训练的模型迁移回 SUN 后仍保持 0.705 至 0.717 的 mAP50——问题不在于真实数据太难,而在于精挑细选的基准根本没有为部署做任何准备。

关于背景

结肠镜检查是预防结直肠癌的金标准:在同一次操作中找到癌前病变——息肉——并将其切除。问题由来已久且有据可查:作者引用的系列研究显示,漏诊率高达 27%。一个息肉只出现几秒钟,藏在皱襞后面、镜面高光里或运动模糊中,内镜医师就错过了它。

于是有了 CADe(computer-aided detection,计算机辅助检测)系统:一个目标检测器实时运行在视频流上,在屏幕上把可疑息肉框出来,充当一道安全网。已有若干商用产品——美敦力的 GI Genius、奥林巴斯的 EndoAID——随机对照试验也显示腺瘤检出率有所提升。然而大规模落地依然缓慢,已发表性能与检查室里的实际表现之间的差距,一直没有得到很好的解释。

这篇论文的假设指向数据,而不是架构。公开的结肠镜数据集几乎都是以病灶为中心的:视频片段或图像都是围绕息肉裁剪出来的。但真实的一次检查要持续二三十分钟,其中绝大部分时间根本没有息肉——健康黏膜、器械、冲洗液、进镜与退镜过程中的空镜段。用精选片段训练和评估检测器,等于从来没让它见过它在职业生涯 95% 的时间里必须说"不"的那些画面。

关于方法

评估协议。作者提出 TRUE-Colon,一套建立在 REAL-Colon(Biffi 等,Scientific Data,2024)之上的标准化评估协议:60 段来自四家中心的完整、未剪辑结肠镜录像,严格按患者层面划分,每家中心按 10/2/3 分配视频——即 40 段训练、8 段验证、12 段测试。训练集共 1 706 635 帧,其中 86.5% 不含任何标注息肉;测试集 572 085 帧,其中 85.7% 为阴性帧。

与之对照的是两个精选基准。SUN:视频片段,训练用 70 段阳性、7 段阴性,测试集阴性帧占 76%——在片段层面被精选过。PICCOLO(巴斯克生物样本库):静态图像,训练集 2 203 张,其中阴性图像仅 20 张;测试集 333 张图像,其中阴性图像只有一张。在这样的集合上测量假报警率在数学上毫无意义——而这恰恰是相当一部分文献的标准格式。

被测量的四项特性。这是本文的方法学贡献。除了定位精度mAP50,即预测框与参考框重叠不低于 50% 时的平均精度),TRUE-Colon 还量化了三件精选基准无法测量的事:假报警负担(不含息肉却仍触发报警的帧所占比例)、检测延迟(从病灶出现到首次有效检测之间的帧数),以及时间可靠性(若某病灶在其可见帧中至少一半被检出,则称为持续检出——闪一下就消失的方框,其临床价值和稳定保持的方框完全不同)。

模型。四个实时检测器,均采用各自框架的默认配方,输入 640 × 640,训练 100 轮并使用早停,三个随机种子:一边是 Faster R-CNN 和 RT-DETR(后者是 transformer,即基于注意力机制的架构,对数据量更为敏感),另一边是 YOLOv8-M 和 YOLOv11-M(卷积架构,速度更快)。

对齐的工作点。这是全文最重要的一步。在同一个置信度阈值(通常取 0.2)下比较检测器是有误导性的,因为每种架构对分数的标定方式不同:在同一名义阈值下,有的模型触发频率会是另一个的两倍。因此作者为每个模型各自选取一个阈值(记作 tau-star),使其逐帧假报警率落在 4% 至 5% 的区间内。这样比较的就是相同报警负担下的敏感度,而这是唯一在临床上可读的比较方式。

关于结果

在精选基准上,一切良好。SUN 训练、SUN 测试:mAP50 视架构在 0.689 至 0.738 之间,在 4%–5% 的假报警率下逐帧敏感度约为 0.73。PICCOLO 训练、PICCOLO 测试:YOLOv11 达到 0.770。这正是标准文献所呈现的画面。

在完整检查上,则是崩塌。同样这些用 SUN 训练的模型,在假报警负担对齐的条件下于 REAL-Colon 上测试:YOLOv11 的 mAP50 从 0.724 跌到 0.164,敏感度 0.240;RT-DETR 从 0.689 跌到 0.225(敏感度 0.310);Faster R-CNN 为 0.220(0.290)。用 PICCOLO 训练则更糟:YOLOv11 只有 0.059,RT-DETR 只有 0.012,敏感度 0.007——模型几乎什么都检不出来了。

而不对称在这里。反方向上,用 40 段完整检查训练、在 SUN 上测试的模型,mAP50 仍保持在 0.705(YOLOv11)、0.714(YOLOv8)和 0.717(RT-DETR)——也就是说,与这些架构直接在 SUN 上训练所得的水平持平,甚至更高。在 PICCOLO 上迁移结果降至 0.554–0.645,但仍远高于反向迁移。换句话说:完整视频包含了精选片段中的信息,反之则不成立。

在贴近真实的条件下。在 REAL-Colon 上训练并测试,固定阈值 0.2 时,RT-DETR 表面上占优(mAP50 0.488;敏感度 0.720)——但其假报警率为 8.2%,而 YOLO 系列仅为 1.7%–2.0%。一旦把工作点对齐到 4.3%–4.6% 附近,差距就大幅收窄:RT-DETR 敏感度 0.651,YOLOv8 0.605,YOLOv11 0.573,Faster R-CNN 0.463。RT-DETR 在延迟上仍占优(平均 38.3 帧完成首次检测,YOLOv8 为 46.8 帧,Faster R-CNN 为 63.9 帧),在持续性上也占优(21 个病灶中有 17.3 个被持续检出,Faster R-CNN 为 11.7 个);但作者自己指出,这些病灶层面的差距落在 21 个测试病灶上的种子间方差范围内,只应被读作趋势。

临床换算。4.3% 的逐帧假报警率听上去微不足道。在 REAL-Colon 测试集上,这意味着 489 979 个阴性帧分布在 12 次检查中,即每次检查约有 40 800 个不含息肉的帧——按每秒 30 帧计算接近 23 分钟。按 4.3% 计,相当于每次检查约有 1 750 帧的无端报警,累计接近一分钟,在这段时间里方框亮在健康黏膜上。这一计算是我们根据论文数据所作的外推,作者也明确指出了其局限:逐帧度量无法区分一次持续三十秒的报警和一千次孤立的打断,而这两种情形从内镜医师的角度看毫无可比性。

一个参照点。作者在附录中把自己的数字与 Troya 等人发表的商用系统数据并列:GI Genius v1 敏感度 0.506、假报警率 2.8%;GI Genius v2 为 0.679、3.8%;EndoAID A 为 0.656、2.5%。本文评估的开源检测器敏感度达到 0.60–0.72,但假报警率约为 4.5%。这只是参照性比较——数据集和处理流程都不同——但它标出了剩余差距的位置:差距在假阳性控制上,而不在原始敏感度上。

做得好的地方

该协议测量了基准无法测量的东西。假报警负担、延迟和持续性,这三项指标决定了一套 CADe 在临床上是否可用,而三者在静态图像集合上都无法计算。作者用最直白的方式证明了这一点:PICCOLO 的测试集中只有一张阴性图像。这是一项结构性贡献,而不是又一个架构。

对齐工作点化解了一个反复出现的陷阱。在相同置信度阈值下比较架构,会把模型质量和分数标定混为一谈。论文给出了量化效果:在阈值 0.2 时,RT-DETR 看起来遥遥领先;在报警负担相同时,它与 YOLOv8 的敏感度差距从 21 个百分点缩小到不足 5 个。该领域已发表的许多排名,恐怕都经不起这道归一化。

对局限的说明精确得少见。作者自己列出了六项限制,其中两项直接削弱了他们自身的结论:tau-star 阈值是在测试集上选定的;精选数据与完整流程之间的对比,把数据的真实性与其规模、阴性帧占比混淆在了一起。代码已发布在 GitHub,REAL-Colon 采用 CC BY 4.0 许可,资助来自公共渠道(拜伐利亚州 Hightech Agenda Bayern),并声明无利益冲突。

做得不够好的地方

比较阈值是在测试集上选的。作者已明言:tau-star 是事后在评估数据上确定的,以拉平各模型的假报警率。作为架构之间的受控比较,这在方法学上说得过去,但它终究是一种乐观——真正部署的系统应当在独立的验证集上固定工作点,届时各项比率会发生漂移。因此在 tau-star 下报告的敏感度是上限,而不是现场表现的预测。

病灶层面的证据只建立在 21 个病灶、单一队列之上。延迟与持续性指标——也就是支撑架构比较的那些指标——是在来自 12 次检查的二十一个病灶上算出来的。作者指出,观察到的差距落在种子间方差范围内。本文站得住的结论是迁移的不对称性,而不是 RT-DETR 对 YOLO 的排名,应当抵制把后者当作结论来读的诱惑。

底层的失效模式没有被单独隔离出来。发生了什么可以精确命名:用精选片段训练的模型,因为缺乏接触,从未学会拒绝非息肉内容——这是典型的分布偏倚,又被误导性指标(在几乎全是阳性的帧上算出的 mAP,对报警负担一无所言)和有偏的比较基准(固定阈值)进一步放大。但论文并未把阴性帧占比造成的影响与视觉域差异造成的影响分开:只需增加一个仅用 REAL-Colon 中含病灶帧训练的对照组即可判定。作者承认这一点,但没有做。他们还报告了在小息肉上几乎为零的性能——而那恰恰是实践中最常被漏掉的一类。

这带来了什么改变

对研究界而言。信息很直接:在 SUN 或 PICCOLO 上发表一个 mAP,说明不了检测器是否可用;而本文量化出的不对称性,也拿掉了"成本太高"这个借口。既然用完整视频训练并不会损害在精选基准上的表现——反而持平或更好——那就没有理由继续用片段训练了。协议连同代码一并公开,可以直接拿来作为最低限度的评估框架。作者指出的自然下一步是时序建模:他们的四个检测器都没有记忆,逐帧独立处理,而连续帧之间的一致性恰恰是最显而易见、可用来同时降低延迟和减少不稳定报警的信息。

对临床医生而言。明天的临床实践不会有任何改变:这些是研究用检测器,既没有 CE 标志也未获 FDA 批准。但这篇论文提供了一套向 CADe 供应商提问的语汇:模型是用什么数据训练的——精选片段还是完整检查?宣称的假报警率是在完整流程上测的吗,在哪个工作点?每次检查有多少次报警,而不是每帧?这三个问题很有区分度,而论文表明它们并非修辞。

对患者和公众而言。"某人工智能检测息肉的准确率达 77%"这样的说法,在不知道这个数字是在哪些图像上算出来之前,几乎等于什么都没说。这项工作显示,在一个围绕病灶构建的测试集与一次真实的结肠镜检查之间,同一个模型的正确检出可以从四分之三跌到不足四分之一。这不是反对内镜领域使用人工智能的论据——商用系统确实经过了真实条件下的评估——而是提醒我们:医学模型的性能并不独立存在,它只相对于测量它所用的数据而存在。

延伸阅读

Tatakoto 不提供个体化临床建议。本文描述并评析一篇科学出版物,不推荐任何工具或任何诊断方案。