摘要
战场上方的行动条是一排卡片,按顺序显示接下来轮到哪些部队行动,每张卡上写着该部队的数量。在两次行动之间读每张卡的数量,就能算出每支部队的减员(死了几个)。
之前为行动条建立的逐字段参考(项目里称 B182)在一段训练录像(10 月 10 日 01:39)的 576.5 秒处找到唯一一个读错的数量:英雄头像窗口挡住了麒麟卡上“24”的下半截,读取器两次都读成“2”,并且两次一致;状态估计(SE)因此会算出一次假的 24→2 减员。同一画面和 470.5 秒的另外 7 张被挡卡,读取器都没有给值。
本实验想找一个简单的遮挡判据:没被挡的卡,数量框正下方都有同样的卡框下沿(一条亮线加一条暗带);被挡的卡也许就没有。结果两组的指标完全重叠,分不开。不改读取器。
要回答的问题
能否只看数量框正下方两行像素(卡框下沿),区分“数量清楚可读的卡”和“下半部被窗口挡住的卡”?
数据与来源
- 行动条参考中标注的全部原生帧:两段训练录像(10 月 10 日 16:57 作为开发集、01:39 作为检验集),共 200 个时刻。
- 参考是模型目视核对(MODEL_VISUAL_CHECKED),不是人工审核(REVIEWED)。
方法
- 用读取器自己的卡位检测在每个时刻找卡位;200 个时刻的卡位数与标注卡数全部相同。
- 对每张卡,取数量框(相对卡左边 24–84 像素、y 86–121)正下方的卡框下沿:y=119 一条亮线,y=121–122 一条暗带。
- 计算两个指标:lift = 亮线亮度减暗带亮度;spread = 暗带像素亮度的离散程度。
- 与标注比较:数量已知的卡 vs 被挡(标为未知)的卡。不运行 OCR。
设置
只用已抽好的帧,在本地 Perception 环境计算。
结果
| 卡片 | 数量 | lift 范围 | spread 范围 |
|---|---|---|---|
| 数量已知 | 2,340 | 最低 −23.2 | 最高 59.0 |
| 被挡(未知) | 8 | −16.7 到 −0.4 | 22.6 到 64.7 |
两组重叠,任何阈值都分不开。查看 lift 最低、spread 最高的几张已知卡(例如 16:57 录像 1186.5 秒的第 3 张、01:39 录像 717.0 秒的第 5 张):卡框完整、数字清楚,是卡框下面透出的雪地和场景改变了这两行像素。
失败与负结果
卡框下沿两行像素不能作为遮挡判据,方案放弃,不改读取器。
局限
- 被挡样本只有 8 张,而且两次都是同一种遮挡物(英雄头像窗口盖住第 3–6 张卡的下半部)。
- 参考是模型目视核对,不是人工审核。
结论与下一步
影响有限:SE 的减员时间线本来就会把“前后两次读数相同、中间单独一次不同”的读数列为可疑、不算减员。所以挡住期间只读到一次时,这次 24→2 会被拦下;但如果连续两次以上读到错误值就拦不住。要真正解决,需要直接认出遮挡物(如英雄头像窗口),留待以后有更多样本时再做。
Comments