Unlimited-OCR是什么?百度开源长文档OCR模型部署与使用指南
在企业系统、资料归档、合同管理、票据识别、知识库建设等场景中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-OCRUnlimited-OCR 是百度开源的 OCR 模型项目主要面向长文档识别、图片文字解析、多页 PDF 解析等场景。它的核心目标是让 OCR 不只识别单张图片而是更好地处理长篇、多页、复杂文档。在官方论文摘要中作者提到传统端到端 OCR 模型在输出序列变长时KV cache 会持续增长导致内存消耗增加、生成速度下降。Unlimited OCR 则希望通过新的注意力机制改善长文档解析过程中的计算和缓存压力。简单理解它更适合用于多页 PDF 文档解析扫描件文字识别长文档 OCR图文混排内容提取文档数字化处理知识库前置解析二、Unlimited-OCR 解决什么问题很多 OCR 系统在实际使用中会遇到几个典型问题单页识别可以多页文档处理麻烦PDF 需要先切图再分批识别长文本输出容易变慢多页内容合并后结构不稳定复杂版式容易影响识别效果批量文档处理对环境要求较高Unlimited-OCR 的思路是提升长文档解析能力。论文中提到在标准 32K 最大长度下Unlimited OCR 可以在单次前向过程中转录几十页文档。对于需要做文档自动化处理的开发者来说这类能力比较适合接入到 OCR API、文档解析后台、知识库导入系统或企业内部资料归档流程中。三、核心特点解析1. 面向长文档 OCRUnlimited-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 与 SGLangUnlimited-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 发起并发请求。批量识别 PDFpython 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 从单次识别工具扩展成长期运行的文档解析服务。