OCR发票识别API实现
OCR发票识别API实现
- 1. 阿里云OCR发票识别
- 2. Tesseract OCR
- 3. 利用java调用大模型进行识别
- 4. 飞桨PaddleOCR
1. 阿里云OCR发票识别
阿里云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: 安装 MinicondaMiniconda 是 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环境。
相关文章:

OCR发票识别API实现
OCR发票识别API实现 1. 阿里云OCR发票识别2. Tesseract OCR3. 利用java调用大模型进行识别4. 飞桨PaddleOCR 1. 阿里云OCR发票识别 阿里云OCR发票识别 示例: 接口:https://dgfp.market.alicloudapi.com/ocrservice/invoice 参数:{"img&…...

实战案例:采集 51job 企业招聘信息
本文将带你从零开始,借助 Feapder 快速搭建一个企业级招聘信息数据管道。在“基础概念”部分,我们先了解什么是数据管道和 Feapder;“生动比喻”用日常场景帮助你快速理解爬虫组件;“技术场景”介绍本项目中如何使用代理等采集策略…...

从AlphaGo到ChatGPT:AI技术如何一步步改变世界?
从AlphaGo到ChatGPT:AI技术如何一步步改变世界? 这里给大家分享一个人工智能学习网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 在科技发展的历史长河中,人工智能(AI)技术无疑是最为璀璨的明珠之一。从…...
推荐6大wordpress模板资源网站
1. 模板之家 模板之家是一个提供丰富网站模板资源的平台。它涵盖了多种类型的模板,包括企业官网、个人博客、电商网站等,能够满足不同用户对于网站搭建的需求。其模板设计精美,功能多样,且注重用户体验,方便用户快速搭…...

AI 编程革命:腾讯云 CodeBuddy 如何重塑开发效率?
引言 在传统开发流程中,开发者常需依赖 SDK 文档或反复调试来获取云资源信息。而随着 AI 技术爆发式发展,腾讯云推出的 CodeBuddy 正以对话式编程颠覆这一模式 —— 只需自然语言描述需求,即可直接生成可执行代码。作为腾讯混元大模型与 Dee…...

星海智算云平台部署GPT-SoVITS模型教程
背景 随着 GPT-SoVITS 在 AI 语音合成领域的广泛应用,越来越多的个人和团队开始关注这项前沿技术。你是否也在思考,如何快速、高效地部署并体验这款强大的声音克隆模型?遗憾的是,许多本地部署方案不仅配置复杂,而且对…...

15:00开始面试,15:06就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到4月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
python 的 uv、pip 和 conda 对比和技术选型
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...

20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤
20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤 2025/5/15 20:26 缘起:荣品的PRO-RK3566适配视熙科技 的4800W的机芯。 1080p出图预览的时候没图了。 通过105的机芯出图确认 荣品的PRO-RK3566 的硬件正常。 然后要确认 视熙科技 的4800W的机芯是否出…...
GPU异步执行漏洞攻防实战:从CUDA Stream竞争到安全编程规范
点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 引言 在高校实验室的GPU加速计算研究中,多卡并行编程已成为提升深度学习训练效…...

UE5.3 C++ 房屋管理系统(二)
三.当房屋生成成功,我们就需要把TMap里的数据存到数据库里。不然一点停止运行,就会所以数据都不见了。这里使用DataTable来存储。 1.DataTable是UE常用的表,虽然不是专门用来存档的,但也可以这么用。 DataTable表,实…...

VSCode1.101.0便携版|中英文|编辑器|安装教程
软件介绍 Visual Studio Code是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,设计得很人性化,旨在为所有开发者提供一款专注于代码本身的免费的编辑器。 软件安装 1、 下载安装包…...

Linux系统发布.net core程序
前端 前端用的Vue3,发布的话需要Nginx下载安装Nginx 麒麟:这里我麒麟用的是桌面版,我直接把操作流程写在下面,写的比较简单,具体的可以具体搜这一块内容学习一下。打包vue程序,通过MobaXterm将打包后的程序…...
当需要在一个方法中清除多个缓存时,@CacheEvict注解能否实现这个需求
想清除Redis中的多个缓存数据,如何实现? CacheEvict清除一个缓存,但现在想知道如何处理多个缓存的情况。场景:可能有一个更新用户信息的方法,这个方法执行后,不仅需要清除某个特定的用户缓存,还…...

极新携手火山引擎,共探AI时代生态共建的破局点与增长引擎
在生成式AI与行业大模型的双重驱动下,人工智能正以前所未有的速度重构互联网产业生态。从内容创作、用户交互到商业决策,AI技术渗透至产品研发、运营的全链条,推动效率跃升与创新模式变革。然而,面对AI技术迭代的爆发期࿰…...
Score-CAM:卷积神经网络的评分加权视觉解释
摘要 最近,越来越多的关注被引向卷积神经网络的内部机制,以及网络为何会做出特定决策。本文中,我们开发了一种基于类别激活映射的新颖事后可视化解释方法,称为Score-CAM。与以往基于类别激活映射的方法不同,Score-CAM通过前向传递得分获取每个激活图的权重,从而摆脱了对…...
Python刷题练习
文章目录 1.寻找相同字串2.密钥格式化3.五键键盘的输出4.单词重量5.输出指定字母在字符串的中的索引6.污染水域7.九宫格按键输入8.任务最优调度9.高效的任务规划 1.寻找相同字串 题目描述: 给你两个字符串t和p,要求从t中找到一个和p相同的连续子串,并输…...

对比 HTTP-REST 与 gRPC:各自的优缺点以及适用的场景
文章目录 对比 HTTP-REST 与 gRPC:各自的优缺点以及适用的场景HTTP-REST 与 gRPC 的核心区别gRPC 的优缺点HTTP-REST 的优缺点适用场景 模糊点什么是 Protobuf?HTTP/2 会将 HTTP 消息拆分并封装为二进制帧,那还能过使用 HTTP/2 构建 RESTful …...

Git - 1( 14000 字详解 )
一: Git 初识 1.1 提出问题 在工作或学习中,我们常常会面临文档管理的问题,尤其是在编写各种文档时。为了防止文档丢失或因更改失误而无法恢复,我们常常会创建多个版本的副本,例如:“报告-v1”、“报告-v…...

TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
9.1——广播和本地组播(IGMP 和 MLD) IPv4可以使用4种IP地址:单播(unicast)、任播(anycast)、组播(multicast)和广播(broadcast)。 IPv6可以使用…...

16.1 - VDMA视频转发实验之TPG
文章目录 1 实验任务2 系统框图3 硬件设计3.1 IP核配置3.2 注意事项 4 软件设计4.1 注意事项4.2 工程源码4.2.1 main.c文件 1 实验任务 基于14.1,使用Xilinx TPG(Test Pattern Generator) IP提供视频源,将视频数据通过VDMA写入PS…...

cocos creator 3.8 下的 2D 改动
在B站找到的系统性cocos视频教程,纯2D开发入门,链接如下: zzehz黑马程序员6天实战游戏开发微信小程序(Cocos2d的升级版 CocosCreator JavaScript)_哔哩哔哩_bilibili黑马程序员6天实战游戏开发微信小程序(Cocos2d的升级版 CocosCreator Ja…...
Vue3 + Element Plus 动态表单实现
完整代码 <template><div class"dynamic-form-container"><el-formref"dynamicFormRef":model"formData":rules"formRules"label-width"auto"label-position"top"v-loading"loading"&g…...
【WPF】Opacity 属性的使用
在WPF(Windows Presentation Foundation)中,Opacity 属性是定义一个元素透明度的属性,其值范围是从 0.0(完全透明)到 1.0(完全不透明)。由于 Opacity 是在 UIElement 类中定义的&…...

Unity光照笔记
问题 在做项目中遇到了播放中切换场景后地面阴影是纯黑的问题,不得不研究一下光照。先放出官方文档。 Lighting 窗口 - Unity 手册 播放中切换场景后地面阴影是纯黑 只有投到地面的阴影是纯黑的。且跳转到使用相同Terrain的场景没有问题。 相关文章:…...
Linux中安装samba服务
在Linux服务器上安装Samba可以实现文件共享功能,下面为你详细介绍安装步骤: 一、安装Samba 不同的Linux发行版使用不同的命令来安装Samba: Debian/Ubuntu: sudo apt update sudo apt install sambaCentOS/RHEL: s…...
猫咪如厕检测与分类识别系统系列~进阶【三】网页端算法启动架构及数据库实现
前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的如…...
Elasticsearch性能调优全攻略:从日志分析到集群优化
#作者:猎人 文章目录 前言搜索慢查询日志索引慢写入日志性能调优之基本优化建议性能调优之索引写入性能优化提升es集群写入性能方法:性能调优之集群读性能优化性能调优之搜索性能优化性能调优之GC优化性能调优之路由优化性能调优之分片优化 前言 es里面…...

嵌入式学习的第二十天-数据结构-调试+链表的一般操作
一、调试 1.一般调试 2.找段错误 二、链表的一般操作 1.单链表的修改 int ModifyLinkList(LinkList*ll,char*name,DATATYPE*data) {DATATYPE * tmp FindLinkList(ll, name);if(NULL tmp){return 1;}memcpy(tmp,data,sizeof(DATATYPE));return 0; } 2.单链表的销毁 int D…...
Leetcode 3548. Equal Sum Grid Partition II
Leetcode 3548. Equal Sum Grid Partition II 1. 解题思路2. 代码实现 题目链接:3548. Equal Sum Grid Partition II 1. 解题思路 这一题是题目3546. Equal Sum Grid Partition I的进阶版本,不过本质上还是差不多的。 相较于题目3546,这里…...