PDF-Extract-Kit是一款开源工具箱,能从复杂多样的PDF文档中高效提取高质量内容。
主要功能
阅读顺序识别:智能分析文档内容逻辑阅读顺序,保证提取信息语义连贯。
布局检测:用LayoutLMv3等模型定位文档不同元素,如图像、表格、标题、文本等。结合多样性文档标注数据训练,在各类文档上能准确检测各区域,即便面对扫描质量差或有水印的PDF文件,也能准确识别,为后续步骤提供支持。
公式检测与识别:用YOLOv8模型检测文档中公式位置,包括行内和块级公式;通过UniMERNet算法将公式图像转换为LaTeX源码。该模型经过多样化数据训练,在各种类型公式识别上有较高质量,可媲美商业软件。
光学字符识别(OCR):使用PaddleOCR从图像中提取文本内容(含位置和识别),对中英文OCR效果不错,能有效应对扫描模糊或含噪声的情况,确保文本提取准确。
表格识别:通过PaddleOCR + TableMaster和StructEqTable模型识别表格图像并转换为相应源码(LaTeX/HTML/Markdown)。StructEqTable用于将表格转换为LaTeX,针对复杂表格有不错效果,目前可能主要适用于学术论文数据,速度有提升空间,团队仍在迭代优化。
技术优势
多模型集成:集成多个先进深度学习模型,如LayoutLMv3、YOLOv8、UniMERNet和PaddleOCR等,不同任务表现高性能。
高鲁棒性:面对扫描质量差、有水印或其他干扰的PDF文件,都能保持高鲁棒性,保证提取结果准确。
支持多种文档类型:适用于学术论文、教科书、研究报告、财务报表等多种PDF文档,应用前景广泛。
模块化设计:用户通过修改配置文件和少量代码,就能自由组合构建各种应用,操作简便。
全面评测基准:提供全面的PDF评测基准,用户可依结果选择适合自己的模型。
应用场景
学术论文处理:快速从大量学术论文中提取关键信息,如公式、表格和参考文献等,简化文献综述和数据分析流程,提高研究效率。
企业文档数字化:帮助企业将纸质或电子PDF文档数字化,提取关键信息,实现文档结构化存储和管理。
法律文书解析:解析法律文书,提取关键条款、日期、当事人信息等重要内容,提高法律工作效率和准确性。
教育资源电子化:处理教科书、课件等教育资源,提取知识点、公式、图表等内容,便于在线教育和教学资源共享。
金融报表提取分析:自动提取金融报表中的数据和图表,生成结构化电子表格或数据库记录,方便进一步分析和管理。
安装与配置
环境要求
Python 3.7及以上版本(建议用Python 3.10)。
Conda(用于环境管理)。
安装步骤
创建并激活虚拟环境(以conda为例)
conda create -n pdf-extract-kit-1.0 python=3.10 conda activate pdf-extract-kit-1.0
安装项目依赖
pip install -r requirements.txt
若有GPU设备,Linux系统上可能需额外安装相关依赖:
pip install --extra-index-url https://miropsota.github.io/torch_packages_builder detectron2==0.6+pt2.3.1cu121
若安装过程中遇到torch无法调用等版本冲突问题,可先卸载相关库,重新安装cuda12和cudnn:
pip uninstall nvidia-cusparse-cu12
配置模型文件
下载模型文件:确保系统安装了Git大文件存储(Git LFS),用以下命令安装:
git lfs install
可从Hugging Face或ModelScope下载模型:
# From HuggingFace git lfs clone https://huggingface.co/opendatalab/pdf-extract-kit-1.0 # From ModelScope git clone https://www.modelscope.cn/opendatalab/pdf-extract-kit-1.0.git
下载的文件默认保存在特定路径,将内部的model文件夹拷贝到项目路径下。
配置模型文件:以布局检测算法为例,打开configs/layout_detection.yaml文件,修改model_path为实际模型路径;在scripts/layout_detection.py中修改detection_results的inputs和outputs路径以及detection_mode。
基础使用示例
通过简单API调用,用户能快速实现PDF文档解析功能。基础流程包括文档加载、模块初始化、处理执行和结果导出,具体可参考官方文档操作。
项目地址
GitHub地址:https://github.com/opendatalab/PDF-Extract-Kit
官方中文文档:https://pdf-extract-kit.readthedocs.io/zh-cn/latest/index.html