摘要

游戏里把鼠标停在法术、技能或按钮上,会弹出一个提示框(tooltip),写着名称、说明、等级、魔力消耗等信息。有些提示框只出现很短的时间,而且刚出现时是半透明淡入的。

前一个实验已经能完整定位提示框,但它按每秒 10 帧采样:有 3 次“魔法书”标签展示,每次在 10 帧/秒的采样里只有一张清楚帧,结果全部没被选中去读。用户的要求是:自动流程可以跳过淡入淡出的过渡,但不能因此漏掉清楚、独特的内容。

本实验加了一个“短时加密采样”:平时每 100 毫秒检测一次;一旦检测到提示框但还没稳定选中,就在最多 300 毫秒内以 25 毫秒为间隔请求后面真实到达的帧,选中、消失或超时就结束。不插值、不用未来信息回头决定过去的采样。结果:那 3 次“魔法书”标签全部被选中,OCR 都读对;冻结后评估的 12 个文字字段 12 对、0 错、0 未读。但训练里同内容的多余读取从 10 次增到 11 次,新发现的一个极短提示仍然漏选。

要回答的问题

在只看过去和当前帧的前提下,能否通过在发现提示框时临时提高采样密度,补回那些只有一两张清楚帧的短提示,同时不选中过渡帧、不明显增加计算?

数据与来源

  • 复用之前实验的 13 个录像窗口:训练 7 个窗口(属于 3 个来源组),评估 6 个窗口(属于另外 2 个已暴露的来源组)。提示框检测模型的训练数据属于 7 个组。训练与评估在两个层面上都没有交集。
  • 评估来源以前看过,因此这是有限回归测试,不是新的盲测;冻结测试素材没有打开。
  • 录像实际帧率约 29.97 帧/秒,所以“更近的帧”通常就是相隔约 33 毫秒的真实相邻帧。

方法

  1. 不改检测器。 复用前一实验冻结的完整提示框检测模型和局部“画面已稳定”判断,没有重训,也没有调检测阈值。
  2. 常规节奏。 每 100 毫秒请求一次检测(原 10 帧/秒函数的签名和默认结果不变)。
  3. 加密触发。 当前帧检测到提示框、但还没被选中去读时,在最多 300 毫秒内每 25 毫秒请求一次后续真实帧,直到选中、提示消失或超时。
  4. 选中后读取。 选中的原生分辨率裁图交给 OCR。
  5. 参数只根据训练回放选定,冻结后才跑评估。

检测、画面稳定、是否新内容、文字是否可读,这是四个不同的问题;本方案不能一次统一解决它们。

设置

额外采样都逐张审过是否清楚可读,而不是只看时间是否落在原来的采样区间里。所有被加密触发的淡入帧都保留记录。

结果

指标 训练回放 冻结后评估
原 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 秒仍未达成。