任务架构

Android 离线表单字段提取工作流

围绕表单字段建立可追溯的 OCR、候选值、确定性校验和人工确认链路。

审核状态: 内容已校验;中文稿供用户审核 · 2026-10-04 · Fact IDs: OCR-DEDICATED-01, PRIVACY-01

直接回答

可靠的表单提取应是分阶段工作流,而不是一次模型提示。保留原始图片或文档作为证据,生成带版本的 OCR 结果,再把原文字段映射成有类型的候选值,逐项验证,展示不确定性和来源,最后由用户纠正或拒绝后再保存、导出。`OCR-DEDICATED-01` 说明文字识别结果可以由块、行和元素等结构组成,而非一段无法追溯的字符串。`COVE-OCR-01` 记录了 Cove Photo 的实现路径:可见文字与其他结果分开表示,并支持复制或仅 OCR 历史导出。这些事实支持区分处理阶段,但不能证明某种表单、字段、语言或图像一定识别准确。 第一条边界是“识别到的文字”和“解释后的字段”不同。OCR 可能返回文本及其结构位置;后续解析器才会推断某段是日期、金额、地址或编号。应同时保留识别原文和映射值,并能互相定位。不能悄悄修改前导零、标点、日期顺序、小数分隔符或编号。必需字段没有对应原文时,应记录为“缺失”,而不是生成一个看似合理的值。如果两个文本片段都可能填入同一字段,应保留歧义状态,除非存在清楚且经过测试的选择规则。 将提取结果设计成有类型且有版本的结构。每个字段可以包含候选值、原文片段、仅在实现确实定义时才有的置信类别、校验结果和审核状态。不要编造数值置信分数。状态至少区分已接受、需复核、缺失、拒绝和暂不支持。未知字段应该依据明确的版本策略保留或拒绝,而不是无声丢弃。记录 OCR 引擎与配置、图像预处理版本、解析器版本和字段结构版本,以便以后定位变化;一份样例成功不能变成准确率宣传。 人工复核界面要靠近来源。用户选中字段时应能看到对应原文,适合时还要能查看对应图像区域。显示诸如去除空格或应用日期格式等变换。用户可以恢复原文字段、修正、留空或取消整次提取。对于支付参考号、药品标签或账户编号等有实际影响的数据,应明确要求确认,不要把模型解释呈现为已验证事实。导出时默认只包含已复核字段,或清楚标出仍未确认的候选值。 使用带版本的合成样例集覆盖清晰文字、低对比、倾斜、多列、重复标签、缺项、歧义日期、标点、前导零和意外文字;若不支持手写,就不要顺带暗示覆盖手写。为每个字段定义预期属性,而不是只判断最终表格看起来是否漂亮。分别检查拍照/导入、旋转和预处理、OCR 结构、字段映射、校验、人工编辑、保存、导出和删除。表单经常含个人信息,因此源图和派生文字的保留策略必须清楚。自动化使用合成样例,不记录真实表单内容。失败要能恢复:按用户选择保留源文件、标明部分提取、允许修改,并避免用未经复核的猜测覆盖旧记录。 所有对外描述都要受确切实现和测试集约束。“应用在这组样例中能提取这些字段”是有限声明;“离线准确读取任何表单”不是。若把专用 OCR 库与本地语言模型组合,应分别说明两者职责。OCR 输出是识别文字的证据,并不能证明下游语义字段正确。将这些阶段分离有助于测试、允许用户纠错,也能阻止无证据的准确率或设备兼容说法进入产品文案。

用户在确认报销前提取收据字段

收据图像含商户名、日期、总额和参考编号。OCR 返回多行文本,解析器需把文本映射到字段,其中部分值存在歧义。

决策

在建议字段旁保留原文片段,标记歧义,并在写入报销记录或导出前要求用户复核。

预期结果

保存的记录来自已确认值,能够保留用户修改,不会静默伪造缺失编号或规范化不确定数字。

需要收集的证据

只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:

  • OCR-DEDICATED-01:识别文本可按块、行、元素组织
  • COVE-OCR-01:项目代码区分结构化可见文本与导出
  • ANDROID-CAMERAX-ANALYSIS-2026-01:图像帧有明确资源释放要求

任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。

实施流程

  1. 给图像来源和 OCR 阶段加版本. 记录样例标识、方向/预处理版本、OCR 库配置和结构化结果。原始识别片段必须与语义解释分开保存。
  2. 将原文映射到有类型的候选字段. 为日期、金额和编号使用明确规则。每个候选都关联来源片段,并区分缺失、歧义、无效和暂不支持。
  3. 校验但不要静默纠错. 确定性检查必需字段和格式。除非规则明确且界面展示变换,不得修改前导零、货币分隔符、编号或日期顺序。
  4. 建立来源可回看的人工复核. 允许用户查看候选字段对应的 OCR 文本或图像区域,进行修正、留空或取消;影响保存记录的字段应有显式确认。
  5. 测试保存与隐私路径. 用合成表单测试保存、编辑、导出、删除、生命周期恢复和日志。确认默认只导出复核过的值,原始表单内容不进入遥测。

让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。

验收标准

  • 每个候选值都关联 OCR 原文片段并有明确状态;缺失或歧义输入不会被静默伪造。
  • 用户可修改、拒绝或留空;未审核候选不会在保存或导出中被表达成已验证事实。
  • 有版本的合成测试覆盖数据变换、失败、持久化、删除和隐私敏感诊断输出。

决策对照表

维度选择或证据解读方式
OCR 文本识别出的原文字段记录识别器返回内容,但不能证明字段语义。
字段映射有来源的类型化候选值连接证据和校验规则,同时保留不确定性。
已复核记录用户确认的输出可按产品契约保存或导出,但仍不是普遍准确率保证。

需要避免的失败模式

  • 把 OCR 原文直接当成已验证字段
  • 静默改写日期或编号
  • 将一份样例的结果说成普遍准确率

还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。

最小复现记录

层级记录内容
设备厂商、型号、芯片、内存档位、操作系统版本
软件应用版本和 Git 提交号
模型系列、变体、版本、格式、文件长度、摘要、量化方式
运行时名称、版本、请求后端及实际后端证据
工作负载样例版本、输入摘要、提示词摘要、输出策略
结果完成、失败、取消、回退及保护隐私的诊断信息

发布检查表

  • ☐ 主要搜索问题已回答,且没有未经支持的数字。
  • ☐ 所有模型文件和运行时版本均已固定。
  • ☐ 代表性任务和失败处理策略均有说明。
  • ☐ 生命周期、取消、清理和回退均已测试。
  • ☐ 用户内容与网络边界均有说明。
  • ☐ 结论只适用于被记录的配置。
  • ☐ 新增测试结果时链接到原始方法或证据。

来源与相关证据

中文部署与排错专题见。奇连 AI 端侧专题。

常见问题

OCR 输出能证明提取金额正确吗?

不能。OCR 只提供识别文字;解析器仍可能选错片段或误解分隔符。应保留每个字段对应的原文来源,展示格式转换,并要求用户复核不确定或有影响的金额。

缺失字段应该交给模型补齐吗?

没有明确产品规则和证据时不应补造。应将字段标记为缺失或歧义,保留原始材料和其他已确认值,让用户提供或确认,而不是静默生成数据。

一个表单样例能证明广泛提取准确率吗?

不能。结果仅适用于记录的样例、预处理、OCR、解析器和字段结构。准确率主张需要有代表性的版本化评测集、预先声明的评分方法和可复核的原始运行记录。