摘要

战斗画面上方的 HUD(英雄信息条)左右各有一个英雄头像。识别方式有两种:一是模板相关(NCC,把截图与资料库中 77 个英雄原画逐一比较相似度);二是项目早先训练过的一个学习型分类模型(下称“学习头”)。在训练更多数据之前,先回答一个问题:现成的学习头能不能直接用?

在 10 张已曝光的 HUD 头像上只做一次固定推理:学习头 10/10 把正确英雄排第一,NCC 是 8/10。但学习头在现行运行时规则下 10 张全部被拒。审计发现:现行规则要求“分类置信度”和“裁图有效度”两个门槛同时满足,而历史评估中这两个门槛是作为两种可选策略分别验证的,从未校准过它们的组合。用历史选定的有效度门槛离线重放已保存的分数,10/10 接受且全部正确。

要回答的问题

  • 现有学习头在真实 HUD 头像上的排序能力如何?
  • 上一次“失败”是模型问题,还是接入和接受规则的问题?

数据与来源

  • 10 张原生 194×226 的 HUD 头像裁图,来自 5 张已曝光图片、6 位英雄、3 段录像。
  • 没有负例(非英雄或未知英雄的裁图),因此无法计算误接受率。
  • 参考答案由另一方独立冻结并评分,推理端不读答案。

方法

  1. 只批准一次 CPU 推理窗口(最长 30 秒):10 张裁图,用完整的 77 类 NCC 库和学习头各排一次,不做类别过滤或重新归一化。
  2. 用冻结的现行运行时接受规则判定。
  3. 另写一个离线重放脚本:只用历史验证时选定的有效度门槛 0.494140625(加“类型必须是英雄”“分数必须是有限值”两条保护),对已保存分数重新判定。零推理、零图像解码、不读答案、不选新阈值。

设置

一次运行共 4.922 秒,其中学习头批处理 0.688 秒;无 GPU、无 OCR、无训练。推理窗口已用完,不再重跑。

结果

路径 原始首选正确 接受且正确 接受但错误 未知
现行 NCC(门槛 0.75 / 0.08) 8/10 6 0 4
学习头,现行“双门槛同时满足”规则 10/10 0 0 10
学习头,只用历史有效度门槛(离线重放) 10/10 10 0 0
  • NCC 两个首选错误都被正确拒绝了。
  • 学习头每个预测类型都是英雄、有效度都高于门槛,但“类型 × 身份”的联合置信度都低于 1.0,于是双门槛规则全部返回“置信度低”。
  • 离线重放中最低有效度为 0.50268912,只比门槛高 0.00854850——接受并不说明对负例或精度变化稳健。
  • 21 项合成软件检查通过(包括错误类型、无效裁图、无效分数仍被拒绝)。

失败与负结果

  • 第一次私有探针在双门槛规则下 0/10 接受。这个冻结结果保留不改,但它衡量的是“现行运行时规则”,不能描述为“原有效度策略失败”。
  • 历史上 GPU 半精度推理在置信度 1.0 附近的舍入可能与 CPU 单精度不同,所以不能把分数四舍五入后去判接受,也不能认为“1.0”是校准过的确定性要求。

局限

  • 这是开发冒烟探针:77 位英雄中只有 6 位有这类 HUD 证据,没有负例,不能证明广泛的英雄识别能力、未知拒绝、独立对局或 95% 目标。
  • 学习头的训练数据全部来自选英雄页面的裁图(902 条),确认的原生 HUD 训练覆盖为零;相邻帧不是独立样本。
  • 单次计时不能说明冷/热 p95 或 App 中的进程开销。

结论与下一步

10 个正确排序支持“先复用现有模型、再考虑重新训练”。上一次的失败来自接入缺口和接受规则不匹配,而不是这些样本上的图像分类能力不足。下一步:按来源分组准备 HUD 开发/校准的正例和真实未知负例;先冻结校准协议再评分,报告首选/前三、按类别和来源的错误、接受准确率和负例误接受;只有在排序错误或类别缺口需要时才微调;然后以“影子模式”私有运行,不改变公共候选,也不把模型输出当作用户确认的身份。