AI视觉算法:文档OCR处理最复杂的是排版检测.最近评测了两个开源排版检测模型:DocLayout-YOLO vs PP-DocLayoutV3
文档图片处理最复杂的是排版检测,通常包含:文字、表格、自然图、统计图、数学公式等多种复杂情况。
两个主流开源文档排版检测模型全面对比:DocLayout-YOLO vs PP-DocLayoutV3。实测 arXiv 论文 PDF,告诉你哪个更侧重哪种场景
一、为什么需要文档排版检测?
做 PDF 解析、OCR 流水线、文档数字化,第一个要解决的问题是版面分析——
这张纸上是几个字?是标题还是正文?是表格还是图片?
排版检测(Layout Detection)就是给文档”分区”的任务。选错模型,后面所有步骤都会跑偏。
今天测两个最热门的开源方案:
|
|
|
|
|---|---|---|
| DocLayout-YOLO |
|
|
| PP-DocLayoutV3 |
|
|
配图提示词(可替换重生):真实文档排版分析示意图,学术论文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视觉语言模型流程(输入→视觉编码器→语言解码器→结构化理解),两者并列展示形成视觉对比。中文字。
三、安装与依赖对比
|
|
|
|
|---|---|---|
| pip 安装 | pip install doclayout-yolo |
pip install paddlex |
| 依赖框架 |
|
|
| 模型大小 |
|
|
| CPU 推理 |
|
|
| GPU 推理 |
|
|
实测结论: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 精度对比
|
|
|
|
|---|---|---|
| 标签粒度 |
|
|
| 学术语义 |
|
强
|
| 坐标精度 |
|
|
| 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]
总结
两个模型都是国产精品,各有所长:
|
|
|
|
|---|---|---|
| 精度 |
|
|
| 轻量性 |
|
|
| CPU 稳定性 |
|
|
| 学术标签 |
|
|
| 工程成熟度 |
|
|
一句话:轻量场景 / CPU 优先 → DocLayout-YOLO;高精度学术 / GPU 服务器 → PP-DocLayoutV3。
实测时间:2026-05-05 | 测试环境:Ubuntu / CPU / Python 3.10
夜雨聆风