跳转至

Multimodal OCR: Parse Anything from Documents

日期: 2026-03-20
arXiv: 2603.13032
代码: dots.mocr
领域: 多模态VLM / 文档理解
关键词: multimodal OCR, document parsing, SVG reconstruction, graphics parsing, vision encoder

一句话总结

提出 MOCR 范式将文档中的图表、图标、UI 等图形元素从"像素裁剪"升级为"可渲染结构化代码(SVG)"的一等解析目标,通过从头训练 1.2B 视觉编码器 + Qwen2.5-1.5B 解码器的 3B 模型在 olmOCR-Bench 上达到 83.9 SOTA,在 UniSVG 图形解析上以 0.902 超越 Gemini 3 Pro 的 0.735。

研究背景与动机

  1. 领域现状: 文档解析已成为 LLM/VLM 预训练数据引擎的核心环节,现有系统(MinerU、MonkeyOCR、PaddleOCR 等)在文本识别和版面分析上取得了长足进步。

  2. 现有痛点: 当前 OCR 管线本质上是"文本中心"的——遇到图表、流程图、图标等非文本区域时,只是将其裁剪为像素块(raster crop),丢弃了图形中编码的丰富结构和语义信息。这意味着文档解析是有损的,大量可用于训练的监督信号被浪费。

  3. 核心矛盾: 文档中最丰富的信息往往在图形中而非文本中,但传统 OCR 恰恰忽视了这部分。同时图形解析面临三重困难:(a) 缺少对齐的程序化标注数据;(b) 同一图形可对应多种等价代码(non-unique targets);(c) 需要精确视觉定位 + 长序列结构化生成。

  4. 切入角度: 现代 VLM 已能从图像生成可执行代码(如 pix2code 生成 UI 代码、StarVector 生成 SVG),说明"图形→结构化代码"在技术上是可行的。

  5. 核心 idea: 将文档中所有图形元素提升为一等解析目标,统一输出结构化可渲染的 SVG 代码,使文档变成"图像-代码-文本"三元组的大规模预训练语料来源。

方法详解

整体框架

输入文档图像 \(\mathbf{I}\) → 1.2B 高分辨率视觉编码器(支持 ~11M 像素)→ 轻量多模态连接器 → Qwen2.5-1.5B 自回归解码器 → 输出有序元素序列 \(\mathbf{S} = [(\mathcal{B}_k, c_k, p_k)]\),每个元素包含空间区域、语义类型和负载内容(文本区域输出 Markdown/LaTeX,图形区域输出 SVG 代码)。

关键设计

  1. 从头训练的高分辨率视觉编码器:

    • 做什么:1.2B 参数的 Vision Encoder,原生支持 ~11M 像素输入
    • 核心思路:完全从头训练(不用 ImageNet 预训练权重),让特征表示原生适配文档解析任务
    • 设计动机:高分辨率对小字体、密集版面和图形细节(chart markers、diagram strokes)至关重要;从头训练避免域外预训练引入的偏置
  2. 三阶段渐进预训练:

    • Stage 1:通用视觉-语言对齐,建立稳定的 vision-language 接口
    • Stage 2:大规模混合训练——通用视觉数据 + 纯文本文档解析,建立强文本解析基础
    • Stage 3:混合比例向 MOCR 倾斜——降低通用视觉数据比例,增加多模态文档解析(含 image-to-SVG),同时逐阶段升分辨率
    • 最后进行指令微调(SFT),用数据引擎生产的高质标注精修
  3. 大规模数据引擎:

    • 做什么:从 4 个互补来源构建训练语料——PDF 文档、网页渲染、原生 SVG 素材、通用数据
    • PDF 部分:用 dots.ocr 作自动标注引擎,按语言/领域/版面复杂度分层采样
    • SVG 部分:从网页收集原生 SVG 图标/图表/UI 元素,用 svgo 清洗规范化 + pHash 去重 + 复杂度感知采样
    • 设计动机:SVG 目标天然非唯一(不同代码可产生相同渲染结果),需要规范化和渲染验证来确保训练稳定
  4. OCR Arena 自动评测:

    • 做什么:用 LLM-as-Judge(Gemini 3 Flash)替代传统 WER/NED 指标
    • 核心思路:对称评估协议——每对输出做两次配对比较(交换顺序),只在两次一致时判定胜负,消除位置偏置
    • 用 Elo 评分系统汇总数千次配对,bootstrap 1000 次保证统计稳健性

实验关键数据

主实验(文档解析 Elo 评分)

模型 olmOCR-Bench OmniDocBench1.5 XDocParse Average
Gemini 3 Pro 1180.4 1128.0 1323.7 1210.7
dots.mocr 1104.4 1059.0 1210.7 1124.7
dots.ocr 1041.1 1027.2 1190.3 1086.2
HunyuanOCR 997.6 1003.9 951.1 984.2

olmOCR-Bench 绝对分数:dots.mocr 83.9(SOTA),超越所有开源系统。

图形解析(ISVGEN 重建分数)

方法 UniSVG Overall ChartMimic Design2Code ChemDraw
OCRVerse 0.763 0.799 - 0.881
Gemini 3 Pro 0.735 0.788 0.760 0.839
dots.mocr 0.894 0.772 0.801 0.790
dots.mocr-svg 0.902 0.905 0.834 0.901

关键发现

  • 3B 参数模型在文档解析上仅次于 Gemini 3 Pro,超越所有开源系统
  • dots.mocr-svg 在所有图形解析 benchmark 上全面超越 Gemini 3 Pro(+0.167 UniSVG)
  • 统一训练未损害通用 VQA 能力:CharXiv Reasoning 55.3(超 Qwen3-VL-4B 的 39.7)

亮点与洞察

  • 范式转换意义重大:将文档图形从"丢弃的像素"变为"可复用的代码监督",为多模态预训练开辟了全新数据来源
  • 从头训练视觉编码器的决定很大胆——11M 像素原生支持让文档细节不丢失,避免了通用预训练编码器在文档场景的性能天花板
  • 渲染-验证循环巧妙解决了 SVG 非唯一性问题:不比较代码相似度,而是比较渲染结果

局限性 / 可改进方向

  • 当前需分两次 pass(文本解析 + 图形 SVG)完成完整解析,尚未实现单次端到端的全页多模态解析
  • 复杂自然图像(如照片)无法用 SVG 表示,仍需保留为栅格——边界判定标准需更清晰
  • Elo 评测依赖 Gemini 3 Flash 做 judge,评测结论可能受 judge 模型偏置影响
  • SVG 解析在科学图示(SciGen 0.797)和考试图(GenExam 0.800)上仍有提升空间

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次提出将文档图形统一解析为 SVG 代码的完整范式
  • 实验充分度: ⭐⭐⭐⭐ 覆盖 6 类图形+3 类文档 benchmark,但缺少人工评估
  • 价值: ⭐⭐⭐⭐⭐ 开源 3B 模型+数据引擎,为文档智能和多模态预训练开辟新方向