Multimodal OCR: Parse Anything from Documents¶
会议: CVPR 2026
arXiv: 2603.13032
代码: https://github.com/rednote-hilab/dots.mocr (有)
领域: 文档解析 / 多模态VLM / OCR
关键词: 文档解析, 图形解析, SVG生成, 视觉语言模型, 多模态OCR
一句话总结¶
提出Multimodal OCR (MOCR)范式,将文档中的文本和图形(图表、图示、UI组件等)统一解析为结构化文本表示(文本+SVG代码),训练3B参数的dots.mocr模型在OCR Arena排名仅次于Gemini 3 Pro,在olmOCR Bench达到83.9 SOTA,在image-to-SVG基准上超越Gemini 3 Pro。
背景与动机¶
在大语言模型和多模态模型时代,文档解析是预训练和检索的核心数据引擎。然而文档不仅通过文本传递信息,还通过图表、图示、流程图、UI元素等图形传递信息。现有文档解析管线本质上是以文本为中心的:它们专注于文本识别和组织,而将非文本元素简单裁剪为像素保存。这导致文档图形中大量结构化和语义信息被丢弃,使得当前文档解析本质上是有损的,限制了从文档中可提取的监督信号量。近期视觉语言模型的进展使得从文档视觉元素中恢复结构化表示成为可能——不仅仅是描述,还能生成可执行的表示(如SVG代码)以实现原始结构的重建。
核心问题¶
如何将文档解析从"仅提取文本"扩展到"解析文档中的一切"——包括文本、布局结构、表格、以及图表/图示/图标/UI组件等信息密集图形?关键挑战:(1) 图形的监督信号稀缺(真实文档很少提供对齐的程序表示);(2) 可渲染程序本质上非唯一(不同代码可产生视觉相同的输出);(3) 任务要求精确的视觉定位与长序列结构化生成。
方法详解¶
整体框架¶
MOCR将文档页面解析定义为生成有序的解析元素序列S = [(B₁,c₁,p₁),...,(Bₖ,cₖ,pₖ)],其中Bₖ为空间区域,cₖ为语义类别,pₖ为类型相关的载荷。对文本区域pₖ是文本转写(纯文本/表格markup/LaTeX),对图形区域pₖ是可渲染结构化表示(SVG代码)。序列按人类阅读顺序生成。
关键设计¶
-
高分辨率视觉编码器: 1.2B参数的视觉backbone完全从零训练,支持高达~11M像素的原生高分辨率输入。从零训练确保编码器形成原生优化于文档解析的特征表示,能同时处理密集文本和几何敏感的视觉符号(图表标记、图示笔画等)。
-
结构化语言解码器: 使用Qwen2.5-1.5B作为自回归解码器。选择1.5B是在统一MOCR解析的容量与成本间的折衷——更小的模型难以同时处理异构页面内容并生成长结构化输出,更大的解码器增加训练和推理成本。使用base模型而非chat模型作为初始化,为学习非自然的强结构化目标序列提供中性起点。
-
分阶段训练策略: 三阶段大规模预训练+指令微调:
- 阶段1: 通用视觉训练,建立稳定的视觉-语言接口
- 阶段2: 通用视觉+纯文本文档解析监督的统一混合训练,构建文本解析基础
- 阶段3: 增加MOCR特定目标(降低通用视觉比例,增加多模态文档解析+图形解析/image-to-SVG),逐步增加输入分辨率匹配增长的任务难度
-
指令微调(SFT): 使用高质量策划数据集,优先考虑监督可靠性和任务可用性。发布两个检查点:dots.mocr和dots.mocr-svg(后者增加SVG份额和困难SVG程序权重)
-
大规模数据引擎: 四个互补数据源:
- PDF文档: 使用dots.ocr自动标注,按语言/领域/布局复杂度分层采样
- 网页: 爬取渲染为页面图像,HTML/DOM提供对齐的结构化信号,天然包含SVG原生图标/图表
- SVG图形: 从网络收集原生SVG资产,经svgo清洗+去重+基于复杂度的平衡采样
-
通用视觉数据: 保持广泛视觉能力(grounding、counting等)
-
OCR Arena自动评估: 基于LLM-as-Judge范式的自动评估框架,使用Gemini 3 Flash作为裁判进行配对比较。采用对称评估协议(正反两次呈现消除位置偏差),使用Elo评分系统进行排名,通过1000轮bootstrap重采样增强统计鲁棒性。
损失函数 / 训练策略¶
- 全程使用统一的自回归目标:给定输入图像和任务指令,预测结构化解析序列
- 通过混合比例重加权和课程调度控制优化稳定性
- SVG相关处理:规范化、viewBox归一化、复杂度降低作为数据引擎的一部分
- 逐阶段增加输入分辨率
实验关键数据¶
| 模型 | olmOCR-Bench总分 | Elo均分 |
|---|---|---|
| Gemini 3 Pro | - | 1210.7 |
| dots.mocr | 83.9 | 1124.7 |
| dots.ocr | 79.1 | 1086.2 |
| HunyuanOCR | - | 984.2 |
| MonkeyOCR-pro-3B | 75.8 | 781.1 |
Image-to-SVG (ISVGEN重建分数):
| 模型 | UniSVG总分 | ChartMimic | Design2Code | ChemDraw |
|---|---|---|---|---|
| Gemini 3 Pro | 0.735 | 0.788 | 0.760 | 0.783 |
| OCRVerse | 0.763 | 0.799 | - | - |
| dots.mocr | 0.894 | 0.772 | 0.801 | 0.660 |
| dots.mocr-svg | 0.902 | 0.905 | 0.834 | 0.797 |
消融实验要点¶
- dots.mocr在OmniDocBench v1.5上TextEdit=0.031、ReadOrderEdit=0.029,均为最优
- olmOCR-Bench分类别分析:dots.mocr在ArXiv、Old scans math、Tables、Multi column上最优,但在Old scans、Headers & footers等类别仍有提升空间
- dots.mocr-svg相比dots.mocr在图形解析上有显著提升(UniSVG +0.008, ChartMimic +0.133),证实SFT阶段增加SVG训练数据的有效性
- 3B参数模型在CharXiv描述和推理任务上(77.4/55.3)表现出色,超过Qwen3-VL-4B
亮点¶
- 范式创新:将文档图形从"裁剪像素"提升为"一等解析目标",转换为可渲染SVG代码,开辟了文档作为多模态预训练数据源的新方向
- 完整的系统工程:从数据引擎(四源+质量控制)到训练策略(三阶段+SFT)到评估框架(OCR Arena),工业级完整度
- 3B参数的紧凑模型在文档解析上与Gemini 3 Pro竞争,在SVG重建上甚至超越,体现了数据和训练策略的重要性
- OCR Arena的对称双试评估+Elo排名+bootstrap重采样是对传统字符匹配指标的有意义补充
- 代码和模型公开,可复现性好
局限性 / 可改进方向¶
- 当前版本的MOCR是任务条件化的,文档解析和SVG解析需要分开运行,尚未实现单次一体化输出
- 复杂真实世界图像/自然照片缺乏简洁程序描述,保留为光栅内容
- SVG目标的非唯一性虽然通过规范化缓解,但仍是训练中的基础挑战
- 部分类别(公式、表格、页眉页脚)仍有提升空间
- 评估依赖LLM裁判(Gemini 3 Flash),可能引入评估偏差
- 仅以SVG为图形表示,未来可扩展到TikZ、D3.js、CAD格式等
与相关工作的对比¶
- vs 传统OCR管线(PaddleOCR, Marker等): 级联管线仅处理文本,不支持图形解析。MOCR在文本解析上也表现更优
- vs 端到端OCR VLM(GOT-OCR, DeepSeek-OCR): 这些模型虽实现端到端文本解析,但不支持图形解码为结构化代码
- vs OCRVerse: OCRVerse试图统一多种OCR任务,但MOCR在UniSVG上高出+0.139,且覆盖更多下游基准
- vs 专用图形解析(StarVector, OmniSVG): 这些是任务特定的,MOCR在单一模型中同时处理文档解析和图形解析
- vs Gemini 3 Pro: dots.mocr在Elo上排第二(仅次于Gemini 3 Pro),但在SVG基准上全面超越,且参数量为3B(可能比Gemini小两个数量级)
启发与关联¶
- "文档图形→可执行代码"的思路为构建大规模多模态预训练语料库提供了新路径:每个被解析为SVG的图表都可形成(image, code, text)三元组
- 数据引擎的设计(多源+质量控制+复杂度平衡采样)对大规模训练数据构建有参考价值
- OCR Arena的LLM-as-Judge评估方法论可推广到其他结构化生成任务的评估
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ MOCR范式是真正的范式创新,将OCR从文本扩展到一切可结构化的文档元素
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖文档解析、图形解析、通用VQA三大方向,多个基准全面评估,OCR Arena提供互补评估
- 写作质量: ⭐⭐⭐⭐ 问题定义清晰,系统设计完整,但论文较长且部分细节在附录中
- 对我的价值: ⭐⭐⭐ 文档解析方向与当前研究方向不直接相关,但"将一切转为结构化表示作为预训练数据"的数据引擎思路有启发