摘要

游戏的魔法书每页左右两侧排着法术格子。每个格子里有法术图案、印刷的法术名称,以及三个小圆角标(上方一个数字、左下一个罗马数字、右下一个数字),有时中央还会叠一个冷却数字。程序要把这些都读出来,交给状态估计(SE,把观察累积成对局状态和对手构筑推断的模块)使用。

之前的实验分别报告过各字段的成绩,单项看都很高。用户转来的外部审阅建议提出:应该“从参考目标出发看完整链条”——一个格子只有所有字段都对,才算真正读完。本实验 B106 就按这个口径,对前一轮(B105)已冻结的输出重新评分,没有新模型或训练。结果:148 个可见法术格中,身份和全部字面字段同时验证完整的是 120/148(81.08%);只看有身份参考的 139 格是 120/139(86.33%)。

要回答的问题

在同一个格子里,法术身份、名称、三个角标和中央冷却数字同时正确的比例是多少?失败集中在哪个环节,下一步该修哪里?

数据与来源

  • 14 页魔法书,来自 3 个已曝光的开发来源组;不是 14 场独立对局,也不是新盲测。共 196 个格子,其中 148 个有法术、48 个空格(空格作为检查“不该输出”的对照)。
  • 补齐参考:逐格查看 14 页全部 196 格的原生图,补齐 444 个可见角标字面。之前的参考只覆盖其中 4 页 141 个字面,所以净增 303 个;与旧参考重叠的 141 个全部一致。
  • 两套旧参考的格子编号顺序不同(一个按屏幕逐行,一个按左页/右页),因此按原生几何位置关联,避免按编号错拼。
  • 名称沿用之前修订的参考,冷却数字沿用 B105 的参考;不根据图案填名字,也不根据法术规则填数值。
  • 身份:按精确原名查目录后有 139 个可评分;另 9 个名字带“精湛/高级/专家”等前缀或变体,不去猜身份,也不拿模型的第一候选当真值,单列为“缺身份参考”。

方法

以 148 个可见占用格为固定分母,逐格比对:格子检测、是否占用、名称、三个角标、中央冷却字面、身份,以及这些是否属于同一格。

  • 检测器没找到的参考格仍留在分母里;额外/重复输出另计。
  • 未知不算成功,但和“算法读错”分开统计。
  • 不把各字段的条件正确率相乘,而是直接数“全部字段都对”的格子数。

结果

项目 正确 未知/缺参考 错误接受
格子检测、占用判断 各 196/196 0 0
图案身份 134/139 可评分 5 未知,另 9 缺参考 0
印刷名称 145/148 3 0
上方数字 148/148 0 0
左下罗马数字 140/148 7 1
右下数字 145/148 3 0
中央冷却字面 5/5 可见 其余 143 格无中央字面 0
同格全部字面完整 134/148(90.54%) 14 不完整 —
同格身份+字面都验证完整 120/148(81.08%) 19 识别缺口、9 缺身份参考 —

48 个空格没有任何误输出;191 个没有中央数字的位置没有被错误地赋值为 0;没有额外格或孤立字段。按页看,字面全部完整的页 4/14,身份和字面都完整的页 2/14。

本批失败恰好互不重叠:8 格罗马数字、14 格身份(5 未知 + 9 缺参考)、3 格名称、3 格右下数字,共 28 格未完成联合验证。

失败与负结果

新发现:被裁切的笔画被当作边框丢掉。 有一格的罗马数字“III”被读成“II”。原因是圈内输入只有 25×29 像素,第三笔竖画碰到了右边缘,旧的字形提取把它当作边框扔掉,剩下两笔就成了“II”,模板匹配分数还高达 0.926。原 OCR 两次低分都没有接受,错误来自之后的“字形补读”步骤:模板分数高并不代表文字完整。这是一个明确的输入/接受问题,不需要重训 OCR。后续实验 B107 已把这种情况改为“未知”,但本报告中的这 1 个错误保留,不倒改基线。

局限

  • 评分字段只包括图案身份、名称、三个角标和中央冷却字面;资源数字、分页、悬停说明等页面内容不在内。
  • 9 个缺身份参考的格子需要额外的规范证据。
  • 8 项评分回归测试通过,覆盖“漏检不删分母”“重复拒绝”“错绑”“缺身份参考”“未知不当 0”等情况;测试不是识别准确率。
  • 没有新的延迟或 App 验收。

结论与下一步

单字段 95% 以上的成绩,在“同一格全部正确”的口径下只剩 81%,这正是联合评分的意义。下一步按用户建议,先检查书页外框和法术大圆框能否帮助定位角标,避免只修“缺失的小圈”而漏掉“找到了但位置偏移”的小圈;在训练来源上验证,不能靠扩大矩形把邻近内容也吞进来。之后再做外围图案与名称的独立核对、补未映射的身份参考,并推进整图预览与战场关联。