乐于分享
好东西不私藏

AI视觉算法:文档OCR处理最复杂的是排版检测.最近评测了两个开源排版检测模型:DocLayout-YOLO vs PP-DocLayoutV3

AI视觉算法:文档OCR处理最复杂的是排版检测.最近评测了两个开源排版检测模型:DocLayout-YOLO vs PP-DocLayoutV3

文档图片处理最复杂的是排版检测,通常包含:文字、表格、自然图、统计图、数学公式等多种复杂情况。

两个主流开源文档排版检测模型全面对比:DocLayout-YOLO vs PP-DocLayoutV3。实测 arXiv 论文 PDF,告诉你哪个更侧重哪种场景

一、为什么需要文档排版检测?

做 PDF 解析、OCR 流水线、文档数字化,第一个要解决的问题是版面分析——

这张纸上是几个字?是标题还是正文?是表格还是图片?

排版检测(Layout Detection)就是给文档”分区”的任务。选错模型,后面所有步骤都会跑偏。

今天测两个最热门的开源方案:

模型
来源
关注度
DocLayout-YOLO
OpenDataLab(国产)
⭐ 2,100+ GitHub Stars
PP-DocLayoutV3
百度 PaddleOCR
⭐ 6,1950 Stars(含 OCR 全家桶)

配图提示词(可替换重生):真实文档排版分析示意图,学术论文PDF页面被彩色方框分割为多个区域,标题区域标蓝、正文区域标绿、表格区域标紫、图片区域标红,清晰展示AI如何理解文档结构。中文字。

二、技术原理对比

DocLayout-YOLO

基于 YOLOv10 检测器,在 DocSynth-300K(30万张合成文档)上预训练后,在 DocStructBench 上微调。

核心亮点:

  • Mesh-candidate BestFit:将文档合成建模为二维 bin packing 问题,生成多样化版式
  • Global-to-Local Controllability:多尺度感知模块,大小区域兼顾
  • 纯检测路线:只做 bbox 检测,不带 OCR

PP-DocLayoutV3

百度飞桨团队出品,作为 PaddleOCR-VL 1.5 的版面分析底座,OmniDocBench 准确率 94.5%

核心亮点:

  • VLM 驱动:视觉-语言模型,不只是检测,还能理解语义
  • 5大鲁棒场景:倾斜、弯曲、扫描、光照、屏幕翻拍
  • 学术标签丰富:abstract / footnote / reference 等细粒度类别

配图提示词(可替换重生):技术架构对比图,左边YOLOv10检测器流程(输入→Backbone→Neck→Head→bbox输出),右边VLM视觉语言模型流程(输入→视觉编码器→语言解码器→结构化理解),两者并列展示形成视觉对比。中文字。

三、安装与依赖对比

DocLayout-YOLO
PP-DocLayoutV3
pip 安装 pip install doclayout-yolo pip install paddlex
依赖框架
ultralytics(轻量)
PaddlePaddle(沉重~700MB)
模型大小
~50MB(PT格式)
126MB(ONNX可用)
CPU 推理
✅ 稳定 ~1s/张
⚠️ PIR 算子部分未实现
GPU 推理
85+ FPS
60+ FPS

实测结论:DocLayout-YOLO 在 CPU 环境更稳定,依赖更轻。PP-DocLayoutV3 用 ONNX 版本可脱离 PaddlePaddle。

配图提示词(可替换重生):两个Python库安装界面并排截图,左边显示pip install doclayout-yolo一行命令成功安装,右边显示pip install paddlex大量依赖下载中,磁盘空间警告图标醒目。简洁技术风格。中文字。

四、实测结果(arXiv 论文 PDF)

测试材料:下载 DocLayout-YOLO 自身 arXiv 论文 PDF(15页),取第1-2页实测。

4.1 DocLayout-YOLO 结果

支持类别(10类):title / plain text / abandon / figure / figure_caption / table / table_caption / table_footnote / isolate_formula / formula_caption

第1页检测:11个区域

  • title × 3(conf 0.89-0.95)
  • plain text × 5(conf 0.93-0.98)
  • abandon × 3

第2页检测:11个区域

  • figure × 3(conf 0.36-0.83)
  • plain text × 4(conf 0.63-0.98)
  • figure_caption × 2
  • abandon × 2

配图:DocLayout-YOLO arXiv 第1页标注结果

4.2 PP-DocLayoutV3 结果(ONNX)

支持类别(20+类):doc_title / abstract / paragraph_title / text / footnote / figure_title / chart / image / number 等

第1页检测:11个区域

  • doc_title × 1(conf 0.95)
  • abstract × 1(conf 0.98)
  • paragraph_title × 2(conf 0.79-0.84)
  • text × 3(conf 0.86-0.97)
  • footnote × 2(conf 0.86-0.88)
  • aside_text × 1
  • number × 1

第2页检测:13个区域

  • text × 7(conf 0.45-0.98)
  • chart × 1
  • figure_title × 3
  • image × 1
  • number × 1

配图:PP-DocLayoutV3 arXiv 第1页标注结果

4.3 精度对比

维度
DocLayout-YOLO
PP-DocLayoutV3
标签粒度
通用(10类)
细粒度(20+类)
学术语义
一般

(abstract/footnote/reference)
坐标精度
✅ 正常
✅ 正常
abandon 误检
少量
OmniDocBench
未披露
94.5%

配图提示词(可替换重生):精度对比表格截图,左列DocLayout-YOLO精度指标,右列PP-DocLayoutV3精度指标,数据以绿色勾号和红色叉号标注差异项。技术报告风格。中文字。

五、怎么选?

选 DocLayout-YOLO,如果:

  • 需要完全开源可审计的模型
  • 部署在 CPU 环境(稳定 ~1s/张)
  • 场景相对标准(印刷文档、扫描件)
  • 已有 ultralytics 生态,不想引入重依赖
  • 只是做区域划分,不需要细粒度语义

选 PP-DocLayoutV3,如果:

  • 对精度有极致要求(94.5% OmniDocBench)
  • 需要学术文档结构(abstract / footnote / reference)
  • 有 GPU 资源(60+ FPS)
  • 使用 PaddleOCR 全家桶(PDF→结构化一步到位)
  • 场景复杂(弯曲/倾斜/屏幕翻拍)

配图提示词(可替换重生):决策流程图,起点分叉两条路,左边蓝色分支标注”DocLayout-YOLO适合:CPU、轻量,开源”,右边红色分支标注”PP-DocLayoutV3适合:GPU、高精度、学术文档”,底部合并标注”根据场景选择最合适的模型”。简洁专业风格。中文字。

六、快速上手代码

DocLayout-YOLO

from doclayout_yolo import YOLOv10model = YOLOv10("doclayout_yolo_docstructbench_imgsz1024.pt")results = model.predict("doc.png", imgsz=1024, conf=0.2, device="cpu")for box in results[0].boxes:    print(box.cls, box.conf, box.xyxy)

PP-DocLayoutV3(ONNX,无需 PaddlePaddle)

import onnxruntime as ortimport cv2, numpy as npsess = ort.InferenceSession("PP-DocLayoutV3.onnx",    providers=['CPUExecutionProvider'])img = cv2.resize(cv2.imread("doc.png"), (800, 800))img_input = np.transpose(img, (2,0,1))[None].astype(np.float32) / 255.0outputs = sess.run(None, {    'im_shape': np.array([[800, 800]], dtype=np.float32),    'image': img_input,    'scale_factor': np.array([[h/800, w/800]], dtype=np.float32)})# outputs[0] = (300, 7) 格式: [batch, score, class, x1, y1, x2, y2]

总结

两个模型都是国产精品,各有所长:

DocLayout-YOLO
PP-DocLayoutV3
精度
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
轻量性
⭐⭐⭐⭐⭐
⭐⭐⭐
CPU 稳定性
⭐⭐⭐⭐⭐
⭐⭐⭐
学术标签
⭐⭐⭐
⭐⭐⭐⭐⭐
工程成熟度
⭐⭐⭐⭐
⭐⭐⭐⭐⭐

一句话:轻量场景 / CPU 优先 → DocLayout-YOLO;高精度学术 / GPU 服务器 → PP-DocLayoutV3。


实测时间:2026-05-05 | 测试环境:Ubuntu / CPU / Python 3.10