摘要

战场上每个兵堆脚下有一块数量牌,显示这一堆还剩多少只。当时的数量牌定位是规则方法:先找牌上方的彩色血条,再检查牌内的浅色字形(glyph,数字笔画形成的小连通区域)。在一张图上,同一块牌(数字 215)被提议了两次——两个提议的血条起点不同,但颜色、血条竖直位置和字形框完全一样。

本实验只验证一个事先冻结的去重规则:只有当两个提议的颜色(红/蓝已知)、血条上下边、以及完整的字形框列表完全相同时,才视为重复,保留颜色占比更高的那个。验证只用已保存的几何数据,不读图、不跑 OCR 或模型。结果:102 个提议变 101 个,只删除了已知的那个重复,没有丢失任何参考目标。

要回答的问题

这个精确去重规则能否在不丢失任何真实目标的前提下,去掉已知的重复提议?

数据与来源

  • 输入:上一轮已保存的 8 张图的几何结果(共 102 个提议)。原图只读取文件元数据,不解码像素。
  • 8 张图分两组:4 张“开发扩展”、4 张“已曝光来源诊断”,都不是盲测。
  • 参考:一份事先审核过的固定参考,共 105 个数字区域(98 个可读、7 个不可读);只在预测全部写盘后才由评分进程加载。

方法

分组条件(全部必须完全相等):已知的红/蓝颜色;血条的竖直上下边;完整、非空、排序后的字形框列表。颜色未知或字形为空的提议永远单独保留。不使用模糊重叠、IoU、并集、部分字形共享、数字值、OCR 文字、身份、身体或未来帧。

保留哪个:按实际颜色占比降序、血条宽度降序、竖直/水平位置升序、原编号排序取第一个;保留项原样复制,被抑制的写到单独的侧表。

安全性审核:对每个被抑制的组,检查组内每个成员对应的参考目标。若成员对应不同参考目标,拒绝;若没有参考,标为“无法判定”而不是“安全”;只有组内所有成员都对应同一个参考、且保留项仍覆盖它,才算安全。

评分:沿用已有匹配规则——提议牌覆盖参考数字区域 ≥0.5 且包含其中心,确定性的最大一对一匹配。这些是几何覆盖计数,不是 OCR 准确率。

设置

规则、配置、转换器、评分器和软件检查在转换前先冻结;转换只运行一次(有开始凭据防止重跑)。转换段耗时 0.0031173 秒,不含启动和写文件,也不是识别延迟。

结果

范围 提议 基线→去重后 可读覆盖 不可读覆盖 额外重复 基线→去重后
开发扩展 4 图 55→54 53/54 1/2 1→0
已曝光诊断 4 图 47→47 43/44 4/5 0→0
合计 8 图 102→101 96/98 5/7 1→0

唯一被合并的一组:两个成员颜色都是红色、血条竖直位置都是 [575,579]、字形框列表完全相同 [[347,586,360,595]]。颜色占比 0.6616 的那个保留,0.4699 的那个被抑制;两者对应同一个参考目标(数字 215)。审核结论:安全、单一参考;不同参考碰撞 0、无法判定组 0、丢失参考 0。其余 101 个提议与原记录完全相同,所有一对一匹配不变。

失败与负结果

  • 去重不能提高召回:原本漏掉的红 50、蓝 26 两块可读牌以及另两个不可读目标仍然漏掉。
  • 也没有处理历史上的其他误读,没有重新测 OCR 准确率。

局限

  • 只有 8 张已曝光图,结论仅对固定参考和原匹配规则成立,不能证明对其他皮肤、遮挡或战斗都安全。
  • 18 项软件检查(精确/排序字形相等、同数字不同几何、部分交叠不合并、颜色/位置差异、未知/空字形、稳定排序、输入不变、幂等、安全/多参考/无参考判定)全部通过,但它们只验证代码行为。

结论与下一步

这个极保守的精确去重规则做到了它该做的:只删除已证实的重复,没有误伤。它通过了在已保存几何上的有界验证,但仍待独立验收,没有提升为生产默认。数量牌的主要缺口——上游漏提议——需要另外的方法解决。