标准回答
两种技术路线
- OCR + LLM:先用 OCR(PaddleOCR、云 OCR)把图上文字全识别出来,再把文本 + 「请抽取以下字段」的 prompt 给 LLM,输出结构化结果。版式适应性强。
- 多模态大模型直读:直接把图片发给多模态模型,让它「读这张发票,按 JSON 返回金额、日期、抬头」。一步到位,对复杂版式更省事,但成本和延迟更高。
结构化抽取
关键是给定 schema:明确字段名、类型、是否必填,要求模型严格按 JSON 输出。再用 few-shot 给个样例,输出更稳定,方便下游直接入库。
校验与兜底
抽出来不能直接信:
- 规则校验:金额是不是数字、日期合不合法、身份证/发票号校验位对不对。
- 置信度:每个字段带置信分,低于阈值的标红转人工。
- 关键场景(财务入账、实名认证)保留人工复核环节。
难点要预期
票据版式五花八门、手写体、盖章遮挡、拍照模糊都会掉点,对这些 case 要专门测试和兜底,别假设一次识别就 100% 准。
常见误区
⚠️ 常见踩坑
抽出的字段不做任何校验直接入财务系统,金额识别错一位就是事故;以及假设所有票据版式统一,遇到手写/异形票据识别崩了却没有人工兜底通道。
追问
追问 1:OCR+LLM 和多模态大模型直读,实际怎么选?
版式相对固定、量大、要低成本,用 OCR + LLM,OCR 便宜、LLM 只做抽取;版式杂乱多变、手写多、想快速上线,多模态直读省去 OCR 调优,但单次成本高、延迟大。也可以混合:先 OCR,置信度低的 case 再交多模态大模型兜底。
追问 2:怎么衡量这个 OCR 抽取功能上线后到底准不准?
建标注集:一批真实票据配人工核对的标准字段,算「字段级准确率」(每个字段对没对)而非整张图对错。区分字段难易(印刷金额 vs 手写备注)分别看。上线后采样人工抽检,统计哪些字段、哪类票据错得多,针对性优化或加人工复核。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具
- PaddleOCR
百度开源的多语言 OCR 工具,75,995+ stars。支持 80+ 语言识别,提供超轻量级中文 OCR 模型(仅几 MB),可部署于服务器、移动端和嵌入式设备,是工业级 OCR 方案的首选