在企业系统、资料归档、合同管理、票据识别、知识库建设等场景中,OCR 一直是非常重要的基础能力。
传统 OCR 通常更擅长单页图片或短文本识别,但面对长文档、多页 PDF、复杂版式内容时,往往需要先切页、分块、识别、再合并结果。如果流程设计不好,很容易出现上下文断裂、格式丢失、长文档处理效率低等问题。
baidu/Unlimited-OCR正是围绕长文档解析能力设计的开源 OCR 项目。项目官方定位是 “Welcome the Era of One-shot Long-horizon Parsing”,重点探索一次性长上下文文档解析能力。其论文也说明,Unlimited OCR 通过 Reference Sliding Window Attention,也就是 R-SWA,降低长序列生成中的注意力计算成本,并在整个解码过程中保持常量 KV cache。
一、什么是 Unlimited-OCR?
Unlimited-OCR 是百度开源的 OCR 模型项目,主要面向长文档识别、图片文字解析、多页 PDF 解析等场景。
它的核心目标是:
让 OCR 不只识别单张图片,而是更好地处理长篇、多页、复杂文档。
在官方论文摘要中,作者提到传统端到端 OCR 模型在输出序列变长时,KV cache 会持续增长,导致内存消耗增加、生成速度下降。Unlimited OCR 则希望通过新的注意力机制改善长文档解析过程中的计算和缓存压力。
简单理解,它更适合用于:
- 多页 PDF 文档解析
- 扫描件文字识别
- 长文档 OCR
- 图文混排内容提取
- 文档数字化处理
- 知识库前置解析
二、Unlimited-OCR 解决什么问题?
很多 OCR 系统在实际使用中会遇到几个典型问题:
- 单页识别可以,多页文档处理麻烦
- PDF 需要先切图再分批识别
- 长文本输出容易变慢
- 多页内容合并后结构不稳定
- 复杂版式容易影响识别效果
- 批量文档处理对环境要求较高
Unlimited-OCR 的思路是提升长文档解析能力。论文中提到,在标准 32K 最大长度下,Unlimited OCR 可以在单次前向过程中转录几十页文档。
对于需要做文档自动化处理的开发者来说,这类能力比较适合接入到 OCR API、文档解析后台、知识库导入系统或企业内部资料归档流程中。
三、核心特点解析
1. 面向长文档 OCR
Unlimited-OCR 的重点不是普通截图识别,而是长文档解析。
官方仓库说明它支持单图识别,也支持多页与 PDF 处理。README 示例中,单图可以使用model.infer(),多页图片和 PDF 转图片后可以使用model.infer_multi()。
这对于合同、报告、论文、说明书、扫描资料等内容比较实用。
2. 支持 PDF 转图片后解析
官方示例中使用 PyMuPDF 将 PDF 页面转换为图片,再交给模型进行多页解析。示例流程会按页生成图片路径,再调用infer_multi()处理。
这意味着它可以作为 PDF 文档解析系统中的 OCR 引擎使用。
常见流程可以设计为:
上传PDF → 转换页面图片 → OCR识别 → 结果保存 → 后续检索或入库3. 支持 Transformers 推理
官方 README 给出了基于 Hugging Face Transformers 的推理方式,并说明测试环境包括 Python 3.12.3、CUDA 12.9,以及 torch、transformers、Pillow、PyMuPDF 等依赖。
这类方式适合开发者快速验证模型效果,也适合做小规模实验。
4. 支持 vLLM 与 SGLang
Unlimited-OCR 已支持 vLLM 推理,官方 Release 记录中提到 2026 年 6 月 28 日加入 vLLM 支持;Hugging Face 页面也列出了 vLLM、SGLang、Docker Model Runner 等部署方式。
如果要做在线 OCR 服务,vLLM 或 SGLang 更适合 API 化部署。
5. 支持批量推理
官方仓库提供了infer.py批处理方式,可以对图片目录或 PDF 进行并发请求处理,并支持设置--concurrency、--output_dir、--gpu、--model_dir等参数。
这对于批量扫描件、归档资料、企业文档转换任务比较有价值。
四、适合哪些场景?
Unlimited-OCR 比较适合以下场景:
文档数字化
将扫描件、纸质资料、合同、报告转换成可搜索文本。
知识库建设
在 RAG、企业知识库、文档问答系统前,先做 OCR 和文本提取。
PDF解析系统
处理多页 PDF、图文混排文档、扫描版资料。
票据与表单识别
用于识别图片中的文字内容,再结合规则或模型做字段提取。
企业内部资料归档
将历史文档批量转换为结构化或半结构化文本。
五、部署参考
环境准备
如果只是搭建接口服务、上传后台和任务队列,可以使用普通 CPU 服务器。
如果要在本地直接跑 Unlimited-OCR 模型推理,则建议使用 NVIDIA GPU 环境,因为官方 Transformers 示例说明是在 NVIDIA GPU 上进行推理测试。
基础环境可以先准备:
apt update apt install -y git python3 python3-venv python3-pip ffmpeg poppler-utils获取项目
git clone https://github.com/baidu/Unlimited-OCR.git cd Unlimited-OCR创建虚拟环境
python3 -m venv .venv source .venv/bin/activate安装依赖
可根据官方 README 中的版本要求安装 PyTorch、Transformers、Pillow、PyMuPDF 等依赖。官方示例列出的依赖包括 torch、torchvision、transformers、Pillow、matplotlib、einops、addict、easydict、pymupdf、psutil 等。
示例:
pip install transformers pillow matplotlib einops addict easydict pymupdf psutilPyTorch 建议根据 CUDA 版本选择对应安装方式。
批量识别图片目录
python infer.py \ --image_dir ./examples/images \ --output_dir ./outputs \ --concurrency 4 \ --image_mode gundam官方示例中,infer.py可以自动启动 SGLang server,并对图片目录或 PDF 发起并发请求。
批量识别 PDF
python infer.py \ --pdf ./examples/document.pdf \ --output_dir ./outputs \ --concurrency 4 \ --image_mode gundam如果是大批量文档,建议控制并发数,避免显存、内存或磁盘 IO 压力过高。
六、服务器部署建议
Unlimited-OCR 本身更像是 OCR 模型与推理项目。如果要真正用于业务系统,通常还需要额外搭建:
- 文件上传接口
- OCR任务队列
- PDF转图片模块
- 推理服务
- 结果存储
- 任务状态查询
- 管理后台
- 日志与监控
如果只是偶尔测试,本地环境即可。但如果需要长期运行 OCR 服务,建议部署在独立服务器环境中。
例如可以在莱卡云服务器上搭建 OCR 文档处理平台,将 Web 后台、任务队列、文件存储、结果数据库和推理服务分层部署。这样本地电脑不需要长期开机,文档处理任务也更方便统一管理。
比较常见的架构是:
用户上传文档 ↓ 任务队列 ↓ PDF转图片 ↓ Unlimited-OCR推理 ↓ 识别结果入库 ↓ 前端查看 / API调用 / 知识库导入如果推理压力较大,可以将 OCR 推理服务单独放到 GPU 节点,普通 Web 服务、数据库和任务调度放在常规云服务器上。这样结构更清晰,也方便后续扩展。
七、配置建议
个人测试环境可以从 4 核 8G 起步,但本地模型推理需要重点考虑 GPU 和显存。
如果只是搭建 Web 接口、任务调度和结果管理,4 核 8G 或 8 核 16G 通常更容易维护。
如果要进行批量 OCR 推理、多并发 PDF 解析或长文档识别,建议准备 NVIDIA GPU 环境,并根据文档页数、并发数、图片分辨率和输出长度调整资源。
参考配置:
轻量测试:4核8G + 单任务推理 普通文档平台:8核16G + 队列处理 批量OCR服务:16核32G + GPU推理节点 企业级文档处理:Web节点 + 存储节点 + GPU推理节点分离八、使用注意事项
OCR 系统经常处理合同、证件、财务、客户资料等敏感内容,部署时需要注意数据安全。
建议:
- 上传目录与输出目录隔离
- 限制公网访问管理后台
- 对接口增加鉴权
- 对临时文件定期清理
- 对敏感文档设置访问权限
- 日志中避免记录完整隐私内容
- 业务使用前确认文档授权与合规要求
Unlimited-OCR 可以提升文档解析效率,但识别结果仍然需要结合人工校验、规则检查或后处理流程,尤其是合同金额、证件号码、发票金额等关键字段。
九、总结
Unlimited-OCR 本质上是一个:
面向长文档解析的开源 OCR 模型项目。
它的主要价值在于:
- 支持长文档 OCR
- 支持图片与多页 PDF 解析
- 支持 Transformers 推理
- 支持 vLLM 与 SGLang 部署
- 支持批量任务处理
- 适合文档数字化、知识库导入、资料归档等场景
对于需要搭建 OCR 文档处理平台的开发者来说,Unlimited-OCR 是一个值得关注的开源项目。配合稳定的服务器环境使用,可以将 OCR 从单次识别工具,扩展成长期运行的文档解析服务。