摘要

生物面板和英雄页面上的数字,有时读成不完整的值(生命 160/160 被截成 160/16),有时明明清楚却被质量检查拒绝,有时兵槽里的兵力数量完全没有读到。本实验先扩数据:从 7 个训练失败样例出发,取前后相邻的原始视频帧,得到 45 次观察,并把 555 个字段位置逐一精标。然后在训练来源上对比 6 种裁图方式,发现“宽框/缩高框全量替换”会制造新错误,于是只冻结三条很窄的补读规则。

冻结后完整运行 371 张图:新 45 帧的完整可读值从 408 提升到 419(共 441),没有误读;原有全部观察保持不变,一共只有 17 次值变化,全部是已精审的恢复或修正;最新数据的成绩没有变化(356/363)。

要回答的问题

在不改默认、不放宽质量门槛的前提下,能否补回截断的生命值、未读到的数量和低分的兵力数字,同时不引入新的误读?

数据与来源

  • 7 个训练失败种子,优先最近的录像:2 个最近的生物面板(背景数字/小数字问题),2 个英雄页面(兵力数量漏读),以及较早的生命/完整数量/带符号属性问题。
  • 生物种子取前后 ±0.6 秒、英雄种子取 ±0.4 秒,按 5 fps 解码出 38 张新的原生截图,加上 7 张原中心图,共 45 次观察。它们继承原来源组,不是 45 个独立样本或新来源。
  • 精标:35 个生物场景窗口 × 11 格 + 10 个英雄页面 × 17 格 = 555 个位置,其中完整可读 441、完整值不可判 4、面板不存在 110。另补审旧训练图 7 个兵力位置。审核时已经看过算法初稿,所以不是独立盲审。
  • 三个值得注意的事实:同一窗口里相邻帧可能已换成另一种生物(前三帧巨大索斯、后四帧春之水泽精灵),因此没有把种子的名称和属性复制给邻帧;新发现两处生命截字(160/160→160/16、250/250→250/25);“背景里有数字”不等于整页不可读,看不到完整数量也不等于数量为 0。

方法

在 255 张训练截图已有的请求上对照 6 种裁图:宽生命框、缩高生命框、去图标数量框、灰度数量框、缩高兵力框、最小颜色通道兵力框。读取过程不使用参考答案、目录数值或邻帧。

宽生命框能修复截字,却会把 46/150 拼成 46/15014,并接受三个不完整的生命值;缩高生命框会把 8/8 读成 8/829。因此拒绝全量替换,也不关闭遮挡检查。在访问校准和最新结果之前,冻结以下三条规则:

  1. 生命值:只复核已有且未被局部质量拒绝的候选;两个不同的源图裁框都读出相同的完整“当前/上限”才更新。
  2. 数量:只补“没找到唯一完整文字行”的未知;原图裁框和灰度裁框都要读出完整且相同的“当前/上限”。“77”不会被补成“7/7”,也不假设当前值等于上限。
  3. 兵力:只补因分数低(LOW_SCORE)而未知的值;裁到实际数字行,用最小 RGB 通道减弱彩色背景,原尺寸和 3 倍两遍仍需满足原来的 0.90 门槛。已接受的值和其它拒判不替换。

这些重复读取来自同一模型、同一张截图,不是独立证据。

设置

冻结后完整新跑 210 张训练/校准图、45 张旧邻域、45 张新邻域和 71 张最新截图,全部从原生 2560×1440 文件经界面检测、原始读取、补读到 JSON,不输入参考答案。

结果

参考范围(彼此有重叠,不能相加) 正确:之前 → 本轮 误读 / 拒判 / 漏读
新 45 帧的 441 个完整值 408 → 419 / 441 0 / 14 / 8
旧 42 张训练图局部字段 418 → 419 / 428 0 / 9 / 0
旧 45 邻域局部字段 244 → 244 / 266 0 / 19 / 3
原声明训练字段 929 → 932 / 934 0 / 2 / 0
原声明校准字段 280 → 280 / 280 0 / 0 / 0
校准补审两块面板 20 → 21 / 22 0 / 1 / 0
最新原声明字段 356 → 356 / 363 0 / 7 / 0
最新补充过渡面板 30 → 30 / 32 0 / 2 / 0

原声明训练整帧全对从 72/77 提升到 75/77;最新仍为 22/27。全部局部参考 1512 个位置中可读 1135、不可判 113、不存在 264;最终 1082 正确、42 拒判、11 漏读(含重复,不是独立泛化成绩)。

371 张图的旧界面、身份、日志、覆盖结果全部一致;4698 个原数字字段观察(含原始分数)全部保留,0 读取失败。共 17 次值变化:训练 16、校准 1、最新 0;其中 13 次兵力恢复(含重复观察)、2 次生命纠正、2 次数量恢复。最新 71 张热启动 p95 0.916 秒、最大 1.109 秒;冷启动界面 2.749 秒、OCR 5.164 秒另计。

失败与负结果

  • 宽框和缩高框全量替换会制造新的错误读数(46/15014、8/829),被否决。
  • 清晰的“7/7”斜杠、负号和少数小数字仍会被拒判;缺文字锚点时整块局部请求仍会漏掉。
  • 最新数据上已知的误拒(清楚的 7/15 和 55/55)仍然存在,没有在最新图上调阈值。
  • 还没有足够的单独精标“被遮挡兵槽”负例,所以不能推广为默认。
  • 全套软件测试 7253 通过、2 个既有导入顺序失败、6 跳过。

局限

新邻域 419/441(95.01%)只是针对训练难例的开发覆盖,不能说整体达到 95%;旧邻域 244/266(91.73%)仍不足。最新数据仍是五局、一个曝光过的连续来源组。身份、空槽、技能层级和预览覆盖没有因本轮变好。

结论与下一步

三条窄规则在不伤害已有结果的前提下补回了一批数字,但这类“数字补读”收益已经很小。下一轮回到生物身份接受率、空兵槽误认和局部可读性精标,同时保留本轮难例作为回归,不在少数数字上无限停留。