如何使用程序通过OCR识别解析PDF中的表格

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/table/README_ch.md#41-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

Paddle-structure是目前我们能找到的可以做中英文版面分析较好的一个基础模型,其开源版可以识别十类页面元素。这篇文章介绍演示如何使用。

pdf的解析大体上有两条路,一条是基于规则,一条是基于AI。所谓基于规则就是根据文档的组织特点去“算”每部分的样式和内容。笔者认为这种方式很不通用,因为pdf的类型、排版实在太多了,没办法穷举。因此笔者采用AI的方式来解决:目标检测 和 OCR文字识别 

一、Paddle-structure

流程说明:

  1. 图片由单行文字检测模型检测到单行文字的坐标,然后送入识别模型拿到识别结果。
  2. 图片由SLANet模型拿到表格的结构信息和单元格的坐标信息。
  3. 由单行文字的坐标、识别结果和单元格的坐标一起组合出单元格的识别结果。
  4. 单元格的识别结果和表格结构一起构造表格的html字符串。

二、效果

 

 

三、安装使用

下载源码地址:GitHub - PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) 

下载源码包

上传到服务器上

unzip PaddleOCR-release-2.7.zip cd PaddleOCR-release-2.7cd  ppstructure# 下载模型
mkdir inference && cd inference
# 下载基于PubTabNet数据集训练的文本检测模型并解压
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/table/en_ppocr_mobile_v2.0_table_det_infer.tar && tar xf en_ppocr_mobile_v2.0_table_det_infer.tar
# 下载基于PubTabNet数据集训练的文本识别模型并解压
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/table/en_ppocr_mobile_v2.0_table_rec_infer.tar && tar xf en_ppocr_mobile_v2.0_table_rec_infer.tar
# 下载基于PubTabNet数据集训练的表格识别模型并解压
wget https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/en_ppstructure_mobile_v2.0_SLANet_infer.tar && tar xf en_ppstructure_mobile_v2.0_SLANet_infer.tar
cd ..python3 table/eval_table.py \--det_model_dir=inference/en_ppocr_mobile_v2.0_table_det_infer \--rec_model_dir=inference/en_ppocr_mobile_v2.0_table_rec_infer \--table_model_dir=inference/en_ppstructure_mobile_v2.0_SLANet_infer \--image_dir=train_data/table/pubtabnet/val/ \--rec_char_dict_path=../ppocr/utils/dict/table_dict.txt \--table_char_dict_path=../ppocr/utils/dict/table_structure_dict.txt \--det_limit_side_len=736 \--det_limit_type=min \--rec_image_shape=3,32,320 \--gt_path=path/to/gt.txt

我按照官方只指示跑的时候,有问题

首先说服务器上缺少 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found 这个不太好解决。我在docker容器里跑的。

还是有问题 缺少paddle

 pip install paddlepaddle   -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完以后就可以运行上述命令了。

最终得到结果:一个html的内容。就是解析后的结果,还输出了一个excel文件到了  ../output/table下。

excel

 

 对比原图片

 

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

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

相关文章

数据结构:树/二叉树

一、树的概念 逻辑结构:层次结构,一对多 节点:树中的一个数据元素根节点:树中的第一个节点,没有父节点孩子节点:该节点的直接下级节点父(亲)节点:该结点的直接上级节点兄弟节点:有…

在GLviewwidget中添加文本,比如数字之类的

最近有个需求,想要在GLviewwidget里面的指定三维位置添加文本,但是找到的版本都太老久了,或者用的是open3d实现的,在实际中的应用效果并不是很好。因此自己就写了一个,代码如下: plot gl.GLTextItem(pos(…

亚信安慧AntDB数据库与流式处理的有机融合

流式处理的概念 2001年9月11日,美国世贸大楼被袭击,美国国防部第一次将“主动预警”纳入国防的宏观战略规划。而IBM作为当时全球最大的IT公司,承担了大量基础支撑软件研发的任务。其中2009年正式发布的IBM InfoSphere Streams,就是…

飞天使-学以致用-devops知识点1-安装gitlabharbor

文章目录 rpm 安装gitlab页面配置配置secretsecret 查看信息-chatgpt回复 为项目配置webhook,等jenkins部署完毕后在配置卸载 harbor配置secret所有k8s集群节点安装信任 http rpm 安装gitlab # 下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitla…

K8S之Deployment的介绍和使用

Deployment的理论和实操 Deployment控制器:概念、原理解读概述工作原理 编写Deployment资源清单文件使用案例:创建一个web站点Deployment管理pod:扩容、缩容通过deployment管理应用,实现扩容,把副本数变成3通过deploym…

mysql中创建外键只会在索引处出现解决办法

我在mysql中创建的外键总是不成功 只有索引的地方多了一条记录,外键那里一保存就没有了,也不报错 为什么会产生这个问题,这个坑的的来源是有以下三点: MySQL建表的时候,可以不指定表引擎, 这时候MySQL就会…

wpf 3d 后台加载模型和调整参数

下载了一个代码,加载obj模型;它的参数在xaml里,模型加载出来刚好; 然后加载另一个obj模型;加载出来之后大,偏到很高和左的位置; 它之前的摄像机位置, Position"9.94759830064…

2024土木工程、环境工业与材料科学国际会议(CEEIMS2024)

2024土木工程、环境工业与材料科学国际会议(CEEIMS2024) 一、【会议简介】 我们诚挚地邀请您参加2024年土木工程、环境工业与材料科学国际会议(CEEIMS2024)。本次会议将在厦门举行。 本次会议旨在为土木工程、环境工业和材料科学领域的专家学者提供一…

利用 ChatGPT 提升个人工作、生活品质

利用 ChatGPT 提升个人工作、生活品质和个人智慧是一个多方面而又切实可行的方法。 以下是一些具体的建议: 获取信息和知识: ChatGPT 可以回答各种问题并提供相关信息和知识。你可以利用它来查询工作中遇到的问题、学习新的知识领域或是获取日常生活中的…

Go的CSP并发模型实现M, P, G简介

GMP概念简介 G: goroutine(协程,也叫用户态线程) M: 工作线程(内核态线程) P: 上下文(也可以认为是cpu,逻辑cpu数量,可以在程序启动的时候设置这个数量,gomaxprocs函数设置) GMP 模型 在 Go 中&#xff…

el-table 多选表格存在分页,编辑再次操作勾选会丢失原来选中的数据

el-table表格多选时,只需要添加type"selection", row-key及selection-change,如果存在分页时需要加上reserve-selection,这里就不写具体的实现方法了,可以查看我之前的文章,这篇文章主要说一下存…

CGI程序与ShellShock漏洞

CGI是什么? CGI(通用网关接口,Common Gateway Interface)程序是一种用于在Web服务器上执行动态内容的技术。与服务器上普通的后端代码相比,CGI程序有几个区别: 执行环境: CGI程序在服务器上作为…