摘要
战斗画面顶部有一条“行动条”:一排小卡片,按顺序显示接下来轮到哪些兵堆行动。每张卡片上有生物头像、兵堆数量,背景颜色表示属于哪一方(队色)。读准行动条,就能知道双方有哪些兵堆、各多少数量。
上一轮的基线在 141 张稳定卡片上有 27 张身份拒判、4 个数量未知。本实验(编号 B124)只针对这些“旧方法没给答案”的卡片补读,已接受的结果不改:
- 身份:对未知卡改用已有的“只看图案内区”模板,必须新旧第一候选一致并通过原门槛。训练图身份从 114 提到 141/141。
- 数量:复用已有的亮色数字字形定位和只做识别的 OCR,在原图和放大图两次一致时才补。训练图数量 137→139(v4),再修正后 141/141。
- 冻结政策后读取另一组旧校准图(148 张卡):身份 148/148,但数量只有 132/148。分析失败后的修正版(v5)回放达到 147/148——但校准图此时已经用于诊断,v5 不能算独立验证。
速度是明显短板:整张截图读取约 19 秒,大部分花在逐卡头像匹配上,远没有达到热整帧 p95 ≤ 3 秒的目标。
要回答的问题
不降低分数门槛、不重新训练,能否把行动条上旧方法拒判的身份和读不全的数量补回来,同时不产生错误身份、错误数量或额外卡片?
数据与来源
- 训练组:复用上一轮的 16 张图、5 个来源组——11 张稳定行动条共 141 张卡、1 张“首位空缺”的过渡帧(12 张可见卡,按上一轮决定直接跳过)、4 张控制图。
- 校准组:21 张旧校准图、2 个来源组/3 段录像——12 张稳定行动条共 148 张卡、9 张前景面板或范围控制。这些图以前用于其他界面字段,完整行动条的参考是在 v4 政策冻结之后才精标的。
- 卡片数不等于事件数或对局数;10 月 5 日评估集未打开。
方法
身份补读:只处理旧方法判为未知的卡片,改用已有的 card_interior 图案内区模板;仍要求最低分 0.80、与第二名差距 0.03,且新旧方法排名第一的候选相同。原候选、分数和拒判记录全部保留。补出的身份仍是候选,不能据此确认战场实例、敌我或行动顺序。
数量补读:只处理“读数不够且没有冲突”的卡片。先在数量行里定位原生亮色数字字形(最多 3 个),再用现有只做识别的 OCR 读原图和 3 倍放大图;两次一致、分数 ≥ 0.90、数字个数等于字形组件数,才补。两次视图不是两个独立模型。看不到字形不填 0,冲突不覆盖。
v5 修正(v4 冻结验证之后,见失败部分):行动卡的字形搜索中心对准实际数量行;只在补读路径中过滤中心不在纵向 96–125 像素范围内的文字行,以排除头像纹理被误读成的 FL/P/S/11 等短文字。共享的状态角标读取器不改,阈值不降。
设置
v4 在 37 张图上做真实完整文件调用;v5 复用这 37 份区域 OCR 和图案结果做回放,只对 7 个字段实际调用 6 次识别,再选 5 张代表图(低位 7、两张数量纹理冲突图、过渡帧、魔法书)重新完整读取,并运行一次命令行。
结果
| 全部稳定卡 | 上一轮基线 | v4 完整入口 | v5 回放 + 补读 |
|---|---|---|---|
| 训练定位 | 141/141 | 141/141 | 141/141 |
| 训练身份正确 | 114/141 | 141/141 | 141/141 |
| 训练数量正确 | 137/141 | 139/141 | 141/141 |
| 训练队色正确 | 140/141 | 140/141 | 140/141 |
| 训练同卡三项全对 | 110/141 | 138/141 | 140/141 |
| 训练整条全对 | 2/11 | 9/11 | 10/11 |
| 校准身份正确 | — | 148/148 | 148/148 |
| 校准数量正确 | — | 132/148 | 147/148 |
| 校准队色正确 | — | 148/148 | 148/148 |
| 校准同卡三项全对 | — | 132/148 | 147/148 |
| 校准整条全对 | — | 1/12 | 11/12 |
三个版本都没有新增错误身份、错误数量、错误队色或多出的卡片。13 张控制图不输出行动卡;过渡帧的 12 张卡继续单列跳过,不算识别正确。5 张代表图的完整重读中,3 张稳定图 38 张卡全部与参考一致;命令行读取 12 张卡三项全对。最终 203 项相关测试通过。
失败与负结果
- 冻结验证暴露 16 个数量未知(132/148),没有隐藏。原因有两类:训练图上两个“7”的字形中心偏离原搜索带 7 像素,超过共享角标规则的 6 像素限制;校准图上多个数字两遍都读对,却被头像纹理产生的短文字行阻断。v5 针对这两点修正,但修正后同一批图的改善只能算开发回放。
- 仍有两个缺口:一张训练图的原始残迹队色未知;校准图中一张卡的数量“3”有一遍文字框越过数量带边界,保留为“证据不一致”,不为这一例放宽边界。
- 人工参考最初把 6 张金紫色判官卡的蓝色背景抄成了红色;逐一看原生放大图后纠正,原始成绩保留——这是修参考,不是改模型去迎合。
- 速度不达标:两张已热身的图整张读取 19.311 秒和 18.993 秒,其中逐卡基础头像匹配占 13.292 秒和 11.917 秒;命令行单次 23.552 秒。这些不是严格计时实验,但足以说明没有达到热整帧 p95 ≤ 3 秒。
局限
- 所有图都曾在其他字段的开发中使用过,不是全项目盲测;v5 右列不是独立验证。
- 补出的身份只是卡片级候选,不代表状态实例、所有者或动作许可。
- 没有新来源的完整链路验证,也没有 App 热键链路验证。
结论与下一步
在不降门槛的前提下,补读把行动条的身份和数量几乎补齐,且没有引入错误。但整条路径太慢。下一步:冻结 v5 的接受政策,分段测量耗时,并用现有模板做“结果完全等价”的加速(先核对完整排名、接受/拒判和坐标一致,再测热整图时延),不因速度降低身份门槛或只读部分卡片;之后补新来源的完整链路验证,不再围绕最后两个未知项反复调政策。
Comments