票据 OCR 方案选型:开源模型与云服务怎么取舍

2026-10-20

刚开始接触票据识别时,我把「发票识别」和「小票识别」当成同一个问题,结果方案选型直接走错方向。这两类场景的技术难度、验收标准、甚至商业方案的价格结构都不一样,搞清楚差别是选型的第一步。

先分清两类票据

增值税发票是标准版式。版式固定,字段位置相对稳定,甚至有官方的版式规范。识别这类票据,只要检测定位准确,剩下的近于模板填充,工程难度低,市面上成熟方案很多。

购物小票完全相反。不同商超、不同收银系统、不同热敏打印机,出来的版式千差万别。有的把商品名和价格分两列,有的合成一行;有的带税号,有的没有;有的用中文,有的中英混排。更麻烦的是热敏纸本身——放久了字迹会变淡,折痕处会断字。

一个直观的判断题:如果打印这张票据的模板只有几种,走模板化提取;如果模板不可穷举,就必须走通用识别加后处理。小票属于后者。

开源路线能走到哪一步

开源方案目前主流是 PaddleOCR 这一类检测加识别的两阶段模型。实际用下来的判断:

代价是调优周期长。图像预处理、后处理规则、异常兜底,每一项都要自己填坑,前期投入的时间成本比调用接口高一个量级。

云服务路线省在哪、亏在哪

各家云厂商都有票据识别接口,按调用次数计费。优点很明确:

但有几个地方要想清楚:

我目前的取舍

基于上面的判断,我的路径是先开源跑通,再决定是否上云:

  1. 用开源模型搭一条最小链路:图像预处理 → 检测识别 → 字段后处理,先把端到端跑通。
  2. 自建一批样本,按字段统计准确率,找出错误集中的环节。
  3. 如果某个环节优化成本高于调用云服务的费用,再把这一环节换出去,而不是整体切换。

这样做的理由是:选型的答案取决于你自己的样本分布,不取决于别人的评测报告。同样是「小票识别」,便利店的小票和餐厅的结账单,错的地方可能完全不同,先有自己的数据再谈方案。

← 返回首页