摘要

打开法术书时,书页会遮住大部分战场,只在书的边缘、书签和书扣之间露出一些生物身体的局部。原来的战场身体检测器在这种画面上漏检很多。前一轮(B099)尝试在法术书边缘额外切出两个局部窗口再检测,有一些改善。

本轮换了一种训练数据表示:以训练集中每个参考身体为中心,取至少 512 像素的方形上下文;如果窗口切到了相邻身体,就向外扩展到把所有相交的邻体完整包含,避免“半个身体被当成背景”。同时加入已审核过的纯界面和英雄画面作为负例。结果:四来源开发集上,“原整图 + 新局部”方案从 41 个正确检测/6 个误报提升到 45/5,零丢失;但事先定的采用门槛要求误报 ≤4,没有通过。旧的 54 张普通战场图回归还出现 7 个恢复、13 个丢失。按规则不修改默认读取器或 App。

要回答的问题

用“不切断邻体的完整局部视图”和已审负例重新训练检测器,能否在法术书遮挡的画面上多找回身体、同时把误报控制在原水平?

数据与来源

  • 训练:417 张整图、4680 个身体(含 16 张新书页图、92 个身体),来自已准入的训练来源。
  • 新增训练视图:92 个唯一局部视图(共 239 次身体标签出现,是重复曝光,不是新增身体);局部窗口最窄 512、最宽 664、最高 964 像素。
  • 负例:上一轮审核过的 5 个纯界面框和 3 个英雄框,外扩 24 像素后整个窗口必须与所有身体参考零交叠;最终 4 个界面 + 3 个英雄通过,1 个左书扣窗口因扩展后碰到身体被整窗拒绝(没有缩框硬凑)。身体/界面混合、边界错误和重复好框一律不当背景。
  • 开发集:4 个来源组、10 张图、59 个身体、20 个边缘窗口,不进入训练。它已经被看过,是开发集不是盲测;更早的测试集和封存来源没有打开。

方法

  1. 局部视图只用于训练,推理时不使用参考框。推理保持原来的两个 768×1152 边缘窗口、分数阈值 0.4、IoU 0.5 和原有的面板/书签过滤。
  2. 每轮训练曝光:417 张整图 + 32 个边缘窗口×8 + 92 个局部视图×4 + 7 个负例×8,共 1097 条、6372 次身体曝光。
  3. 从原检测器的最佳权重出发,沿用上一轮配置:6 轮,AdamW 学习率 1e-4,输入 960,批大小 8,种子 20261007,冻结 11 层骨干和 BN;固定取第 6 轮的权重,不按自动“最佳”或开发结果挑选。
  4. 主方案:原整图检测结果优先,局部窗口的新检测作为补充(沿用原规则)。

注意数据和更新次数都变了,所以这不是单变量因果实验。

设置

事先冻结的采用门槛(相对原整图 35 TP/4 FP):至少 42 个 TP(超过上一轮的 41)、原有 35 个匹配全部保留、误报 ≤4、至少两个来源有恢复、各来源 TP 不下降。训练用时 442.32 秒,828 次优化机会中 821 次真实更新(7 次混合精度跳过);骨干参数逐轮检查保持不变。

结果

身体框定位(不评身份、数量或阵营),原生 2560×1440、一对一匹配:

方案 TP FP FN 精确率 召回率
原整图 35 4 24 89.74% 59.32%
上一轮仅局部 39 2 20 95.12% 66.10%
本轮仅局部 41 3 18 93.18% 69.49%
原整图 + 上一轮局部 41 6 18 87.23% 69.49%
原整图 + 本轮局部(主方案) 45 5 14 90.00% 76.27%
开发来源组 原整图 TP/FP 上一轮补充 TP/FP 本轮补充 TP/FP 身体数
10 月 2 日两段 14 / 1 15 / 1 18 / 1 22
10 月 3 日晚 4 / 0 6 / 0 6 / 0 7
10 月 3 日早晨部分 4 / 1 4 / 2 4 / 2 5
10 月 4 日晚 13 / 2 16 / 3 17 / 2 25

主方案中“主体可见”的身体 28/28 保持;“局部可见”从 13/30 提升到 17/30;微小片段仍 0/1。四个新增恢复都逐一看过原图:书签旁的暗色弯曲身体、左书扣中露出的环状身体和右侧头部、左书脊外窄窄的蓝衣。

门槛逐项:≥42 TP、原 35 匹配保留、至少两来源恢复、各来源不下降都通过;误报 ≤4 未通过(5 个)。

失败与负结果

  • 门槛未通过。 没有把门槛改成“比上一轮误报少就算过”。
  • 误报。 5 个误报中 4 个是原有框,1 个新框出现在拥挤区域,把几个已分别检出的身体合成一个大框。没有为了删掉它调高阈值或写位置特判。上一轮另一处宽框误报这次消失了。
  • 漏检。 14 个漏检中:9 个有合格的原始框但分数低于 0.4;4 个没有 IoU 合格的局部候选;1 个被“原整图优先”规则挡住——新局部框 IoU 0.502、分数 0.949,却因与原来一个跨邻体的宽框重叠而没有加入。这说明不能把所有重叠都当重复。
  • 普通战场回归变差。 新权重在原 54 张验证图、715 个身体上:原 689 TP/18 FP/26 FN,本轮 683/17/32,7 个恢复、13 个丢失,所以不能替换普通整图模型。看过的两处丢失:一个蓝色完整身体消失;一个暗色大身体附近只剩前景小体的框。
  • 训练图上反而下降。 训练 16 张书页图(不是泛化成绩):仅局部 84 TP/10 FP→80/5;补充方案 84/24→81/20。训练召回下降、开发召回上升,说明不能只看训练拟合来选择。

局限

  • 开发集只有 10 张图、59 个身体,且已被看过。
  • 只评定位,没有评身份、数量、阵营或其它界面字段;没有新的 App 或整帧时延结果。
  • 15 个新增软件测试和相关既有测试共 65 项通过,只证明训练视图生成逻辑正确,不能替代未通过的识别门槛。

结论与下一步

完整局部视图确实带来跨来源的定位改善,这种表示值得保留,但本轮候选未通过误报门槛,也伤害了普通战场,所以不采用、不重跑同一配方。下一步转向候选框质量与多体混框的组合选择:在训练预测上区分“旧坏框挡住新好框”“已分别检出的身体又被合成大框”和“真正相邻重叠的身体”,先在训练集冻结规则,再在开发集验证;剩余的低分和定位失败继续保留,不把排序问题当作所有漏检的解法。