
In this article
在严格 GPU-only 条件下,用覆盖五种语言、六类文档的 900 页数据评估八个开源 OCR 系统,并比较 CER、延迟、吞吐量、VRAM、能耗、截断和结构化输出。
模型与参考资料:
- PaddleOCR PP-OCRv5 — 根据所选语言识别器,活跃参数量为 310万至530万;面向移动端的检测-识别 OCR,可返回多边形和置信度。
- EasyOCR — 根据语言 reader,活跃参数量为 2460万至7460万;使用 CRAFT 检测与 PyTorch 识别,返回文本区域和置信度。
- docTR — 本次评估的预训练 predictor 含2640万参数;两阶段 PyTorch 文档 OCR,可返回结构化区域和置信度。
- GLM-OCR — 13.3亿参数;通过 Transformers 生成方式评估的视觉语言 OCR,用于纯文本和 Markdown 提取。
- Granite Docling 258M — 2.575亿参数;紧凑型 Transformers 文档转换模型,生成带版面位置的 DocTags。
- HunyuanOCR — 11.2亿参数;面向文字定位、文档解析和语义文档任务的专用 OCR 视觉语言生成模型。
- Qwen3-VL-8B-Instruct — 87.7亿参数;用于多语言 OCR 与 Markdown 提取的通用视觉语言生成模型。
- Surya OCR 2 — 6.862亿参数;具备版面感知能力的 Transformers 生成模型,可输出带区域坐标的文本或 HTML。
参数量描述的是评估时实际启用的检查点权重,而不是下载文件大小。传统 OCR 的总数包含检测器与该页面所加载的语言专用识别器;生成模型使用公开检查点中的张量数量。
摘要
我们在同一套 900 页数据上评估了八个开源 OCR 系统:五种语言、六类图像,每个“语言×图像类型”单元包含 30 页。所有系统均在一张 NVIDIA RTX PRO 6000 Blackwell Max-Q GPU 上运行,并严格禁止自动回退到 CPU。
不存在所有条件下都占优的模型。HunyuanOCR 的观测平均字符错误率(CER)最低,为 0.1637;QwenOCR 为 0.1651,几乎并列。PaddleOCR 则给出了最强的低延迟、带定位信息的综合表现:预热推理 p50 为 0.145 秒,实测 wall pages/min 为 268,并输出多边形与置信度。
在当前样本中,准确率领先者之间的差异并不具备统计决定性。相比之下,部署成本与输出契约的差异更清晰:Hunyuan 的峰值 VRAM 达到 96,358 MiB,Qwen 为 21,010 MiB,而 Paddle 保持在 4 GiB 以下并返回可用的几何信息。因此,我们分别报告准确率、延迟、资源、截断和输出能力,而不是人为合成一个总冠军。
评估方法
本基准使用均衡的页面网格,并将文本准确率与运行测量分开。
页面集
| 维度 | 覆盖范围 |
|---|---|
| 语言 | 英语、日语、韩语、中文、印地语;每种 180 页 |
| 图像类型 | 简单印刷、复杂版面、表格/表单、截图/UI、手写、相机拍摄/退化;每类 150 页 |
| 难度 | 每个语言/类型单元包含 10 页简单、10 页中等、10 页困难样本 |
| 运行集 | 900 页 |
数据来源包括 548 页受控渲染页面、50 页受控退化页面、195 页源自 MDPBench 的公开真实页面,以及 107 页来自 Wikimedia Commons 的许可 Web 真实页面。全部 900 页均用于运行指标。文本准确率仅使用具有独立参考文本的页面,绝不将被评估模型的输出重复用作真值。
推理提示词集
检测-识别系统不接受自然语言指令,因此 PaddleOCR、EasyOCR 和 docTR 的输入是图像及配置好的语言 reader。生成式系统采用相同任务目标——按阅读顺序转写所有可见文本,不做摘要——但使用各模型原生的输出格式。
| 模型路径 | 评估指令 |
|---|---|
| PaddleOCR、EasyOCR、docTR | 无文本提示词;运行配置好的检测器和识别器,并按模型输出顺序返回区域。 |
| GLM-OCR | Extract all visible text from this page in reading order. Preserve headings, lists, and tables as Markdown. |
| Granite Docling | Convert this page to DocTags. Preserve all text, reading order, and layout. |
| HunyuanOCR | 提取页面中的所有文字,按阅读顺序输出,并使用 Markdown 保留标题、列表和表格结构。 |
| QwenOCR | Perform OCR on this document page. Transcribe every visible character in reading order. Preserve headings, paragraphs, lists, and tables as Markdown. Do not summarize, translate, explain, or omit text. Return only the transcription. |
| SuryaOCR | 官方高准确率提示词:OCR this image to HTML. Each block is a div with data-label and data-bbox (x0 y0 x1 y1, normalized 0-1000). |
执行控制
- 每个系统使用一个锁定的 uv 环境和固定的模型 revision。
- 推理采用各模型原生 CUDA 路径:PaddleOCR 通过 PaddlePaddle GPU 调用
PaddleOCR.predict();EasyOCR 使用EasyOCR.Reader.readtext(),docTR 通过 PyTorch 使用ocr_predictor();GLM-OCR、Granite Docling、HunyuanOCR、QwenOCR 和 Surya OCR 2 通过 Hugging Face Transformers 调用自回归generate()。 - 固定 Python ML 软件栈包括 PaddleOCR 3.6.0 与 PaddlePaddle GPU 3.3.1、EasyOCR 1.7.2、python-doctr 1.0.1、Surya OCR 0.21.1、PyTorch 2.11.0 与 torchvision 0.26.0、Transformers 5.10.2–5.12.1(另含固定的 Hunyuan 兼容 revision)、Accelerate 1.13.0–1.14.0,以及 Pillow 10.4.0–12.2.0。
- 每次运行使用一个常驻进程;模型加载只记录一次,并从预热推理百分位数中排除。
- 逐页顺序推理,不使用 batch 或并发。
- CUDA 为必需条件,禁止自动回退到 CPU。
- 生成解码采用确定性设置,最多生成 1,024 个新 token;未产生 EOS token 即达到上限时计为截断。
- 围绕每一页采样 GPU 与进程资源。
指标
- 完成与截断: 成功页、失败、超时,以及达到生成上限的输出。↑ 完成 ↓ 失败/截断
- CER: 经 Unicode NFKC 和语言专用规范化后,字符编辑距离除以参考文本长度。↓ 越低越好
- NormED 与文本相似度: 编辑距离除以预测和参考文本中较长者的长度,以及对应的
1 − NormED相似度。↓ NormED ↑ 相似度 - 延迟: 冷加载、预热推理 p50/p95、端到端 p50/p95。↓ 越低越好
- 吞吐量: 成功页的 wall pages/min,包含实测的逐页编排开销。↑ 越高越好
- 资源: 峰值 VRAM 与进程树 RAM,以及 GPU 利用率和板卡功率的平均值/峰值。↓ 峰值内存
- 能耗: 减去进程启动前空闲采样值后的每页活跃 GPU 板卡 Wh。↓ 越低越好
- 输出契约: 纯文本、Markdown/HTML/DocTags、边界框、置信度、叠加图,以及模型输出的阅读顺序。
- 官方结构指标: 在 195 页忠于原始来源的子集上计算 MDPBench 文本编辑距离、公式 CDM、表格 TEDS 和阅读顺序编辑距离。↓ 文本/顺序编辑距离 ↑ CDM/TEDS
结果
结果依次展示整体准确率-速度权衡、语言、图像类型、域偏移、截断、官方结构分数和 GPU 成本。由于低 CER 并不意味着低延迟、定位输出或可靠的文档结构,我们将这些维度分开呈现。
整体准确率、完成率与速度
第一张图将逐页平均 CER 与预热推理 p50 并列展示,左下角是最有利的区域。随后表格补充二维图无法展示的完成数、归一化编辑距离和生成上限命中数。
| 模型 | 完成 ↑ | CER ↓ | NormED ↓ | 达到上限 ↓ |
|---|---|---|---|---|
| HunyuanOCR | 900/900 | 0.1637 | 0.1499 | 184 |
| QwenOCR | 900/900 | 0.1651 | 0.1476 | 222 |
| GLM-OCR | 900/900 | 0.2299 | 0.2185 | 263 |
| PaddleOCR | 900/900 | 0.2509 | 0.2372 | 0 |
| SuryaOCR | 900/900 | 0.2847 | 0.2781 | 507 |
| EasyOCR | 900/900 | 0.3134 | 0.3020 | 0 |
| Granite Docling 258M | 900/900 | 0.5590 | 0.5131 | 468 |
| docTR | 900/900 | 0.7608 | 0.7121 | 0 |
CER 是每页字符编辑距离除以参考文本长度后的平均值。当插入字符数超过参考字符数时,单页 CER 可以大于 1.0。归一化编辑距离(NormED)除以预测与参考文本中较长者的长度,因此始终在 0 到 1 之间。
docTR 说明了为什么不能只看速度:其默认识别器非常快,但使用面向拉丁文字的词表,无法表示大部分中日韩文字或天城文。
按语言划分的准确率
这一划分用于检查语言和文字体系变化后,整体排名能否保持。每种语言汇总全部六类图像,共 180 页。
Hunyuan 在英语(0.1457)、韩语(0.0889)和印地语(0.2264)上的观测 CER 最低;Qwen 在日语上领先(0.1425),GLM 在中文上领先(0.1264)。这些只是方向性领先结果:所有第一名与第二名配对比较的 95% bootstrap 区间都跨过零。
配置与模型规模同样重要。Paddle 和 EasyOCR 会切换语言 reader,而本次评估的 docTR 检查点偏向拉丁文字。Hunyuan 报告在 130 多种语言上训练;Qwen3-VL 报告了广泛的多语言文档预训练。GLM 公布的多语言评估未列出印地语,本次运行中其 180 页印地语样本有 136 页达到生成上限。
按图像类型划分的准确率
这里保持语言构成不变,按文档形式分组。每类包含 150 页,从而可以区分干净文本识别与版面、手写、截图和退化图像表现。
Paddle 在简单印刷文档上领先(0.1650)。Hunyuan 在复杂版面(0.2716)、表格/表单(0.1650)和受控手写(0.0095)上领先。Qwen 在截图/UI(0.0423)及相机拍摄/退化页面(0.3014)上领先。Hunyuan 与 Qwen 在复杂版面和退化页面上几乎并列,而且六类中第一名与第二名的 bootstrap 区间都跨过零。
架构差异很有参考价值:传统检测-识别 OCR 擅长干净且已定位的文本,而页面级 VLM 上下文有助于版面理解与序列化。手写结果仍以受控数据为主,不应泛化到多位书写者的自然手写场景。
受控数据到真实数据的域偏移
为揭示基准测试的乐观偏差,我们比较受控渲染页面与源自 MDPBench 的公开真实页面。两组按来源分层,并非一一对应的同页样本,因此图中衡量的是与部署相关的域差距,而非因果意义上的性能下降估计。
在 195 页源自 MDPBench 的公开真实页面上,每个系统的表现都明显变差。Hunyuan 的 CER 从 0.057 升至 0.477,Qwen 从 0.051 升至 0.523,GLM 从 0.141 升至 0.519,Paddle 从 0.152 升至 0.587。虽然这不是同页配对实验,而是按来源分层的比较,但它清楚表明渲染页面会高估部署准确率。
生成令牌上限的影响
对生成式 OCR 而言,达到 1,024 token 上限的响应可能只是部分转写,而不是完整页面。图中将已完成与达到上限的输出分开,避免解码限制被隐藏在汇总 CER 中。
生成系统使用确定性解码。所有模型中,达到上限页面的 CER 都比已完成页面高约 0.40。Surya 有 507 页达到上限,Granite 有 468 页;在采用官方更高上限重新运行前,两者排名并不稳定。Qwen 达到上限 222 页,Hunyuan 184 页,GLM 263 页。
一个真实页面及其推理结果
下面的示例是源自 MDPBench 的页面 ocr900v2_en_tables_forms_10。点击任一图像可查看完整分辨率。
原始页面
PaddleOCR 几何叠加图
红色区域直接来自 PaddleOCR 的推理 JSON,并非人工重建。
| 模型 | 页面 CER ↓ | 推理(秒) ↓ | 结果 |
|---|---|---|---|
| GLM-OCR | 0.42% | 4.94 | Markdown |
| HunyuanOCR | 1.05% | 6.04 | Markdown |
| QwenOCR | 1.15% | 5.38 | Markdown |
| SuryaOCR | 32.46% | 15.85 | HTML;达到上限 |
| PaddleOCR | 41.26% | 0.16 | 文本、多边形、置信度 |
Paddle 检测出了有用的几何信息,但将表格展平为单一阅读顺序,丢失了单元格关系。生成模型更忠实地重建了表格,但没有输出置信度或带定位的区域。纯 CER 与文档结构必须保持为独立指标。
使用官方 MDPBench 评估器交叉检查
我们将源自 MDPBench 的 195 页子集交给固定版本的官方评估器。这是子集结果,并非排行榜提交。表头箭头表示每个官方指标应如何解读。
| 模型 | 文本编辑距离 ↓ | 公式 CDM ↑ | 表格 TEDS ↑ | 顺序编辑距离 ↓ |
|---|---|---|---|---|
| PaddleOCR | 0.5172 | 0.0288 | 0.0000 | 0.3737 |
| EasyOCR | 0.5771 | 0.0000 | 0.0043 | 0.4302 |
| docTR | 0.8194 | 0.0131 | 0.0000 | 0.5042 |
| GLM-OCR | 0.4371 | 0.6636 | 0.2306 | 0.3842 |
| Granite Docling | 0.7344 | 0.0087 | 0.0000 | 0.5823 |
| HunyuanOCR | 0.3631 | 0.6319 | 0.4120 | 0.3422 |
| QwenOCR | 0.3710 | 0.4784 | 0.3729 | 0.3527 |
| SuryaOCR | 0.6717 | 0.0000 | 0.2457 | 0.5354 |
在该子集中,Hunyuan 在文本编辑距离、表格 TEDS 和阅读顺序上领先;GLM 在公式 CDM 上领先;Qwen 在文本和表格指标上紧随 Hunyuan。
延迟与吞吐量
该图独立于 OCR 准确率回答运行速度问题。推理百分位数排除一次性模型加载,而 wall throughput 包含顺序运行中实测的逐页端到端开销。实心点表示 p50,空心点表示 p95,每个数值均标在对应点旁。
内存与 GPU 板卡能耗
峰值 VRAM 决定模型能否装入目标 GPU;活跃能耗表示推理期间每页实际消耗的 GPU 板卡工作量。这些数值描述的是单页、无 batch 配置,不应视为数据中心功耗估计。
能耗通过对每个推理窗口中采样的 GPU 板卡功率进行梯形积分得到。它不包含冷加载、CPU 与主机功耗、散热及 batch 效应,也不是墙上插座的成本估计。
输出契约
准确率指标衡量转写,但生产系统还需要知道结果能否渲染,或能否追溯到原页面。该能力矩阵区分了评估路径中的纯文本/结构化文本、几何信息和置信度输出。
纯文本 RAG 导入系统与点击高亮文档查看器,即使 CER 相同,也可能有不同的最佳模型。几何信息和置信度是第一等部署需求,而不是次要的展示功能。
部署解读
- 带几何信息和置信度的快速多语言文本: PaddleOCR 是本次评估中最强的基线。它结合了 0.145 秒 p50、268 wall pages/min、较低 VRAM 和 0.2509 CER。
- 观测纯文本错误最低: HunyuanOCR 与 QwenOCR 构成领先梯队。Hunyuan 的平均 CER 更低;Qwen 的 NormED 更低,并在截图/退化页面上有更强的观测结果。
- 较小的生成式 OCR: GLM-OCR 以 6.4 GiB 峰值 VRAM 获得 0.2299 CER,并取得最佳中文观测结果,但测试的基础模型路径不输出边界框。
- 结构化 HTML OCR: 在生成预算与预期输出长度匹配前,不能仅凭总体 CER 判断 SuryaOCR。
- 最高速度: 只有为目标文字体系配置正确识别器后,docTR 才具有吸引力。本次运行的默认检查点不是五语言方案。
实际生产架构可以采用级联:先运行带定位的 PaddleOCR,再在置信度、语言、版面或表格信号表明行级 OCR 不足时,将页面选择性升级到页面级 VLM。
局限
- 数据集仍有 66.4% 为受控内容;所有系统在公开真实页面上都更差。
- 没有独立参考文本的页面会贡献运行数据,但不计入文本准确率。
- 每个语言/类型单元 30 页足以揭示大效应,但无法证明细小的排名差异。
- 1,024 token 上限对 Surya 和 Granite 的影响格外大。
- CER 无法完整衡量结构或几何信息;运行概览仅覆盖单张 GPU 上的顺序单页推理。
下一步研究方向
结论
本基准拆分了单一 OCR 分数会掩盖的三种部署选择。
PaddleOCR 是最强的低延迟、带定位基线。HunyuanOCR 与 QwenOCR 在需要页面级推理时提供了观测上最低的文本错误,但计算与内存成本高得多。GLM-OCR 是较小的生成式替代方案,尤其擅长中文。Surya、Granite 与 docTR 需要先修正生成上限、词表或流程配置,才能将当前结果视为最终能力排名。
核心结论不是某个系统赢下所有页面。语言、文档结构、输出契约和 GPU 预算都会改变正确的模型选择;受控 OCR 准确率不能替代公开真实数据评估。




