摘要

这款回合制战棋游戏的战斗画面顶部有一块 HUD(抬头显示,常驻屏幕的状态区),左右各有一个圆形英雄头像。知道对面是哪位英雄,是推断对手技能和构筑的起点。

战斗记录 App 的路由器(把一张截图分给各个读取器的程序)原来已经有头像识别,但在 24 局截图上按角色核对,敌方英雄在测试集只认对 11/78、训练集 31/138,其余全部拒判(没有认错,但几乎没用)。原因是旧匹配器把 HUD 头像补成正方形后和目录里的图标比较,而 HUD 上其实是同一幅画的另一种缩放和裁切,还叠加了圆环和底部徽章,分数普遍低于门槛。历史上 99.22% 的成绩是在“选英雄页”的裁图上测的(批次 B11),不适用于 HUD;旧 HUD 的 10 张图里首候选 9/10 对,但正式输出 5 对 5 拒判。

本实验(内部批次号 B132)换了一个两路的方法,门槛只用训练集选定,测试集只跑一次:156 张测试头像中 125 张正确、31 张拒判、0 张错误;其中敌方 53/78(原来 11/78)。

要回答的问题

  • 能否在不增加错误的前提下,大幅减少战场 HUD 头像的拒判?
  • 训练里从没见过的英雄会怎样?

数据与来源

  • 一个 24 局的截图包里所有确认有 HUD 的战斗帧,包括有生物面板、魔法书、战斗日志覆盖的帧;每帧左右头像各裁一张。
  • 真值:每局精审过的我方/敌方英雄和我方所在屏幕侧,按局里的角色给每张裁图标英雄。这是助手按局角色标注的,不是独立人工真值;同局多帧是同一英雄的重复观察。
  • 划分沿用已有的冻结划分:训练来源 15 局 276 张;开发验证来源作为测试,9 局 156 张。冻结的保留录像不打开。

方法

两条证据路径分开输出:

  1. 样例路径(EXEMPLAR):用已审对局里截下的 HUD 头像当样例。同一个英雄在不同对局的 HUD 头像几乎逐像素相同,所以只比较圆形有效区内的归一化互相关(NCC,一种对亮度整体变化不敏感的模板相似度)。样例只来自训练局,共 27 个;测试局从不进入样例库。
  2. 原画路径(CANONICAL):用项目游戏知识库里的英雄原画,在 190–270 像素之间九档缩放,按透明度掩码做模板匹配;先在 0.25 倍分辨率粗排出前 12 名,再在 0.5 倍精排。

样例分数够高就用样例结果,否则看原画结果;首选与次选的领先量也要过门槛,否则拒判(输出未知)。

设置

选参只用训练集,采用“留一局”评估:评估某一训练局时,样例库只用其它训练局的样例。

  • 样例路径:当英雄在其它训练局出现过时,116/116 正确,最低分 0.703;库里没有的英雄最高分只有 0.546。
  • 原画路径:首选 245/276 正确;31 个错误首选的分数都 ≤ 0.482。
  • 据此冻结门槛:样例 ≥ 0.62、原画 ≥ 0.52、领先 ≥ 0.03,使训练集 0 错。

测试脚本要求冻结配置存在才能运行;测试只跑一次,不回调门槛。每张裁图计为正确 / 错误 / 拒判,拒判不算错也不算对,我方和敌方分开报告。

结果

划分 正确 拒判 错 其中敌方正确
训练(留一局) 227/276 49 0 119/138
测试 125/156 31 0 53/78(原 11/78)
  • 测试的拒判集中在 3 个训练局里没出现过的英雄(“黑角”14 帧、“修女凯莉”10 帧、内部编号为 necro_hero_12 的一位亡灵英雄 7 帧),它们只能走原画路径,分数低于门槛。16 名测试英雄里有 8 名训练局没见过。
  • 每张头像约 0.33 秒,样例命中时更快。

接入: 路由器的战场读取改用新读取器(懒加载),输出格式不变,候选分数限制在 [0,1]。7 项单元测试覆盖两条路径、拒判、排除、输入合同、分数夹取和资产加载。

同日后续: 有生物面板、魔法书、日志等覆盖层的截图原来走“只读 HUD 数字”的旁路,不读头像;而本实验的冻结测试本来就包含这些帧,因此改为覆盖层截图也读头像(行动卡仍不读;只读 HUD 的公开命令行不传读取器,行为不变)。在 24 局包上实测路由器,敌方角色头像测试从 14 升到 53/78,0 错(另一实验 B131 记录)。

失败与负结果

没有出现错误识别。主要的“负结果”是拒判:训练局没出现过的英雄只靠原画路径时普遍达不到门槛,31 张测试拒判几乎全来自这 3 名英雄。这说明原画路径对 HUD 这种缩放裁切仍不够可靠,目前主要靠样例覆盖。

局限

  • 真值是助手按局角色标注的,不是独立人工真值;同局多帧是同一英雄的重复观察,不是 156 个独立样本;也不是冻结保留集上的盲测。
  • 要覆盖更多英雄需要更多已审样例。新增样例只能来自训练局或新来源,不能把测试局补进样例库后再报测试成绩。

结论与下一步

把“直接比较 HUD 样例”和“多尺度原画匹配”分开、并只在训练集上选门槛,使测试集在 0 错的前提下正确率从敌方 11/78 提到 53/78,已接入路由器。剩余拒判主要是训练局没见过的英雄;下一步是从训练局或新来源扩充已审 HUD 样例,而不是放松门槛。