核心要点

  • 传统管线:OCR 检测+识别文字 → 下游解析,误差逐级累积、维护成本高

  • OCR-Free:视觉编码器(Swin/ViT)直接读像素,解码器自回归生成文本或结构化输出

  • Donut 用图像编码器 + 文本解码器,预训练任务是「读出文档全部文字」,再微调到解析/VQA

  • Pix2Struct 把网页截图渲染为图像做预训练,统一各种视觉语言任务为「像素到文本」

标准回答

为什么要 OCR-Free

传统文档智能是两段式:先用 OCR 检测并识别字符,再把文本送入下游模型做解析、问答或信息抽取。问题在于 OCR 误差会向下游传播、对版式/语言敏感、独立 OCR 引擎部署维护成本高,且丢失版面与视觉布局信息。

OCR-Free 的做法

OCR-Free 模型把文档图像直接当输入,端到端学习「像素 → 目标文本/结构」。以 Donut 为例:用 Swin Transformer 编码文档图像,用 Transformer 解码器自回归生成输出。预训练阶段让模型读出图中所有文字(伪 OCR),获得文字与版面感知;微调阶段直接输出结构化结果,如把发票转成 JSON、回答文档问题。

Pix2Struct 的统一范式

Pix2Struct 通过把网页截图渲染成图像、并以解析 HTML 结构为预训练目标,将表格、图表、界面、文档等多种视觉语言任务统一成「截图 → 文本」,可变分辨率输入保留细节。这类模型让管线更简洁、误差不再逐级累积,并天然利用版面信息。

常见误区

⚠️ 常见踩坑

OCR-Free 不是「内部仍跑 OCR」,而是完全去掉独立识别步骤,由单一模型隐式学会读字。它对小字、长文档算力消耗大,需注意分辨率与显存

追问

追问 1OCR-Free 相比传统 OCR 管线的主要权衡是什么?

优点:无级联误差、保留版面信息、部署简单、可端到端针对任务优化。代价:需要大量训练数据与算力,长文档/高分辨率下视觉序列长、显存和延迟高;对极小字号、密集文本仍可能不如专用 OCR;可解释性差,难定位识别错误来自哪一步。

追问 2为什么文档理解任务对输入分辨率特别敏感?

文档信息密度高,文字往往很小,降采样会让笔画粘连、字符无法分辨。固定低分辨率会丢失细节,因此 Donut、Pix2Struct 等采用较高或可变分辨率输入,并用窗口注意力(如 Swin)控制计算量,在保留细粒度文字特征与算力之间取得平衡。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。