开源PDF解析工具olmOCR

olmOCR 是由 Allen Institute for Artificial Intelligence (AI2) 的 AllenNLP 团队开发的一款开源工具,旨在将PDF文件和其他文档高效地转换为纯文本,同时保留自然的阅读顺序。它支持表格、公式、手写内容等。

olmOCR 经过学术论文、技术文档和其他文档内容的训练,并采用提示词工程技术来提高准确性并减少幻觉(错误生成的内容)。

试用链接:olmOCR – Open-Source OCR for Accurate Document Conversion (allenai.org)

包含功能

安装方式

要求:

  • 最新的 NVIDIA GPU(已在 RTX 4090、L40S、A100、H100 上测试)
  • 30GB 磁盘空间

需安装 poppler-utils 和额外的字体以渲染 PDF 图像。

在 Ubuntu/Debian 上安装依赖项:

sudo apt-get update
sudo apt-get install poppler-utils ttf-mscorefonts-installer msttcorefonts fonts-crosextra-caladea fonts-crosextra-carlito gsfonts lcdf-typetools

设置 conda 环境并安装 olmocr:

conda create -n olmocr python=3.11
conda activate olmocr

git clone https://github.com/allenai/olmocr.git
cd olmocr
pip install -e .

如果要在 GPU 上运行推理,请使用 flashinfer 安装 sglang:

pip install sgl-kernel==0.0.3.post1 --force-reinstall --no-deps
pip install "sglang[all]==0.4.2" --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/

本地使用示例

快速测试可以使用 Web 演示。本地运行需要 GPU,并且利用 sglang 实现推理。

转换单个 PDF:

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf

转换多个 PDF:

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/*.pdf

结果将存储在 ./localworkspace 中的 JSON 文件中。

查看结果

提取的文本以 Dolma 格式的 JSONL 存储在 ./localworkspace/results 目录中。

cat localworkspace/results/output_*.jsonl  

使用 dolmaviewer 命令,查看原始 PDF与提取结果:

python -m olmocr.viewer.dolmaviewer localworkspace/results/output_*.jsonl

然后在浏览器中打开 ./dolma_previews/tests_gnarly_pdfs_horribleocr_pdf.html

![[Pasted image 20250228090316.png]]

多节点/集群使用

如果想使用多节点/集群并行处理数百万 PDF,olmOCR 支持从 AWS S3 读取 PDF及处理。

例如,可以在第一个节点上运行以下命令,将在 AWS bucket中设置一个简单的任务队列并开始转换 PDF。

python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf

在后续节点上,只需运行以下命令,它们将从同一个工作空间队列中抓取任务。

python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace

如果希望在AI2上使用 beaker 高效地线性化数百万 PDF,只需添加 --beaker 标志。这将在本地机器上准备工作空间,然后在集群中启动 N 个 GPU 工作,开始并行处理PDF。

例如:

python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker --beaker_gpus 4

实际试用

显示不太统一

有时候按照md格式输出公式,有时却不按照md格式。

原pdf解析文字
![[Pasted image 20250228084533.png]]![[Pasted image 20250228084556.png]]
![[Pasted image 20250228084729.png]]![[Pasted image 20250228084755.png]]

中文能力

尽管olmOCR的模型仅在英文文档上做过微调,但对中文pdf解析结果也还不错,如下:

原pdf解析文字
![[Pasted image 20250228085834.png]]![[Pasted image 20250228085805.png]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼爱算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值