直接回答
全页菜单测试关注布局和项目对应关系,不只是摄像头能否识别出几个字。审核者应检查工作流是否保留独立区域、阅读顺序,以及价格或说明仍属于哪个菜品。`OCR-DEDICATED-01` 描述结构化的块、行和元素识别结果;`COVE-OCR-01` 记录已检查的产品路径中有结构化可见文本字段和复制/导出功能。这些事实都没有证明某款产品会按特定方式分割整页菜单,也没有证明翻译保留了全部视觉关系。 本文将范围缩小到长菜单图的“区域—文字映射”和阅读顺序。它不声称某个应用支持离线全页拍摄、不证明某种语言对可用,也不保证所有菜单布局都能读出。一般拍摄设置,例如光线和距离,应作为受控输入记录,但核心测试问题是输出是否仍把文字映射到正确区域。逐项裁剪和整页输入是不同条件,不能相互代替。 准备带明确区域标注的样例:分区标题、至少两栏、菜名、说明、价格、脚注和重复标识(例如饮食标记)。由熟悉源语言的审核者提供字面转录,并标记预期顺序和区域关系。再准备一张含窄小或遮挡区域的样例,但不要推断缺失文字。记录图片标识、方向、裁剪/缩放操作和 OCR 输出。图像要获准使用,不能含个人隐私。 结果结构应把源文识别、翻译和解释分开。若所选识别器能提供来源区域或顺序标识,OCR 片段应保留该信息。翻译阶段不能静默交换两栏,或把价格移动到另一道菜。如果流水线仅返回扁平字符串,审核者不能假设布局关系还在,应记录这个限制,并测试 UI 能否让人将每个译文块与原图对照。模型总结很流畅,也不能证明所有菜品都被捕捉。 各阶段独立评估:图像拍摄/导入、方向修正、区域检测、阅读顺序、字面文字、译文、人工复核、修正、导出和删除。测试裁剪或透视时每次只改一个变量。保留供审核的中间结果和合成标识,避免把私人内容放进分析。取消或识别失败后不能留下被标成“完成”的假结果。菜单太密或文字被裁掉时,安全结果可能是请用户靠近拍摄某个区域,而不是补造缺失菜品。 看输出前先写验收规则:每个区域是否都有状态;菜名和价格是否对应;标题和脚注是否区分;用户能否拒绝不可读区域;界面是否并列显示原文和译文。这些是结构属性,不是翻译准确率。如果还要评估含义,应另用核对过的目标参考;任何分数都需说明语料、评分政策并留原始结果。不要用几张菜单虚构准确率百分比。 报告写明构建、图像样例 ID、拍摄/导入路线、预处理配置、OCR 结构、翻译阶段和限制。通过仅支持被测布局与配置,不代表所有文字系统、语言、纸张大小、餐馆菜单或设备。这项独立的区域/阅读顺序测试可以补充单区域拍摄检查,重点是长图是否保留文字与用户想选的菜单项目之间的可用映射。
审核者检查价格分列的双栏菜单
图像含分区标题、菜名、说明和两栏价格。扁平 OCR 字符串可能读得通顺,却把价格或译文说明错配给另一道菜。
决策
使用带标签的区域图和人工核对的阅读顺序,验证每个译文块仍关联源项目和价格。
预期结果
测试把版面对应关系和不确定状态单独报告,不与语言质量或广泛摄像头能力混为一谈。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- OCR-DEDICATED-01:识别结果具有结构化块、行和元素
- COVE-OCR-01:检查过的项目代码使用结构化可见文本字段
- BENCHMARK-01:质量结果需代表性原始测试
任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。
实施流程
- 建立带区域标记的样例集. 收集获准使用的全页图,标注标题、栏、菜名、说明、价格和脚注。运行前先准备字面转录和预期顺序。
- 记录图像变换. 记录方向、裁剪、缩放、透视校正和拍摄/导入方式。裁剪变化作为独立条件,不能把所有输出变化都归因给模型。
- 检查 OCR 区域与阅读顺序. 将返回块/行与样例区域图比较,记录缺失、合并、重复或错序区域;遮挡文字不得根据上下文补写。
- 核对译文与菜品对应关系. 确认每个译文、价格和说明仍关联原始区域,并让审核者并排查看原文与译文块后修正错配。
- 测试失败、复核与导出. 覆盖过密/裁切页面、取消、识别失败、用户修正、导出和删除;不完整输出应标部分或拒绝,而非完成。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 每个样例区域都标明输出状态和预期阅读顺序,包括缺失或不可读区域。
- 菜名、说明和价格仍对应同一来源区域,否则必须显式标为不确定。
- 报告把结构与翻译含义分开,记录构建和图像变换,结论限定于被测布局。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 单个裁剪菜单项目 | 逐区处理 | 更易检查,但不能验证整页分割或栏顺序。 |
| 全页多栏图像 | 区域映射与阅读顺序测试 | 检查全页关联;扁平文本可读也仍可能丢失版面。 |
| 人工键入转录 | 仅翻译对照组 | 可隔离翻译,但跳过了拍摄、OCR 和版面保留。 |
需要避免的失败模式
- 把可读的扁平文本当作布局正确
- 将价格错配给相邻菜品
- 从被遮挡区域猜补文字
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
- ML Kit text recognition
- Cove 基准测试方法
- Google ML Kit 文字识别 v2
- Android CameraX 图像分析
- Android CameraX ImageAnalysis 参考
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
如果菜单上的文字都识别了,全页测试就算通过吗?
不一定。顺序和项目对应也很重要:所有词都在,价格仍可能分错菜品。必须逐区域核对文字与价格映射,并保存完整核对记录。
模型能根据上下文补被反光挡住的文字吗?
可以产生猜测,但测试必须将区域标为不可读或不确定。不能把推测呈现成捕捉到的源菜单文字,也要保存原图供人工审核。
一张全页菜单能证明所有摄像头翻译都可用吗?
不能。结论仅适用于记录的布局、图像条件、构建和语言配置。其他文字系统、设备或菜单样式需要独立样例、来源、评分规则和证据。