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环境。
相关推荐
sky丶Mamba9 小时前
OCR与多模态大模型:从“看见”文字到“读懂”世界的技术革命
ocr·多模态大模型
TextIn智能文档云平台2 天前
AI文档产品与传统OCR软件的根本区别是什么?
人工智能·ocr
doris6102 天前
固定资产管理系统核心功能拆解:批量导入、OCR 识别有多高效?
ocr·资产管理·固定资产管理系统
猫头虎2 天前
猫头虎AI分享:无需OCR,基于ColQwen2、Qwen2.5和Weaviate对PDF进行多模态RAG的解决方案
microsoft·ai·pdf·aigc·ocr·ai编程·ai-native
喜欢吃豆5 天前
从像素到篇章:深入剖析光学字符识别(OCR)的技术原理
人工智能·算法·语言模型·自然语言处理·大模型·ocr
AI人工智能+8 天前
竣工验收备案识别技术:通过AI和OCR实现智能化文档处理,提升效率与准确性,推动建筑行业数字化转型。
人工智能·nlp·ocr·竣工验收备案识别
df007df8 天前
【RAGFlow代码详解-10】文本处理和查询处理
人工智能·ocr·embedding·llama
AI人工智能+14 天前
表格识别技术:通过图像处理与深度学习,将非结构化表格转化为可编辑结构化数据,推动智能化发展
人工智能·深度学习·ocr·表格识别
Virgil13915 天前
【TrOCR】模型预训练权重各个文件解读
人工智能·pytorch·计算机视觉·自然语言处理·ocr·transformer
EkihzniY16 天前
结构化 OCR 技术:破解各类检测报告信息提取难题
大数据·ocr