核心要点

  • 两条路线:传统 OCR 拿纯文本再用 LLM 抽字段;或多模态大模型直接读图按要求输出结构化字段

  • 抽取要给 schema:明确要哪些字段(姓名/金额/日期/发票号),让模型按固定 JSON 结构输出

  • 抽完做校验:金额格式、日期合法性、证件号校验位,能算的就别全信模型

  • 票据版式多样、手写/模糊难识别:配置置信度,低置信字段转人工复核,别全自动入账

标准回答

两种技术路线

  1. OCR + LLM:先用 OCR(PaddleOCR、云 OCR)把图上文字全识别出来,再把文本 + 「请抽取以下字段」的 prompt 给 LLM,输出结构化结果。版式适应性强。
  2. 多模态大模型直读:直接把图片发给多模态模型,让它「读这张发票,按 JSON 返回金额、日期、抬头」。一步到位,对复杂版式更省事,但成本和延迟更高。

结构化抽取

关键是给定 schema:明确字段名、类型、是否必填,要求模型严格按 JSON 输出。再用 few-shot 给个样例,输出更稳定,方便下游直接入库。

校验与兜底

抽出来不能直接信:

  • 规则校验:金额是不是数字、日期合不合法、身份证/发票号校验位对不对。
  • 置信度:每个字段带置信分,低于阈值的标红转人工。
  • 关键场景(财务入账、实名认证)保留人工复核环节。

难点要预期

票据版式五花八门、手写体、盖章遮挡、拍照模糊都会掉点,对这些 case 要专门测试和兜底,别假设一次识别就 100% 准。

常见误区

⚠️ 常见踩坑

抽出的字段不做任何校验直接入财务系统,金额识别错一位就是事故;以及假设所有票据版式统一,遇到手写/异形票据识别崩了却没有人工兜底通道。

追问

追问 1OCR+LLM 和多模态大模型直读,实际怎么选?

版式相对固定、量大、要低成本,用 OCR + LLM,OCR 便宜、LLM 只做抽取;版式杂乱多变、手写多、想快速上线,多模态直读省去 OCR 调优,但单次成本高、延迟大。也可以混合:先 OCR,置信度低的 case 再交多模态大模型兜底。

追问 2怎么衡量这个 OCR 抽取功能上线后到底准不准?

建标注集:一批真实票据配人工核对的标准字段,算「字段级准确率」(每个字段对没对)而非整张图对错。区分字段难易(印刷金额 vs 手写备注)分别看。上线后采样人工抽检,统计哪些字段、哪类票据错得多,针对性优化或加人工复核。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • PaddleOCR

    百度开源的多语言 OCR 工具,75,995+ stars。支持 80+ 语言识别,提供超轻量级中文 OCR 模型(仅几 MB),可部署于服务器、移动端和嵌入式设备,是工业级 OCR 方案的首选