阅读笔记:Ocean-OCR:Towards General OCR Application via a Vision-Language Model

阅读笔记:Ocean-OCR:Towards General OCR Application via a Vision-Language Model

TL;DR

这篇论文用LLaVA 式三件套(NaViT 变长视觉编码器 + MLP 投影器做 2×2 token 压缩 + Qwen-2.5-3B)配合大规模高质量 OCR 数据,把一个 3B 的多模态大模型(MLLM)训练到在 DocVQA / TextVQA / ChartQA / OCRBench 等基准上达到同规模最优,并号称"首个超越专业 OCR 工具(TextIn / PaddleOCR)的 MLLM"。核心证据是OCR 基准平均 84.7与真实场景(文档抽取 / 场景文字 / 手写)多指标领先同规模乃至 7B–8B 模型。主要 caveat:无消融实验、238.2M 自有数据闭源、训练超参全缺、部分对比存在有利偏差(如英文文档抽取 Edit Distance 实际略输 TextIn)——优势无法干净归因到架构,复现性低。

1. 研究内容

1.1 研究问题、痛点与动机

  • 研究问题:能不能用一个中等规模(3B)的 MLLM 既保留通用推理能力,又把 OCR(文档 / 场景文字 / 手写)做到专业 OCR 工具水平?
  • 痛点:现有 MLLM 在密集图像里的细粒度文字识别不行——通用 MLLM(LLaVA / InternVL / Qwen2-VL)虽支持高分辨率,但对密集文本仍力不从心;专门的 OCR-MLLM(UReader / Monkey / TextMonkey / mPLUG-DocOwl / Vary / TextHawk2 / GOT-OCR)靠裁剪、分块、token 压缩等手段提精度,但"仍达不到实用要求"。
  • 动机 / 为什么重要:OCR 是文档数字化、票据处理、医疗报告录入等真实场景的刚需;专业 OCR 工具(PaddleOCR / TextIn)在中文长文档、手写等长尾上仍有短板。若 MLLM 能在统一框架内追平甚至超越专业 OCR,就能用一个模型通吃"识别 + 理解",省去多套系统拼接。
  • 领域定位:应用导向的系统构建类工作(百川出品的技术报告),处于 MLLM 与专业 OCR 的交叉点;上游是 NaViT、LLaVA、Qwen2-VL 等基础件,下游是文档理解 / 实用 OCR 应用。

1.2 核心贡献

  • 提出Ocean-OCR-3B:3B 参数 MLLM,用 NaViT 支持任意分辨率输入,在通用能力不丢的前提下把 OCR 做强
  • 在 DocVQA / TextVQA / ChartQA / OCRBench 等 OCR 基准上达同规模 SOTA(平均 84.7)
  • 在真实 OCR 场景(双语文档抽取、场景文字、双语手写)上超越 TextIn、PaddleOCR 等专业工具,并胜过 Qwen2-VL-7B、MiniCPM-V2.6-8B 等更大模型(论文自述)

评估:贡献定位偏增量集成而非新范式——NaViT、MLP 投影器、2×2 压缩、三阶段训练都是已有件,本文的主要增量是"用大量高质量 OCR 数据把这些件组装到位"。是否真为"新范式"取决于消融,而论文未给(见 4.1)。

1.3 相关工作脉络

NaViT (原生变长 ViT)
Dehghani et al., 2024

Ocean-OCR (本文)
Chen et al., 2025

LLaVA (grid 分块)
Liu et al., 2023

Qwen2-VL (朴素动态分辨率)
Wang et al., 2024

UReader (形状自适应裁剪)
Ye et al., 2023

TextMonkey (patch 分块)
Liu et al., 2024

TextHawk2 (16× token 压缩)
2024

GOT-OCR (通用 OCR 理论)
2024

  • 关键传承:NaViT(Dehghani et al., 2024)提供了原生变长分辨率的视觉编码器,使 Ocean-OCR 不必像 LLaVA 那样把图硬塞固定网格;LLaVA 的"编码器 + 投影器 + LLM"三件套骨架被直接沿用;Qwen2-VL 的"朴素动态分辨率"思路在此被 NaViT 正式落地。
  • 分歧:与 UReader / TextMonkey 的硬裁剪 / patch 分块不同,Ocean-OCR 不切割图像,靠 NaViT 原生变长 + 简单 2×2 token 压缩控量;与 TextHawk2 的 16× 复杂压缩、mPLUG-DocOwl 的 token 压缩相比,本文只用最朴素的相邻 2×2 池化,把复杂度让给数据而非压缩器设计。

2. 方法概要

  • 方法路线:系统构建(模型架构 + 三阶段训练流水线 + 大规模数据工程)
  • 关键假设
    • 显式:高分辨率图的视觉 token 可经相邻 2×2 压缩而不丢 OCR 关键信息;MLLM 范式足以承载专业 OCR 级精度
    • 隐式(读者识别):OCR 精度主要由数据规模与质量驱动,而非架构创新;2×2 池化对极小字号 / 密排文本无损——论文未在 limitation 里讨论这一假设
  • 数据 / 实验设置
    • 数据:71.3M 公开 +238.2M 自有样本(纯文本 / caption / 交错 / OCR QA 多类)
    • 评测:通用 benchmark(MMMU、MMBench、MME、SEEDBench、MathVista、RealWorldQA、HallusionBench,用 VLMEvalKit 零样本);OCR benchmark(DocVQA、TextVQA、ChartQA、OCRBench);真实场景自建集(文档 100 英+100 中、场景 260 张、手写多粒度双语)
    • 对比对象:≤4B 通用 MLLM(MM1.5-3B、Qwen-2-VL-2B、InternVL-2.5-2B/4B、BlueLM-3B、Phi-3.5-Vision 等)与专业 OCR(TextIn、PaddleOCR、GOT)
  • 训练目标:三阶段统一用next token prediction loss(仅算文本 token);无辅助损失、无 OCR 专属损失

整体处理流程(鸟瞰):

Ocean-OCR 是经典 LLaVA 式三件套:NaViT 视觉编码器 → MLP 投影器 → Qwen-2.5-3B。任意分辨率图像送入 NaViT,按 patch 切分为变长视觉 token 序列;MLP 投影器把这些 token 映射到 LLM 词嵌入空间,并在空间上把相邻 2×2 token 压成单 token以控制高分辨率图的 token 量;压缩后的视觉 token 与文本 token 拼接送入 Qwen-2.5-3B,用 next token prediction 端到端训练。训练分三阶段递进——先冻结编码器与 LLM、只练投影器做模态对齐;再全参数预训练(一半纯文本一半图文);最后监督微调增强指令跟随。

2.1 架构图

图为原文 Figure 2:NaViT 编码器产出变长 token → MLP 投影器(2×2 压缩)→ Qwen-2.5-3B。三件套结构清晰,无独立 position-aware 模块或 OCR 专用 head。

2.2 模块详解

  • NaViT 动态分辨率视觉编码器:输入任意分辨率图像 → 输出变长视觉 token 序列

    • 处理流程:
      1. 图像按固定 patch 大小切分,但不强制reshape 到固定网格,保留原始宽高比
      2. patch 数随分辨率自然变化,高分辨率图产更多 token
      3. NaViT 的变长训练机制使编码器对任意 token 数都能稳定编码
    • 设计理由:OCR 场景的图分辨率跨度极大(票据特写 vs 整页 A4 论文),固定分辨率会丢小字或截断版面;变长 token 让模型按需"看够像素"
    • 关键参数:原文未给具体 patch 大小、最大 token 数与位置编码细节(uncertain),只说"支持任意分辨率"
  • MLP 投影器 + 2×2 token 压缩:输入变长视觉 token → 输出压缩后的 LLM 空间 token

    • 处理流程:
      1. 一个 MLP 层把视觉 token 映射到 LLM 词嵌入维度
      2. 在空间维度上把相邻 2×2 token 平均成单个 token(最朴素的 2×2 池化)
      3. 压缩后 token 数降为 1/4,再与文本 token 拼接送入 LLM
    • 设计理由:高分辨率图经 NaViT 会产出海量 token,直接喂 LLM 计算与显存都吃不消;2×2 压缩是把 token 数压下来的最简方案,且作者认为局部 2×2 信息聚合对 OCR(本身关注局部笔画)损失可控
    • 关键参数:压缩比固定 2×2(即 4→1),论文未提供不同压缩比的对比
  • Qwen-2.5-3B 语言模型:输入视觉 + 文本 token → 输出文本

    • 处理流程:拼接后的 token 序列按标准自回归方式处理,三阶段训练始终只对文本 token 算 next token prediction loss
    • 设计理由:在能力与体积间取平衡——3B 足够强的语言先验,又小到便于部署;选 Qwen-2.5-3B 而非更大模型,是实用 OCR 落地(端侧 / 低成本)的工程取舍
    • 关键参数:无微调专属配置披露(uncertain)

2.3 算法 / 伪代码

n/a —— 原文未给出独立 Algorithm / 伪代码块;训练即标准三阶段 next token prediction,无 OCR 专属算法步骤可转述。

3. 关键结果

  • 主要发现
    • OCR 基准上达同规模 SOTA(平均 84.7),DocVQA 91.4、TextVQA 80.0、ChartQA 84.6、OCRBench 82.7,全面超过 MM1.5-3B、Qwen-2-VL-2B、InternVL-2.5-2B/4B、BlueLM-3B、TextHawk2-7B
    • 通用能力未因 OCR 专精而垮:MMMU 42.0、MMBench-EN 75.3、SEEDBench 72.5、HallusionBench 46.0,在 ≤4B 档里靠前
    • 真实场景:双语文档抽取、场景文字、双语手写多指标超过 TextIn / PaddleOCR / GOT,并在场景文字上以 3B 体型超过 Qwen2-VL-7B、MiniCPM-V2.6-8B
  • 证据强度:基准数字为零样本单次评测,无方差 / 置信区间 / 多 seed 重复;真实场景评测集很小(文档各 100 张、场景 260 张、手写每类 100 张),效应量虽大但样本量低,统计可信度受限
  • 最支撑结论的一条证据:Table 3 的 OCR 基准平均 84.7 领先同规模——这是"3B MLLM 可做专业级 OCR"这一核心 claim 最干净的公开 benchmark 证据(相比真实场景自建集更可信)

3.1 关键结果图 / 表

原文 Figure 1:左为三类 OCR 场景(场景文字 / 文档 / 手写)定性示例,右为 OCR 基准上与其它 MLLM 的对比——Ocean-OCR 在多项上居同规模前列。

Table 3 OCR 基准对比(核心结果)

模型DocVQATextVQAChartQAOCRBench平均
MM1.5-3B87.776.574.265.776.0
Phi-3.5-Vision-4B*84.473.381.263.975.7
Qwen-2-VL-2B90.179.673.478.380.4
InternVL-2.5-2B88.774.379.280.480.7
TextHawk2-7B89.675.181.478.481.1
BlueLM-3B87.878.480.482.982.4
InternVL-2.5-4B91.676.884.082.883.8
Megrez-3B-Omni91.680.3-82.8-
Ocean-OCR91.480.084.682.784.7

*为作者复现;其余为官方报告。

  • 重点解读:Ocean-OCR 平均 84.7 领先 InternVL-2.5-4B(83.8)约 0.9 个点;但单项上 DocVQA(91.4)略输 InternVL-2.5-4B(91.6),TextVQA(80.0)略输 Megrez-3B-Omni(80.3)——平均胜出靠 ChartQA(84.6)与均衡表现,并非项项第一。"同规模最优"成立,但领先幅度不大。

Table 4 文档抽取(英文 / 中文)

模型Edit Distance↓ (英/中)F1↑ (英/中)BLEU↑ (英/中)METEOR↑ (英/中)
Ocean-OCR0.057 / 0.0620.937 / 0.9620.906 / 0.9120.945 / 0.916
TextIn0.055 / 0.217--0.887 / 0.782
PaddleOCR0.323 / 0.649---
GOT-0.895 / 0.9280.835 / 0.805-
  • 重点解读:中文文档抽取 Ocean-OCR 全面碾压(Edit Distance 0.062 vs TextIn 0.217、PaddleOCR 0.649)——这是最亮的成果。但英文 Edit Distance 上 Ocean-OCR(0.057)实际略输 TextIn(0.055),论文"超越专业 OCR"的措辞在此并不严格成立;其余指标 F1/BLEU/METEOR 上海语仍领先。

Table 5 场景文字识别

模型Edit Distance↓F1↑Precision↑Recall↑BLEU↑METEOR↑
Ocean-OCR0.1130.8750.8750.8870.4200.754
Qwen2-VL-7B0.163-----
MiniCPM-V2.6-8B0.146-----
PaddleOCR0.130-----
  • 重点解读:3B 的 Ocean-OCR Edit Distance 0.113 低于 7B/8B 对手,看似亮眼。⚠ 但评测集用的是PaddleOCR 伪标签 + 人工抽检作 ground truth,而 PaddleOCR 恰好是被比较的 baseline——用被比较者的输出来评自己,存在循环 / 有利偏差风险(见 4.1)。

Table 6 手写识别(英文 / 中文)

模型Edit Distance↓ (英/中)F1↑ (英/中)BLEU↑ (英/中)METEOR↑ (英/中)
Ocean-OCR0.145 / 0.1060.774 / 0.8850.532 / 0.7360.772 / 0.885
Qwen2-VL-7B0.127 / 0.1130.760 / 0.8810.490 / 0.6660.756 / 0.859
  • 重点解读:中文手写 Ocean-OCR 全面领先;但英文 Edit Distance(0.145)反而比 Qwen2-VL-7B(0.127)差——论文却笼统称"全面超越"。F1/BLEU/METEOR 海语领先,但 Edit Distance 这一更直接的字符级指标上英文是输的,属 cherry-picking 式表述。

原文 Figure 3:场景文字识别案例,展示对复杂背景、弯曲、艺术字等情形的鲁棒性。

原文 Figure 4:中英文手写识别案例,覆盖段落级与行级粒度。

原文 Figure 5:PDF 文档文字识别 / 版面理解案例,对应 Table 4 的文档抽取场景。

原文 Figure 6:医疗报告文字识别案例,展示在专业领域版面(表格、表单)上的泛化。

4. 批判性评估与价值

4.1 批判性评估

评估:Ocean-OCR 最致命的短板是没有任何消融实验。模型把 NaViT 变长编码、2×2 token 压缩、三阶段训练、以及 238.2M 自有高质量 OCR 数据四件事捆在一起卖,却没有任何一项"去掉某件 / 换某件"的对照——读者无法判断 OCR 精度的提升到底来自架构选择,还是主要来自那 238.2M 闭源数据。反方最强论证:Ocean-OCR 相对同规模模型的领先,极可能主要由"238.2M 自有高质量数据"驱动,而非 NaViT + 2×2 压缩这套架构——NaViT 是 2024 年的现成件、2×2 池化是最朴素的压缩、Qwen-2.5-3B 是公开基座,架构上并无创新;若无消融,“首个超越专业 OCR 的 MLLM"这一 claim 更像"用更多更好数据训出来的”,与"MLLM 范式本身追平专业 OCR"是两回事。这条反方论证比论文自身的论证更有力,故判 CRITICAL 级。

其次,几处评估存在有利偏差迹象:(1) Table 4 英文文档抽取 Edit Distance 实际输给 TextIn(0.057 vs 0.055),但 abstract / 结论仍宣称"超越专业 OCR",措辞引导明显;(2) Table 5 场景文字用 PaddleOCR 伪标签做 ground truth、又拿 PaddleOCR 当 baseline 比,构成"用对手的输出评自己"的循环风险;(3) Table 6 英文手写 Edit Distance 输给 Qwen2-VL-7B(0.145 vs 0.127),却笼统称全面超越——属在指标间 cherry-pick 有利项。

复现性方面:训练超参(学习率 / batch / epoch / GPU 数 / 训练时长)一个字都没给,238.2M 自有数据不开源,论文也未明确承诺开源模型权重与代码——这意味着结果无法独立验证、无法复现。

“so what” 上:作为百川的工业界技术报告,价值在于验证了一条朴素路线——"NaViT 变长 + 2×2 池化 + 大规模高质量 OCR 数据 + 三阶段训练"在 3B 规模就能把 MLLM 推到专业 OCR 工具水平,对想用 MLLM 做 OCR 的实践者有参考意义;但学术贡献因无消融 + 数据闭源而大打折扣,不宜当作"架构创新"引用。

综合可信度:中 —— 结果数字亮眼且对比范围合理,但无消融、数据闭源、评估有有利偏差,核心 claim 的归因与可复现性都站不稳。

4.2 Limitations 与复现性

  • 论文自承:未设独立 limitations 节;仅隐含承认方法在某些指标上并非最强(如英文文档 Edit Distance 输 TextIn,但未明说)
  • 读者发现:无消融(CRITICAL)、238.2M 自有数据闭源、训练超参全缺、场景文字用 PaddleOCR 伪标签评 PaddleOCR(循环风险)、英文手写 Edit Distance 实际更差却被笼统称超越
  • 复现性:代码 未承诺开源 (uncertain) · 数据 否(238.2M in-house 闭源)· 超参 否 · (uncertain) 论文未提权重是否释出

4.3 可复用与后续

  • 可借鉴:NaViT 变长 token + 相邻 2×2 池化压缩,是"高分辨率图控 token 数"最简洁有效的工程方案;三阶段训练流水线(对齐 → 预训练 → SFT)值得作为 OCR-MLLM 的训练模板
  • 引用场景:论证"3B 级 MLLM 在 OCR 上可追平专业工具"时引用(注意 caveat:优势部分来自数据而非架构);BibTeX key 候选chen2025oceanocr
  • 下一步
    • 关注百川是否释出 Ocean-OCR 权重 / 代码,释出再做独立复测
    • 对比后续 Qwen2.5-VL / InternVL-2.5 / GOT-OCR2.0 在同批 OCR 基准上的表现,看领先是否被反超

Verdict

选读—— 工业界(百川)OCR 技术报告,结果数字亮眼、对比范围合理,作为"用 MLLM 做通用 OCR"的实践路线图有参考价值;但无消融、数据闭源、训练超参全缺、评估多处有利偏差,核心 claim 无法干净归因也无法复现——读它取其工程方案与数据配比思路即可,学术借鉴需谨慎,勿当架构创新引用。

作者:lusca | 版本:lusca-paper-read v1.10.1 | 出处:https://github.com/yjmm10/lusca-skill/tree/main/skills/lusca-paper-read