摘要

Logs 战斗日志的每一行形如 [时:分:秒]玩家:某生物(数量)受到了N伤害。死亡单位:M。。生产读取器对每一行读三次 OCR,三次解析结果完全一致才接受。本实验先在 6 张难例截图上测量这条基线,发现 16 行“未知”都有同一个原因:三次读取中至少一次丢了时间戳的右括号 ],导致这一次句式解析失败——这是句式不一致,而不是 OCR 分数低(这些读取分数都在 0.90 以上)。

于是只冻结一个候选:对这些未知行,如果恰好有两次读取解析出完全相同的结果、另一次解析失败,就接受。这个候选只处理已保存的 OCR 结果,不读图、不调用 OCR。结果:正确输出的日志行从 24 增到 36,没有新增错误;负例页仍然零误报。

本文的结果数字取自实验保存的结果摘要文件(该实验目录只有协议文档,没有单独的结果报告)。

要回答的问题

  1. 生产日志读取器在短页、滚动长页、半透明背景页和非日志页上的逐行、逐字段表现如何?
  2. 未知行的主要原因是什么?能否用一个不改读图、不补字的保守规则把它们安全地找回?

数据与来源

6 张已有的原生 PNG,来自 5 段录像:

案例 内容
短页 5 行可见日志
滚动长页 29 行可见日志(1 行全文看不清,记为不确定)
洞穴背景页 6 行可见日志,半透明背景
3 张负例页 战场、英雄画面、能力说明(其中“660 伤害”是说明文字,不是日志事件)

合计 40 行可见日志、39 行可读。6 张原图在新预测前各以原生分辨率看过一次;参考文字复用之前已审的逐字标签,看不清的不按目录补字。这些来源以前曝光过,所以是开发评估,不是盲测。

方法

固定评分规则(事先写定):

  • 参考框只交给评分器,不进入 OCR。预测行与最近的参考行纵向中心相距 16 像素以内才匹配;一行对应多个预测算歧义,不拼接。
  • 全文比较只做 NFKC 规范化和去空白,保留所有标点、括号、玩家名拼写。
  • 字段比较(伤害、死亡数、失去/恢复魔力、法术)必须在对应的行和角色上,玩家、时间、主体都要对;对的数字放在错的行上也算错。参考中未知的字段不计分,不当作 0。
  • 整页正确要求所有已知行都对、零多余行、负例页零误报。

基线: 每张图调用一次常驻生产路由器的日志模式,保存完整响应和原始 OCR 结果。

唯一候选: 对基线的未知行,要求恰好有 3 次已有读取,每次文本非空、不超过 2048 字符、分数 ≥0.90、来自原行框;用现有句式解析每次的原文;只有“恰好两次解析出相等的非空结果、一次解析失败”才接受,并采用按保存顺序第一个完整原文。三次互相矛盾、只有一次有效、分数低、两次有效但不一致,仍保持未知。不修字、不拼接、不读参考答案。

设置

候选实现、协议和测试在应用前冻结;全部输出先写入新目录,再加载参考评分。之后不调参、不做第二种方法、不重新 OCR。新增 OCR 调用、读图、解码、GPU 调用均为 0。

结果

逐行合计(40 行可见、39 行可读):

基线 候选
定位到的行 40 40
正确输出的行 24 36
输出的行 24 37
拒读(未知) 16 3

候选多输出的 1 行对应参考中“全文不确定”的那一行,单独报告,不算正确也不算错。原来已输出的 24 行全部保持不变。

主要字段(预期数 / 正确 / 错误 / 缺失):

字段 基线 候选
受到伤害 13 / 3 / 0 / 10 13 / 11 / 0 / 2
显示的死亡数 13 / 3 / 0 / 10 13 / 11 / 0 / 2
失去魔力 5 / 4 / 0 / 1 5 / 5 / 0 / 0
恢复魔力 6 / 4 / 0 / 2 6 / 6 / 0 / 0
法术 5 / 5 / 0 / 0 5 / 5 / 0 / 0

逐页: 短页从“错”变为整页正确(新增 3 行);滚动长页新增 10 行,仍有 2 行拒读,因含不确定行,整页结论仍是“未知”;洞穴页没有变化,仍有 1 行拒读、整页“错”;3 张负例页基线和候选都是零误报。

候选处理全部 6 个保存响应用时约 0.0018 秒,评分约 0.020 秒——这是保存 JSON 的后处理时间,不是图像读取速度。

失败与负结果

  • 洞穴半透明背景页的 1 行、滚动页的 2 行仍然读不回来。
  • 同一 OCR 引擎的两次一致可能共享同一个错误读数,所以“二比一”不是独立投票,也没有校准置信度。
  • 本批没有覆盖只有一两行的页、被部分裁掉的行、可证实的淡出过渡和缺字体的外文名。之前一个相关实验没有找到交付物或报告,记为不完整。

局限

  • 已曝光的开发来源,不是盲测;样本只有 6 张图。
  • 候选的接受语义与公共“三次一致”合同不同,是单独的实验格式,不是默认行为或已确认的行动。

结论与下一步

日志未知行的主因是右括号偶尔丢失造成的句式不一致;在已保存读数上采用“两次一致、一次失败即接受”可以把正确行从 24 提到 36 且没有新增错误。结果已交给主会话独立验收;要推广,需要在更多独立来源上验证,并决定是否修改公共合同。