多模态收据识别流水线:从拍照到结构化字段
报销与小微记账里,收据照片是常见输入。多模态模型能直接看图出字段,但要把「能认出」变成「敢入账」,需要流水线:拍摄 → 抽取 → 校验 → 抽检。
目标输出
典型字段:商户名、日期、币种与金额、税号或订单号(若有)、支付方式、是否含税。缺字段要显式标记,而不是猜。
流水线步骤
- 拍摄规范:平整、补光、避免裁切金额行;一单一图
- 抽取:多模态模型按 Schema 输出 JSON
- 规则校验:日期格式、金额合计与分项(若有)、币种
- 低置信升级:模糊、手写、外币 → 人工
- 抽检:按日随机复核若干张
提示词示意
你将看到一张收据图像。只提取可见信息,输出 JSON:
merchant, date, currency, total, line_items[], payment_method, notes
看不清的字段填 null,并在 notes 说明原因。
禁止根据常识补全商户全称或税号。
与既有能力的关系
传统文档 OCR 管线仍适合批量扫描件;拍照场景更适合多模态端到端。基础讨论见文档 OCR 与文档智能,表单字段抽取可参考视觉表单字段抽取。
技巧与坑
- 不要把身份证、银行卡等误拍进报销图
- 小费与合计分行时,明确要哪一个字段
- 多页小票先拼接策略或分页抽取再合并
小结
收据识别的产品价值在校验与升级路径,不在单次演示识别。Schema + 人工抽检,才能上账。
入账前的人工策略
全量人工不现实,全自动又危险。按金额阈值与置信标记抽检:高金额必检,低金额抽样。模型 notes 里写「模糊」的单据提高抽检优先级。
多币种与小费
明确 Schema 要不要小费字段、要不要分税。规则校验比再问模型「帮我算对不对」更可靠。
隐私与保留
收据含地址、卡号后四位等。存储与模型调用需符合你的公司政策:能本地推理则本地;用云 API 则脱敏或裁剪。保留期限到账期结束后按制度删除。流水线日志不要默认存全图到公共桶。
端到端联调时准备三类样张:清晰机打、皱折阴影、手写金额。每类看字段空值率与人工改写率,再决定是否上线自动入账。供应商或门店抬头经常简称,可用商户别名表做后处理,而不是让模型猜全称。发票与小票混用时,Schema 要能区分单据类型。