OCR发票识别API实现
1. 阿里云OCR发票识别
示例:
接口:https://dgfp.market.alicloudapi.com/ocrservice/invoice
参数:{"img":"图片的base64编码"}
图片转base64网址
结果:
{
"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环境:
在 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:
使用conda activate base可以切换到conda的基础环境。
使用conda deactivate可以退出当前激活的conda环境,回到系统的默认shell环境。