Multimodal OCR: Parse Anything from Documents¶
日期: 2026-03-13
arXiv: 2603.13032
代码: dots.mocr
领域: 多模态VLM / 文档解析
关键词: document parsing, OCR, SVG reconstruction, visual symbol parsing, multimodal
一句话总结¶
提出 MOCR 文档解析范式和 dots.mocr 系统(3B 参数),把文档中的图表、图标、UI 等图形元素也当作一等解析目标转为 SVG 代码,在文档解析上仅次于 Gemini 3 Pro(olmOCR-Bench SOTA 83.9),在图形重建上多项指标超越 Gemini 3 Pro。
研究背景与动机¶
-
领域现状: 文档解析是大模型预训练和检索的核心数据引擎——PDF、扫描件、网页截图中蕴含海量结构化知识。现有 OCR 系统(MonkeyOCR、MinerU、PaddleOCR-VL 等)主要聚焦文本识别和布局分析。
-
现有痛点: 文档不只有文字,还有大量图表、流程图、UI 元素、科学插图等图形内容。现有管线把这些图形区域简单裁剪为像素块保留,丢弃了其中的结构和语义信息——文档解析本质上是有损的。
-
核心矛盾: 图形中编码了丰富的结构化监督信号(坐标、样式、层级关系),但以像素形式无法被下游模型利用。同时,图形的程序表示(SVG/HTML/Python)天然非唯一(不同代码可渲染出相同结果),难以直接作为训练标签。
-
切入角度: VLM 已展现出从图像生成可执行代码的能力(pix2code → StarVector → OmniSVG),说明将图形解析为结构化表示在技术上可行。
-
核心 idea: 把文档中的文字和图形统一为一等解析目标,图形转换为可渲染的 SVG 代码而非像素裁剪,从而释放文档中嵌入的多模态监督信号。
方法详解¶
整体框架¶
输入一张文档图片,输出一个有序序列 \(\mathbf{S} = [(\mathcal{B}_k, c_k, p_k)]\),其中每个元素包含空间区域、语义类别和载荷内容。文本区域的载荷是纯文本/表格标记/LaTeX,图形区域的载荷是可渲染的 SVG 代码。按人类阅读顺序生成,隐式编码结构层级。
关键设计¶
-
从零训练的高分辨率视觉编码器:
- 1.2B 参数的 ViT,支持最高约 1100 万像素的原始分辨率输入
- 从零训练而非用预训练 ViT,确保特征表示天然适配文档解析任务(同时处理密集文本和几何敏感的图形元素)
- 高分辨率是关键:小字体、密集布局需要清晰度,图表标记/连线的精确定位也需要高像素
-
三阶段渐进预训练:
- Stage 1: 通用视觉训练,建立稳定的视觉-语言接口
- Stage 2: 通用视觉 + 文本文档解析混合预训练,夯实文本解析基础
- Stage 3: 降低通用视觉比例、提升 MOCR 特定目标(含 image-to-SVG),逐阶段提升输入分辨率
- 全程统一自回归目标,通过 mixture reweighting 控制训练稳定性
-
大规模数据引擎:
- PDF 文档:用 dots.ocr 自动标注,按语言/领域/布局复杂度分层采样
- 网页:渲染为图片 + HTML/DOM 提供天然对齐的结构信号,含原生 SVG 图标/图表
- SVG 素材:从多源收集原生 SVG,svgo 清洗 + 去重 + 复杂度感知采样
- 通用视觉数据:保持广域能力
-
SVG 规范化与质量控制:
- SVG 代码天然非唯一(多种代码可渲染相同结果),需要 canonicalization、viewBox 归一化、复杂度简化
- 指令微调阶段进一步过滤和精修,修正系统性错误
-
OCR Arena 自动评估:
- 传统 WER/NED 指标对格式差异过于敏感,采用 LLM-as-Judge(Gemini 3 Flash)做对称双次评价
- Elo 评分系统 + bootstrap 重采样确保排名鲁棒性
训练策略¶
- 解码器使用 Qwen2.5-1.5B base(非 chat),总模型约 3B 参数
- 两个检查点:dots.mocr(平衡型)和 dots.mocr-svg(SVG 增强型,SFT 中提高 SVG 数据比例)
实验关键数据¶
文档解析(Elo 评分)¶
| 模型 | olmOCR-Bench | OmniDocBench1.5 | XDocParse | 平均 |
|---|---|---|---|---|
| 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 细分(strict-match)¶
| 模型 | ArXiv | Tables | Multi-col | Overall |
|---|---|---|---|---|
| dots.mocr | 85.9 | 90.7 | 85.3 | 83.9 |
| olmOCR v0.4 | 83.0 | 84.9 | 83.7 | 82.4 |
| PaddleOCR-VL | 85.7 | 84.1 | 79.9 | 80.0 |
图形重建(ISVGEN 分数)¶
| 方法 | UniSVG | ChartMimic | Design2Code | ChemDraw |
|---|---|---|---|---|
| dots.mocr-svg | 0.902 | 0.905 | 0.834 | 0.901 |
| Gemini 3 Pro | 0.735 | 0.788 | 0.760 | 0.839 |
| OCRVerse | 0.763 | 0.799 | - | 0.881 |
关键发现¶
- dots.mocr 仅 3B 参数,在开源文档解析系统中排名第一,仅次于 Gemini 3 Pro
- 在图形重建上全面超越 Gemini 3 Pro,尤其 UniSVG(0.902 vs 0.735)提升 +0.167
- 从零训练视觉编码器对高分辨率文档特别重要,比用预训练 ViT 微调效果更好
亮点与洞察¶
- 统一文字+图形解析是核心创新:不再让 OCR 止步于文字,图表/流程图/UI 也转为结构化 SVG——这为构建大规模 image-to-code 语料库开辟了路径
- SVG 作为通用图形表示的选择很巧妙:矢量可编辑、可渲染、可组合,天然适合作为训练监督信号
- 数据引擎驱动而非架构创新——通过精心设计的数据管线(PDF+网页+SVG素材)和渐进训练课程,让一个 3B 小模型达到接近 Gemini 3 Pro 的效果
局限性 / 可改进方向¶
- 当前版本需要两次推理(文档解析 + 图形 SVG 分别跑),尚未实现真正的单次全页解析
- 视觉编码器从零训练成本高,未详细报告训练资源消耗
- 对自然图像/照片不做 SVG 转换(保留为像素),图形/照片的边界判断策略未详述
- SVG 规范化仍有改进空间——复杂图形的 SVG 代码可能很长,autoregressive 生成效率是瓶颈
评分¶
- 新颖性: ⭐⭐⭐⭐ 首次系统化将图形解析提升为 OCR 一等公民,但 image-to-SVG 本身非新
- 实验充分度: ⭐⭐⭐⭐⭐ 文档解析+图形重建双线评测,Elo 协议+传统指标+6 个图形 benchmark
- 写作质量: ⭐⭐⭐⭐ 结构清晰,数据引擎和评估方法讲解充分
- 价值: ⭐⭐⭐⭐⭐ 开源 3B 模型达到接近 Gemini 3 Pro 水平,对文档 AI 社区价值巨大