摘要
轮到某个生物行动时,屏幕底部会显示它的技能栏:左侧 L1–L5 是技能图标,图标中央可能有一个数字(看起来像剩余冷却回合),底部有能量菱形。上一轮已经能读出这些数字,但如果不知道数字属于哪个技能,就交付不了有意义的冷却观察。本实验专门识别 L1–L5 槽里的图标是哪个技能。
结果:在先标注、后匹配的 54 个验证槽上,目录技能 43 个识别正确、0 个错误、8 个保持未知;2 个不在目录里的图标(如普通攻击)都没有被误接受。新功能通过显式开关启用,默认输出、公共协议和 App 不变。
要回答的问题
能否在不误认的前提下,把底栏技能槽的图标对应到游戏目录中的具体主动技能?右侧 R/C 槽不在本次范围内。
数据与来源
- 参考图: 项目游戏知识库中的全部 125 个主动技能,其中 123 个有图标。有两组技能的图案完全相同(尸爆/净化之血、净化孢子/激励孢子),只能输出共享候选。
- 开发集: 上一轮时间线中两段训练录像里,按“来源/当前生物/槽位/亮暗”去重后的 35 个非空槽。先看了全目录排名再写开发标签。
- 冻结验证: 评估组与两个校准组中的 54 个非空 L 槽。标签只依据槽位原图、可见生物的目录技能图标和能量菱形数量,在看任何匹配输出之前写好。这些来源的其他字段之前曝光过,不能称全局盲测。
方法
- 把槽位转灰度,套一个圆形内区掩码,去掉中央数字、底部能量菱形和外圈。
- 在 62–70 像素五个尺度上,在槽中心 ±4 像素内做归一化相关系数模板匹配(
TM_CCOEFF_NORMED),对全部图标取最高分排名。 - 只有首选分数 ≥0.72 且领先第二名 ≥0.10 才接受;共享图案的两项作为一组参与排名,过线时输出共享候选,不擅自选其一。
- 普通攻击、模式切换等图标不在目录里,应该被拒绝,而不是硬配一个最像的。
输出只有图案身份候选和分数,不复制目录里的冷却、耗能或归属。
设置
门槛在开发集上选定后冻结,对 54 个验证槽只运行一次,不按验证结果调门槛。等待帧(底栏显示的是另一个生物的技能)单独统计。
结果
| 数据 | 目录技能槽 正确/错误/未知 | 非目录槽误接受 |
|---|---|---|
| 开发集 35 槽(看过排名后标注) | 23 / 0 / 2 | 0/10 |
| 冻结验证 54 槽(先标注后匹配) | 43 / 0 / 8 | 0/2 |
验证中有 1 槽人工也不确定,不计入。按“录像/技能”去重后为 25 组、19 种技能:22 组全对、3 组未知,没有组内对错混合。等待沙漏帧中,底栏显示的技能按像素单独标注,12 槽中 9 对、3 未知。
生产实现对 54 个验证槽逐一复现了冻结实验的状态、身份、分数和领先值(54/54)。新增 12 项单元测试,覆盖身份、非目录未知、共享候选、空槽和 R/C 槽不读、单槽失败隔离、前景跳过等。
失败与负结果
- 8 个未知里 7 个是同一个暗紫色的“召唤仪式:执行者”图案(开发集里分数也只有 0.596),另 1 个是“手铐”(0.539)。
- 在训练图上运行真实命令行时,带数字“2”的亮色“命令:恐惧”分数 0.729 但领先不足,被判为未知——这是保守拒判,不是错误。
- 暗色或带数字的图标分数普遍偏低。
局限
- 这些来源的其他字段曾曝光,不是全局盲测;分母小,相邻帧也不是独立事件,远不能说 125 个技能都已覆盖。
- 图案身份不说明技能归属、当前是否可用,也不说明冷却语义。
- 能量菱形数量与目录耗能一致,可以作为以后的独立核对线索,本轮没有实现。
结论与下一步
简单的掩码模板匹配加“分数 + 领先”双门槛,已经能在冻结验证中做到零错误接受,代价是暗色图标偶尔未知。下一步可以把能量菱形数量作为独立交叉核对,并与冷却数字的时间线结合,得到“哪个技能还剩几回合冷却”的观察。
Comments