一个基于视觉压缩的高效OCR模型,可将文档图像转换为Markdown格式,支持多分辨率和多语言识别

MITPythonDeepSeek-OCRdeepseek-ai 17.7k Last Updated: October 25, 2025

DeepSeek-OCR 项目详细介绍

项目概述

DeepSeek-OCR 是由 DeepSeek AI 团队开发的一款创新型开源光学字符识别模型,专注于探索视觉文本压缩的边界。该项目从以大语言模型为中心的视角研究视觉编码器的作用,通过将视觉感知作为信息压缩媒介,能够以显著更少的 token 处理大型复杂文档。

核心特点

  • 高效压缩:实现 7-20 倍的 token 压缩率,在 10 倍压缩下保持约 97% 的解码精度
  • 多分辨率支持:支持从 512×512 到 1280×1280 的多种原生分辨率
  • 高性能处理:单个 A100-40G GPU 每天可生成超过 20 万页训练数据
  • 多语言支持:支持约 100 种语言的文本识别
  • 多功能性:不仅支持文本提取,还能理解图表、化学分子式和简单图形

技术架构

模型组成

DeepSeek-OCR 由两个核心组件构成:

  1. DeepEncoder(视觉编码器)

    • 参数量:约 3.8 亿
    • 架构组合:
      • SAM-ViTDet(Meta 的 8000 万参数分割模型)用于局部图像感知
      • 2 层卷积压缩器,实现 16× token 降采样
      • CLIP ViT-300M(OpenAI 的 3 亿参数模型)用于全局视觉知识聚合
  2. DeepSeek3B-MoE 解码器

    • 活跃参数:约 5.7 亿
    • 总参数:3B(混合专家模型架构)
    • 功能:基于图像 token 和提示信息生成结果

工作原理

  1. 图像处理流程

    • 1024×1024 像素图像初始产生 4096 个 token
    • SAM 模块进行窗口注意力处理
    • 压缩器将 token 减少到 256 个(16× 压缩)
    • CLIP 模块进行全局注意力处理
    • 最终输出压缩的视觉 token
  2. 分辨率模式

    • 原生分辨率模式

      • Tiny:512×512(64 视觉 token)
      • Small:640×640(100 视觉 token)
      • Base:1024×1024(256 视觉 token)
      • Large:1280×1280(400 视觉 token)
    • 动态分辨率模式

      • Gundam:n×640×640 + 1×1024×1024(结合全局和局部视野)

性能表现

基准测试结果

  • Fox 基准测试:在 10 倍压缩率下,解码准确率达到约 97%
  • OmniDocBench 基准测试
    • 仅使用 100 个视觉 token 就超越了 GOT-OCR2.0(256 token/页)
    • 使用少于 800 个视觉 token 超越了 MinerU2.0(平均每页超过 6000 token)

训练和推理性能

  • 训练速度
    • 纯文本数据:每天 90B token
    • 多模态数据:每天 70B token
  • 生产性能:单个 A100-40G 节点每天可处理超过 20 万页
  • 并发性能:PDF 处理约 2500 tokens/s(A100-40G)

应用场景

主要功能

DeepSeek-OCR 支持多种提示模式:

# 文档转 Markdown
prompt = "<image>\n<|grounding|>Convert the document to markdown."

# 通用 OCR
prompt = "<image>\n<|grounding|>OCR this image."

# 自由 OCR(无布局)
prompt = "<image>\nFree OCR."

# 图表解析
prompt = "<image>\nParse the figure."

# 详细图像描述
prompt = "<image>\nDescribe this image in detail."

# 文本定位
prompt = "<image>\nLocate <|ref|>xxxx<|/ref|> in the image."

实际应用

  1. 文档数字化:高效处理学术论文、书籍、报告等文档
  2. 数据集生成:为大语言模型和视觉语言模型生成海量训练数据
  3. 聊天机器人上下文压缩:通过降低分辨率存储旧对话记录(类似人类记忆衰减)
  4. 结构化数据提取
    • 将财务图表转换为结构化数据
    • 自动生成 Markdown 表格和图形
    • 支持化学分子式(SMILES 格式)识别

安装和使用

环境要求

  • Python 3.12.9
  • CUDA 11.8
  • PyTorch 2.6.0
  • Transformers 4.46.3

安装步骤

# 克隆仓库
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
cd DeepSeek-OCR

# 创建 Conda 环境
conda create -n deepseek-ocr python=3.12.9 -y
conda activate deepseek-ocr

# 安装依赖
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118
pip install vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl
pip install -r requirements.txt
pip install flash-attn==2.7.3 --no-build-isolation

使用示例

方式一:使用 Transformers

from transformers import AutoModel, AutoTokenizer
import torch
import os

os.environ["CUDA_VISIBLE_DEVICES"] = '0'

model_name = 'deepseek-ai/DeepSeek-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
    model_name, 
    _attn_implementation='flash_attention_2', 
    trust_remote_code=True, 
    use_safetensors=True
)
model = model.eval().cuda().to(torch.bfloat16)

# 配置推理参数
prompt = "<image>\n<|grounding|>Convert the document to markdown."
image_file = 'your_image.jpg'
output_path = 'your/output/dir'

# 执行推理
res = model.infer(
    tokenizer, 
    prompt=prompt, 
    image_file=image_file, 
    output_path=output_path, 
    base_size=1024, 
    image_size=640, 
    crop_mode=True, 
    save_results=True, 
    test_compress=True
)

方式二:使用 vLLM(高性能推理)

# 修改配置文件
cd DeepSeek-OCR-master/DeepSeek-OCR-vllm
# 编辑 config.py 设置 INPUT_PATH/OUTPUT_PATH

# 运行图像 OCR(流式输出)
python run_dpsk_ocr_image.py

# 运行 PDF OCR(高并发)
python run_dpsk_ocr_pdf.py

# 批量评估
python run_dpsk_ocr_eval_batch.py

技术创新

视觉文本压缩范式

DeepSeek-OCR 提出了一种新的视觉文本压缩范式:

  • 核心思想:将文本转换为图像并通过视觉编码器处理,不再以文本 token 形式存储语义
  • 优势
    • 更少的内存占用:视觉 token 更紧凑
    • 更快的推理速度:更少的 token = 更少的计算量
    • 自然遗忘机制:旧上下文可以降采样
    • 更容易的多模态融合:模型已经将文本视为图像

与传统 OCR 的区别

传统 OCR 采用管道式架构(检测 → 识别 → 后处理),而 DeepSeek-OCR 采用端到端的视觉语言模型架构,从根本上简化了 OCR 系统。

资源链接

致谢

DeepSeek-OCR 项目感谢以下开源项目的贡献:

  • Vary
  • GOT-OCR2.0
  • MinerU
  • PaddleOCR
  • OneChart
  • Slow Perception

以及基准测试数据集:Fox 和 OmniDocBench。

总结

DeepSeek-OCR 代表了 OCR 技术的重大创新,通过视觉压缩范式解决了大语言模型长上下文处理的挑战。其高效的 token 压缩能力(7-20 倍)、优秀的准确率(10 倍压缩下 97% 精度)以及强大的处理能力(单 GPU 日处理 20 万页),使其成为文档数字化、AI 训练数据生成和多模态应用的理想选择。

该项目的开源特性和完善的文档使其易于集成到各种应用场景中,为研究人员和开发者提供了一个强大的工具来探索视觉文本压缩的边界。

Star History Chart