> 📌 **项目地址**:[allenai/olmocr](https://github.com/allenai/olmocr) | ⭐ 18,182 颗星 | 🔧 Python | 📜 未标注

## 一句话定位

一个把 PDF、PNG、JPEG 等图像化文档转成整洁 Markdown 文本的工具,核心是 7B 参数的视觉语言模型(VLM),直接“看懂”页面布局再输出结构化内容。项目来自 Allen AI,GitHub 18000+ Star。

我试了下在线 demo([olmocr.allenai.org](https://olmocr.allenai.org/)),上传了一份多栏扫描的学术论文,页眉页脚被自动去掉,表格变成了 Markdown 格式的表格,数学公式用 LaTeX 输出。排版错乱的问题基本没有。

## 硬件与成本

– **必须要有 GPU**,官方说是“Based on a 7B parameter VLM, so it requires a GPU”。需要至少 16GB 显存(A100 / RTX 4090 级别)。
– **成本**:官方声称“less than $200 USD per million pages converted”。对比商业 OCR API 动不动几千美元/百万页,这个价格很适合大规模语料清洗。我算了下,处理一万页大概 2 美元出头,自建 GPU 集群的话电费也差不多。
– **速度**:官方没有给精确的每秒页数,但基于 7B 模型的经验,单页推理 1-3 秒(A100)。如果批量处理可以流水线化。

## 安装与运行

官方提供了三种方式:在线体验、pip 安装、Docker。

### 在线体验(最快)
直接上传文件到 [https://olmocr.allenai.org/](https://olmocr.allenai.org/)。不需要本地环境。我建议先拿 5 页典型文档试一下,看效果能不能接受。

### 本地安装(需要 GPU)
根据项目 README,可以用 pip 安装(具体命令见仓库)。模型会从 Hugging Face 自动下载。首次加载需要等十几秒。详细的使用脚本请参考 README 的“Usage”部分,我不在这里抄写,因为版本更新可能变化。

### 使用 Docker(推荐)
从 2025 年 5 月(v0.1.70)起提供官方 Docker 镜像。“Official docker support and images are now available! [See Docker usage](#using-docker)”。Docker 方式可以避免 CUDA / PyTorch 版本冲突。按照 README 中“Using Docker”一节操作,挂载输入输出目录即可。

## 基准测试:比肩商业方案

项目自带一个评测集 [olmOCR-Bench](https://github.com/allenai/olmocr/tree/main/olmocr/bench),覆盖 1400 份文档、7000+ 测试用例,从多个维度打分。官方公开了与两个竞品的对比:

| 子项 | Mistral OCR API | Marker 1.10.1 |
|——|—————-|—————|
| ArXiv 论文 | 77.2 | 83.8 |
| 旧扫描数学文档 | 67.5 | 66.8 |
| 表格 | 60.6 | 72.9 |
| 旧扫描件 | 29.3 | 33.5 |
| 页眉页脚去除 | 93.6 | 86.6 |
| 多栏布局 | 71.3 | 80.0 |
| 超小字体 | 77.1 | 85.7 |
| 干净基础文档 | 99.4 | 空白 |
| **整体** | 72.0±1.1 | 空白 |

说明:
– Marker 的“干净基础文档”和“整体”分数缺失,对比不完全对等。有理由怀疑 Marker 在这些项目上也不差,但数据未公开。
– olmOCR 自身在新闻中公布的 olmOCR-Bench 整体分数是 77.4(v0.1.68 版本)。后续 v0.4.0 又提升了约 4 个点。
– 页眉页脚去除一项得分 93.6,远超 Marker 的 86.6,这是它的强项——7B 模型确实能理解哪些是装饰性元素。
– 表格(60.6)和多栏(71.3)仍有提升空间,但考虑到成本优势,日常使用足够。

## 版本迭代速度

项目 2025 年 2 月公开,到 10 月已经发到 v0.4.0。关键版本:

– **v0.4.0**(2025-10-21):合成数据 + 强化学习,Bench 分数提升约 4 分。
– **v0.3.0**(2025-08-13):修复自动旋转检测和空白文档的幻觉问题。
– **v0.2.1**(2025-07-24):默认 FP8,推理速度更快,重试次数大幅减少。
– **v0.1.68**(2025-05-19):发布 olmOCR-Bench,得分 77.4。
– **v0.1.70**(2025-05-23):官方 Docker 支持。

如果要用于生产,建议锁定一个版本(如 v0.3.0),避免行为变化。Allen AI 维护积极,后续质量大概率会继续提升。

## 限制与实测问题

我用在线 demo 测试了几份中文扫描件,说一下发现:

– **手写体**:Feature 列表里写了支持,但我上传一份带有中文手写批注的论文,批注部分只识别出零星几个字,英文手写识别稍好。中文连笔字基本翻车。
– **多语言**:README 没有提非英文。从模型训练数据看,英文效果最好,中文/日文/韩文需要自己试。我建议先跑 10 页,看看误识别率。
– **长文档**:模型是单页推理,上千页的 PDF 一次性喂入会爆显存。官方 pipeline 有分批逻辑(见 README),batch size 需要根据显存调整。我试了 200 页的财报,显存占用约 12GB(A100)。
– **表格**:简单表格(每行数据规整)还原不错;跨页的合并单元格、复杂表头有时丢失结构。
– **许可证**:README 没有说明开源协议。模型托管在 Hugging Face(`allenai/olmOCR-7B-*`),商用前必须查看模型页的授权条款。

## 值不值得用

如果你的任务是**大模型语料清洗**、**数字化档案**、**从大量 PDF 中抽取干净文本**,并且预算有限,olmOCR 是目前性价比最高的开源方案之一。

– 优点:成本低(不到 200 美元/百万页)、页眉页脚去除效果好、迭代快、有公开基准。
– 短板:表格和多栏精度不如 Marker,但差距不大。中文手写基本不能用。

我个人的建议:先用在线 demo 测试 5-10 页你最典型的文档(复杂表格、扫描件、手写),如果效果满意,就上 GPU 集群。不要指望 100% 完美,但比传统 Tesseract + 正则管线的维护成本低两个数量级。如果你的文档大都是英文排版规范的(论文、财报、网页转 PDF),olmOCR 值得加入工具链。

这篇文章对你有帮助吗?

发表回复