跳转至

一、PP-StructureV3 简介

PP-StructureV3 能够将文档图像和 PDF 文件高效转换为结构化内容(如 Markdown 格式),并具备版面区域检测、表格识别、公式识别、图表理解以及多栏阅读顺序恢复等强大功能。该工具在多种文档类型下均表现优异,能够处理复杂的文档数据。PP-StructureV3 支持灵活的服务化部署,兼容多种硬件环境,并可通过多种编程语言进行调用。同时,支持二次开发,用户可以基于自有数据集进行模型训练和优化,训练后的模型可实现无缝集成。

二、关键指标

Method Type Methods OverallEdit TextEdit FormulaEdit TableEdit Read OrderEdit
EN ZH EN ZH EN ZH EN ZH EN ZH
Pipeline Tools PP-structureV3 0.145 0.206 0.058 0.088 0.295 0.535 0.159 0.109 0.069 0.091
MinerU-0.9.3 0.15 0.357 0.061 0.215 0.278 0.577 0.18 0.344 0.079 0.292
MinerU-1.3.11 0.166 0.310 0.0826 0.2000 0.3368 0.6236 0.1613 0.1833 0.0834 0.2316
Marker-1.2.3 0.336 0.556 0.08 0.315 0.53 0.883 0.619 0.685 0.114 0.34
Mathpix 0.191 0.365 0.105 0.384 0.306 0.454 0.243 0.32 0.108 0.304
Docling-2.14.0 0.589 0.909 0.416 0.987 0.999 1 0.627 0.81 0.313 0.837
Pix2Text-1.1.2.3 0.32 0.528 0.138 0.356 0.276 0.611 0.584 0.645 0.281 0.499
Unstructured-0.17.2 0.586 0.716 0.198 0.481 0.999 1 1 0.998 0.145 0.387
OpenParse-0.7.0 0.646 0.814 0.681 0.974 0.996 1 0.284 0.639 0.595 0.641
Expert VLMs GOT-OCR 0.287 0.411 0.189 0.315 0.36 0.528 0.459 0.52 0.141 0.28
Nougat 0.452 0.973 0.365 0.998 0.488 0.941 0.572 1 0.382 0.954
Mistral OCR 0.268 0.439 0.072 0.325 0.318 0.495 0.6 0.65 0.083 0.284
OLMOCR-sglang 0.326 0.469 0.097 0.293 0.455 0.655 0.608 0.652 0.145 0.277
SmolDocling-256M_transformer 0.493 0.816 0.262 0.838 0.753 0.997 0.729 0.907 0.227 0.522
General VLMs Gemini2.0-flash 0.191 0.264 0.091 0.139 0.389 0.584 0.193 0.206 0.092 0.128
Gemini2.5-Pro 0.148 0.212 0.055 0.168 0.356 0.439 0.13 0.119 0.049 0.121
GPT4o 0.233 0.399 0.144 0.409 0.425 0.606 0.234 0.329 0.128 0.251
Qwen2-VL-72B 0.252 0.327 0.096 0.218 0.404 0.487 0.387 0.408 0.119 0.193
Qwen2.5-VL-72B 0.214 0.261 0.092 0.18 0.315 0.434 0.341 0.262 0.106 0.168
InternVL2-76B 0.44 0.443 0.353 0.29 0.543 0.701 0.547 0.555 0.317 0.228

以上部分数据出自: * OmniDocBench * OmniDocBench: Benchmarking Diverse PDF Document Parsing with Comprehensive Annotations

三、推理 Benchmark

在不同GPU环境下,不同配置的 PP-StructureV3 和 MinerU 对比的性能指标如下。

基本测试环境: * Paddle 3.0正式版 * PaddleOCR 3.0.0正式版 * MinerU 1.3.10 * CUDA 11.8 * cuDNN 8.9

3.1 本地推理

本地推理分别在 V100 和 A100 两种 GPU机器上,测试了 6 种不同配置下 PP-StructureV3 的性能,测试数据为15个PDF文件,共925页,包含表格、公式、印章、图表等元素。

下述 PP-StructureV3 配置中,OCR 模型详情请见PP-OCRv5,公式识别模型详情请见公式识别,文本检测模块 max_side_limit 设置请见文本检测

NVIDIA Tesla V100 + Intel Xeon Gold 6271C

方案 配置 平均每页耗时 (s) 平均CPU利用率 (%) 峰值RAM用量 (GB) 平均RAM用量 (GB) 平均GPU利用率 (%) 峰值VRAM用量 (GB) 平均VRAM用量 (GB)
PP-StructureV3 OCR模型 公式识别模型 是否启用图表识别模块 文本检测max_side_limit
Server系列 PP-FormulaNet-L 4096 1.77 111.4 6.7 5.2 38.9 17.0 16.5
Server系列 PP-FormulaNet-L 4096 4.09 105.3 5.5 4.0 24.7 17.0 16.6
Mobile系列 PP-FormulaNet-L 4096 1.56 113.7 6.6 4.9 29.1 10.7 10.6
Server系列 PP-FormulaNet-M 4096 1.42 112.9 6.8 5.1 38 16.0 15.5
Mobile系列 PP-FormulaNet-M 4096 1.15 114.8 6.5 5.0 26.1 8.4 8.3
Mobile系列 PP-FormulaNet-M 1200 0.99 113 7.0 5.6 29.2 8.6 8.5
MinerU - 1.57 142.9 13.3 11.8 43.3 31.6 9.7

NVIDIA A100 + Intel Xeon Platinum 8350C

方案 配置 平均每页耗时 (s) 平均CPU利用率 (%) 峰值RAM用量 (GB) 平均RAM用量 (GB) 平均GPU利用率 (%) 峰值VRAM用量 (GB) 平均VRAM用量 (GB)
PP-StructureV3 OCR模型 公式识别模型 是否启用图表识别模块 文本检测max_side_limit
Server系列 PP-FormulaNet-L 4096 1.12 109.8 9.2 7.8 29.8 21.8 21.1
Server系列 PP-FormulaNet-L 4096 2.76 103.7 9.0 7.7 24 21.8 21.1
Mobile系列 PP-FormulaNet-L 4096 1.04 110.7 9.3 7.8 22 12.2 12.1
Server系列 PP-FormulaNet-M 4096 0.95 111.4 9.1 7.8 28.1 21.8 21.0
Mobile系列 PP-FormulaNet-M 4096 0.89 112.1 9.2 7.8 18.5 11.4 11.2
Mobile系列 PP-FormulaNet-M 1200 0.64 113.5 10.2 8.5 23.7 11.4 11.2
MinerU - 1.06 168.3 18.3 16.8 27.5 76.9 14.8

3.2 服务化部署

服务化部署测试基于 NVIDIA A100 + Intel Xeon Platinum 8350C 环境,测试数据为 1500 张图像,包含表格、公式、印章、图表等元素。

实例数 并发请求数 吞吐 平均时延(s) 成功请求数/总请求数
4卡 ✖️ 1实例/卡 4 1.69 2.36 100%
4卡 ✖️ 4实例/卡 16 4.05 3.87 100%

3.3 产线基准测试数据

点击展开/折叠表格
流水线配置硬件平均推理时间 (s)峰值CPU利用率 (%)平均CPU利用率 (%)峰值主机内存 (MB)平均主机内存 (MB)峰值GPU利用率 (%)平均GPU利用率 (%)峰值设备内存 (MB)平均设备内存 (MB)
PP_StructureV3-default Intel 8350C + A100 1.38 1384.60 113.26 5781.59 3431.21 100 32.79 37370.00 34165.68
Intel 6271C + V100 2.38 608.70 109.96 6388.91 3737.19 100 39.08 26824.00 24581.61
Intel 8563C + H20 1.36 744.30 112.82 6199.01 3865.78 100 43.81 35132.00 32077.12
Intel 8350C + A10 1.74 418.50 105.96 6138.25 3503.41 100 48.54 18536.00 18353.93
Intel 6271C + T4 3.70 434.40 105.45 6865.87 3595.68 100 71.92 13970.00 12668.58
PP_StructureV3-pp Intel 8350C + A100 3.50 679.30 105.96 13850.20 5146.50 100 14.01 37656.00 34716.95
Intel 6271C + V100 5.03 494.20 105.63 13542.94 4833.55 100 20.36 29402.00 26607.92
Intel 8563C + H20 3.17 481.50 105.13 14179.97 5608.80 100 19.35 35454.00 32512.19
PP_StructureV3-full Intel 8350C + A100 8.92 697.30 102.88 13777.07 4573.65 100 18.39 38776.00 37554.09
Intel 6271C + V100 13.12 437.40 102.36 13974.00 4484.00 100 17.50 29878.00 28733.59
PP_StructureV3-seal Intel 8350C + A100 1.39 747.50 112.55 5788.79 3742.03 100 33.81 38966.00 35832.44
Intel 6271C + V100 2.44 630.10 110.18 6343.39 3725.98 100 42.23 28078.00 25834.70
Intel 8563C + H20 1.40 792.20 113.63 6673.60 4417.34 100 46.33 35530.00 32516.87
Intel 8350C + A10 1.75 422.40 106.08 6068.87 3973.49 100 50.12 19630.00 18374.37
Intel 6271C + T4 3.76 400.30 105.10 6296.28 3651.42 100 72.57 14304.00 13268.36
PP_StructureV3-chart Intel 8350C + A100 7.70 746.80 102.69 6355.58 4006.48 100 22.38 37380.00 36730.73
Intel 6271C + V100 10.58 599.20 102.51 5754.14 3333.78 100 21.99 26820.00 26253.70
Intel 8350C + A10 8.03 413.30 101.31 6473.29 3689.84 100 26.19 18540.00 18494.69
Intel 6271C + T4 11.69 460.90 101.85 6503.12 3524.06 100 46.81 13966.00 12481.94
PP_StructureV3-notable Intel 8350C + A100 1.24 738.30 110.45 5638.16 3278.30 100 35.32 30320.00 27026.17
Intel 6271C + V100 2.24 452.40 107.79 5579.15 3635.95 100 43.00 23098.00 20684.43
Intel 8563C + H20 1.18 989.00 107.71 6041.76 4024.76 100 50.67 33780.00 29733.15
Intel 8350C + A10 1.58 225.00 102.56 5518.10 3333.08 100 49.90 21532.00 18567.99
Intel 6271C + T4 3.40 413.30 103.58 5874.88 3662.49 100 76.82 13764.00 11890.62
PP_StructureV3-noformula Intel 6271C 7.85 1172.50 964.70 17739.00 11101.02 N/A N/A N/A N/A
Intel 8350C 8.83 1053.50 970.64 15463.48 9408.19 N/A N/A N/A N/A
Intel 8350C + A100 0.84 788.60 124.25 6246.39 3674.32 100 30.57 40084.00 37358.45
Intel 6271C + V100 1.42 606.20 115.53 7015.57 3707.03 100 35.63 29540.00 27620.28
Intel 8563C + H20 0.87 644.10 119.23 6895.76 4222.85 100 50.00 36878.00 34104.59
Intel 8350C + A10 1.03 377.50 106.87 5819.88 3830.19 100 42.87 19340.00 17550.94
Intel 6271C + T4 2.02 430.20 109.21 6600.62 3824.18 100 65.75 14332.00 12712.18
PP_StructureV3-lightweight Intel 6271C 4.36 1189.70 995.78 14000.50 9374.97 N/A N/A N/A N/A
Intel 8350C 3.74 1049.60 967.77 12960.96 7644.25 N/A N/A N/A N/A
Hygon 7490 + P800 0.86 572.20 120.84 8290.49 3569.44 N/A N/A N/A N/A
Intel 8350C + A100 0.61 823.40 126.25 9258.22 3776.63 52 18.95 7456.00 7131.95
Intel 6271C + V100 1.07 686.80 116.70 9381.75 4126.28 58 22.92 8450.00 8083.30
Intel 8563C + H20 0.46 999.00 122.21 9734.78 4516.40 61 24.41 7524.00 7167.52
Intel 8350C + A10 0.70 355.40 111.51 9415.45 4094.06 89 30.85 7248.00 6927.58
M4 12.22 223.60 107.35 9531.22 7884.61 N/A N/A N/A N/A
Intel 6271C + T4 1.13 461.40 112.16 7923.09 3837.31 85 41.67 8218.00 7902.04
Pipeline configurationdescription
PP_StructureV3-default 默认配置
PP_StructureV3-pp 默认配置基础上,开启文档图像预处理
PP_StructureV3-full 默认配置基础上,开启文档图像预处理和图表解析
PP_StructureV3-seal 默认配置基础上,开启印章文本识别
PP_StructureV3-chart 默认配置基础上,开启文档图表解析
PP_StructureV3-notable 默认配置基础上,关闭表格识别
PP_StructureV3-noformula 默认配置基础上,关闭公式识别
PP_StructureV3-lightweight 默认配置基础上,将所有任务模型都换成最轻量版本
  • 测试环境:
    • PaddlePaddle 3.1.0、CUDA 11.8、cuDNN 8.9
    • PaddleX @ develop (f1eb28e23cfa54ce3e9234d2e61fcb87c93cf407)
    • Docker image: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.1.0-gpu-cuda11.8-cudnn8.9
  • 测试数据:
    • 测试数据包含表格、印章、公式、图表的280张图像。
  • 测试策略:
    • 使用 20 个样本进行预热,然后对整个数据集重复 1 次以进行速度性能测试。
  • 备注:
    • 由于我们没有收集NPU和XPU的设备内存数据,因此表中相应位置的数据标记为N/A。

四、PP-StructureV3 Demo示例

更多示例

五、使用方法和常见问题

Q:默认模型是什么配置,如果需要更高精度、更快速度、或者更小显存,应该调哪些参数或者更换哪些模型,对结果影响大概有多大?

A: 默认模型均采用了了各个模块参数量最大的模型,3.3 章节中展示了不同的模型选择对于显存和推理速度的影响。可以根据设备情况和样本难易程度选择合适的模型。另外,在 Python API 或 CLI 设置 device 为<设备类型>:<设备编号1>,<设备编号2>...(例如gpu:0,1,2,3)可实现多卡并行推理。如果内置的多卡并行推理功能提速效果仍不满足预期,可参考多进程并行推理示例代码,结合具体场景进行进一步优化:多进程并行推理


Q: PP-StructureV3 是否可以在 CPU 上运行?

A: PP-StructureV3 虽然更推荐在 GPU 环境下进行推理,但也支持在 CPU 上运行。得益于多种配置选项及对轻量级模型的充分优化,在仅有 CPU 环境时,用户可以参考 3.3 节选择轻量化配置进行推理。例如,在 Intel 8350C CPU 上,每张图片的推理时间约为 3.74 秒。


Q: 如何将 PP-StructureV3 集成到自己的项目中?

A:
- 对于 Python 项目,可以直接使用 PaddleOCR 的 Python API 完成集成。
- 对于其他编程语言,建议通过服务化部署方式集成。PaddleOCR 支持包括 C++、C#、Java、Go、PHP 等多种语言的客户端调用方式,具体集成方法可参考 官方文档
- 如果需要与大模型进行交互,PaddleOCR 还提供了 MCP 服务,详细说明可参考 MCP 服务器


Q:服务化部署可以并发处理请求吗?

A: 对于基础服务化部署方案,服务同一时间只处理一个请求,该方案主要用于快速验证、打通开发链路,或者用在不需要并发请求的场景;对于高稳定性服务化部署方案,服务默认在同一时间只处理一个请求,但用户可以参考服务化部署指南,通过调整配置实现水平扩展,以使服务同时处理多个请求。


Q: 服务化部署如何降低时延、提升吞吐?

A: PaddleOCR 提供的2种服务化部署方案,无论使用哪一种方案,都可以通过启用高性能推理插件提升模型推理速度,从而降低处理时延。此外,对于高稳定性服务化部署方案,通过调整服务配置,设置多个实例,也可以充分利用部署机器的资源,有效提升吞吐。高稳定性服务化部署方案调整配置可以参考文档