首页 / 详情
Site icon

Unlimited-OCR

基本信息

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 服务,可直接开启多线程并发处理:

  1. 命令说明:解析整个 PDF 文件并指定输出目录。
  2. 参数设置建议:PDF 连续解析通常建议使用 base 模式(对应代码中的 crop_mode=False)。
  3. 运行示例:

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(如适用)。
  • 普通单图/短文:可设为较小的窗口值以平衡生成流畅度与重复抑制。


评论

暂无评论