当前位置: 首页 > news >正文

最新开源的PDF版面分析工具 PDF-Extract-Kit

最近有一个新开源的版面分析的模型,做PDF版面分析效果非常好。而且对公式的解析效果比较好。虽然现在star数量不高,但是绝对会涨起来的。我们调研对比过很多开源的工具,效果都强差人意,这个是我看到的最满意的一个。甚至要比我们生产环境的都要好一些。这里分享一下详细的安装过程。
github上的的教程太粗糙了。我把遇到的问题和解决方法都写了出来。
这篇文章分享的 是在windows10下安装的案例。且以cpu启动。最终可以成功启动。

GitHub - opendatalab/PDF-Extract-Kit: A Comprehensive Toolkit for High-Quality PDF Content Extraction

关于PDF-Extract-Kit

 由于文档类型的多样性,现有开源的布局检测和公式检测很难处理多样性的PDF文档,为此我们内容采集多样性数据进行标注和训练,使得在各类文档上取得精准的检测效果,细节参考布局检测和公式检测部分。对于公式识别,UniMERNet方法可以媲美商业软件,在各种类型公式识别上均匀很高的质量。对于OCR,我们采用PaddleOCR,对中英文OCR效果不错。

效果展示

结合多样性PDF文档标注,我们训练了鲁棒的布局检测公式检测模型。在论文、教材、研报、财报等多样性的PDF文档上,我们的pipeline都能得到准确的提取结果,对于扫描模糊、水印等情况也有较高鲁棒性。

论文

公式

试卷

conda

为了隔离环境,减少版本冲突问题,这里推荐使用conda来隔离环境。如果有conda可以跳过这一步,如果没有conda,可以参考下边的链接,来安装conda。

Windows下的Anaconda详细安装教程(2023/10/7)_windows安装anaconda-CSDN博客

初始化环境

拉取代码

conda create -n pdf-extract python=3.10

conda activate pdf-extract

pip install -r requirements+cpu.txt

pip install https://github.com/opendatalab/PDF-Extract-Kit/raw/main/assets/whl/detectron2-0.6-cp310-cp310-win_amd64.whl

这个从github上拉取,可能会拉不到,多试几次。或者使用科学上网解决。

修改配置文件

修改 configs/model_configs.yaml 文件,把 cuda 改为 cpu

修改 modules/layoutlmv3/layoutlmv3_base_inference.yaml 文件中的 DEVICE 为 cpu

安装环境必备环境

需要安装imagemagick

如果不安装,就会有报错如下

需要下载imagemagick,但是这个域名打不开

在github上,可以找到安装包

Releases · ImageMagick/ImageMagick · GitHub

这个是windows环境的

下载完点击文件安装即可!

下载模型

模型,这里是模型没有下载,会报错如下

这里为了方便,我使用git来从魔搭上拉取

git clone https://www.modelscope.cn/wanderkid/PDF-Extract-Kit.git

加下载后的的models目录,剪切到PDF-Extract-Kit下,替换原来的 models

运行解析,进行测试

还是在 PDF-Extract-Kit 目录下,创建一个demo的文件夹,放一个pdf测试文件

启动测试

conda activate pdf-extract

python pdf_extract.py --pdf demo/page1.pdf

可以看到正常在解析了!

解析1页搞了35s

默认把json结果输出到output目录下了

这里只有版面分析的结果如果想要把PDF直接转成 md结构,或者json,看这篇文章

windows10 环境 安装超牛的PDF解析工具MinerU (CPU跑)-CSDN博客

minerU 的版面分析使用的 Extract-kit的结果。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HC05主从一体蓝牙模块的裸机使用——单片机<-->蓝牙模块
  • PostgreSQL使用(一)
  • python用selenium网页模拟时xpath无法定位元素解决方法3
  • C/C++ xml库
  • Python创建Excel表和读取Excel表的基础操作
  • 华清数据结构day3 24-7-18
  • 部署和运维
  • python的mixin设计模式
  • Android C++系列:Linux线程(四)线程同步
  • 突破4.5K星标!一键转换网页,探索AI赋能的知识新领域
  • 小白一步步实现SSM框架之AOP(自己实现)
  • 直播架构如何设计核心节点和边缘节点
  • ansible安装
  • 人工智能算法工程师(高级)课程1-单类目标识别之人脸检测识别技术MTCNN模型介绍与代码详解
  • 【46 Pandas+Pyecharts | 当当网畅销图书榜单数据分析可视化】
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • express如何解决request entity too large问题
  • Flex布局到底解决了什么问题
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript类型识别
  • k8s如何管理Pod
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • unity如何实现一个固定宽度的orthagraphic相机
  • 基于axios的vue插件,让http请求更简单
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 聊一聊前端的监控
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 网络应用优化——时延与带宽
  • 用element的upload组件实现多图片上传和压缩
  • 用jQuery怎么做到前后端分离
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 回归生活:清理微信公众号
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #QT项目实战(天气预报)
  • #stm32驱动外设模块总结w5500模块
  • #每天一道面试题# 什么是MySQL的回表查询
  • (1)虚拟机的安装与使用,linux系统安装
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (day6) 319. 灯泡开关
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (力扣)循环队列的实现与详解(C语言)
  • (算法)硬币问题
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)JAVA中的堆栈
  • .Mobi域名介绍
  • .Net Core 生成管理员权限的应用程序
  • .net framework 4.8 开发windows系统服务
  • .net 中viewstate的原理和使用