跳到主要内容
返回博客
工程 2026-04-30 · 8 分钟阅读

两秒 OCR 背后的工程实现

两秒 OCR 背后的工程实现

收据照片是一种极具挑战性的输入:数周内便会褪色的热敏纸、卷曲的边缘、沾染的指纹油渍,以及一位通常正于行走中的拍摄者。我们的第一代处理流程在实验室环境中达到了百分之九十一的字段准确率——然而在真实场景下,仅余百分之六十四。

此一突破并非来自于规模更大的模型,而是源于我们接受了一项事实:照片本身仅构成一半的信号。收据上的商户名称往往遭到截断(如「7-ELEVEN ST」、「WELLCOME 12」),然而结合时间、货币与使用者历史记录加以研判,其完整身份便昭然若揭。

因此,处理流程采取两阶段执行。第一阶段由视觉模型逐字转录——不进行臆测、不进行「善意」的补完。第二阶段则由另一模型基于该逐字稿,并结合上下文进行推论:此处为总计或小计?「DEPARTURE」为商户名称或栏目标题?该褪色字符究竟为 3、为 8,还是应诚实地标示为「?」?

「逐字优先」的原则,其重要性超乎表面所见。一个自信满满地捏造合理数字的 OCR,其危害远甚于坦然承认不确定的系统——因为被捏造而出的数字将悄然侵蚀整本账目的可信度。我们的准则为:「?」是一项特性,而幻觉方为缺陷。

如今,自拍摄照片至完成归档的端对端处理时间中位数为一点八秒,并于最常见的十一种书写系统中达到百分之九十八点七的字段准确率。余下的百分之一点三,正是我们坚持将「回复错误即可更正」的反馈回路维持于一则消息之遥的原因。

重点整理

  • 先逐字转录、后推理 —— 绝不允许模型臆测。
  • 上下文(时间、货币、历史记录)可以还原被截断的商户名称。
  • 「?」是一项特性;捏造的数字才是缺陷。

相关文章

告别追赶纸本

准备好告别收据混乱了吗?

注册并登入不到 10 秒,首三十张收据由我们请客。