摘要
截图里有很多“这是哪个东西”的问题:英雄头像是哪个英雄、技能栏里是哪个技能、装备槽里是哪件宝物、军队槽里是哪种兵。项目已有一个图标分类器(B11),它常常把正确答案排在第一,却因为旧的“有效性”门槛不够高而拒绝。另一方面,如果只看有效性,又会把空的装备槽当成有东西(之前测到 61 个空槽里误收 10 个)。
本实验(B060)不训练新模型,而是加一个交叉核对:只在已经确认的 UI 位置、且该位置被判断为“有东西”时,把分类器前三名候选的规范图案(游戏资源里的标准图标)和当前裁图做匹配;分类器首选和图案匹配结果一致,才接受这个身份。
结果:在最新开发组的完整截图上,正确接受从 32 个提高到 116/130,没有新增误认;但英雄头像只有 12/22,仍是最大缺口。
要回答的问题
不放宽旧门槛、不重新训练,能否用当前像素与规范图案的一致性,把被拒绝的正确身份安全地补回来?
数据与来源
- 953 个已知位置的观察:528 个旧身份正例、353 个空槽、32 个局部质量/角色控制样本,以及 40 个从训练来源英雄页新增的位置(头像、第一个技能、头部槽、第一个军队槽)。没有新增视频或独立来源。
- 补完 52 个之前待审的位置:46 个身份可读、5 个确认空槽、1 个身份不可判。
- 来源分组保持不变:7 个训练组、2 个校准组、1 个最新开发组,裁图数分别 585/139/229。先在训练组上冻结规则,再看校准和最新组;历史冻结来源不打开。
- 标注时模型草稿和规范图可见,属于助手辅助精修,不是独立盲审。
方法
新规则(role_artwork)只在两类地方启用:检测后已登记的英雄面板槽位,以及带旗帜/行动条的战斗 HUD。步骤:
- 位置必须登记过;占用分类器判为“空”的位置禁止新增身份;技能和装备位置必须被判为“有东西”。
- 取 B11 分类器的前三个候选;用保持长宽比的图案匹配器把当前裁图与这三个候选的规范图案比较,沿用原有门槛(匹配分 .75、与次优的差距 .08)和原有效性门槛 .494140625。
- 分类器首选与图案匹配首选一致,才接受。
注意图案只在前三候选里搜索,不是对整个目录的独立检索,图案分数也不是校准过的概率。旧的接受结果、原始分数和前三候选全部保留。
设置
- 运行实现位于 perception 生产代码的私有模块,需要显式打开开关;默认行为不变。
- 不改任何阈值或权重。
- 完整截图回归:从图片文件解码开始自动找位置,再跑 UI、身份、日志、数字,输出 JSON;不输入参考位置或答案。预测框与参考位置 IoU(两个框重叠面积 / 合并面积)≥ 0.5 才算对上,可读位置没检出算失败。
结果
已知位置裁图(不是整图成绩)
| 来源 | 可读身份 | 旧规则正确接受 | 新规则正确接受 | 新规则误认 / 拒判 |
|---|---|---|---|---|
| 训练 | 360 | 94 | 350 | 0 / 10 |
| 校准 | 84 | 15 | 81 | 0 / 3 |
| 最新开发 | 130 | 25 | 117 | 0 / 13 |
训练、校准、最新三组的空槽和角色负例上,新规则都没有接受任何身份。
371 张完整截图
| 参考范围 | 旧正确 → 新正确 / 可读 | 新误认 / 拒判 / 漏检 |
|---|---|---|
| 原训练及质量试点 | 92 → 314 / 325 | 0 / 11 / 0 |
| 校准 | 18 → 78 / 84 | 0 / 6 / 0 |
| 训练邻域局部身份 | 5 → 35 / 35 | 0 / 0 / 0 |
| 最新开发 | 32 → 116 / 130 | 0 / 10 / 4 |
最新组按类别:英雄 12/22、主技能 27/28、装备 43/44、兵种 34/36。漏检的 4 项来自一个强烈淡入的页面——单独裁图能认出,但完整截图没检出这些位置,所以局部 117/130 和整图 116/130 不能混用。
371 张图的其他结果(框、场景、占用、等级、日志、4,698 个原数值观察)除新增身份外逐项不变,0 次读取失败。整个过程中做了 1,448 次图案核对,新增接受 1,281 个身份观察;其中 885 个原先没有参考。最新组的 137 个新增接受被逐项核对,全部能与原像素对应(这只回答“接受的输出是否对”,不测漏读率);其余 748 项仍待审。
速度:最新 71 张图热启动从文件到 JSON 的 p95(95% 的请求不超过的时间)为 1.065 秒,最大 1.176 秒;冷启动 UI 加载 2.776 秒、OCR 5.176 秒。不含 App 截图、传输和显示。
失败与负结果
- 英雄头像是首要缺口:训练组剩 11 次英雄拒判,原因包括图案分不足、有效性不足,以及图案匹配偏向长得像的错误英雄。
- 一个被叠加覆盖的头部槽,实际有东西却被判为空,人工也只能判未知;本轮拒绝身份,但占用判断的问题没修好。
- 早先数字读取的若干误拒和局部漏读仍在。
- Perception 全套测试 7,273 通过、2 个既有失败(与上一实验相同,是同进程测试中依赖导入影响冷导入断言),6 个跳过;没有删测试或放宽断言。
局限
- 最新五局只是一个已曝光的来源组,不能宣称 10 场独立验收、全字段 ≥95% 或 App 可用。
- 模型与模板看的是同一份像素,它们一致不等于校准过的置信度或独立真值。
- 新增输出还有 748 项未审。
结论与下一步
复用已有分类器和规范图案,在“位置可靠且确实有东西”时做一致性核对,能在这批开发数据上把大量被错拒的正确身份补回来,且没有新增误认。规则只作为显式开关发布,未升级默认、未接入 App。
下一步:英雄优先——补训练来源里清晰/淡入/遮挡的成对审核和易混图案;修叠加槽的占用判断;继续审核剩余 748 项新增输出。
Comments