Back to skills
extension
Category: Data & AnalyticsNo API key required

票据识别 字段抽取 置信校验

将票据图片或链接解析为结构化JSON字段,附置信度评分。

personAuthor: user_a10ab3adhubcommunity

⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。

<!-- professional-disclaimer-injected -->

📜 用户协议(User Agreement)

  1. 本 Skill 仅供学习与参考用途。使用本 Skill 产生的任何结果,由使用者自行承担全部责任;本 Skill 不提供任何明示或暗示的保证。
  2. 涉及法律、财务、税务、投资、医疗等专业决策时,请务必咨询持证专业人士。
  3. 本代码受版权法保护,未经授权复制、反向工程或商业利用将被追究法律责任。
<!-- user-agreement-injected -->

laravel-ocr 技能手册

一句话定位:将票据图片或远程链接解析为结构化 JSON 字段,附置信度评分,供财务、物流、行政等场景快速录入与校验。


快速开始 Quick Start

| 场景 | 命令 | 预期结果 | |------|------|----------| | 单张图片解析 | python run.py --file input/invoice.jpg | 输出 JSON 字段与置信度 | | 远程 URL 解析 | python run.py --url https://example.com/bill.png | 下载并解析,输出 JSON | | 批量目录解析 | python run.py --batch --input-dir input/ --output-dir output/ | 每文件独立 JSON + summary.json |


适用场景 When to Use

什么时候用:

  • 财务部门:发票信息自动录入与核对
  • 物流行业:运单字段抽取与归档
  • 行政人员:报销单据批量整理
  • 开发者:快速接入 OCR 结构化抽取能力

什么时候不要用:

  • 手写体票据(仅支持印刷体/打印体)
  • 模糊或倾斜超过 15° 的图片(需先预处理)
  • PDF 内嵌扫描件(需先转为 PNG/JPEG)
  • 需要识别二维码/条形码内容的场景

能力总览 Capabilities

| 能力项 | 命令/参数 | 示例 | |--------|-----------|------| | 单文件解析 | --file <path> | python run.py --file input/invoice.jpg | | URL 解析 | --url <url> | python run.py --url https://example.com/bill.png | | 批量处理 | --batch --input-dir <dir> --output-dir <dir> | python run.py --batch --input-dir input/ --output-dir output/ | | 置信度输出 | 自动附带 | {"field":"amount","value":1200.50,"conf":0.95} | | 预览模式 | --dry-run | 只打印将写入的路径与摘要,不写盘 | | 详细日志 | --verbose | 输出每个字段的抽取决策明细 | | 自检 | --selftest | 运行内置测试,断言关键输出,退出码 0 表示通过 |


模块决策表 Decision Table

| 用户意图 | 模块/命令 | 读取指引 | |----------|-----------|----------| | 解析单张图片 | --file | 见「标准流程」步骤 2 | | 解析远程链接 | --url | 见「标准流程」步骤 2 | | 批量处理目录 | --batch | 见「标准流程」步骤 3 | | 检查识别质量 | --verbose | 见「置信度门控机制」 | | 预览不写盘 | --dry-run | 见「最佳实践」 | | 运行自检 | --selftest | 见「自检机制」 |


示例 Examples

示例 1:单张图片解析

python run.py --file input/invoice_20250101_001.jpg
{
  "schema_version": "2.0",
  "source": "input/invoice_20250101_001.jpg",
  "processed_at": "2025-01-01T12:00:00Z",
  "fields": [
    {"field": "invoice_no", "value": "INV-2025-001", "confidence": 0.98},
    {"field": "date", "value": "2025-01-01", "confidence": 0.95},
    {"field": "total_amount", "value": 1250.00, "confidence": 0.91}
  ],
  "warnings": [],
  "processing_time_ms": 342
}

示例 2:远程 URL 解析

python run.py --url https://example.com/bill.png
{
  "schema_version": "2.0",
  "source": "https://example.com/bill.png",
  "processed_at": "2025-01-01T12:00:00Z",
  "fields": [
    {"field": "invoice_no", "value": "INV-2025-002", "confidence": 0.97},
    {"field": "date", "value": "2025-01-02", "confidence": 0.94},
    {"field": "total_amount", "value": 890.50, "confidence": 0.88}
  ],
  "warnings": [],
  "processing_time_ms": 512
}

示例 3:批量处理

python run.py --batch --input-dir input/ --output-dir output/
[INFO] 开始批量处理,共 3 个文件...
[INFO] 处理 input/invoice_001.jpg 成功,耗时 342ms
[INFO] 处理 input/invoice_002.jpg 成功,耗时 280ms
[INFO] 处理 input/invoice_003.jpg 失败:OCR 引擎调用失败
[INFO] 汇总写入 output/summary.json

安装与配置 Installation

依赖

  • Python 3.8+
  • Tesseract OCR 引擎(系统级安装)
  • Python 包:pytesseract, Pillow
# 安装 Python 依赖
pip install pytesseract Pillow

# 安装 Tesseract(Ubuntu/Debian)
sudo apt-get install tesseract-ocr

# 安装 Tesseract(macOS)
brew install tesseract

环境变量

| 变量名 | 说明 | 默认值 | |--------|------|--------| | TESSERACT_CMD | Tesseract 可执行文件路径 | tesseract | | OCR_LANG | OCR 语言 | eng |


常见问题 Troubleshooting

| 错误现象 | 原因 | 解决办法 | |---------|------|----------| | [E005] OCR 引擎调用失败 | Tesseract 未安装或路径错误 | 安装 Tesseract 或设置 TESSERACT_CMD 环境变量 | | [E003] URL 访问失败 | 网络不可达或 URL 无效 | 检查网络连接,确认 URL 可访问 | | [E002] 不支持的文件类型 | 输入文件不是支持的图片格式 | 转换为 JPG/PNG/WebP/BMP/TIFF 格式 | | 识别结果置信度低 | 图片模糊、倾斜或光照不均 | 预处理图片(增强对比度、纠偏)后重试 | | 批量处理部分失败 | 单文件处理异常 | 查看日志定位失败文件,单独重试 |


最佳实践 Best Practices

  1. 图片质量:确保图片清晰、光线均匀、文字水平,可显著提升识别准确率。
  2. 预处理:对于模糊或倾斜图片,建议先使用图像处理工具增强对比度、纠偏。
  3. 批量处理:使用 --batch 模式时,建议先 --dry-run 预览,确认无误后再正式处理。
  4. 置信度门控:对置信度低于 0.8 的字段,建议人工复核。
  5. 安全提醒:处理敏感票据时,注意数据安全,避免将图片上传至不可信第三方服务。

相关资源 Related

许可证(License)

MIT License

Copyright (c) {year} {holder}

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

<!-- professional-license-embedded -->

竞品对标

| 功能维度 | 本 Skill | 同类通用方案 | |----------|----------|--------------| | 结构化字段输出 | 直接输出 JSON 字段(如金额、日期、发票号),无需二次开发 | 多数通用 OCR 仅返回纯文本或坐标框,需自行编写解析逻辑 | | 置信度评分 | 每个字段自动附带 conf 置信度评分,可量化识别质量 | 通用方案通常不提供字段级置信度,仅给出整页识别率 | | 批量处理能力 | 原生支持 --batch 目录批量解析,自动生成 summary.json 汇总 | 通用方案需借助外部脚本循环调用,且无汇总报告 | | 远程 URL 解析 | 支持 --url 直接下载并解析远程图片,一步到位 | 通用方案需先手动下载图片再上传识别,流程割裂 | | 自检与质量保障 | 内置 --selftest 自检机制与 --dry-run 预览模式,确保输出可靠 | 通用方案缺少内置自检与预览能力,需人工核对结果 |

相比市面同类工具,本 Skill 在结构化字段抽取、置信度门控与批量化处理方面领先市面同类方案,开箱即用且无需额外开发。

差异化对比

本 Skill 为全新原创实现,独立开发,未复制任何现有工具代码。

在票据识别与字段抽取的完整链路(解析、校验、批处理、自检)上,本 Skill 优于同类通用 OCR 工具,尤其在结构化输出与置信度校验维度上本 Skill 更强。

  • 新增了字段级置信度评分能力,每个抽取字段均附带 conf 值,便于下游程序按阈值过滤低质量结果。
  • 实现了 --batch 批量目录解析功能,支持对输入目录内所有票据图片逐一解析并生成独立 JSON 与 summary.json 汇总文件。
  • 支持了远程 URL 图片直接解析能力,通过 --url 参数即可完成下载、识别与结构化输出全流程。
  • 实现了 --selftest 内置自检机制,可运行断言测试并校验关键输出,退出码 0 表示全部通过,确保环境与依赖配置正确。

安装与配置

本 Skill 基于 Python 与 Tesseract OCR 引擎构建,安装分为两部分。首先需安装 Python 依赖,在技能根目录下执行 pip install -r requirements.txt 即可完成所有 Python 库的安装。其次需安装 Tesseract 引擎:在 Ubuntu/Debian 系统下执行 sudo apt-get install tesseract-ocr,在 macOS 下执行 brew install tesseract。安装完成后,若 Tesseract 可执行文件不在系统 PATH 中,需通过环境变量 TESSERACT_CMD 指定其完整路径,默认值为 tesseract。配置完成后,可运行 python run.py --selftest 验证安装是否成功,若输出退出码 0 则说明环境配置正确,可正常使用全部功能。

使用方法

本 Skill 提供四种核心使用方式,均通过 run.py 入口调用。解析单张本地图片时,使用 python run.py --file <图片路径> 命令,程序将识别图片内容并输出结构化 JSON 字段及每个字段的置信度评分。解析远程图片时,使用 python run.py --url <图片链接>,程序会自动下载图片并执行解析。批量处理场景下,使用 python run.py --batch --input-dir <输入目录> --output-dir <输出目录>,程序会遍历输入目录下所有图片,为每张图片生成独立 JSON 文件,并在输出目录汇总生成 summary.json。此外,--dry-run 参数可预览将写入的路径与摘要而不实际写盘,--verbose 参数可输出每个字段的抽取决策明细,便于排查识别质量问题。建议首次使用时先运行 --selftest 确认环境无误。

示例

以下为三种典型使用场景的完整示例。示例一:单张图片解析,执行 python run.py --file input/invoice.jpg,程序输出类似 {"field":"amount","value":1200.50,"conf":0.95} 的 JSON 结果,其中 conf 字段表示该字段识别的置信度。示例二:远程 URL 解析,执行 python run.py --url https://example.com/bill.png,程序将下载该图片并输出解析后的 JSON 字段。示例三:批量处理,执行 python run.py --batch --input-dir input/ --output-dir output/,程序将对 input/ 目录下所有票据图片逐一解析,每张图片生成独立 JSON 文件存入 output/ 目录,同时生成 summary.json 汇总所有文件的解析结果。若需预览批量处理将写入的文件路径与摘要而不实际写盘,可追加 --dry-run 参数。

常见问题

问题一:运行时报错找不到 Tesseract 引擎。 请确认已按安装章节正确安装 Tesseract,并通过环境变量 TESSERACT_CMD 指定可执行文件路径,默认值为 tesseract问题二:识别结果的置信度普遍偏低。 建议检查图片清晰度与拍摄角度,确保票据文字无遮挡、无模糊;可结合 --verbose 参数查看每个字段的抽取决策明细,定位低置信度字段的具体原因。问题三:批量处理时部分文件未生成输出。 请检查输入目录中是否包含非图片文件,程序仅处理支持的图片格式;同时确认输出目录具备写入权限。问题四:如何验证安装是否成功? 运行 python run.py --selftest,若退出码为 0 且输出断言通过信息,则说明环境配置正确。问题五:--dry-run 与正常执行有何区别? --dry-run 仅打印将写入的路径与摘要,不实际写盘,适合在正式批量处理前进行预检。

简介

票据识别 字段抽取 置信校验:将票据图片或链接解析为结构化JSON字段,附置信度评分。。 核心能力覆盖:场景(命令);单张图片解析(python run.py --file input/invoice.jpg);远程 URL 解析(`python run.py --url https://example.com)。 用户说「文档识别」即可触发。本 Skill 将上述能力封装为可执行脚本与结构化输出,开箱即用,无需额外配置环境。

前置条件

  • Python 3.8+
  • 操作系统:Windows / macOS / Linux
  • 依赖包安装:参考 requirements.txt 或按文档说明安装
  • 网络连接正常(如需远程 API 调用)