RapidOCR 发票票据识别
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_535eed5d/rapidocr-invoice。
技能介绍
发票处理的典型痛点
企业财务、报销审核等场景中,发票信息录入常面临几个具体问题:从合同Word文档里批量提取发票图片费时,OCR识别常丢首位数字导致金额错误,同一张发票在文档中多次插入时需重复统计,手动核对金额、税额与价税合计的关系易漏。
技能的核心逻辑与工作流
RapidOCR 发票票据识别围绕这些问题设计,核心是基于rapidocr-onnxruntime引擎的批量处理能力:
- 从Word中提图并映射关系:
scripts/extract_docx_images.py会解压.docx文件,提取word/media/下的图片,解析document.xml与document.xml.rels,按段落顺序建立“客户名称-发票图片”的对应关系;遇到同一图片多次引用(同一rId出现多个blip)时,不去重而是按出现次数计数,方便后续金额累计。 - 批量OCR与关键字段提取:
scripts/ocr_invoices.py支持单张或目录批量处理,通过预设规则定位“价税合计(小写)”行:优先找含“价税合计”和“小写”的行,匹配(小写)¥XXX,XXX.XX格式;备选匹配¥后的千分位数字,或取所有¥金额的最大值。同时输出发票号码、开票日期、销售方/购买方等结构化JSON数据。 - 金额交叉验证:
scripts/verify_amounts.py通过两个规则校验:不含税金额 + 税额 = 价税合计的等式验证,以及“大写金额反推数字金额”的比对,自动标记丢字、识别错误的结果,提示人工复核。
适用边界与注意点
- 仅支持电子发票(数电票PNG)、增值税专用/普通发票扫描件(JPEG/PNG),暂不覆盖手写发票或非中国区票据;
- 纯CPU运行,依赖Python 3.10+环境,无需GPU,但首次加载约15MB的模型;
- 当发票图片嵌入Word时,需确保文档未被加密,否则无法解压提取
word/media/内容; - 电子发票的“价税合计”行多在图片高度52%-66%区域,纸质扫描件则在70%-82%,批量处理时可结合
--scale参数放大小字提升识别率。
使用场景
- 企业财务从合同 Word 文档批量提取发票图片,识别金额后按客户汇总价税合计
- 记账软件对发票图片自动识别金额、发票号等字段,替代手工录入发票信息
- 报销审核批量扫描报销发票,提取价税合计金额并校验金额+税额=价税合计是否成立
- 税务合规人员将纸质增值税发票扫描件 OCR 成结构化数据,用于查询与审计归档
适合人员
- 企业财务人员,需要从合同 Word 文档批量提取发票图片并按客户汇总金额
- 记账软件开发者,希望在应用中嵌入发票图片自动识别金额与发票号的能力
- 报销审核专员,需要批量扫描发票提取价税合计金额并校验金额合理性
- 税务合规人员,需要将纸质增值税发票扫描件 OCR 成结构化数据用于审计归档