摘要

上一轮实验在一个短窗口里看到:右侧某个格子的数量牌从 8 变成 3,旁边一块牌保持 12,同时有拳头/骷髅伤害飘字。要把“8→3”解释为这一堆兵损失了 5 个,至少得先确认几帧里站在那个格子上的是同一个兵堆。本实验(开发诊断,非盲测)只回答其中一小步:在这几张原图上,参考格附近有几个可见的生物身体、各被认成什么、彼此距离多远;以及已有的“由身体位置引导去找脚下数量牌”的补读能否补上第一张图缺失的数量。

结果:四张原图中,每个参考格 70 像素范围内都只有一个身体候选,最近的其他身体至少在 138.28 像素外,于是形成了“每帧固定区域恰有一个身体候选”的空间观察。但这不是跨帧身份认证:没有排除换位、替换或脚牌脱离。已有的脚牌补读 4 次请求全部没找到牌——第一张图里蓝色牌面和地面连成一整块,被尺寸规则拒绝,OCR 根本没有执行。

要回答的问题

  1. 在目标区域,当帧是否存在“相邻可见身体相互竞争”的歧义?
  2. 身份模型对这些身体的判断是否稳定?数字(数量牌、飘字)是否在干扰判断?
  3. 现有的身体引导脚牌补读能否读到第一张图右侧缺失的数量?

数据与来源

  • 只用一段训练录像(10 月 10 日 16:57 开始,前 23 分钟)中已经保存的同一窗口的原图:三张主要图(585985.4、587119.87、587219.97 毫秒),以及协议允许追加的一张中间帧(586619.37 毫秒)。来源时间取上一轮保存的元数据,不从文件名猜。
  • 两个参考区域的位置继承上一轮的人工固定框,通过既有的固定棋盘映射到格子 [11,0] 和 [10,0];当前画面的棋盘没有独立重标。
  • 没有新的视频解码、训练或安装。

方法

  1. 身体读取:用现有的身体检测器(阈值 0.4)和身体身份模型,在每张原图上读出所有身体框和身份前 5 名,分数未校准。
  2. 数字遮挡对照:用同一组固定矩形把两块关注的数量牌和已知飘字遮黑后再读一遍。注意遮挡也去掉了框内的背景和身体像素,所以变化不能只归因于数字。
  3. 固定框身份消融:把原图上自动检出的身体框固定,在遮挡图上只重跑身份模型,以区分“定位变了”和“身份变了”。
  4. 空间对应(状态估计 SE 侧,只消费保存的观察):每帧保留每个参考区域 70 像素内的全部身体;多个候选不择优,同一身体同时属于两个区域就标歧义;数字、伤害和兵种分数都不参与选择。
  5. 脚牌补读:实际调用已有的组合流程(身体→探针中心→数量读取 worker→应用探针),输入只有当帧的全图观察,不提供行动条、手工框或未来帧。

设置

CPU 8 核限制、串行。身体读取每次 0.338–0.505 秒(不含解码、模型加载和 App,不是端到端或 p95)。

结果

身体候选

时刻(毫秒) 右侧身体首选 相邻身体首选 右侧到参考格距离 相邻到参考格距离
585985.4 lich(巫妖) unspeakable 20.59 px 31.73 px
586619.37 sunlight_cavalry_upg(弱,受特效遮挡) unspeakable 11.12 px 35.97 px
587119.87 lich unspeakable 5.47 px 39.96 px
587219.97 lich unspeakable 12.64 px 34.36 px

(表中是身份模型输出的兵种类别 ID。)

四张原图的每个参考格在 70 像素范围内都只有一个身体候选,最近的另一个身体距右侧参考格至少 138.28 像素;两个参考区域在原图上读到的颜色都是蓝色。这消除了“当帧相邻身体竞争”的问题,但不代表模型没有漏检。

遮挡对照与消融:完整遮挡后,第一张图和 587119.87 毫秒图的右侧身体都检测不到了;中间帧身份不稳定,第三张仍是 lich。把原检测框固定后只重跑身份(3 张图 × 13 个框 = 39 次排名):第一张图右侧首选变为 unspeakable(0.5338),lich 第二(0.1213);后两张仍首选 lich(0.7856、0.7383);相邻身体始终是 unspeakable。这只说明身份对裁剪和遮挡敏感,不能断言模型依赖数量数字,也不能断言发生了单位替换。

空间观察的输出边界:结果标记为“每帧固定区域恰有一个身体候选”或“固定区域缺失/歧义”;“同一兵堆已认证”为否,兵堆编号、生物编号、数量差、伤亡、事件编号全部为空。没有把 8→3 解释为死亡,也没有调用规则模拟器。

脚牌补读:三张图分别请求 2/1/1 个位置,共 4 次,全部没有找到脚牌。第一张图右侧仍未知,后两张已有的 3 保持、相邻 12 保持。

失败与负结果

脚牌补读失败的具体原因:第一张图右侧请求窗口 88×44,蓝色颜色掩码经形态学闭运算后,牌和地面连成覆盖整个窗口的一块(面积 2,008),宽高超出已有的 40–70 × 12–28 范围,被拒绝,所以 OCR 没有执行——不能说 OCR 把 8 读错了。同一窗口还有一个 52×17 的红色块,中心偏移 (18, −9.5),被纵向范围拒绝。因此简单放宽宽高或位置门槛可能会接受干扰,不能用已知答案 8 来调参。阈值未改。

局限

  • 已曝光来源的离线诊断,不是盲测、生产跟踪或 App 准确率验收。
  • 参考区域为蓝色不等于被选中的身体属于蓝方;颜色读取用的是原图区域,不能作为遮挡图的独立证据。
  • 特效与身份不稳同时出现只是一个解释候选,没有隔离裁剪、姿态、替换等因素。
  • 软件验证(SE 侧 48 项、Perception 侧 79 项测试通过)只说明代码逻辑,不是识别准确率。

结论与下一步

当帧的空间歧义已排除,但跨帧“同一兵堆”仍未认证,第一张图的数量也没补上。外部审阅建议改掉容易让人误以为“已跟踪”的结果标签,并明确颜色未认证,这两点已采纳。下一轮只做一个有限实验:由身体位置给出当帧搜索窗,用真实的文字定位产生候选,再按几何、颜色、唯一性检查后送现有数量 OCR。对照预先冻结:前三张图右侧应得 8/3/3、相邻 12 保持、中间帧不填值;红色干扰、整窗蓝背景和跨区域串牌必须拒绝。如果需要改身体模型、训练 OCR 或普遍放宽阈值,就停止并记录失败阶段。