长亭百川云 - 文章详情

15K star!高效PDF转markdown,AI实用工具

IT咖啡馆

68

2024-08-01

点击上方蓝字关注我们

IT 咖啡馆,探索无限可能!

恭喜你发现了这个宝藏,这里你会发现优质的开源项目、IT知识和有趣的内容。


 

PDF是工作中非常常用的文件格式,如果想把它转成Markdown,一般我们需要先将 PDF 文档先 OCR 识别一下,然后再转换成 markdown。

今天我们分享一个开源项目,它可以帮助你快速将PDF转成markdown,并且精度很高,它就是:Marker

Marker 是什么

marker 是一款基于深度学习模型的将 PDF 转换成 Markdown 格式的工具。marker 的原理是利于深度学习模型,检测页面布局,阅读顺序,然后格式化文本块并且对完整的文本再进行处理。

Marker 快速而准确地将 PDF 转换为 Markdown 格式。

  • 广泛文档支持(特别适合书籍和科学论文)

  • 全语言支持

  • 移除页眉、页脚及其它冗余元素

  • 格式化表格与代码块

  • 提取并随 Markdown 保存图像

  • 大多数公式转换为 LaTeX

  • 支持 GPU、CPU 或 MPS 运行

 实现原理

Marker的基本实现流程如下:

  • 首先,提取文本,必要时进行OCR(启发式、Tesseract)

  • 其次,检测页面布局(布局分割器、列检测器)

相关的工具有:https://huggingface.co/vikp/layout\_segmenter、https://huggingface.co/vikp/column\_detector

Marker的实现代码参考位置如下:

https://github.com/VikParuchuri/marker/blob/master/marker/ocr/page.py

  • 然后,清理并格式化每个区块(启发式方法、nougat)

相关的工具有:https://huggingface.co/facebook/nougat-base

Marker的实现代码参考位置如下:

https://github.com/VikParuchuri/marker/blob/master/marker/cleaners/

  • 最后合并区块并对完整文本进行后处理(启发式方法、pdf_postprocessor)

相关的工具有:https://huggingface.co/vikp/pdf\_postprocessor\_t5

Marker的实现代码参考位置如下:

https://github.com/VikParuchuri/marker/blob/master/marker/postprocessors/editor.py

性能表现

下表显示了 Marker 和 Nougat 在不同文档上的速度和准确性比较。Marker 的速度是 Nougat 的 4 倍,并且在 arXiv 之外的文档上具有更高的准确性。

make在转换的速度和精度上都有着不错的表现,在和nougat的对比测试中,速度和精度均表现优异。

由于 PDF 格式的复杂性,Marker 有时可能无法完美转换。以下是已知的一些局限性:

  • Marker 无法保证将所有公式完全转换为 LaTeX。这是因为它需要先识别再转换。

  • 表格格式化不一定总是完全正确——文本可能会出现在错误的列中。

  • 空白与缩进可能无法完全保留。

  • 并非所有行或段落都能被正确连接。

  • 该工具在数字化 PDF(无需大量 OCR 处理)上的表现最佳。它侧重于速度优化,仅限于修正错误时使用有限的 OCR 功能。

安装和使用

 

安装Marker


Marker 需要 Python 3.9+ 和 PyTorch。如果您不是使用 Mac 或 GPU 机器,可能需要先安装 Torch 的 CPU 版本。安装 Pytorch ,执行命令

pip3 install torch torchvision

安装命令:

git clone <https://github.com/VikParuchuri/marker.git>
 poetry install

安装CUDA


marker可以使用GPU进行加速。

  • 先判断本机显卡能支持的最高CUDA版本。在命令提示符中输入nvidia-smi
    ,如下图所示,可以看到本机显卡驱动能支持的CUDA版本为12.5。

  • 安装CUDA

进入下载网址:https://developer.nvidia.com/cuda-downloads 。当前最新版本为12.5。若安装12.5版本的话,可以点下图中1所示的操作系统选择按钮。若需要安装老版本,可以点下图中2所示的链接。

如下图所示,根据本机情况选择合适的版本进行下载。

下载后直接双击按默认安装即可。

安装完毕后在命令行窗口输入nvcc --version
或set cuda
,若如下图所示显示,则表示CUDA安装成功。

参数配置


  • 查看 marker/settings.py
     中的设置项。可以使用环境变量覆盖任何设置。

  • PyTorch 设备可以被自动检测,但也可以手动指定。例如使用 TORCH_DEVICE=cuda
     来指定CUDA设备。

  • 如果使用GPU,根据GPU显存设置 INFERENCE_RAM
    。例如,若有16GB的显存,应设置 INFERENCE_RAM=16

  • 根据文档类型的不同,marker
     在每个任务上的平均内存使用量可能会略有变化。如果发现任务因GPU内存不足而失败,可以通过调整 VRAM_PER_TASK
     来优化这一设置。

  • 默认情况下,marker
     使用 surya
     进行OCR识别。surya
     在CPU上运行较慢,但比Tesseract更准确。如果需要更快的OCR速度,可以将 OCR_ENGINE
     设置为 ocrmypdf
    。请注意,这还需要安装额外的依赖(见前述说明)。如果完全不需要OCR功能,可以将 OCR_ENGINE
     设置为 None

文件转换


在命令行中输入以下命令来转换单个文件:

marker_single /path/to/file.pdf /path/to/output/folder --batch_multiplier 2 --max_pages 10 --langs English
  • -batch_multiplier
     参数用于根据额外的VRAM量调整默认批次大小。数值越大,消耗的VRAM越多,但处理速度也越快。默认值为2。默认批次大小大约占用3GB的VRAM。

  • -max_pages
     参数限制了要处理的最大页数。省略此参数将转换整个文档。

  • -langs
     参数是一个由逗号分隔的列表,用于指定文档中所含的语言,以便进行OCR识别

通过以下命令可以批量转换位于某个文件夹下的多个PDF文件:

marker /path/to/input/folder /path/to/output/folder --workers 10 --max 10 --metadata_file /path/to/metadata.json --min_length 10000
  • -workers
     表示同时转换的PDF文件数量。默认值为1,但可以增加该数值以提高吞吐量,不过会相应增加CPU和GPU的使用率。如果使用GPU,实际并行度不会超过 INFERENCE_RAM/VRAM_PER_TASK
     的计算结果。

  • -max
     指定要转换的最大PDF文件数量。省略此选项将转换文件夹中的所有PDF。

  • -min_length
     是从PDF中提取的字符最小数量,达到此数量的PDF才会被纳入处理考虑。如果需要处理大量PDF,建议设置此参数以避免对主要为图像的PDF进行OCR处理(这会降低整体处理速度)。

  • -metadata_file
     是一个可选参数,用于指定包含PDF元数据的JSON文件路径。如果提供此文件,程序将利用这些元数据为每个PDF设定语言;如果不提供,则使用 DEFAULT_LANG
     配置的默认语言进行处理。格式为:

 

总结

不过,该工具也存在的问题,只支持与英语类似的语言。对中文、日文、韩文等的支持还不太李响。这块需要自行进行针对性的中文修改。目前在很多AI的开源项目中,已经开始使用Marker来作为其文档内容转换的工具,所以对于项目的未来很值得期待。

项目信息

  • 项目名称:Marker

  • GitHub 链接:github.com/VikParuchuri/marker

  • Star 数:15K

往期推荐



一周2K star!Netflix 开源的工作流编排器,不容错过?



15K star!超越RAG,让大模型拥有个性化记忆



「Github一周热点32期」动画图解算法教程、用LLM写完整报告等5个项目


  

识别二维码关注我们

微信号- it-coffee

B站 - IT-咖啡馆

头条号- IT咖啡馆

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2