
English | 简体中文
[Models (🤗Hugging Face)] | [Models(
ModelScope)]
🔥🔥🔥 MinerU:基于PDF-Extract-Kit的高效文档内容提取工具
👋 join us on <a href="https://discord.gg/JYsXDXXN" target="_blank">Discord</a> and <a href="https://r.vansin.top/?r=MinerU" target="_blank">WeChat</a>
PDF-Extract-Kit 是一款功能强大的开源工具箱,旨在从复杂多样的 PDF 文档中高效提取高质量内容。以下是其主要功能和优势:
立即体验 PDF-Extract-Kit,解锁 PDF 文档的无限潜力!
注意: PDF-Extract-Kit 专注于高质量文档处理,适合作为模型工具箱使用。 如果你想提取高质量文档内容(PDF转Markdown),请直接使用MinerU,MinerU结合PDF-Extract-Kit的高质量预测结果,进行了专门的工程优化,使得PDF文档内容提取更加便捷高效;
如果你是一位开发者,希望搭建更多有意思的应用(如文档翻译,文档问答,文档助手等),基于PDF-Extract-Kit自行进行DIY将会十分便捷。特别地,我们会在PDF-Extract-Kit/project下面不定期更新一些有趣的应用,敬请期待!
我们欢迎社区研究员和工程师贡献优秀模型和创新应用,通过提交 PR 成为 PDF-Extract-Kit 的贡献者。
| 任务类型 | 任务描述 | 模型 |
|---|---|---|
| 布局检测 | 定位文档中不同元素位置:包含图像、表格、文本、标题、公式等 | YOLOv10_ft,LayoutLMv3_ft |
| 公式检测 | 定位文档中公式位置:包含行内公式和行间公式 | YOLOv8_ft |
| 公式识别 | 识别公式图像为latex源码 | UniMERNet |
| OCR | 提取图像中的文本内容(包括定位和识别) | PaddleOCR |
| 表格识别 | 识别表格图像为对应源码(Latex/HTML/Markdown) | PaddleOCR+TableMaster,StructEqTable |
| 阅读顺序 | 将离散的文本段落进行排序拼接 | Coming Soon ! |
2024.10.10 🎉🎉🎉 基于模块化重构的PDF-Extract-Kit 1.0正式版本正式发布,模型使用更加便捷灵活!老版本请切换至release/0.1.1分支进行使用。2024.08.01 🎉🎉🎉 新增了StructEqTable表格识别模块用于表格内容提取,欢迎使用!2024.07.01 🎉🎉🎉 我们发布了PDF-Extract-Kit,一个用于高质量PDF内容提取的综合工具包,包括布局检测、公式检测、公式识别和OCR。当前的一些开源SOTA模型多基于学术数据集进行训练评测,仅能在单一的文档类型上获取高质量结果。为了使得模型能够在多样性文档上也能获得稳定鲁棒的高质量结果,我们构建多样性的微调数据集,并在一些SOTA模型上微调已得到可实用解析模型。下边是一些模型的可视化结果。
结合多样性PDF文档标注,我们训练了鲁棒的布局检测模型。在论文、教材、研报、财报等多样性的PDF文档上,我们微调后的模型都能得到准确的提取结果,对于扫描模糊、水印等情况也有较高鲁棒性。下面可视化示例是经过微调后的LayoutLMv3模型的推理结果。

同样的,我们收集了包含公式的中英文文档进行标注,基于先进的公式检测模型进行微调,下面可视化结果是微调后的YOLO公式检测模型的推理结果:

UniMERNet是针对真实场景下多样性公式识别的算法,通过构建大规模训练数据及精心设计的结果,使得其可以对复杂长公式、手写公式、含噪声的截图公式均有不错的识别效果。
Coming Soon!
conda create -n pdf-extract-kit-1.0 python=3.10
conda activate pdf-extract-kit-1.0
pip install -r requirements.txt
注意: 如果你的设备不支持 GPU,请使用
requirements-cpu.txt安装 CPU 版本的依赖。
参考模型权重下载教程下载所需模型权重。注:可以选择全部下载,也可以选择部分下载,具体操作参考教程。
python scripts/layout_detection.py --config=configs/layout_detection.yaml
你可以在 outputs/layout_detection 文件夹下查看布局检测结果。
python scripts/formula_detection.py --config=configs/formula_detection.yaml
你可以在 outputs/formula_detection 文件夹下查看公式检测结果。
python scripts/ocr.py --config=configs/ocr.yaml
你可以在 outputs/ocr 文件夹下查看OCR结果。
python scripts/formula_recognition.py --config=configs/formula_recognition.yaml
你可以在 outputs/layout_detection 文件夹下查看公式识别结果。
注意: 更多模型使用细节请查看PDF-Extract-Kit-1.0 中文教程.
本项目专注使用模型对
多样性文档进行高质量内容提取,不涉及提取后内容拼接成新文档,如PDF转Markdown。如果有此类需求,请参考我们另一个Github项目: MinerU
PDF-Extract-Kit 旨在提供高质量PDF文件的提取能力。我们鼓励社区提出具体且有价值的需求,并欢迎大家共同参与,以不断改进PDF-Extract-Kit工具,推动科研及产业发展。
本项目采用 AGPL-3.0 协议开源。
由于本项目中使用了 YOLO 代码和 PyMuPDF 进行文件处理,这些组件都需要遵循 AGPL-3.0 协议。因此,为了确保遵守这些依赖项的许可证要求,本仓库整体采用 AGPL-3.0 协议。
如果你觉得我们模型/代码/技术报告对你有帮助,请给我们⭐和引用📝,谢谢 :)
@article{wang2024mineru,
title={MinerU: An Open-Source Solution for Precise Document Content Extraction},
author={Wang, Bin and Xu, Chao and Zhao, Xiaomeng and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Xu, Rui and Liu, Kaiwen and Qu, Yuan and Shang, Fukai and others},
journal={arXiv preprint arXiv:2409.18839},
year={2024}
}
@misc{wang2024unimernet,
title={UniMERNet: A Universal Network for Real-World Mathematical Expression Recognition},
author={Bin Wang and Zhuangcheng Gu and Chao Xu and Bo Zhang and Botian Shi and Conghui He},
year={2024},
eprint={2404.15254},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@article{he2024opendatalab,
title={Opendatalab: Empowering general artificial intelligence with open datasets},
author={He, Conghui and Li, Wei and Jin, Zhenjiang and Xu, Chao and Wang, Bin and Lin, Dahua},
journal={arXiv preprint arXiv:2407.13773},
year={2024}
}
$ claude mcp add PDF-Extract-Kit \
-- python -m otcore.mcp_server <graph>