LabHub

博客

超越 OCR — OCR-free 文档理解与统一模型

한국어English日本語中文

引言 — 为什么要超越 OCR

抠出收据的总额、抽取合同里的条款、把图表转成表格 — 这类文档理解任务长期以来都建立在 OCR(光学字符识别)之上。但 OCR 只擅长把字符读出来,至于这些字符是什么意思、属于哪一个格子,它并不会告诉你。

于是传统的文档处理把好几个阶段像链条一样串起来。先检测字符在哪里,再识别这些字符是什么,然后分析页面的布局,最后才解释其含义。阶段越多,某一处的误差就越容易传导到下一个阶段,形成误差累积问题。

最近,用一个模型整体替代这条链条的 OCR-free 方法兴起了。它把图像作为输入,直接给出我们想要的答案(文本、键值、表格)。本文将梳理传统流水线的局限、OCR-free 端到端模型,以及把检测-识别-解析合而为一的统一模型的走向。

OCR 与文档理解并不是一回事

先厘清术语。OCR 是把图像中的字符转写成文本的工作。文档理解则是弄清这段文本具有怎样的结构与含义。两者是不同的阶段,传统系统把它们分开处理。

OCR:        图像 -> "总额 32,500"  (字符转为文本)
文档理解:    "总额 32,500" + 位置/上下文 -> {字段: 总额, 值: 32500}  (赋予含义)

OCR-free 方法的核心主张是,这两者其实没必要分开。如果一个模型在看图像的同时就同时把握字符和含义,就能保留那些在经过中间文本时会丢失的信息(位置、字体、布局上下文)。这就像人看收据时,并不会先逐字读完再单独去理解含义一样。

核心原理:传统 OCR 流水线及其局限

传统的文档理解流水线通常由以下几个阶段组成。

[文档图像]
   |
   v
[1. 文本检测] --> 找出字符/单词区域的框
   |
   v
[2. 文本识别] --> 把每个框里的字符转成字符串
   |
   v
[3. 布局分析] --> 把握标题/正文/表格/单元格结构
   |
   v
[4. 信息提取] --> 键值、表格、含义解释

每个阶段通常都是一个独立的模型,各自训练、各自调优。这种结构存在明显的局限。

这些局限正是 OCR-free 方法的动机。阶段越少,误差累积就越少;一个模型同时看到字符和含义,就能实现基于上下文的校正。

深入探讨 1:OCR-free 端到端文档理解

Donut 系列:无需 OCR,直接从图像输出结构化结果

Donut(Document Understanding Transformer)提出了一种彻底去掉 OCR 阶段的方法,直接从文档图像生成结构化输出(例如 JSON)。视觉编码器负责读取图像,文本解码器以自回归的方式生成我们想要的结果。

[文档图像]
   |
   v
[视觉编码器] --> 图像特征序列
   |
   v
[文本解码器] --> 结构化输出 (例如 JSON 键值)

这种方式的优势很明确。不需要单独的 OCR 框检测或识别模型,模型会把字符形状和含义一并学会。只要按想要提取的信息格式准备好答案数据用于训练,模型就能直接以那种格式给出答案。误差累积不复存在,流水线也变得简单。

不过它也有代价。由于没有显式的 OCR,它高度依赖答案格式和充足的数据。而且当解码器需要生成较长的输出时,速度可能成为问题。

基于 VLM 的文档理解

前文提到的视觉-语言模型(VLM)本质上就具备 OCR-free 的文档理解能力。它把图像转成视觉 token,让 LLM 与文本一起阅读,因此可以接收文档图像来回答问题,或提取表格。

[文档图像] --> [VLM] --> 用自然语言回答「总额是多少?」这类问题
                    --> 把表格结构化为 markdown/JSON
                    --> 甚至指出某个字段的位置(坐标)

VLM 的优势在于通用性。同一个模型能同时处理图像描述、VQA、OCR、grounding,并且可以用自然语言指令灵活获得想要的输出。得益于强大的语言能力,它往往能凭上下文推断出模糊或部分被遮挡的字符。

深入探讨 2:高分辨率、布局、表格、公式

文档不同于自然图像。它密布着细小的文字,还有大量表格、公式之类的结构。要妥善处理这些,需要一些专门的手段。

高分辨率处理

要读出文档里的小字,需要足够的分辨率。如果强行把图像缩小,字符就会糊成一团。因此 OCR-free 模型会采用处理高分辨率输入的策略。

高分辨率文档处理策略
方法 A:切片      大页面 -> 多个切片 -> 逐个处理 -> 合并
方法 B:动态分辨率  保持原始比例 -> token 数量随尺寸变化

分辨率越高,细节越好,但 token 数量和成本也会随之上升。这种权衡是文档模型设计的核心。

布局、表格、公式

对这些结构性元素来说,答案数据的格式直接决定了模型的输出格式,因此准备一致的结构化答案数据非常重要。

深入探讨 3:多语言 OCR 与统一模型

多语言 OCR

文档由多种语言写成。传统 OCR 往往为每种语言单独维护识别模型或词典,而 OCR-free VLM 可以通过在多语言的图像-文本数据上一起训练,用一个模型处理多种语言。目前的努力不仅覆盖拉丁字母,也在扩展到中日韩这类表意文字,以及从右到左的文字。不过在训练数据较少的语言或罕见字体上,准确率仍可能下降,因此针对目标语言分布做数据增强很重要。

统一模型:把检测-识别-解析合而为一

近来的趋势是统一模型,把检测、识别、布局分析、信息提取整合进一个模型。传统流水线为每个阶段各配一个模型,统一模型则由单一的编码器-解码器一次性处理全部。

传统流水线:  检测模型 -> 识别模型 -> 布局模型 -> 提取模型
统一模型:    单一模型 -> (检测 + 识别 + 布局 + 解析) 同时完成

深入探讨 3.5:阅读顺序与布局的难点

理解文档时常被忽视的一个难点是阅读顺序。人看多栏排版的报纸时,会很自然地知道先从上到下读完左栏,再转到右栏。但对模型来说,这并不是理所当然的事。

多栏布局示例
  +------------------+------------------+
  | 第1栏第一段       | 第2栏第一段       |
  | 第1栏第二段       | 第2栏第二段       |
  +------------------+------------------+

  正确的阅读顺序:第1栏全部 -> 第2栏全部
  错误的顺序:    按行左右交替读 (含义被打乱)

传统流水线在布局分析阶段会显式计算这个顺序。OCR-free 模型则必须通过训练来学会这一点,如果没有在足够多样的布局数据上充分训练,阅读顺序就可能被打乱。一旦混入表格、脚注、侧边栏、题注,难度还会进一步上升。

这个问题可以通过输出格式设计来部分缓解。比如训练模型按区域结构化输出,能让模型更意识到区域边界,从而更好地把握顺序。关键在于用验证数据确认模型是否能给出一致的阅读顺序。

深入探讨 3.6:表格结构化的具体方法

表格是文档理解中最棘手的元素之一,因为必须同时保留行列关系、合并单元格、表头层级。OCR-free 模型应该以什么格式来输出表格呢?

表格输出格式的选择
  markdown 表格    简单,适合简单表格,表达合并单元格有限
  HTML 表格        能表达合并单元格 (rowspan/colspan),冗长
  结构化 JSON      逐单元格指定坐标/内容,便于解析,最灵活

每种格式都有各自的权衡。markdown 便于人阅读,但难以表达复杂的合并单元格。HTML 表格能表达合并,但输出会变长。结构化 JSON 最灵活,但需要把答案数据统一准备成这种格式。

关键在于选择适合任务的格式,并把答案数据统一成该格式。因为模型会模仿答案格式,如果表格输出格式参差不齐,模型输出的表格也会不一致。另外,评估表格准确率时,不能只做简单的字符串匹配,而要按单元格、按结构逐一比较,才能抓住真实的质量。

深入探讨 4:基准测试与评估方法

该如何评估 OCR-free 模型?不同任务的衡量指标各不相同。

评估视角小结
  读到了什么     文本识别准确率 (编辑距离)
  提取了什么     键值精确率/召回率
  是否保留结构   表格单元格/结构一致性
  是否理解含义   文档 VQA 准确率

重要的是,单一分数无法代表模型的全部能力。有的模型擅长读普通文本却在表格结构上偏弱,有的模型英语很强却在多语言上掉链子。因此,构建一套贴合自己实际文档分布的评估集,才是最稳妥的做法。公开基准分数只是一个起点,并不能如实反映真实业务数据的噪声与多样性。

深入探讨 5:推理流水线设计

要把 OCR-free 模型真正投入服务,推理流水线不会只是一次模型调用就结束。更好的做法是把它看成预处理、模型推理、后处理/验证三个阶段。

[原始文档]
   |
   v
[预处理]   分辨率归一化、旋转校正、去噪
   |
   v
[模型推理]  OCR-free 模型 -> 生成结构化输出
   |
   v
[后处理]   格式验证 (JSON schema)、置信度判定、回退
   |
   v
[结果]    通过验证 -> 自动处理 / 失败 -> 人工复核

每个阶段的职责都很明确。

这套结构的关键在于,把模型看作流水线中的一个环节,而不是信任的终点。只有建立在「模型可能出错」这个前提上去设计验证与回退,才能在实际业务中稳定运行。

深入探讨 6:手写、低画质、旋转等难题

真实文档不会只是干净的印刷品。以下整理了棘手输入会带来哪些问题。

这些难题很难仅靠模型独自完美解决。只有让提升输入质量的预处理,和过滤不确定输出的后处理协同配合,才能在实务中撑出经得起考验的准确率。

对比表:传统 OCR 与 OCR-free

项目传统 OCR 流水线OCR-free / 统一模型
结构检测-识别-布局-提取多阶段单一模型端到端
误差累积逐阶段堆积大幅减少
上下文校正困难(识别只看形状)可行(利用语言能力)
表格/公式需要单独的规则/模型靠训练生成结构化输出
多语言倾向于按语言各配模型/词典一个模型覆盖多语言
运维复杂度高(要管理多个模型)低(单一模型)
数据依赖各阶段的中间标注依赖最终答案格式
输出准确性保证各阶段验证较容易建议额外增加验证阶段

深入探讨 9.5:用提示词设计来把控输出

基于 VLM 的 OCR-free 模型,即便是同一张图像,给出的指令(提示词)不同,输出也会不同。这既是强大的灵活性,同时也是变动性的来源。

同一张收据,不同的指令
  「读一下这张收据」            -> 自由的自然语言总结
  「只用数字回答总额」          -> 32500
  「把品项提取成 JSON 数组」    -> 结构化列表
  「把店名、日期、总额整理成键值」 -> 明确的字段映射

在实务中要获得稳定的结果,把提示词设计得具体且一致很重要。

提示词是无需重新训练模型、就能调整输出的最便宜的旋钮。但提示词无法解决的准确性问题,终究还是要靠数据、微调、后处理来解决。提示词是起点,不是万能解法。

实务应用:收据、表单、文档

按任务整理把 OCR-free 方法应用到实际业务时需要考虑的要点。

共通之处在于,与其原样信任模型输出,不如同时配上格式验证、置信度阈值、人工复核这类安全网,这在实务中很重要。模型可能会自信满满地给出错误的值,字段越重要,就越应该加强验证。

深入探讨 7:OCR-free 与传统 OCR 的混合方案

由于 OCR-free 并非万能,实务中经常出现把传统 OCR 与 OCR-free 混合使用的混合式设计,借此发挥各自的优势。

混合式设计 (示例)
  1. 用传统 OCR 快速提取文本与位置
   |
   v
  2. OCR-free/VLM 结合该文本与图像一起解释含义
   |
   v
  3. 交叉验证两条路径的结果,评估置信度

混合方案的教训很明确。与其让新技术彻底取代旧技术,不如把两者结合起来互补短板,在实务中往往更稳健。

深入探讨 8:稳定获取结构化输出

从 OCR-free 模型获取结构化输出(JSON、表格)时,模型并不总能给出完美的格式,需要一些机制来保证解析的稳定性。

结构化输出稳定化流程
  [模型输出字符串]
   |
   v
  [尝试格式解析]  JSON 解析等
   |
   +-- 成功 --> [schema 验证]  检查字段是否存在/类型是否正确
   |               |
   |               +-- 通过 --> 采纳结果
   |               +-- 失败 --> 回退/重试
   |
   +-- 失败 --> [尝试恢复]  部分提取或重新生成

有了这些后处理机制,才能把模型输出安全地接入真实系统。设计时应默认模型偶尔跑出格式之外是正常现象。

深入探讨 9:成本与延迟视角

OCR-free 模型,尤其是基于 VLM 的模型,比传统 OCR 更重。需要一套管理成本与延迟的视角。

成本/延迟对比 (直观)
  传统 OCR       轻量、快、便宜
  小型 OCR-free  中等
  大型 VLM       重、慢、贵,但灵活/准确

一味追求准确性,成本就会失控;一味追求成本,质量就会下降。在任务的准确性要求与预算之间取得平衡,是实务设计的核心。

深入探讨 12:多语言文档的额外挑战

多语言文档所面对的挑战,不只是识别多种语言这么简单。

多语言处理的各阶段
  识别        把各种文字体系转成文本
   |
   v
  结构理解    与语言无关地把握布局/表格
   |
   v
  归一化      统一各地区的数字/日期/货币格式

关键在于,不能只考虑识别准确率,还要考虑识别之后的归一化,这样才能得到在实务中真正可用的结果。明确目标语言与地区,并准备与该分布相匹配的数据和后处理规则,是处理多语言文档的起点。

陷阱与局限

深入探讨 10:按领域应用时的考量

把 OCR-free 模型应用到具体行业时,每个领域都有各自不同的约束与要求。

按领域的优先级
  金融     准确性 > 速度,强力验证
  医疗     准确性 > 成本,领域微调
  法律     结构/顺序保留,长文档处理
  物流     应对版式多样性,吞吐量

共通的教训是,应按领域的出错代价来调整验证强度。一个领域里错误越致命,就越不能原样信任模型输出,越要把安全网叠得更厚。

深入探讨 11:未来的方向

文档理解模型正在快速发展。以下梳理几个值得关注的趋势。

这些方向都指向同一个目标:在减少人工介入的同时维持准确性。不过就目前而言,比起完全自动化,把模型与验证、人工复核结合起来的设计,在实务中依然最为稳健。

结语

文档 AI 已经把重心从「逐字阅读」的阶段链条,转移到了接收图像后直接给出含义的单一模型上。OCR-free 方法减少了误差累积,借助语言能力实现上下文校正,并把检测-识别-解析统一为一体,简化了运维。

当然它并非万能。幻觉、罕见领域、高分辨率成本等局限依然存在,要保证输出准确性还需要验证机制。尽管如此,让一个模型同时看懂字符与含义,这个方向本身就是文档理解领域一股强劲的潮流,并且随着 VLM 的发展,它的应用范围还会不断扩大。关键在于,既要理解这个工具的优势与局限,也要按任务对准确性的要求,配上恰当的安全网一起使用。

参考资料

评论

还没有评论。

登录后即可发表评论