摘要
Battle Notes(本项目的战斗记录 App)可以导入以前保存的分析结果回看。但如果某张截图的数字读错了,用户只能看,不能纠正。本实验在导入页加了一个功能:在“截图与观察”里选一帧,更正一个已经存在的英雄或生物数值,然后重新运行 SE(状态估计:把读到的观察累积成对局状态和对手构筑的推断);也可以撤销该帧最近一次更正。成功后新快照和所有结果页一起切换并回到这张原图;失败或取消则什么都不发布。原始识别记录、旧分析和撤销历史都保留。
这改善的是人工核对和错误恢复能力,没有改变视觉识别算法,也不是识别准确率提高的证据。
说明:本实验目录只有验证脚本,实现和结果写在 battle_app 模块文档中,本文据此整理。
要回答的问题
能否在不新建数据库、不改公共格式的前提下,让保存结果支持“更正一个读数 → 真实 SE 重算 → 另存 → 撤销”,并且保证只改所选字段、来源不一致时拒绝?
数据与来源
一段已曝光的训练录像(10 月 10 日 01:39)的已保存分析结果(49 帧),不是独立测试集。只复制小型保存快照、原始读取 JSON 和媒体时间日志到独立演练目录;原图和录像仍引用正式保留的来源,没有复制视频、没有重新识别。
方法
复用已有机制。 实时截图页原本就有“编辑 / 有效结果 / 撤销”的会话机制。本实验让保存结果的更正会话继承同一套语义,只在深复制的会话上追加已有格式的编辑记录,不写原会话;没有新建更正数据库或修改公共格式。
准入规则:
- 只允许本次请求中唯一的帧、唯一的完成尝试和原输入版本;只接受真实截图的 SE 输入,拒绝来自规则模拟器的输入走这个入口。
- 必须找到对应的原始读取记录,且“原始记录 + 已有编辑”得到的有效读数必须与保存请求一致;只兼容同一 Windows 路径的不同分隔符写法,不把同名文件当作同源。
- 只支持准备页、英雄 HUD、生物面板上已有的数值字段(攻防、法强、数量、杀伤范围等);不创建缺失字段,不改身份、阵营、日志或规则;新值经过原有校验器。
- 更正值仍是“候选”,留空就是“未知”;不确认单位实例、命中时间或构筑。
- 只替换所选帧,其他帧和请求设置原样保留。
重算与发布。 复用上一轮的真实 SE 进程重算。新请求、编辑后会话、SE 结果和重算回执一起存为新快照;写完后在目录锁内再次检查原快照、录像、指针和原始记录没有变化,才发布最新指针。取消、超时、坏输出或磁盘失败时,旧快照继续生效。
设置
在实际生产导入页上点击按钮 → 真实 SE 公开入口重算 → 保存 → 重新打开。先用完整 49 帧重算一次作为同版本基线,再做两组演练。界面在隔离的离屏 Qt 中验证;没有启动、安装或重启用户 App。
结果
| 选择 | 保存读数 | 模拟人工值 | 结果 |
|---|---|---|---|
| 第 5 帧右侧英雄攻击 | 9 | 10 | 整个请求只有该字段变化,SE 结果确实变化;撤销后完整请求和 SE 结果都等于基线 |
| 第 6 帧太阳圣盾面板攻击 | 18 | 19 | 同上;同种生物的其他面板和其他单位没有被改动 |
这两个值是故意改的,用来演练链路;不能说游戏画面上真实攻击是 10/19,也不能说修正了两处真实 OCR 错误。最后全部撤销,保留 4 条更正/撤销记录;原保存文件的大小和修改时间复查不变。
软件检查: 新增 27 个测试节点,覆盖完整保存/导入/撤销、单帧字段隔离、连续更正撤销、未知、非法值、原始记录缺失或歧义、不同来源、坏输出/取消/原始记录变化时拒绝发布、实际按钮更正后重新导入、拒绝模拟器来源等。9 个相关文件合计 156 个不同检查通过。这些检查不证明实战识别准确率或安装版可用性。
按外部审阅建议补做并通过:更正计数文案改为“未撤销的编辑记录数”;复合字段(如杀伤范围)用 JSON 数组输入,实际界面接受 [4,9]、拒绝标量 9 和逆序 [9,4];确认重复任务/字段在启动 SE 和发布前都会被拒绝;数值入口不能撤销旧的非数值更正。
失败与负结果
- 正式保留结果的原始 JSON 用正斜杠、SE 输入用混合斜杠,第一次更正准入被严格比较拒绝;只对“解析为同一文件”的路径字段保留请求原写法后通过,没有放宽其他字段的相等要求。
- 首次代码检查报告了导入格式等问题,已修复。
局限
- SE 的严格输入没有逐字段的“人工来源”类型;单独拿走 SE 结果文件会缺少旁边的更正历史,需要通过完整快照、App 或 HTML 核对。
- 无法控制不遵守目录锁的任意外部程序,只能在检测到变化时拒绝发布。
- 缺原始记录或旧人工摘要没有输入版本时,更正入口不可用(只读回看和原有 SE 重算仍可用)。
- 安装版尚未更新。
结论与下一步
保存结果现在可以安全地更正、重算和撤销,所有改动都可追溯且不覆盖原始记录。下一步不再扩建更正界面或做更多同类演练,而是用已有人工标注的来源建立一组有限的逐字段回归,找出实际错误最多、对 SE 影响最大的读取器,修一个真实的识别错误。
Comments