设计档案馆
中EN

(三)重做检测头

《全国医保影像 AI 识图大赛》初赛记录(三):局部修补走不通,我们保留 RAD41 骨干,换上按 anchor 学习的密集检测头,平台总分从 39.31 升到 47.78。这一步同时改了结构、监督方式、候选生成和训练量,增益不能归到某一项改动上。

L.03 / 14
CATEGORY
研究
YEAR
2026
STATUS
笔记
TOOLS
pytorch / rad-dino / retinanet

entry记录

上一篇定下的 ROI 版本在平台模型验证中拿到 39.31 分。它的检测头做全局分类,每个类别最多输出一个框,候选稀疏。上一篇最后几轮在已有候选上重排、修改解码,都没有解决漏检;继续在这些候选上重排,也难以解决。这一篇从更换检测头开始,记录到 9 月 23 日为止。

全局分类和稀疏的候选限制了检出,成熟的检测结构值得拿来做比较。起初有过一份改用公开成熟检测器 YOLO 的实施计划,随后撤回:参赛的是自有模型组,我们要求保留自有的 RAD41 核心;替换骨干仍要满足赛事对核心模型的合规要求,而 YOLO 路线没有得到具体的合规结论。YOLO 停在计划阶段,没有加载,也没有训练。剩下的两个方案是局部密集检测和在已有候选框上重新分类;后者找不回旧候选之外的漏检,暂缓,选定局部密集检测。这个选择依据的是机制和工程成本,没有证明局部密集检测一定能提分。具体做法是冻结已在平台拿过 39.31 分的 T3 模型的骨干,后面接上随机初始化的 neck 和 torchvision 里现成的 RetinaNetHead 结构,只用结构,不加载任何外部检测预训练权重。

为了提高候选覆盖,同时检验多尺度特征有没有额外价值,实验对比了两种检测头。骨干是冻结的,所以先把 518 输入的特征计算一次存成缓存,两个检测头读取同一份特征:single 只用骨干输出的一层特征(单尺度);pyramid 另外通过上采样和池化做出一层更细、一层更粗的特征(多尺度)。两者共有的 neck 和 head 部分用同一份随机初始化权重。新检测头在特征图的每一格放一组 anchor,每个 anchor 同时学习 17 个类别的分数和一个不区分类别的框位置,以此替代旧结构的每类 top1。两组用相同的训练集各训 20 轮,中途修复过一次数值问题,在原定训练预算内恢复了训练。比较按事先定好的第 20 轮做,不回头挑最好的一轮。这一轮同时改动了结构、监督方式、候选生成和训练量,分数的变化不能单独归到检测头结构上。

我们在同一组 1,396 例开发集上比较原模型、single 和 pyramid,看检测、下游任务和资源开销。这 1,396 例反复用于方案比较,不是独立测试集。开发集的标注中途有过更新,按当前标注,三者的 mAP17 依次为 0.087006、0.165304 和 0.166123。pyramid 减 single 的差值,按病例重采样得到的 95% 区间跨过 0,这个区间是在更早冻结的那一版标注上算的(两版标注的数值不能混用);据此既不能判定 pyramid 更好,也不能说明两者相当。再看下游任务,single 匹配上的积液有 166 个,pyramid 是 142 个,single 的积液 AUC 也更高,结构也更简单,因此先把 single 接进完整服务。当前证据不足以确认 pyramid 的额外收益。

开发集上的改善要放到完整服务里验证。T4 根据 T3 的框给出肿块直径和积液分级,T5 复用 T3 的框和 T4 的属性。我们完成了 single 的服务、T4 和 T5 的接入、冷启动以及平台回调,T1 和 T2 的安全组件沿用原版。平台总分从 39.31 升到 47.78,高 8.47 分;T3、T4、T5 都有上升,其中 T4 加 5.28 分,而 T4 这次没有重新训练,变的是它上游的检测框;安全项 19.80 分不变。single 成为新的基线。T4 仍有子项下降。两次汇总成绩不足以把全部增益归到某一项结构改动上。

single 已能检出病灶,下一步是让分类分数和框的定位质量对应得更好。实验从 single 第 20 轮的权重续训 5 轮,分类损失换成 QFL(quality focal,以 IoU 为软目标的分类损失):正例的目标是预测框与标注框(GT)的 IoU,且不回传这个 IoU 的梯度;负例目标为 0;框回归损失沿用原版。质量目标只在训练时计算,推理结构沿用 single,和上一篇对旧 ROI 模型做的质量重排不是同一种方法。在同一组 1,396 例开发集上按当前标注评估,single 是 0.165304,同样续训 5 轮的对照是 0.163151,quality 是 0.168484。quality 保留下来;这个提高目前只在开发集上,还没有平台分。

全图直接缩到 518 输入,可能会限制小病灶的检出;为了保留更多原图细节,我们试了全图加四角切片。每一例用全图加四个角的裁图,每张裁图覆盖原图 60% 的宽和高,一例要做 5 次 RAD41 前向;被裁图切断的标注按忽略处理,固定训练 5 轮。训练用了 32.46 小时,开发集 mAP17 为 0.167100,高于 single,低于 quality;结节(Nodule)提高,肿块(Mass)下降。后续的量化和定位验证停止,实验结果保留。这个结论只适用于这一次的切片配方。

截至 9 月 23 日,平台上的基线是 single 的 47.78 分;quality 等 9 月 27 日验证完整服务;全图加四角切片的配方没有采用。

process对比

平台模型验证总分

ROI · 09-1639.31
single · 09-2147.78
quality · 09-2747.85
E-QH · 09-2848.01
复验 · 09-3048.01

分项:ROI → single

T1 + T2 安全
19.80 → 19.80
T3 征象检测
1.92 → 4.65 · +2.73
T4 属性量化
10.44 → 15.72 · +5.28
T5 解释定位
7.15 → 7.61 · +0.46

开发集 mAP17(1,396 例)

原模型
0.087006
single
0.165304 · 采用
pyramid
0.166123
续训对照
0.163151
quality
0.168484 · 采用
全图 + 四角切片
0.167100 · 未采用

训练设置(single / pyramid)

训练集
11,242 例
batch · 优化器
8 · AdamW 1e-4
训练量
20 轮 · 28,120 次更新

result小结

结论
single 检测头平台总分 47.78,比 ROI 版高 8.47:T3 +2.73,T4 +5.28,T5 +0.46,安全项 19.80 不变。随后 quality 续训 5 轮,开发集 mAP17 从 0.165304 升到 0.168484。
参数
冻结 RAD41 骨干 · 518 输入 · neck 128 · 每格 9 anchors · 17 类 sigmoid · 类别无关框回归 · batch 8 · AdamW 1e-4 · 20 轮
没做完
pyramid 的开发集 mAP17 略高于 single,但差值的 95% 区间跨过 0,额外收益无法确认;T4 这次没有重新训练,仍有子项下降。

log日志

2026-09-19
撤回换用 YOLO 的计划,保留 RAD41,改建密集检测头
2026-09-20
single 与 pyramid 各训 20 轮,先上 single
2026-09-21
single 平台验证 47.78(+8.47)
2026-09-21
quality 续训 5 轮,mAP17 到 0.168484
2026-09-23
全图加四角切片训了 32.46 小时,未采用

相关实验

note
L.01(STUDY)2026

(一)赛前选定基座模型

chest-xraypytorchrad-dino+1
note
L.02(STUDY)2026

(二)从零搭起第一版

chest-xraypytorchrad-dino
note
L.04(STUDY)2026

(四)没过采用线的配方

chest-xraypytorchretinanet
← LabL.03 / 14
1 / 1

100%