摘要
从录像里挑“关键帧”去做 OCR 时,最怕两件事:一是挑到面板正在淡入淡出、文字半透明的过渡帧,读出错误内容;二是把只停留零点几秒的短提示整个跳过。现有做法是“五帧稳定门”:在缩小的 320 像素画面上,如果相邻五帧几乎不变才放行。它很少放行坏帧,但会漏掉短提示。
本系列研究想知道:给模型更细的局部输入(更高分辨率、固定区域的小格纹理),能否既挡住过渡又留住短提示?主实验的答案是否定的:新的局部质量模型单独使用会放行 5/15 个过渡帧,与旧稳定门组合后与旧稳定门完全一样,没有任何额外收益。之后的五个补充实验(短提示诊断、三帧模型、底栏局部采样、流式接线、分区域采样)分别定位了问题、补回了一部分内容,但每一种都伴随半透明坏图、漏掉状态或候选过多,全部没有接入默认流程。
要回答的问题
- 更细的局部特征能否比旧稳定门更好地区分“清楚”和“过渡”?
- 短提示到底在采样流程的哪一步丢失?
- 有没有一种局部采样方法,能补回短内容又不引入坏图和大量冗余?
数据与来源
- 训练:旧四段录像的 90 个已曝光参考帧,89 个可判帧(清楚/过渡)用于训练,1 个不确定排除。
- 主评估:三段 9 月 23 日的新录像,7 个固定 3 秒片段、10 fps,共 210 个中心时刻;只审原生 2560×1440 画面的中央区域:192 清楚、15 过渡、3 不确定。这些录像已被其它任务看过,是来源隔离的开发评估,不是独立产品验收。
- 补充实验另用两段新录像的 132 个点、一段新来源的 72 个点、底栏 120+180 帧、按钮/提示 64 帧和 33 张静态图、以及 90 张原生重采样图。所有标签由助手标注、待负责人复核,不允许进入训练。
- 两段 9 月 24 日录像和三个预留验收来源始终没有读取。
方法
主实验:局部质量模型 v2。 随机森林(200 棵树、深 6、最小叶 2、类别平衡、种子 44、阈值 0.5)。输入为 1280×720 的五帧:保留旧的 103 维特征,再加五个固定界面区域、每区 4×4 小格的颜色/边缘/运动分布共 60 维,合计 163 维。不是透明度估计。评估时不调阈值。
补充实验(依次):
- 短提示诊断: 先人工按时间网格找片段并逐帧标注,再运行现有五帧模型和原有的“变化候选”分支,逐事件统计在哪一步丢失。
- 三帧模型: 同样的 163 维特征,但只看前后各 0.1 秒的三帧,重新训练;与五帧、以及“两者任一通过”比较。
- 底栏局部采样: 只看屏幕底部 15 个小按钮,各缩成 24×24,五帧内最大色差 ≤8 算稳定,与上次留下的外观差 ≥12 才再留一张;对照为旧整图选择器和“每 0.5 秒抽一张”。
- 流式接线: 把底栏采样做成连续读视频、边选边保存的可选分支(默认关闭)。
- 按钮与提示分开评分: 同一画面分别标注按钮质量和提示质量。
- 分区域采样: 把 640×360 画面分成 16×12 格,每格独立判断稳定和重复。
设置
所有方法在评估前固定参数;离线窗口允许看后两帧,最终代表要等片段结束,不伪装成在线结果。
结果
主实验(210 个中心帧):
| 方法 | 15 个过渡帧中被误放行 | 192 个清楚帧中被误拒 |
|---|---|---|
| 旧五帧稳定门 | 0 | 35 |
| 原 v1 质量模型单独 | 2 | 6 |
| 旧稳定门 AND v1 | 0 | 35 |
| 新局部 v2 单独 | 5 | 0 |
| 旧稳定门 AND 新局部 v2 | 0 | 35 |
新模型放行了选秀卡淡出、英雄面板淡出和一个生物面板。旧稳定门已经拦住全部 15 个过渡,组合没有额外收益。回放七段片段,三种方法都接受 155/210 个窗口、留下 13 个代表。
短提示诊断(两段新录像 132 点): 7 次有清楚样本的事件只留下 3 次,另 4 次全部在五帧稳定门就被拒绝,不是最终代表选择丢的。原有的变化候选提出了 9 个明显过渡点和 1 个不确定点,没有补回任何漏选事件。
三帧模型(新来源 72 点):
| 方法 | 可读事件留下 | 最终代表 清楚/过渡/不确定 |
|---|---|---|
| 原五帧稳定 | 2/5 | 7/0/0 |
| 三帧质量 | 4/5 | 14/2/0 |
| 两者任一通过 | 4/5 | 14/2/0 |
在上一轮 132 点上三帧留下 7/7 事件,但代表中混入 3 张过渡、1 张不确定。
底栏局部采样:
| 片段 | 方法 | 保留图 | 外观覆盖 |
|---|---|---|---|
| 已知 120 帧 | 旧整图 / 每半秒 / 局部五帧 | 12 / 12 / 5 | 3/5、5/5、5/5 |
| 新 180 帧 | 旧整图 / 每半秒 / 局部五帧 | 17 / 36 / 7 | 7/8、8/8、7/8 |
流式接线: 真实扫描 60 秒/180 秒分别保存 1/23 张底栏裁片,用时 31.94/102.02 秒;短扫描的 596 条决策与长扫描对应前缀逐行一致。
按钮与提示分开(64 帧): 局部选择器留 4 张,其中 2 张提示仍在淡入、2 张没有提示;14 张可评分的“提示已清楚”帧全部被当成按钮重复跳过。
分区域采样(154 个采样点,126 个完整判断): 补回两次此前漏掉的“等待”提示,但三个法术书提示事件 0/3;111/126 张图至少输出一个局部区域。
失败与负结果
- 主实验:更细输入没有带来改善,不采用,不提升交付等级。
- 三帧模型:多留了内容,也多留了明显半透明的代表图;“任一通过”只是放宽,不会自动修复质量。
- 底栏局部:第二批里减少了重复图,但不比固定半秒抽样覆盖更多,漏掉了窗口开头 0.2 秒的“变化前”状态。
- 按钮去重:按钮稳定不能替提示放行,按钮重复也不能替提示决定重复;这是可复现的失败,不是 OCR 读错。
- 分区域:候选太多(111/126),几乎失去选帧的意义;书页轻微位移让固定格对不齐提示。
- 33 张原本打算当“桌面”反例的静态图,实际都是选秀、布阵、大厅、加载画面,没有新增桌面例子。
局限
- 所有评估片段都已曝光,人工挑选的短片也不是随机全片验收;相邻点不是独立事件。
- 标签是助手标注、待复核;新旧解码方式(OpenCV 与 FFmpeg)不是逐像素相同。
- 旧模型在新版 sklearn 下加载有版本警告,原样保留。
结论与下一步
更细的输入并不会自动学会陌生画面的淡出;稳定门“挡坏图”和“留短提示”的矛盾仍没有解决。本系列在这些已曝光片段上收束,不再继续调参。可复用的部分(三帧特征、底栏局部采样、流式分支、分区域采样)保留为研究候选,默认关闭。下一步需要让提示区域独立提供候选和去重、处理轻微位移,并在新的独立事件上同时测“拒坏帧”和“留提示”。
Comments