乐于分享
好东西不私藏

百度刚开源的OCR,一次读完整个 PDF

百度刚开源的OCR,一次读完整个 PDF

传统 OCR 有个死穴:只能一页一页读。

一本 50 页的 PDF,你得先切成 50 张图片,一张一张扔给 OCR,最后再把结果拼起来。

中间要是遇到跨页的表格、连续的代码块,割裂了还得手动对齐。

百度刚开源了 Unlimited-OCR,核心突破就一句话:32K 上下文长度,一次读完整个 PDF。

不用切页,不用拼接,丢进去一个 PDF,吐出来完整的文字。

GitHub:https://github.com/baidu/Unlimited-OCR

01 它到底强在哪?

Unlimited-OCR 是百度今天(2026 年 6 月 22 日)刚开源的项目,名字直译过来就是"无限 OCR"。

核心能力一句话:一次输入,无限输出。

传统 OCR 模型的处理流程是:图片 → 检测文本区域 → 识别文字 → 输出。每一步都有上下文长度限制,通常只能处理单页。

Unlimited-OCR 打破了这个限制。它的上下文窗口是 32768 tokens——意味着一张高分辨率文档图片,或者多页 PDF 转换后的图片序列,都可以在一次推理中完整处理。

关键指标:

能力
传统 OCR
Unlimited-OCR
单次处理
单页图片
多页 PDF
上下文长度
通常 1K-2K
32K
跨页内容
割裂,需手动拼接
完整保留
表格/代码块
分页断裂
跨页连续

02 为什么 32K 上下文是个质变?

你可能觉得,32K 也就多读几页而已,有必要这么兴奋吗?

有必要。

因为 OCR 的难点从来不是"认字",而是理解文档的结构和上下文

痛点 1:跨页表格

一份财务报表,表头在第一页,数据在第二页,合计在第三页。传统 OCR 切开后,三页各认各的,最后拼出来的表格要么错位,要么缺列。

Unlimited-OCR 一次读完,表格结构完整保留。

痛点 2:连续代码块

技术文档里的代码块经常跨页。传统 OCR 读到页尾截断了,下一页从第一行重新开始,中间没有衔接——读出来的代码根本没法跑。

Unlimited-OCR 一次读完,代码块完整连续。

痛点 3:版面理解

学术论文的图表编号、参考文献引用、脚注关联——这些版面信息在跨页时最容易丢失。传统 OCR 只认字,不认版面逻辑。

Unlimited-OCR 的 32K 上下文让它能同时看到整篇论文的版面结构,理解引用关系和图表编号。

03 技术细节

架构

Unlimited-OCR 基于 DeepSeek-OCR 架构改进而来,继承了其视觉编码和文本解码的设计思路,核心升级在于:

  1. 1. 超长上下文编码:通过改进的视觉 token 压缩和注意力机制,将单张图片的视觉 token 数量控制在合理范围内,同时支持多页串联
  2. 2. 多页推理infer_multi() 方法支持批量传入多张图片,一次性输出完整解析结果
  3. 3. PDF 原生支持:内置 PDF 转图片管线(使用 PyMuPDF),自动处理 DPI 转换

两种运行模式

模式
适用场景
参数
gundam
单张图片/单页文档
base_size=1024, image_size=640, crop_mode=True
base
多页/PDF
base_size=1024, image_size=1024, crop_mode=False

gundam 模式针对单页做了优化,用裁剪策略降低计算量;base 模式则保持完整分辨率,适合需要精确定位的场景。

部署方式

支持两种推理后端:

Transformers 模式(简单,适合单张或少量图片):

from transformers import AutoModel, AutoTokenizertokenizer = AutoTokenizer.from_pretrained(&#x27;baidu/Unlimited-OCR&#x27;, trust_remote_code=True)model = AutoModel.from_pretrained(&#x27;baidu/Unlimited-OCR&#x27;, trust_remote_code=True, torch_dtype=torch.bfloat16)model = model.eval().cuda()# 单张图片model.infer(tokenizer, prompt=&#x27;<image>document parsing.&#x27;, image_file=&#x27;doc.jpg&#x27;, output_path=&#x27;./output&#x27;)# 多页/PDFmodel.infer_multi(tokenizer, prompt=&#x27;<image>Multi page parsing.&#x27;, image_files=[&#x27;p1.png&#x27;, &#x27;p2.png&#x27;, &#x27;p3.png&#x27;], output_path=&#x27;./output&#x27;)

SGLang 模式(高性能,适合批量处理):

python -m sglang.launch_server \    --model baidu/Unlimited-OCR \    --context-length 32768 \    --mem-fraction-static 0.8 \    --host 0.0.0.0 --port 10000

支持 OpenAI 兼容 API 调用,流式输出。

04 和 DeepSeek-OCR 比怎么样?

Unlimited-OCR 的 README 里明确写了:它就是在 DeepSeek-OCR 的基础上做的改进。

维度
DeepSeek-OCR
Unlimited-OCR
发布者
DeepSeek
百度
发布时间
较早
2026-06-22
上下文长度
较短
32K
多页支持
有限
原生支持
PDF 处理
需手动切页
内置 PDF 转图管线
部署方式
Transformers
Transformers + SGLang

Unlimited-OCR 的核心优势就是 32K 上下文 + PDF 原生支持。

05 怎么上手?

环境要求

  • • Python 3.12+
  • • CUDA 12.9+
  • • NVIDIA GPU(推荐,支持 bfloat16)

安装

pip install torch torchvision transformers Pillow matplotlib einops addict easydict pymupdf psutil

使用示例

# 单张图片(gundam 模式)python infer.py --image_dir ./examples/images --output_dir ./outputs --image_mode gundam# PDF 文件python infer.py --pdf ./examples/document.pdf --output_dir ./outputs --image_mode gundam# 批量处理(支持并发)python infer.py --image_dir ./examples/images --output_dir ./outputs --concurrency 8 --image_mode gundam

直接调用 Hugging Face 模型

from transformers import AutoModel, AutoTokenizerimport torchtokenizer = AutoTokenizer.from_pretrained(&#x27;baidu/Unlimited-OCR&#x27;, trust_remote_code=True)model = AutoModel.from_pretrained(    &#x27;baidu/Unlimited-OCR&#x27;,    trust_remote_code=True,    use_safetensors=True,    torch_dtype=torch.bfloat16,)model = model.eval().cuda()# 解析单张图片model.infer(    tokenizer,    prompt=&#x27;<image>document parsing.&#x27;,    image_file=&#x27;your_document.jpg&#x27;,    output_path=&#x27;./output&#x27;,    base_size=1024, image_size=640, crop_mode=True,    max_length=32768,)

06 局限性

1. 需要 GPU

模型不是轻量级的,需要 NVIDIA GPU 推理。CPU 也能跑但速度很慢。

2. 分辨率和速度权衡

32K 上下文意味着处理大图时显存占用不小。单页用 gundam 模式(640px)比较省资源,多页用 base 模式(1024px)效果更好但更吃显存。

3. 刚开源,还在早期

6 月 22 日发布,功能上目前聚焦在文档解析,复杂的手写体、艺术字等场景效果待验证。

4. 论文还没发

README 里 Citation 部分写着"Coming soon!"——论文还没上 arXiv。想了解技术细节得等论文发布。

写在最后

OCR 这个赛道最近热闹得不行。DeepSeek-OCR、HunyuanOCR、GLM-OCR、PaddleOCR-VL 几乎同时扎堆发布,各家都在抢大模型的"眼睛"。

百度的 Unlimited-OCR 选了一个很务实的路子:不堆参数,不做大而全,就解决一个具体问题——一次读完整个 PDF。

文档解析是大模型时代的基础设施。

谁能把 PDF 读得最完整、最准确,谁就掌握了大模型理解现实世界的第一个入口。

GitHub:https://github.com/baidu/Unlimited-OCR