Files
MinerU/README_zh-CN.md
2024-11-08 16:06:44 +08:00

27 KiB
Raw Blame History

更新记录

  • 2024/11/06 0.9.2发布,为表格识别功能接入了StructTable-InternVL2-1B模型
  • 2024/10/31 0.9.0发布,这是我们进行了大量代码重构的全新版本,解决了众多问题,提升了性能,降低了硬件需求,并提供了更丰富的易用性:
    • 重构排序模块代码,使用 layoutreader 进行阅读顺序排序,确保在各种排版下都能实现极高准确率
    • 重构段落拼接模块,在跨栏、跨页、跨图、跨表情况下均能实现良好的段落拼接效果
    • 重构列表和目录识别功能,极大提升列表块和目录块识别的准确率及对应文本段落的解析效果
    • 重构图、表与描述性文本的匹配逻辑,大幅提升 caption 和 footnote 与图表的匹配准确率并将描述性文本的丢失率降至接近0
    • 增加 OCR 的多语言支持,支持 84 种语言的检测与识别,语言支持列表详见 OCR 语言支持列表
    • 增加显存回收逻辑及其他显存优化措施,大幅降低显存使用需求。开启除表格加速外的全部加速功能(layout/公式/OCR)的显存需求从16GB降至8GB开启全部加速功能的显存需求从24GB降至10GB
    • 优化配置文件的功能开关,增加独立的公式检测开关,无需公式检测时可大幅提升速度和解析效果
    • 集成 PDF-Extract-Kit 1.0
      • 加入自研的 doclayout_yolo 模型在相近解析效果情况下比原方案提速10倍以上可通过配置文件与 layoutlmv3 自由切换
      • 公式解析升级至 unimernet 0.2.1,在提升公式解析准确率的同时,大幅降低显存需求
      • PDF-Extract-Kit 1.0 更换仓库,需要重新下载模型,步骤详见 如何下载模型
  • 2024/09/27 0.8.1发布修复了一些bug同时提供了在线demo本地化部署版本前端界面
  • 2024/09/09 0.8.0发布支持Dockerfile快速部署同时上线了huggingface、modelscope demo
  • 2024/08/30 0.7.1发布集成了paddle tablemaster表格识别功能
  • 2024/08/09 0.7.0b1发布,简化安装步骤提升易用性,加入表格识别功能
  • 2024/08/01 0.6.2b1发布,优化了依赖冲突问题和安装文档
  • 2024/07/05 首次开源

文档目录

  1. MinerU
  2. TODO
  3. Known Issues
  4. FAQ
  5. Contributors
  6. License Information
  7. Acknowledgements
  8. Citation
  9. Star History
  10. magic-doc快速提取PPT/DOC/PDF
  11. magic-html提取混合网页内容
  12. Links

MinerU

项目简介

MinerU是一款将PDF转化为机器可读格式的工具如markdown、json可以很方便地抽取为任意格式。 MinerU诞生于书生-浦语的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发展做出贡献。 相比国内外知名商用产品MinerU还很年轻如果遇到问题或者结果不及预期请到issue提交问题,同时附上相关PDF

https://github.com/user-attachments/assets/4bea02c9-6d54-4cd6-97ed-dff14340982c

快速开始

有多种不同方式可以体验MinerU的效果

在线体验

稳定版(经过QA验证的稳定版本)

OpenDataLab

测试版(同步dev分支更新测试新特性)

HuggingFace ModelScope

使用CPU快速体验

1. 安装magic-pdf

Note

最新版本国内镜像源同步可能会有延迟,请耐心等待

conda create -n MinerU python=3.10
conda activate MinerU
pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -i https://mirrors.aliyun.com/pypi/simple

2. 下载模型权重文件

详细参考 如何下载模型文件

3. 修改配置文件以进行额外配置

完成2. 下载模型权重文件步骤后脚本会自动生成用户目录下的magic-pdf.json文件并自动配置默认模型路径。 您可在【用户目录】下找到magic-pdf.json文件。

Tip

windows的用户目录为 "C:\Users\用户名", linux用户目录为 "/home/用户名", macOS用户目录为 "/Users/用户名"

您可修改该文件中的部分配置实现功能的开关,如表格识别功能:

Note

如json内没有如下项目请手动添加需要的项目并删除注释内容标准json不支持注释

{
    // other config
    "layout-config": {
        "model": "layoutlmv3" // 使用doclayout_yolo请修改为“doclayout_yolo"
    },
    "formula-config": {
        "mfd_model": "yolo_v8_mfd",
        "mfr_model": "unimernet_small",
        "enable": true  // 公式识别功能默认是开启的,如果需要关闭请修改此处的值为"false"
    },
    "table-config": {
        "model": "tablemaster",  // 使用structEqTable请修改为"struct_eqtable"
        "enable": false, // 表格识别功能默认是关闭的,如果需要开启请修改此处的值为"true"
        "max_time": 400
    }
}

使用

API

处理本地磁盘上的文件

image_writer = DiskReaderWriter(local_image_dir)
image_dir = str(os.path.basename(local_image_dir))
jso_useful_key = {"_pdf_type": "", "model_list": []}
pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer)
pipe.pipe_classify()
pipe.pipe_analyze()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")

处理对象存储上的文件

s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint)
image_dir = "s3://img_bucket/"
s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir)
pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN)
jso_useful_key = {"_pdf_type": "", "model_list": []}
pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli)
pipe.pipe_classify()
pipe.pipe_analyze()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")

详细实现可参考

部署衍生项目

衍生项目包含项目开发者和社群开发者们基于MinerU的二次开发项目 例如基于Gradio的应用界面、基于llama的RAG、官网同款web demo、轻量级的多卡负载均衡c/s端等 这些项目可能会提供更多的功能和更好的用户体验。 具体部署方式请参考 衍生项目readme

二次开发

TODO

TODO

  • 基于模型的阅读顺序
  • 正文中目录、列表识别
  • 表格识别
  • 正文中代码块识别
  • 化学式识别
  • 几何图形识别

All Thanks To Our Contributors

License Information

LICENSE.md

本项目目前采用PyMuPDF以实现高级功能但因其遵循AGPL协议可能对某些使用场景构成限制。未来版本迭代中我们计划探索并替换为许可条款更为宽松的PDF处理库以提升用户友好度及灵活性。

Acknowledgments

Citation

@misc{wang2024mineruopensourcesolutionprecise,
      title={MinerU: An Open-Source Solution for Precise Document Content Extraction}, 
      author={Bin Wang and Chao Xu and Xiaomeng Zhao and Linke Ouyang and Fan Wu and Zhiyuan Zhao and Rui Xu and Kaiwen Liu and Yuan Qu and Fukai Shang and Bo Zhang and Liqun Wei and Zhihao Sui and Wei Li and Botian Shi and Yu Qiao and Dahua Lin and Conghui He},
      year={2024},
      eprint={2409.18839},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2409.18839}, 
}

@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}
}

Star History

Star History Chart

Magic-doc

Magic-Doc Fast speed ppt/pptx/doc/docx/pdf extraction tool

Magic-html

Magic-HTML Mixed web page extraction tool

Links