说明:本实验在状态估计目录里只有一份很短的说明,实际结果报告写在配套的视觉实验里(同日同名实验)。本文根据两者合并撰写。

摘要

状态估计(SE)想要追踪每个兵堆的数量变化,从而推算减员。但一张截图上读到的“数量文字”本身只是屏幕上的一串数字,它属于哪个兵堆、哪个生物,并不自明。在战场上,数量写在每个兵堆脚下的“数量牌”上,牌又在生物身体的下方。

本实验(内部编号 r19)在 SE 侧只做一件事:消费视觉实验保存的原图几何观察和上一轮(r18)的原始文字回执,用“文字在哪块牌的框内”“牌在哪个身体下方”这两种包含关系,缩小每个数字可能属于的身体集合,所有竞争关系完整保留。不调用识别模型、不访问规则模拟器。

结果:用一个旧的学习型数量牌检测器补上了旧路径漏掉的一块牌,使形成“唯一检测链”的数量文字从 9 个增至 10 个。但这只是当前检测集合内的唯一,不是确认的单位身份。

要回答的问题

只靠同一帧内的几何包含关系,能否把读到的数量文字关联到唯一的数量牌和身体?哪些情况下必须保持歧义?

数据与来源

  • 两段用户指定的 10 月 10 日训练录像(16:57 和 01:39),只读已保存的 5 张原图;都是已曝光的开发来源,不作独立测试。
  • 上一轮 13 个文字请求窗:11 个非空、2 个无文字,共 13 个文字框(10 个已接受的字面、3 个拒绝/未知)。没有重跑 OCR 或解码录像。
  • 身体候选:一个窗口的 4 张图复用上一轮的 53 个身体候选;另一来源的一张图用原有模型补读一次,得到 13 个。

方法

  1. 每张图分别跑两种数量牌检测:旧的“暖色边框(rail)”几何路径,和旧的学习型脚牌检测模型(门槛 0.1 和非极大值抑制沿用旧的验证选择,未调整或重训)。保存固定门槛后的全部提议和抑制记录。
  2. SE 侧几何组合:文字框落在哪块牌内 → 牌在哪个身体下方。任一端出现竞争(一块牌对应多个身体,或一个身体对应多块牌),就拒绝“唯一”。
  3. 不用数字大小、颜色或兵种分数来挑选关联;全图所有牌体竞争关系都进入计算,而不只是请求区域附近的成功牌。
  4. 来源或时点不一致直接拒绝;不把不同图片里碰巧相同的身体编号当作同一个。

设置

学习型模型一次构造 0.178 秒,5 次 CPU 预测各 0.165–0.267 秒;SE 几何组合两个来源分别 0.0051 / 0.0010 秒。这些是局部测量,不是整帧时延。

结果

来源 rail 路径唯一检测链 学习型脚牌唯一检测链 仍未知
16:57 窗口 4 图,7 个接受字面 6 7 中间一张右侧无文字;2 个界面文字和一个伤害飘字不进入牌链
01:39 来源,3 个接受字面 3 3 未生成阵营、持久 ID 或事件归属
合计 10 个接受字面 9 10 另 3 个未知文字无脚牌对应;2 个空窗保持未知

新增的那一个:前一张图里的“8”,学习型检测器给出一块牌(模型分数 0.8643,未校准),文字在框内;该牌只关联当帧一个身体,该身体也没有别的合法牌竞争。旧 rail 路径没有找到这块牌。另一来源同一窗口里的 48 和 60 由两块实际检测到的牌分开,各自形成候选,两条关系都保留。

“9 → 10”是这批选定字面的关联覆盖数,不是识别准确率,也不是“10/10 正确”。全图上 rail 路径 58 块牌提议、学习型 68 块,没有全图人工标注,不能比较误报率或召回率。

软件验证:新增 22 项不利条件测试(改变数字、颜色、兵种分数不改变关联;多体/多牌/多文字;请求窗外的竞争牌;坏来源/时点/坐标;空窗)通过,连同旧的同堆空间实验共 46 项;既有相关 59 项通过。

失败与负结果

  • 中间帧的“3”仍未知:学习型模型找到了右侧那块牌,目视可见运动中的字形,但上一轮文字检测没有产生框。缺口缩小到数字检测/读取本身,本轮按协议不换 OCR、不用前后帧补填。
  • 身体模型对该帧的首选兵种分数只有 0.1291,牌定位改善没有修好身体分类,唯一几何链不能偷偷变成兵种身份。
  • 真实竞争:审阅后复核首张图发现 5 块牌的身体关系有歧义——一块牌同时关联两个身体;一个身体同时对应 4 块牌;一块牌下有两个高度重叠的身体检测,没有自行合并。若只保留请求附近的成功牌,就会丢掉这些保护。
  • 相邻尾部与身体框重叠、检测漏掉身体,都可能制造“假唯一”;本轮还没有独立标注的漏体反例。

局限

三个读取器来自同一张原图,不是统计上独立的证据;非极大值抑制、阈值和漏检都可能制造假唯一。目视检查是局部叠框,不是用户复标或完整的身体标签。结果没有生成 App 可导入的关联附件,也不是已安装的产品功能。

结论与下一步

同帧几何关联能补上一个真实的中间视觉对象(那块漏检的牌),但必须把“检测集合内唯一”和“确认的单位归属”严格分开。外部审阅后调整优先级:先在 App 里做显式的关联复核(保存文字引用、牌框/体框、方法来源和全部竞争边,界面写“观察文字”和“可能关联”),再对中间帧的真实牌框做有限的 OCR 补读,最后才考虑跨帧的 SE 推断。