PaddleOCR实现对表格的提取

1、背景

PaddleOCR: 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。对pdf/word里的表格中识别出有效信息具有重要意义,比如从公司的财报表格里提取出利润、销售额等不同维度的统计指标,从审查报告、调研报告以及不同的合同,诊疗单的固定表格中提取出结构化的信息供下游使用的场景多,对提升自动化获取知识的有很大的作用。

2、PaddleOCR的原理

     paddleocr的套件组包括了:底座的paddlepaddle实现深度学习的通用框架、paddleocr实现图片的识别、ppstructure、paddleclas几大组件,其中paddleclas是用来进行分类的组件,PP-Structure实现从图片识别表格,图片会先经由Layout-Parser进行版面分析,在版面分析中,会对图片里的区域进行分类,包括文字、标题、图片、列表和表格等5类。对于前4类区域,直接使用PP-OCR完成对应区域文字检测与识别。对于表格类区域,经过表格结构化处理后,表格图片转换为相同表格样式的结构化文件。

paddleocr的整体架构如下:

paddleocr中模型的列表

3、PaddleOCR的安装过程

本次安装过程是在python3.8.13环境下安装,对 PyMuPDF要求python 3.8及以上。

(1)paddleocr 2.7.0版本。

依赖

(2)安装paddlepaddle 2.6.0版本。

安装paddlepaddle的依赖包如下:

astor==0.8.1,decorator==5.1.1,opt==einsum==3.3.0,paddlepaddle==2.6.0

(3)安装paddleclas的2.5.1版本

paddleclas的依赖包如下:

prettytable==3.9.0,ujson==5.9.0,opencv-python==4.6.0.66,pillow==10.2.0,tqdm==4.66.1,PyYAML==6.0.1,visualdl==2.5.3,scipy>=1.0.0,scikit-learn==1.3.2,gast==0.5.4,faiss-cpu==1.7.1.post3,easydict=1.11,paddleclas==2.5.1

(4)碰到问题解决:

a、Python3 No module named '_sqlite3'错误

解决方法:源码安装完sqlit后,再设定python的setup.py重新编译安装python。

b、在安装faiss-cpu的源码安装中出现:fatal error: ft2build.h: 没有那个文件或目录

解决方法:出现编译安装导致的一些问题,能通过安装whl文件来解决。

(5)总结:a、pip安装过程使用--no-dependencies选项:会防止pip安装此包的所有依赖库;使用--ignore-installed选项:会忽略已安装的依赖库,根据新的需要重新安装。

参照

https://www.cnblogs.com/laityguanguan/p/16186852.html

b、python的相关镜像有:

百度:https://mirror.baidu.com/pypi/simple

阿里云: Simple Index

中国科技大学: Simple Index

豆瓣(douban): Simple Index

清华大学: Simple Index

4、PaddleOCR的使用例子

首次使用paddleocr时会自动执行:

运行过程会自动加载:106个参数

解析结果如下:

解析png格式的图片报

libpng error: IDAT: bad parameters to zlib,经过一番研究没有解决,改成jpg格式后,正常识别。

识别结果:

从识别结果上看可分为三部分:第一部分是boundingbox的矩形框,四个点的坐标,依次按顺时针从左上、右上、右下、左下。带有boundingbox的图片如下

仔细分析了boundingbox的边框可以发现并不是标准的矩形框,会出现边框左宽右窄的情况。

5、paddleocr模型的训练:

        PaddleClas支持多种前沿图像分类、识别相关算法,发布产业级特色骨干网络PP-HGNet、PP-LCNetv2、 PP-LCNet和SSLD半监督知识蒸馏方案等模型,在此基础上打造PULC超轻量图像分类方案和PP-ShiTu图像识别系统

doc/doc_ch/table_recognition.md · PaddlePaddle/PaddleOCR - Gitee.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/421344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2. SpringBoot3 实战之用户模块接口开发

文章目录 开发模式和环境搭建开发模式环境搭建 1. 用户注册1.1 注册接口基本代码编写1.2 注册接口参数校验 2. 用户登录2.1 登录接口基本代码编写2.2 登录认证2.2.1 登录认证引入2.2.2 JWT 简介2.2.3 登录功能集成 JWT2.2.4 拦截器 3. 获取用户详细信息3.1 获取用户详细信息基本…

【QT+QGIS跨平台编译】之四:【libSSH2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、libSSH2介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、libSSH2介绍 libSSH2是一个开源的C函数库,用来实现SSH2协议。 SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。 SSH2避免了RSA的专利问题,并修补了CRC…

matlab 计算相位角

目录 一、功能概述1、相位角2、主要函数二、代码实现1、复数的幅值和相位2、FFT 相位三、参考链接一、功能概述 1、相位角 angle 函数采用复数

可视化 | 【echarts】多组条形图堆叠条形图(toolbox应用)

文章目录 📚js🐇整体框架🐇整体框架🐇option🐇字体大小设置总结 【echarts】渐变条形折线复合图 【echarts】金字塔图 【echarts】中国地图热力图 【echarts】气泡图 html和css同 【echarts】渐变条形折线复合图…

蓝桥杯、编程考级、NOC、全国青少年信息素养大赛—scratch列表考点

1、小小情报员(202309scratch四级24题) 1.准备工作 (1)选择背景 Colorful City; (2)保留角色小猫,选择角色Ballerina。 2.功能实现 (1)角色小猫初始位置…

各分地域如果流量大的情况下 使用什么组网方式最好?V批N还是SDWAN或者其他?

环境: V批N SDWAN MPLS 问题描述: 各分地域如果流量大的情况下 使用什么组网方式最好?V批N还是sdwan或者其他? 解决方案: 当各地域之间的流量较大时,选择合适的组网方式可以提供更好的网络性能和可靠…

东方的博弈论与西方的博弈论

博弈论的本质是研究决策者在互相影响的环境中面临的策略选择问题。它涉及两个或多个决策者之间的冲突和合作,每个决策者根据对其他决策者的行为的预期和自身的利益来制定策略。博弈论的目标是找到最优的策略或解决方案,以实现决策者的最大利益。东方思维…

Linux系统安装Samba服务器

在实际开发中,我们经常会有跨系统之间文件传递的需求,Samba 便是能够在 Windows 和 Linux 之间传递文件的服务,功能也是非常强大和好用,本篇文章将介绍如何在 Linux 系统上安装 Samba 服务,以 CentOS7 系统为例。 一、…

数学建模--Radar图绘制

1.Radar图简介 最近在数学建模中碰见需要绘制Radar图(雷达图)的情况来具体分析样本的各个特征之间的得分与优劣关系,这样的情况比较符合雷达图的使用场景,一般来说,雷达图适用于展示多个维度的数据,并在一个平面上直观地呈现出不同…

【Linux】基本指令收尾

文章目录 日期查找打包压缩系统信息Linux和Windows互传文件 日期 这篇是基本指令的收尾了,还有几个基本指令我们需要说一下 首先是Date,它是用来显示时间和日期 直接输入date的话显示是有点不好看的,所以我们可以根据自己的喜欢加上分隔符&…

【开源】基于JAVA的停车场收费系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…

EtherNet/IP开发:C++开发CIP源代码

① 介绍一下CIP CIP是一种考虑到自动化行业而设计的通用协议。然而,由于其开放性,它可以并且已经应用于更多的领域。CIP网络库包含若干卷: 第1卷介绍了适用于所有网络自适应的CIP的常见方面。本卷包含通用对象库和设备配置文件库&#xff0…