如何用开源模型优化OCR识别效果?
摘要:我们在这篇文章中新增了 Chandra 和 OlmOCR-2,并附上了它们在 OlmOCR 基准上的得分 🫡 摘要: 强大的视觉语言模型 (Vision-Language Models, VLMs) 的崛起,
我们在这篇文章中新增了 Chandra 和 OlmOCR-2,并附上了它们在 OlmOCR 基准上的得分 🫡
摘要:
强大的视觉语言模型 (Vision-Language Models, VLMs) 的崛起,正在彻底改变文档智能 (Document AI) 的格局。每种模型都有其独特的优势,因此选择合适的模型变得棘手。相比闭源模型,开源权重的模型在成本效率和隐私保护上更具优势。为了帮助你快速上手,我们整理了这份指南。
在本指南中,你将了解到:
当前 OCR 模型的整体格局及其能力
何时需要微调模型,何时可直接使用
为你的场景选择合适模型时应考虑的关键因素
如何超越传统 OCR,探索多模态检索与文档问答
读完之后,你将知道如何选择合适的 OCR 模型、开始构建应用,并对文档 AI 有更深入的理解。让我们开始吧!
现代 OCR 简介
光学字符识别 (Optical Character Recognition,简称 OCR) 是计算机视觉领域最早、也是持续时间最长的研究方向之一。AI 的许多早期实际应用都集中在“将印刷文字转化为可编辑的数字文本”上。
随着 视觉语言模型 (Vision-Language Models, VLMs) 的兴起,OCR 的能力迎来了飞跃式提升。如今,许多 OCR 模型都是在现有 VLM 的基础上进行微调得到的。但现代模型的能力已远超传统 OCR —— 你不仅可以识别文字,还能基于内容检索文档,甚至直接进行问答。
得益于更强大的视觉理解能力,这些模型能处理低质量扫描件、理解复杂元素 (如表格、图表、图片等) ,并将文本与视觉内容融合,以回答跨文档的开放式问题。
模型能力
文本识别
最新的模型能够将图像中的文字转录为机器可读格式。输入内容可能包括:
手写文字
各类文字体系 (如拉丁文、阿拉伯文、日文等)
数学公式
化学方程式
图片、版面或页码标签
OCR 模型会将这些内容转换为机器可读的文本,输出格式多种多样,比如 HTML、Markdown 等。
处理文档中的复杂组件
除了文字,某些模型还能识别:
图片
图表
表格
部分模型能识别文档中图片的精确位置,提取其坐标,并在输出中将图片嵌入对应位置。
另一些模型还能为图片生成说明文字 (caption) ,并在适当位置插入。这对于后续将机器可读输出传入 LLM (大型语言模型) 尤为有用。
例如, OlmOCR (AllenAI 出品) 和 PaddleOCR-VL (PaddlePaddle 出品) 就是代表。
不同模型使用不同的输出格式,例如 DocTags、HTML、Markdown (后文输出格式一节有详细说明) 。
模型处理表格与图表的方式通常取决于所采用的输出格式:
有些模型将图表当作图片直接保留;
有些模型则会将其转换为可解析的结构化格式,如 Markdown 表格或 JSON。
例如,下图展示了一个柱状图如何被转换成机器可读的形式:
同样地,表格中的单元格也会被解析为机器可读格式,并保留列名与标题的上下文关系:
输出格式
不同 OCR 模型采用的输出格式不同,以下是几种主流格式的简介:
DocTag: 一种类似 XML 的文档标记格式,可表达位置信息、文本样式、组件层级等。下图展示了一篇论文如何被解析为 DocTags。该格式由开源的 Docling 模型使用。
HTML: 是最常见的文档解析格式之一,能较好地表达结构与层级信息。
Markdown: 人类可读性最强,格式简洁,但表达能力有限 (如无法准确表示多列表格) 。
JSON: 通常用于表示表格或图表中的结构化信息,而非完整文档。
选择合适的模型,取决于你对输出结果的用途:
目标场景
推荐格式
数字化重建 (重现原始文档版式)
使用保留布局的格式,如 DocTags 或 HTML
LLM 输入或问答场景
使用输出 Markdown 和图像说明的模型 (更接近自然语言)
程序化处理 (如数据分析)
选择能输出结构化 JSON 的模型
OCR 的位置感知
文档常常结构复杂,比如多栏文本、浮动图片、脚注等。早期的 OCR 模型通常先识别文字,再通过后处理手动推断页面布局,以恢复阅读顺序——这种方式既脆弱又易错。
现代 OCR 模型则会在输出中直接包含版面布局信息 (称为 “锚点”或 “grounding”) ,如文字的边界框 (bounding box) 。
这种“锚定”机制能有效保持阅读顺序与语义连贯性,同时减少“幻觉式识别” (即错误生成内容) 。
