摘要
游戏里把鼠标停在法术、技能或按钮上,会弹出一个提示框(tooltip),写着名称、说明、等级、魔力消耗等信息。有些提示框只出现很短的时间,而且刚出现时是半透明淡入的。
前一个实验已经能完整定位提示框,但它按每秒 10 帧采样:有 3 次“魔法书”标签展示,每次在 10 帧/秒的采样里只有一张清楚帧,结果全部没被选中去读。用户的要求是:自动流程可以跳过淡入淡出的过渡,但不能因此漏掉清楚、独特的内容。
本实验加了一个“短时加密采样”:平时每 100 毫秒检测一次;一旦检测到提示框但还没稳定选中,就在最多 300 毫秒内以 25 毫秒为间隔请求后面真实到达的帧,选中、消失或超时就结束。不插值、不用未来信息回头决定过去的采样。结果:那 3 次“魔法书”标签全部被选中,OCR 都读对;冻结后评估的 12 个文字字段 12 对、0 错、0 未读。但训练里同内容的多余读取从 10 次增到 11 次,新发现的一个极短提示仍然漏选。
要回答的问题
在只看过去和当前帧的前提下,能否通过在发现提示框时临时提高采样密度,补回那些只有一两张清楚帧的短提示,同时不选中过渡帧、不明显增加计算?
数据与来源
- 复用之前实验的 13 个录像窗口:训练 7 个窗口(属于 3 个来源组),评估 6 个窗口(属于另外 2 个已暴露的来源组)。提示框检测模型的训练数据属于 7 个组。训练与评估在两个层面上都没有交集。
- 评估来源以前看过,因此这是有限回归测试,不是新的盲测;冻结测试素材没有打开。
- 录像实际帧率约 29.97 帧/秒,所以“更近的帧”通常就是相隔约 33 毫秒的真实相邻帧。
方法
- 不改检测器。 复用前一实验冻结的完整提示框检测模型和局部“画面已稳定”判断,没有重训,也没有调检测阈值。
- 常规节奏。 每 100 毫秒请求一次检测(原 10 帧/秒函数的签名和默认结果不变)。
- 加密触发。 当前帧检测到提示框、但还没被选中去读时,在最多 300 毫秒内每 25 毫秒请求一次后续真实帧,直到选中、提示消失或超时。
- 选中后读取。 选中的原生分辨率裁图交给 OCR。
- 参数只根据训练回放选定,冻结后才跑评估。
检测、画面稳定、是否新内容、文字是否可读,这是四个不同的问题;本方案不能一次统一解决它们。
设置
额外采样都逐张审过是否清楚可读,而不是只看时间是否落在原来的采样区间里。所有被加密触发的淡入帧都保留记录。
结果
| 指标 | 训练回放 | 冻结后评估 |
|---|---|---|
| 原 100 毫秒采样数 | 630 | 530 |
| 自适应后实际检测 / 筛选数 | 640 | 538 |
| 实际解码到达的帧 | 1,867 | 1,573 |
| 检测到提示框的帧 | 38 | 49 |
| 选中并实际 OCR 的裁图 | 19 | 5 |
| 已审清楚提示展示的覆盖 | 8/9 | 5/5 |
| 同一展示的额外读取 | 11 | 0 |
| 选中过渡帧 | 0 | 0 |
| 第一张清楚帧 → 选中的 p95 | 33.65 毫秒 | 34 毫秒 |
全部 87 张检测图和 24 张选中裁图由助手逐张复核(不是人工审核)。评估的 49 张检测图中 45 张清楚、4 张是可见的过渡帧。没有对其余无检测的帧做穷尽标注,因此不能把它们都算作正确的负例,也不能据此报告框的 AP 或全界面精度。
前一实验中 3 次只有一张清楚帧的“魔法书”标签(训练 2 次、评估 1 次)本次全部选中,OCR 都读对。评估另有两次“姿态”和一次“审判”法术说明也保持正确。声明的 12 个评估文字字段:12 对、0 错、0 未读。范围只包括名称、完整说明、学派与阶级、右上角圈内数字、等级、魔力,没有给圈内数字强加规则含义。
计算:检测 + 筛选的热 p95 约 0.028 秒(只统计这一段)。检测次数只增加 18/1,160 ≈ 1.55%,但实际解码了 3,440 张到达帧,所以检测次数的增幅不代表完整成本。解码、截图、排队、OCR 和 App 显示没有合并计时,App 端到端 ≤3 秒仍未验收。
验证:初始 43 项专项测试、扩展到受影响的稳定性和底部提示测试共 78 项通过;在 3,440 张真实到达帧上重放 1,178 次自适应选择一致,39 个只给前缀的回放一致;原默认 1,160 帧的采样时间、解码时间、源帧索引逐一不变。完整测试套件没有重跑,之前的两个既有失败仍保留。
失败与负结果
- 新发现的漏选。 加密采样在训练里发现一个之前不知道的极短提示“天罚”:第 62 帧明显淡入,第 63 帧可读但背景透出,第 64 帧清楚,之后就消失了。两张可读帧都没被选中。这个新展示计入分母,所以训练覆盖是 8/9,而不是只报告旧目标的 8/8。它的名称、学派阶级、无效目标、1062 伤害的完整说明、圈 6、等级 3、魔力 40 共 7 个字段记为“未选未读”。
- 去重失败。 训练中同内容的多余读取从 10 增加到 11。
- 有一次 OCR 额外读出一个不属于法术说明的“O”,作为未评分的多余输出保留,不能说所有 OCR 都正确。
- 本轮没有解决日志新行或单个数字真实变化的检测。
局限
- 评估来源以前曝光过,样本量小。
- 只改了一个私有的显式工具,默认视频流、App 和下游都没接入。
- 不能为了一张极短的内容无限加密采样,也不应放宽到接收半透明叠字。
结论与下一步
短时加密采样用很少的额外检测补回了只有一张清楚帧的短提示,而且没有引入过渡帧误选。下一步先在训练来源上解决字形轻微晃动导致的重复触发,同时用真实的数值或日志新行变化做反例,确保去重不会吞掉新信息;“天罚”作为固定漏选案例保留。之后再验收它与现有整图读取器的显式组合,才讨论是否默认启用。十场独立真实对战、逐场景逐字段 ≥95%、App 热 p95 ≤3 秒仍未达成。
Comments