OCR发票识别API实现

OCR发票识别API实现

    • [1. 阿里云OCR发票识别](#1. 阿里云OCR发票识别)
    • [2. Tesseract OCR](#2. Tesseract OCR)
    • [3. 利用java调用大模型进行识别](#3. 利用java调用大模型进行识别)
    • [4. 飞桨PaddleOCR](#4. 飞桨PaddleOCR)

1. 阿里云OCR发票识别

阿里云OCR发票识别

示例:

接口:https://dgfp.market.alicloudapi.com/ocrservice/invoice

参数:{"img":"图片的base64编码"}
图片转base64网址

结果:

bash 复制代码
{
    "angle": 0,
    "data": {
        "发票代码": "",
        "发票号码": "23912000000004155751",
        "机打发票代码": "",
        "机打发票号码": "",
        "开票日期": "2023年06月19日",
        "机器编码": "",
        "校验码": "",
        "受票方名称": "百望股份有限公司",
        "受票方税号": "91110108339805094M",
        "受票方地址、电话": "",
        "受票方开户行、账号": "",
        "密码区": "",
        "不含税金额": "350.94",
        "发票税额": "21.05",
        "大写金额": "叁佰柒拾贰圆整",
        "发票金额": "372.00",
        "销售方名称": "华住酒店管理有限公司大连分公司",
        "销售方税号": "91210202071550843F",
        "销售方地址、电话": "",
        "销售方开户行、账号": "",
        "收款人": "",
        "复核人": "",
        "开票人": "辛梦娣",
        "备注": "",
        "标题": "电子发票(增值税专用发票)",
        "联次": "",
        "发票类型": "数电专用发票",
        "特殊标识信息": "",
        "发票详单": [
            {
                "货物或应税劳务、服务名称": "*住宿服务*住宿费",
                "规格型号": "",
                "单位": "天",
                "数量": "1",
                "单价": "350.943396226415",
                "金额": "350.94",
                "税率": "6%",
                "税额": "21.06"
            }
        ],
        "发票代码解析": ""
    },
    "height": 448,
    "orgHeight": 448,
    "orgWidth": 660,
    "prism_keyValueInfo": [
        {
            "key": "发票代码",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "发票号码",
            "keyProb": 100,
            "value": "23912000000004155751",
            "valuePos": [
                {
                    "x": 516,
                    "y": 18
                },
                {
                    "x": 616,
                    "y": 19
                },
                {
                    "x": 616,
                    "y": 30
                },
                {
                    "x": 516,
                    "y": 29
                }
            ],
            "valueProb": 100
        },
        {
            "key": "机打发票代码",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "机打发票号码",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "开票日期",
            "keyProb": 100,
            "value": "2023年06月19日",
            "valuePos": [
                {
                    "x": 517,
                    "y": 38
                },
                {
                    "x": 588,
                    "y": 38
                },
                {
                    "x": 588,
                    "y": 50
                },
                {
                    "x": 517,
                    "y": 50
                }
            ],
            "valueProb": 100
        },
        {
            "key": "机器编码",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "校验码",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "受票方名称",
            "keyProb": 100,
            "value": "百望股份有限公司",
            "valuePos": [
                {
                    "x": 54,
                    "y": 89
                },
                {
                    "x": 133,
                    "y": 89
                },
                {
                    "x": 133,
                    "y": 101
                },
                {
                    "x": 54,
                    "y": 101
                }
            ],
            "valueProb": 100
        },
        {
            "key": "受票方税号",
            "keyProb": 100,
            "value": "91110108339805094M",
            "valuePos": [
                {
                    "x": 159,
                    "y": 119
                },
                {
                    "x": 303,
                    "y": 119
                },
                {
                    "x": 303,
                    "y": 135
                },
                {
                    "x": 159,
                    "y": 135
                }
            ],
            "valueProb": 100
        },
        {
            "key": "受票方地址、电话",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "受票方开户行、账号",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "密码区",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "不含税金额",
            "keyProb": 100,
            "value": "350.94",
            "valuePos": [
                {
                    "x": 433,
                    "y": 270
                },
                {
                    "x": 469,
                    "y": 270
                },
                {
                    "x": 469,
                    "y": 280
                },
                {
                    "x": 433,
                    "y": 280
                }
            ],
            "valueProb": 100
        },
        {
            "key": "发票税额",
            "keyProb": 95,
            "value": "21.05",
            "valuePos": [
                {
                    "x": 598,
                    "y": 270
                },
                {
                    "x": 629,
                    "y": 270
                },
                {
                    "x": 629,
                    "y": 280
                },
                {
                    "x": 598,
                    "y": 280
                }
            ],
            "valueProb": 95
        },
        {
            "key": "大写金额",
            "keyProb": 100,
            "value": "叁佰柒拾贰圆整",
            "valuePos": [
                {
                    "x": 186,
                    "y": 287
                },
                {
                    "x": 257,
                    "y": 287
                },
                {
                    "x": 257,
                    "y": 300
                },
                {
                    "x": 186,
                    "y": 300
                }
            ],
            "valueProb": 100
        },
        {
            "key": "发票金额",
            "keyProb": 100,
            "value": "372.00",
            "valuePos": [
                {
                    "x": 472,
                    "y": 287
                },
                {
                    "x": 518,
                    "y": 287
                },
                {
                    "x": 518,
                    "y": 299
                },
                {
                    "x": 472,
                    "y": 299
                }
            ],
            "valueProb": 100
        },
        {
            "key": "销售方名称",
            "keyProb": 100,
            "value": "华住酒店管理有限公司大连分公司",
            "valuePos": [
                {
                    "x": 362,
                    "y": 88
                },
                {
                    "x": 512,
                    "y": 88
                },
                {
                    "x": 512,
                    "y": 101
                },
                {
                    "x": 362,
                    "y": 101
                }
            ],
            "valueProb": 100
        },
        {
            "key": "销售方税号",
            "keyProb": 100,
            "value": "91210202071550843F",
            "valuePos": [
                {
                    "x": 470,
                    "y": 119
                },
                {
                    "x": 613,
                    "y": 119
                },
                {
                    "x": 613,
                    "y": 135
                },
                {
                    "x": 470,
                    "y": 135
                }
            ],
            "valueProb": 100
        },
        {
            "key": "销售方地址、电话",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "销售方开户行、账号",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "收款人",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "复核人",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "开票人",
            "keyProb": 100,
            "value": "辛梦娣",
            "valuePos": [
                {
                    "x": 91,
                    "y": 385
                },
                {
                    "x": 122,
                    "y": 385
                },
                {
                    "x": 122,
                    "y": 397
                },
                {
                    "x": 91,
                    "y": 397
                }
            ],
            "valueProb": 100
        },
        {
            "key": "备注",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "标题",
            "keyProb": 100,
            "value": "电子发票(增值税专用发票)",
            "valuePos": [
                {
                    "x": 169,
                    "y": 7
                },
                {
                    "x": 442,
                    "y": 8
                },
                {
                    "x": 442,
                    "y": 34
                },
                {
                    "x": 169,
                    "y": 33
                }
            ],
            "valueProb": 100
        },
        {
            "key": "联次",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "发票类型",
            "keyProb": 100,
            "value": "数电专用发票",
            "valuePos": [
                {
                    "x": 169,
                    "y": 7
                },
                {
                    "x": 442,
                    "y": 8
                },
                {
                    "x": 442,
                    "y": 34
                },
                {
                    "x": 169,
                    "y": 33
                }
            ],
            "valueProb": 100
        },
        {
            "key": "特殊标识信息",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        },
        {
            "key": "发票详单",
            "keyProb": 100,
            "value": "[{\"货物或应税劳务、服务名称\":\"*住宿服务*住宿费\",\"规格型号\":\"\",\"单位\":\"天\",\"数量\":\"1\",\"单价\":\"350.943396226415\",\"金额\":\"350.94\",\"税率\":\"6%\",\"税额\":\"21.06\"}]",
            "valueProb": 100
        },
        {
            "key": "发票代码解析",
            "keyProb": 100,
            "value": "",
            "valueProb": 100
        }
    ],
    "sid": "f0626b3869d9156bc8fc3640aba319bfe29db5b59764111e282b986b2d0ac5e9724d7263",
    "width": 660
}

下一步根据将识别结果和表单字段对应,从而返回给前端。

2. Tesseract OCR

Tesseract OCR 是一款开源的文本识别(OCR)引擎。它主要用于识别图片中的文字,并将其转换为可编辑的文本。Tesseract OCR 是目前公认最优秀、最精确的开源 OCR 系统之一。

使用 Spring Boot 框架构建 RESTful API,并集成了 Tesseract OCR 引擎进行文字识别。项目地址:

3. 利用java调用大模型进行识别

基于 LangChain 0.36.0 版本

4. 飞桨PaddleOCR

https://gitee.com/paddlepaddle/PaddleOCR
云服务器购买

linux安装conda环境:

bash 复制代码
在 Ubuntu 系统中安装 Conda 环境,你可以通过以下几个步骤来完成。Conda 是一个开源的包、依赖和环境管理器,用于安装和管理科学计算相关的软件包和库。它特别适用于 Python 编程语言,但同样可以用于其他语言。

步骤 1: 更新你的系统

首先,确保你的 Ubuntu 系统是最新的。打开终端并运行以下命令:

sudo apt update
sudo apt upgrade
步骤 2: 安装 Miniconda

Miniconda 是 Conda 的一个轻量级版本,包含了 conda、Python 和一些常用的包。你可以选择安装 Miniconda 来开始你的 Conda 环境之旅。

下载 Miniconda

访问 Miniconda 的官方网站(https://docs.conda.io/en/latest/miniconda.html)选择适合你的 Ubuntu 版本的 Miniconda 安装器。例如,对于 64 位系统,你可以使用:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行安装脚本

使用以下命令运行下载的安装脚本:

bash Miniconda3-latest-Linux-x86_64.sh

在运行脚本时,它会提示你阅读许可协议并询问是否接受。按 Enter 键接受许可协议,然后按 yes 确认继续安装。

初始化 Conda

按照脚本指示,运行以下命令来初始化 Conda:

source ~/.bashrc

步骤 3: 验证 Conda 安装

为了验证 Conda 是否成功安装,你可以在终端中运行以下命令:

conda --version

这应该会显示已安装的 Conda 版本号。

步骤 4: 创建和管理环境(可选)

一旦 Conda 安装完成,你可以开始创建和管理环境了。例如,创建一个新的 Python 环境:

conda create --name myenv python=3.8

激活这个环境:

conda activate myenv

安装包到特定环境中:

conda install numpy
步骤 5: 更新 Conda(可选)

为了保持你的 Conda 安装是最新的,定期运行以下命令来更新 Conda:

conda update conda

通过以上步骤,你应该能够在 Ubuntu 系统上成功安装并使用 Conda 环境。

linux进入/退出conda环境-ubuntu:

bash 复制代码
使用conda activate base可以切换到conda的基础环境。
使用conda deactivate可以退出当前激活的conda环境,回到系统的默认shell环境。
相关推荐
晓131317 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr
秋窗71 天前
Mac 部署Latex OCR并优化体验(打包成App并支持全局快捷键)
macos·ocr·latex
RainSerein1 天前
Laravel8中调取腾讯云文字识别OCR
ocr·php·腾讯云·laravel
老胖闲聊11 天前
Python pytesseract【OCR引擎库】 简介
开发语言·python·ocr
沉到海底去吧Go12 天前
【工具教程】PDF指定区域OCR识别重命名工具使用教程和注意事项
pdf·ocr·图片区域识别改名·仓储物流单据识别·物流单据识别改名·pdf区域识别改名·pdf区域识别重命名
heart000_112 天前
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
运维·自动化·ocr
kevin 112 天前
OCR大模型,破解金融文档处理困境,从文字识别到文字理解
金融·ocr
Just_Paranoid12 天前
华为云Flexus+DeepSeek征文|基于Dify构建智能票据信息识别助手
华为云·ocr·dify·maas·deepseek·flexusx
whoarethenext13 天前
使用 C++/OpenCV 构建中文 OCR 系统:实现账单、发票及 PDF 读取
c++·opencv·ocr
阿幸软件杂货间14 天前
望言OCR:免费视频字幕提取工具,高效识别吊打付费软件
ocr·字幕