摘要

游戏《魔法门之英雄无敌:上古纪元》的英雄面板显示英雄的各项数值(攻击、防御、法强等)、装备格和一排兵种格(每格是一种生物和它的数量)。面板打开或关闭时有一段淡入淡出动画。前一轮实验发现,在一张淡入画面上漏读了 7 个兵种数量。

本实验(编号 B065)查明原因有两层:整块面板有时根本没被检测到;即使检测到,动画中的轻微缩放(约 0.984 倍)和纵向位移(约 21 像素)也让“用头像框去对位整个面板”的方法失败。新做法:直接用当前画面里真实检测到的装备格和兵种格,共同拟合缩放和平移,再在对齐后的位置补读。在 49 张新采集的过渡画面上,可读数字正确数从 373 增到 475(共 541 个),兵种占用判断正确从 154 增到 196(共 224 个),误读仍为 0。但这是助手非盲审的训练来源,离“每个字段 95%”的目标还有距离。

要回答的问题

面板动画期间,能否只依赖当前帧可见的局部内容重新定位面板,把漏读的数值补回来,同时不引入误读、不改变原有已接受的结果?

数据与来源

  • 优先使用 10 月 4 日已授权的训练录像,结合既有训练来源。先粗采 45 张图,算法找到 6 次面板出现/消失的边界,再用 24 次探测细化边界,加上一处几何变化触发,最终得到 49 张时间点各不相同的精采图。它们来自四个既有训练来源组,不是 49 场或四场新的独立对局。
  • 逐张查看原尺寸的英雄头部和兵种行,每张固定审 10 个英雄数值、7 个兵种数量、7 个兵种占用,共 1,176 个位置:765 个可读(541 个数字 + 224 个占用判断)、3 个无法完整判定、408 个不存在(17 张图上面板根本不存在)。
  • 3 个未知分别是被特效遮挡的法强/资源上限,以及淡出读不全的等级;不拿附近清晰帧补答案。
  • 所有审核都是助手的非盲审;没有标身份和双方归属。

方法

新增一个局部对位步骤:

  1. 在当前图中找出真实检测到的至少 4 个不同装备格和 4 个不同兵种格。
  2. 用它们共同拟合缩放与平移,残差不超过 8 像素;拟合后再检查范围和支持数量。
  3. 中央面板没被检测到时,可以额外扫描已知的中央兴趣区域。
  4. 只有多个区域一致时才补读;不从历史帧或下一帧填值,不造固定检测框,也不据此认定身份、归属或字段一定可读。

补读在原识别之后运行:原来已接受的数值、身份、框、分数都不变;原本未知的字段如被恢复,保留原始尝试记录。重复的兵种框移到诊断里。空格不写 0。这个步骤需要显式开启,默认读取器不变。

设置

  • 主评估:49 张新过渡图的固定分母。
  • 回归:重读 371 张旧图;另看前几轮的旧样本和最新固定集。
  • 速度:串行运行,记录热启动时每张完整截图的处理时间。

结果

49 张新过渡图

指标 原流程 新流程
可读数字正确 373/541 475/541(87.80%)
数字误读 0 0
数字缺失 / 拒读 167 / 1 65 / 1
兵种占用正确 154/224 196/224(87.50%)
占用缺失 / 拒判 42 / 28 28 / 0
3 个不可判数字被接受 0 0
408 个不存在位置被接受 0 0

其他检查

  • 旧样本(6 个时刻):35 个可见兵种占用 28→35 正确,数量 28→34 正确,剩 1 个拒读;重复框 1→0。
  • 最新固定集 363 个数字:356→359 正确,0 错、4 拒读;整帧全对 22→23(共 27 张)。士气仍 9/11、生物数量 14/16。原训练集 932/934、校准集 280/280 保持。
  • 371 张旧图全部重读:4,888 个原数值观察中 4,885 个完全一致,另外 3 个原本未知的被恢复(原尝试保留),新增 17 个字段;原日志、身份、模型分数不变。
  • 速度:最新 71 张图热启动下,从解码到输出 JSON 的 p95 为 1.076 秒,最大 1.230 秒(不含 App 截图与展示,不是 App 整链路验收)。

失败与负结果

  • 4 张仍可读但非常淡的面板没有足够的锚点,65 个数字依然漏读;另有 1 个单数字数量拒读。
  • 训练诊断阶段的结果是 472 正确/4 拒读,正式组合后为 475/1,两批原输出都保留。
  • 最新集汇总 98.90% 不能说成每个字段都达到 95%:士气和生物数量仍有缺口。
  • 初次测试曾把绝对检测框误当作感兴趣区域框,这是测试夹具的错误,已修正,实际读取没用到假框。
  • 完整测试中 2 个既有失败节点与上一轮完全相同,没有删除测试或放宽断言。

局限

  • 49 张图来自已授权训练来源,由助手非盲审,不是独立验收;没有身份或归属标签,占用按角色近邻匹配计分,不等于严格的框定位精度。
  • 真实的“局部无法判定的兵种占用”正例仍然缺少。
  • 页面清单仍不覆盖背包、职业/专长和右侧选择项。

结论与下一步

问题不是“头像框容差太小”,而是动画中的整体缩放与位移;用当前帧多个格子共同对位能把大量漏读补回来,且不引入误读。下一步:用训练来源补非常淡或被遮挡的面板、真实的未知兵种局部,改进面板检测入口与单数字局部读字;之后处理装备误拒、技能等级小框定位、魔法书和攻击/魔法预览,并用同样的可读性信息改进自动关键帧选取。整体目标仍在进行中。