摘要

单位受伤时,屏幕上的伤害数字(“飘字”,左边带拳头或骷髅图标)只出现很短时间。App 正式的离线视频分析在战斗中大约每 40 秒才取一张关键帧,很容易错过这些飘字。本实验(开发诊断,不是 App 新策略)想知道:能否用一个不跑 OCR 的廉价图像探针,在 10 帧/秒的视频里快速找出“可能有飘字图标”的帧,只挑少量去做完整读取?

结果:在三个预先固定的开发窗口里,150 个扫描帧中 31 帧有信号,按规则每窗最多挑 2 帧、共 6 帧;探针每帧中位耗时约 29–34 毫秒。6 张图用现有读取器(v3)读,首轮只有 2/3 个窗口读到字面;查出一张图被“两个文字框仅背景边距相交”误拒后,做了一个窄修复(v4),三个窗口各至少读到一条字面,共 5 条已接受观察。这只证明了有界的技术可行性,还没有接进 App。

要回答的问题

不改正式读取器和 App 预算的前提下,一个廉价探针能否在短窗口里提议出值得完整读取的飘字帧?挑出的帧读出来效果如何?

数据与来源

  • 预先限定三个已知窗口:一段训练录像(10 月 10 日 01:39)的 550–556 秒;另一段(10 月 10 日 16:57)的 585–589.5 秒和 594–598.5 秒。这些是已选的开发样例,不是正式触发点,也不是独立测试集。
  • 另用已有的 28 张图检查探针与完整读取器在“有无图标”上是否一致。

方法

探针:在原生画面下部区域,在读取器使用的红色优势通道和“拳头去粉色”通道里分别找亮度 > 35 的连通块;块的高 18–58、宽 14–54、面积 ≥ 80 且比例合理,才生成局部模板搜索框(外扩 12 像素、重叠去重)。每帧最多 32 个框,超出记为“溢出”(不能当成没有图标)。每个框用原有的模板阈值判断,命中只代表“值得进一步读取”,不输出伤害、数字、阵营或目标。

挑帧:按时间顺序取窗口内第一张有信号的帧,之后至少间隔 500 毫秒再取一张,每窗最多 2 张。不能看完 OCR 结果再挑漂亮的帧;重复帧只是观察,不算两次事件。只保留挑中的原图,不缓存全部帧。

读取:挑中的图先人工目视确认没有面板/菜单遮挡,再用现有 v3 读取器完整读取;首轮结果原样保留。

设置

CPU 8 核限制、串行,复用已有的 10 帧/秒原生解码器。探针耗时只含探针本身,不含解码、模型、OCR 或 App。

结果

探针与挑帧

窗口 扫描帧 有信号帧 挑中 最大搜索框 探针中位 / p95(毫秒)
01:39 录像 550–556 秒 60 15 2 23 29.12 / 34.93
16:57 录像 585–589.5 秒 45 10 2 16 32.88 / 35.87
16:57 录像 594–598.5 秒 45 6 2 18 34.06 / 36.94

共 150 帧、31 帧有信号、6 帧挑中;12 个信号因 500 毫秒间隔跳过、13 个因每窗 2 张上限跳过,119 帧无信号,0 次溢出。28 张旧图上,探针的图标有无与完整读取器一致(这不是数字准确率)。

挑中图的读取

采样时刻(毫秒) 首轮 v3 修复后 v4
552200 拳头 −821;另一个拳头字面触边被拒 不变
552700 骷髅字面未知,其他可见飘字没全部检出 不变
586600 拳头字面组件不完整,未知 不变
587100 两个文字框相交,拳头/骷髅都被拒 拳头 −314、骷髅 −5
595600 拳头 −27 不变
596100 拳头 −27 不变

误拒修复:587100 毫秒那一帧,两个文字框的交集区域里两个通道都没有超过阈值的前景墨迹——它们只是背景边距相交,文字本身是独立的;v3 却按“矩形相交”一律拒绝。v4 只在相交区域两个通道都没有前景时放行,任一通道有墨迹仍拒绝;模板、OCR 门槛不变。34 张图(旧 28 + 新 6)完整重读:旧 28 张全部不变,只有这一张改变。相关 116 项测试通过。

失败与负结果

  • 首轮只有 2/3 个窗口有接受字面;6 张中仍有 2 张没有任何接受字面。
  • 第一个窗口读到的是 −821,不能宣称该窗口 553 秒附近的 −1200 被自动捕获。
  • v4 的放行条件依赖像素阈值,低对比背景与弱墨迹仍可能混淆,这不是证明文字独立的通用方法。

局限

  • 只测了三个开发窗口;没有测整局、跨场景的误触发率和溢出频率,没有自动判定遮挡。
  • 没有证明这样做能保住正式的面板、日志、魔法书读取预算,也没有接入 App 的生产、保存、导入和界面。
  • 5 条已接受观察(含重复的 −27)不等于伤害事件数,未知和未检出都不是零。

结论与下一步

廉价探针加有界挑帧在技术上可行,探针和 v4 修复先冻结,不再扩大私有研究。根据外部审阅建议:在接入负责人确认分工后,先在正式视频分析路径上做一次不增加模型调用的“影子预算”对照——统计整局的触发与误触发、实际成本、原有面板/日志/书页是否保住——再决定是否为瞬态飘字设例外额度。不能把这三个窗口硬编码成正式触发器,也不能把这 6 次 OCR 当作整局预算问题已解决。