首页
/
Unlimited-OCR
基本信息
- 工具类别: 开源
- 收录时间: 2026-07-21
- 访问次数: 23
- 评分: 4.9
- 官网: https://github.com/baidu/Unlimited-OCR
工具详情
Unlimited-OCR 使用指南
Unlimited-OCR 是百度(Baidu)开源的一款针对长文本/多页文档解析的端到端 OCR 大模型。该模型旨在推动“单次长序列文档解析”的技术发展,能够高效处理复杂的 PDF、报表及论文等结构化文件。
一、平台与开源信息
- 许可证协议采用 MIT 开源协议。
- 允许免费商业使用及二次开发。
- 获取地址GitHub:https://github.com/baidu/Unlimited-OCR
- Hugging Face仓库名:
baidu/Unlimited-OCR(可在 HuggingFace Pages 查看) - 演示空间ModelScope / HuggingFace Spaces 提供部署 Demo。
二、主要功能特性
- 单图高精识别能力支持对高分辨率复杂图像进行结构化识别。
- 长上下文连续解析最高支持 32,768 tokens。
- 可直接输入多张图片或自动将 PDF 转图后,一次性完成整份文档的解析输出。
- 针对重复生成优化内置专门的
DeepseekOCRNoRepeatNGramLogitProcessor逻辑处理。 - 有效解决传统视觉语言模型在长文档识别中容易出现的内容循环、文本重复输出的问题。
- 多推理引擎支持提供多种接入方式(Hugging Face Transformers, vLLM, SGLang)。
- 包含 Docker 镜像与多线程并发处理脚本
infer.py。
三、适用人群与场景
- AI 开发者 / 算法工程师需要处理复杂 PDF、电子报表或论文的团队,希望实现文档电子化与 Markdown 结构化抽取的技术人员。
- RAG / 知识库搭建者RAG(检索增强生成)系统的核心前置需求是长文本高效 Parsing,此模型能显著提升准确性。
- 企业与科研机构寻找高精度、可私有化部署且无需支付高额授权费用的开源 OCR 解决方案的用户。
四、免费与付费情况说明
- 本地开源方案(推荐)MIT 协议,模型权重和代码完全免费。
- 自建 GPU 节点部署无任何额外费用。
- 云端托管服务现已上线百度智能云(千帆大模型平台)。
- 如不想自行搭建环境,可使用其提供的 API 或托管算力服务。
五、核心使用流程
1. 基础 Python 依赖安装
- 推荐环境:Python 3.12 + CUDA (建议版本 12.x/13.x)
- 关键库列表:需包含
torch,transformers,Pillow等常用深度学习及图像处理库。
2. Python 代码推理示例(Hugging Face Transformers)
此脚本使用 gundam 模式对单图进行切片增强解析,请确保替换为本地图片路径:
python
import torch
from transformers import AutoModel, AutoTokenizer
model_name = 'baidu/Unlimited-OCR'
# 1.加载 Tokenizer 和 Model (建议开启 safetensors)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
trust_remote_code=True,
use_safetensors=True,
torch_dtype=torch.bfloat16
).eval().cuda()
# 2.执行单图解析 (使用 gundam 切片模式提升复杂排版识别率)
model.infer(
tokenizer=tokenizer,
prompt='<image>document parsing.', # Prompt
image_file='your_image.jpg', # 输入图片路径
output_path='./output', # 结果输出目录
base_size=1024, # Base Size (大图模式)
image_size=640, # Image Resize (切片大小)
crop_mode=True, # True=gundam模式,False=base模式
max_length=32768, # 最大输出 Token 数
save_results=True # 保存结果文件
)
import torch
from transformers import AutoModel, AutoTokenizer
model_name = 'baidu/Unlimited-OCR'
# 1.加载 Tokenizer 和 Model (建议开启 safetensors)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
trust_remote_code=True,
use_safetensors=True,
torch_dtype=torch.bfloat16
).eval().cuda()
# 2.执行单图解析 (使用 gundam 切片模式提升复杂排版识别率)
model.infer(
tokenizer=tokenizer,
prompt='<image>document parsing.', # Prompt
image_file='your_image.jpg', # 输入图片路径
output_path='./output', # 结果输出目录
base_size=1024, # Base Size (大图模式)
image_size=640, # Image Resize (切片大小)
crop_mode=True, # True=gundam模式,False=base模式
max_length=32768, # 最大输出 Token 数
save_results=True # 保存结果文件
)
3. PDF 批量解析与命令行工具
借助官方内置的 infer.py 脚本配合 SGLang 服务,可直接开启多线程并发处理:
- 命令说明:解析整个 PDF 文件并指定输出目录。
- 参数设置建议:PDF 连续解析通常建议使用
base模式(对应代码中的 crop_mode=False)。 - 运行示例:
bash
# python infer.py --pdf ./document.pdf \ # (请确认实际脚本文件名)
--output_dir ./outputs \ # PDF 文件路径与结果输出目录映射
--concurrency 8 # GPU并发处理设置
--image_mode base # mode: gundam(单图/复杂), base (多页/PDF)
# python infer.py --pdf ./document.pdf \ # (请确认实际脚本文件名)
--output_dir ./outputs \ # PDF 文件路径与结果输出目录映射
--concurrency 8 # GPU并发处理设置
--image_mode base # mode: gundam(单图/复杂), base (多页/PDF)
六、注意事项与配置建议
- 模式选择指南
gundam模式:适用于单图或排版复杂的图片(对应参数image_size=640,crop_mode=True)。 base模式:适用于多图批量解析或 PDF 连续解析(通常不启用切片裁剪,图像尺寸较大如1024)。- 硬件资源要求显存推荐:模型上下文长度高达 32k,建议在 NVIDIA A100, H100, RTX 4090 等算力充足的设备上运行。
- 精度设置:强烈建议使用
torch.bfloat16混合精度推理以节省显存并保证速度。 - 防重复生成配置 (Repetition Penalty)长文本生成的循环问题需要通过参数抑制,避免模型“复读”。
- 多页文档建议:设置较大的
ngram_window=1024(如适用)。 - 普通单图/短文:可设为较小的窗口值以平衡生成流畅度与重复抑制。
暂无评论