---license: Apache License 2.0 tasks:- Image-to-Text---# 一、PP-StructureV3 简介**PP-StructureV3** 产线在通用版面解析v1产线的基础上,强化了版面区域检测、表格识别、公式识别的能力,增加了图表理解和多栏阅读顺序的恢复能力、结果转换 Markdown 文件的能力,在多种文档数据中,表现优异,可以处理较复杂的文档数据。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。![PP-StructureV3算法示意图](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/AIStudio/application_help/demo_images/algorithm_ppstructurev3.png)# 二、关键指标| Method Type | Methods | Overall EN | Overall ZH | Text EN | Text ZH | Formula EN | Formula ZH | Table EN | Table ZH | Read Order EN | Read Order ZH ||------------------|-------------------------------|------------|------------|---------|---------|------------|------------|----------|----------|---------------|---------------|| Pipeline Tools | **PP-structureV3** | **0.147** | **0.212** | 0.059 | **0.09**| 0.295 | 0.535 | 0.159 | **0.109**| 0.075 | **0.114** || | 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](https://github.com/opendatalab/OmniDocBench)- [OmniDocBench: Benchmarking Diverse PDF Document Parsing with Comprehensive Annotations](https://arxiv.org/abs/2412.07626)# 三、端到端推理benchmark## 3.1 测试条件* Paddle 3.0正式版* PaddleOCR 3.0.0正式版* MinerU 1.3.10* CUDA 11.8* cuDNN 8.9## 3.2 测试数据1. 本地推理测试硬件:NVIDIA Tesla V100 + Intel Xeon Gold 6271C| | 产线配置 | 平均每页耗时(s) | 平均CPU利用率(%) | 峰值RAM用量(MB) | 平均RAM用量(MB) | 平均GPU利用率(%) | 峰值VRAM用量(MB) | 平均VRAM用量(MB) ||----------------|-----------------------------------------------------------------------|------------------|-------------------|------------------|-------------------|--------------------|--------------------|--------------------|| PP-StructureV3 | 基础配置 | 1.77 | 111.4 | 6822.4 | 5278.2 | 38.9 | 17403 | 16909.3 || | 使用图表识别 | 4.09 | 105.3 | 5628 | 4085.1 | 24.7 | 17403 | 17030.9 || | 使用 PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec 轻量模型 | 1.56 | 113.7 | 6712.9 | 5052 | 29.1 | 10929 | 10840.7 || | 使用 PP-FormulaNet-M 轻量公式识别模型 | 1.42 | 112.9 | 6944.1 | 5193.6 | 38 | 16390 | 15840 || | 使用 PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet-M | 1.15 | 114.8 | 6666.5 | 5105.4 | 26.1 | 8606 | 8517.2 || | 使用 PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet-M,文本检测模型输入最大尺寸设置为 1200 | 0.99 | 113 | 7172.9 | 5686.4 | 29.2 | 8776 | 8680.8 || MinerU | - | 1.57 | 142.9 | 13655.8 | 12083 | 43.3 | 32406 | 9915.4 |测试硬件:NVIDIA A100 + Intel Xeon Platinum 8350C| | Pipeline Configurations | Average time per page (s) | Average CPU (%) | Peak RAM Usage (MB) | Average RAM Usage (MB) | Average GPU (%) | Peak VRAM Usage (MB) | Average VRAM Usage (MB) ||----------------|------------------------------------------------------------------------------------------|---------------------------|-----------------|---------------------|------------------------|------------------|-----------------------|-------------------------|| PP-StructureV3 | Basic | 1.12 | 109.8 | 9418.3 | 7977.9 | 29.8 | 22294 | 21638.4 || | Use chart recognition pipeline | 2.76 | 103.7 | 9253.6 | 7840.6 | 24 | 22298 | 21555.3 || | Use PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec | 1.04 | 110.7 | 9520.8 | 8034.3 | 22 | 12490 | 12383.1 || | Use PP-FormulaNet_plus-M | 0.95 | 111.4 | 9272.9 | 7939.9 | 28.1 | 22350 | 21498.4 || | Use PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet_plus-M | 0.89 | 112.1 | 9457.2 | 8031.5 | 18.5 | 11642 | 11433.6 || | Use PP-OCRv5_mobile_det + PP-OCRv5_mobile_rec + PP-FormulaNet_plus-M, and max length of text detection set to 1200 | 0.64 | 113.5 | 10401.1 | 8688.8 | 23.7 | 11716 | 11453.9 || MinerU | - | 1.06 | 168.3 | 18690.4 | 17213.8 | 27.5 | 78760 | 15119 |2. 服务化部署输入数据:1500张图像,包含表格、公式、印章、图表等元素。使用基础配置。| 实例数 | 并发请求数 | 吞吐 | 平均时延(s) | 成功请求数/总请求数 ||----------|------------|-------|---------------|---------------------|| 4卡*1 | 4 | 1.69 | 2.36 | 1 || 4卡*4 | 16 | 4.05 | 3.87 | 1 |# 四、PP-StructureV3 Demo示例![PP-StructureV3Demo示例](https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/AIStudio/application_help/demo_images/algorithm_ppstructurev3_demo.png)[更多示例](https://paddle-model-ecology.bj.bcebos.com/paddlex%2FPaddleX3.0%2Fdoc_images%2FPP-StructureV3%2Falgorithm_ppstructurev3_demo.pdf)# 五、使用方式在本地使用 PP-StructureV3 产线前,请确保您已经按照[安装教程](https://github.com/PaddlePaddle/PaddleOCR/blob/main/docs/version3.x/installation.md)完成了wheel包安装。安装完成后,可以在本地使用命令行体验或 Python 集成。## 5.1 命令行方式体验一行命令即可快速体验 PP-StructureV3 产线效果:```bashpaddleocr pp_structurev3 -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/多栏文本文档.jpg# 通过 --use_doc_orientation_classify 指定是否使用文档方向分类模型paddleocr pp_structurev3 -i ./多栏文本文档.jpg --use_doc_orientation_classify True# 通过 --use_doc_unwarping 指定是否使用文本图像矫正模块paddleocr pp_structurev3 -i ./多栏文本文档.jpg --use_doc_unwarping True# 通过 --use_textline_orientation 指定是否使用文本行方向分类模型paddleocr pp_structurev3 -i ./多栏文本文档.jpg --use_textline_orientation False# 通过 --device 指定模型推理时使用 GPUpaddleocr pp_structurev3 -i ./多栏文本文档.jpg --device gpu```<details><summary><b>命令行支持更多参数设置,点击展开以查看命令行参数的详细说明</b></summary><table><thead><tr><th>参数</th><th>参数说明</th><th>参数类型</th><th>默认值</th></tr></thead><tbody><tr><td><code>input</code></td><td>待预测数据,必填。如图像文件或者PDF文件的本地路径:<code>/root/data/img.jpg</code>;<b>如URL链接</b>,如图像文件或PDF文件的网络URL:<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/demo_paper.png">示例</a>;<b>如本地目录</b>,该目录下需包含待预测图像,如本地路径:<code>/root/data/</code>(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径)。</td><td><code>str</code></td><td></td></tr><tr><td><code>save_path</code></td><td>指定推理结果文件保存的路径。如果不设置, 推理结果将不会保存到本地。</td><td><code>str</code></td><td></td></tr><tr><td><code>layout_detection_model_name</code></td><td>版面区域检测的模型名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>layout_detection_model_dir</code></td><td>版面区域检测模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>layout_threshold</code></td><td>版面模型得分阈值。float</b>:<code>0-1</code> 之间的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>0.5</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>layout_nms</code></td><td>版面区域检测模型是否使用NMS后处理。</td><td><code>bool</code></td><td></td></tr><tr><td><code>layout_unclip_ratio</code></td><td>版面区域检测模型检测框的扩张系数。任意大于 <code>0</code> 浮点数。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>1.0</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>layout_merge_bboxes_mode</code></td><td>版面区域检测的重叠框过滤方式。<code>large</code>,<code>small</code>, <code>union</code>,分别表示重叠框过滤时选择保留大框,小框还是同时保留。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>large</code>。</td><td><code>str</code></td><td></td></tr><tr><td><code>chart_recognition_model_name</code></td><td>图表解析的模型名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>chart_recognition_model_dir</code></td><td>图表解析模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>chart_recognition_batch_size</code></td><td>图表解析模型的批处理大小。如果不设置,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>region_detection_model_name</code></td><td>文档图像版面子模块检测的模型名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>region_detection_model_dir</code></td><td>文档图像版面子模块检测模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>doc_orientation_classify_model_name</code></td><td>文档方向分类模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>doc_orientation_classify_model_dir</code></td><td>文档方向分类模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>doc_unwarping_model_name</code></td><td>文本图像矫正模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>doc_unwarping_model_dir</code></td><td>文本图像矫正模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>text_detection_model_name</code></td><td>文本检测模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>text_detection_model_dir</code></td><td>文本检测模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>text_det_limit_side_len</code></td><td>文本检测的最大边长度限制。大于 <code>0</code> 的任意整数。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>960</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>text_det_limit_type</code></td><td>文本检测的图像边长限制类型。支持 <code>min</code> 和 <code>max</code>,<code>min</code> 表示保证图像最短边不小于 <code>det_limit_side_len</code>,<code>max</code> 表示保证图像最长边不大于 <code>limit_side_len</code>。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>max</code>。</td><td><code>str</code></td><td></td></tr><tr><td><code>text_det_thresh</code></td><td>检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.3</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>text_det_box_thresh</code></td><td>检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.6</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>text_det_unclip_ratio</code></td><td>文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>2.0</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>textline_orientation_model_name</code></td><td>文本行方向模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>textline_orientation_model_dir</code></td><td>文本行方向模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>textline_orientation_batch_size</code></td><td>文本行方向模型的批处理大小。如果不设置,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>text_recognition_model_name</code></td><td>文本识别模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>text_recognition_model_dir</code></td><td>文本识别模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>text_recognition_batch_size</code></td><td>文本识别模型的批处理大小。如果不设置,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>text_rec_score_thresh</code></td><td>文本识别阈值,得分大于该阈值的文本结果会被保留。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.0</code>。即不设阈值。</td><td><code>float</code></td><td></td></tr><tr><td><code>table_classification_model_name</code></td><td>表格分类模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>table_classification_model_dir</code></td><td>表格分类模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wired_table_structure_recognition_model_name</code></td><td>有线表格结构识别模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wired_table_structure_recognition_model_dir</code></td><td>有线表格结构识别模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wireless_table_structure_recognition_model_name</code></td><td>无线表格结构识别模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wireless_table_structure_recognition_model_dir</code></td><td>无线表格结构识别模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wired_table_cells_detection_model_name</code></td><td>有线表格单元格检测模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wired_table_cells_detection_model_dir</code></td><td>有线表格单元格检测模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wireless_table_cells_detection_model_name</code></td><td>无线表格单元格检测模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>wireless_table_cells_detection_model_dir</code></td><td>无线表格单元格检测模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>seal_text_detection_model_name</code></td><td>印章文本检测模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>seal_text_detection_model_dir</code></td><td>印章文本检测模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>seal_det_limit_side_len</code></td><td>印章文本检测的图像边长限制。大于 <code>0</code> 的任意整数。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>736</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>seal_det_limit_type</code></td><td>印章文本检测的图像边长限制类型。支持 <code>min</code> 和 <code>max</code>,<code>min</code> 表示保证图像最短边不小于 <code>det_limit_side_len</code>,<code>max</code> 表示保证图像最长边不大于 <code>limit_side_len</code>。如果不设置, 将默认使用产线初始化的该参数值,初始化为 <code>min</code>。</td><td><code>str</code></td><td></td></tr><tr><td><code>seal_det_thresh</code></td><td>检测像素阈值。输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.2</code>。<td><code>float</code></td><td></td></tr><tr><td><code>seal_det_box_thresh</code></td><td>检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.6</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>seal_det_unclip_ratio</code></td><td>印章文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.5</code>。</td><td><code>float</code></td><td></td></tr><tr><td><code>seal_text_recognition_model_name</code></td><td>印章文本识别模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>seal_text_recognition_model_dir</code></td><td>印章文本识别模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>seal_text_recognition_batch_size</code></td><td>印章文本识别模型的批处理大小。如果不设置,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>seal_rec_score_thresh</code></td><td>文本识别阈值,得分大于该阈值的文本结果会被保留。大于 <code>0</code> 的任意浮点数。如果不设置, 将默认使用产线初始化的该参数值 <code>0.0</code>。即不设阈值。</td><td><code>float</code></td><td></td></tr><tr><td><code>formula_recognition_model_name</code></td><td>公式识别模型的名称。如果不设置,将会使用产线默认模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>formula_recognition_model_dir</code></td><td>公式识别模型的目录路径。如果不设置,将会下载官方模型。</td><td><code>str</code></td><td></td></tr><tr><td><code>formula_recognition_batch_size</code></td><td>公式识别模型的批处理大小。如果不设置,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td></td></tr><tr><td><code>use_doc_orientation_classify</code></td><td>是否加载并使用文档方向分类模块。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_doc_unwarping</code></td><td>是否加载并使用文本图像矫正模块。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_textline_orientation</code></td><td>是否加载并使用文本行方向分类模块。 如果不设置, default is <code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_seal_recognition</code></td><td>是否加载并使用印章识别子产线。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_table_recognition</code></td><td>是否加载并使用表格识别子产线。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_formula_recognition</code></td><td>是否加载并使用公式识别子产线。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_chart_recognition</code></td><td>是否加载并使用图表解析模型。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>use_region_detection</code></td><td>是否加载并使用文档区域检测产线。如果不设置,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td></td></tr><tr><td><code>device</code></td><td>用于推理的设备。支持指定具体卡号。<ul><li><b>CPU</b>:如 <code>cpu</code> 表示使用 CPU 进行推理;</li><li><b>GPU</b>:如 <code>gpu:0</code> 表示使用第 1 块 GPU 进行推理;</li><li><b>NPU</b>:如 <code>npu:0</code> 表示使用第 1 块 NPU 进行推理;</li><li><b>XPU</b>:如 <code>xpu:0</code> 表示使用第 1 块 XPU 进行推理;</li><li><b>MLU</b>:如 <code>mlu:0</code> 表示使用第 1 块 MLU 进行推理;</li><li><b>DCU</b>:如 <code>dcu:0</code> 表示使用第 1 块 DCU 进行推理;</li></ul>如果不设置, 将默认使用产线初始化的该参数值,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。</td><td><code>str</code></td><td></td></tr><tr><td><code>enable_hpi</code></td><td>是否启用高性能推理。</td><td><code>bool</code></td><td><code>False</code></td></tr><tr><td><code>use_tensorrt</code></td><td>是否使用 TensorRT 进行推理加速。</td><td><code>bool</code></td><td><code>False</code></td></tr><tr><td><code>min_subgraph_size</code></td><td>最小子图大小,用于优化模型子图的计算。</td><td><code>int</code></td><td><code>3</code></td></tr><tr><td><code>precision</code></td><td>计算精度,如 fp32、fp16。</td><td><code>str</code></td><td><code>fp32</code></td></tr><tr><td><code>enable_mkldnn</code></td><td>是否启用 MKL-DNN 加速库。如果不设置, 将默认关闭。</td><td><code>bool</code></td><td></td></tr><tr><td><code>cpu_threads</code></td><td>在 CPU 上进行推理时使用的线程数。</td><td><code>int</code></td><td><code>8</code></td></tr><tr><td><code>paddlex_config</code></td><td>PaddleX产线配置文件路径。</td><td><code>str</code></td><td></td></tr></tbody></table></details><br />运行结果参数说明可以参考[5.2 Python脚本方式集成]中的结果解释。<b>注:</b>由于产线的默认模型较大,推理速度可能较慢,您可以参考第一节的模型列表,替换推理速度更快的模型。### 5.2 Python脚本方式集成命令行方式是为了快速体验查看效果,一般来说,在项目中,往往需要通过代码集成,您可以通过几行代码即可完成产线的快速推理,推理代码如下:```pythonfrom paddleocr import PPStructureV3pipeline = PPStructureV3()# ocr = PPStructureV3(use_doc_orientation_classify=True) # 通过 use_doc_orientation_classify 指定是否使用文档方向分类模型# ocr = PPStructureV3(use_doc_unwarping=True) # 通过 use_doc_unwarping 指定是否使用文本图像矫正模块# ocr = PPStructureV3(use_textline_orientation=True) # 通过 use_textline_orientation 指定是否使用文本行方向分类模型# ocr = PPStructureV3(device="gpu") # 通过 device 指定模型推理时使用 GPUoutput = pipeline.predict("./多栏文本文档.jpg")for res in output: res.print() ## 打印预测的结构化输出 res.save_to_json(save_path="output") ## 保存当前图像的结构化json结果 res.save_to_markdown(save_path="output") ## 保存当前图像的markdown格式的结果```如果是 PDF 文件,会将 PDF 的每一页单独处理,每一页的 Markdown 文件也会对应单独的结果。如果希望整个 PDF 文件转换为 Markdown 文件,建议使用以下的方式运行:```pythonfrom pathlib import Pathfrom paddleocr import PPStructureV3input_file = "./your_pdf_file.pdf"output_path = Path("./output")pipeline = PPStructureV3()output = pipeline.predict("./多栏文本文档.jpg")markdown_list = []markdown_images = []for res in output: md_info = res.markdown markdown_list.append(md_info) markdown_images.append(md_info.get("markdown_images", {}))markdown_texts = pipeline.concatenate_markdown_pages(markdown_list)mkd_file_path = output_path / f"{Path(input_file).stem}.md"mkd_file_path.parent.mkdir(parents=True, exist_ok=True)with open(mkd_file_path, "w", encoding="utf-8") as f: f.write(markdown_texts)for item in markdown_images: if item: for path, image in item.items(): file_path = output_path / path file_path.parent.mkdir(parents=True, exist_ok=True) image.save(file_path)```**注:**- PP-StructureV3 产线使用的默认文本识别模型为 **中英文识别模型**,对于纯英文的识别能力有限,对于全英文场景,您可以设置`text_recognition_model_name`参数为 `en_PP-OCRv4_mobile_rec` 等英文识别模型以取得更好的识别效果。对应其他语言场景,也可以参考前文的模型列表,选择对应的语言识别模型进行替换。- 在示例代码中,`use_doc_orientation_classify`、`use_doc_unwarping`、`use_textline_orientation` 参数默认均设置为 `False`,分别表示关闭文档方向分类、文本图像矫正、文本行方向分类功能,如果需要使用这些功能,可以手动设置为 `True`。在上述 Python 脚本中,执行了如下几个步骤:<details><summary>(1)实例化 <code>PPStructureV3</code> 实例化产线对象,具体参数说明如下:</summary><table><thead><tr><th>参数</th><th>参数说明</th><th>参数类型</th><th>默认值</th></tr></thead><tbody><tr><td><code>layout_detection_model_name</code></td><td>版面区域检测的模型名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>layout_detection_model_dir</code></td><td>版面区域检测模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>layout_threshold</code></td><td>版面模型得分阈值。<ul><li><b>float</b>:<code>0-1</code> 之间的任意浮点数;</li><li><b>dict</b>: <code>{0:0.1}</code> key为类别ID,value为该类别的阈值;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>0.5</code>。</li></ul></td><td><code>float|dict</code></td><td><code>None</code></td></tr><tr><td><code>layout_nms</code></td><td>版面区域检测模型是否使用NMS后处理。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>layout_unclip_ratio</code></td><td>版面区域检测模型检测框的扩张系数。<ul><li><b>float</b>:任意大于 <code>0</code> 浮点数;</li><li><b>Tuple[float,float]</b>:在横纵两个方向各自的扩张系数;</li><li><b>字典</b>, 字典的key为<b>int</b>类型,代表<code>cls_id</code>, value为<b>tuple</b>类型,如<code>{0: (1.1, 2.0)}</code>, 表示将模型输出的第0类别检测框中心不变,宽度扩张1.1倍,高度扩张2.0倍;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>1.0</code>。</li></ul></td><td><code>float|Tuple[float,float]|dict</code></td><td><code>None</code></td></tr><tr><td><code>layout_merge_bboxes_mode</code></td><td>版面区域检测的重叠框过滤方式。<ul><li><b>str</b>:<code>large</code>,<code>small</code>, <code>union</code>,分别表示重叠框过滤时选择保留大框,小框还是同时保留;</li><li><b>dict</b>: 字典的key为<b>int</b>类型,代表<code>cls_id</code>, value为<b>str</b>类型, 如<code>{0: "large", 2: "small"}</code>, 表示对第0类别检测框使用large模式,对第2类别检测框使用small模式;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>large</code>。</li></ul></td><td><code>str|dict</code></td><td><code>None</code></td></tr><tr><td><code>chart_recognition_model_name</code></td><td>图表解析的模型名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>chart_recognition_model_dir</code></td><td>图表解析模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>chart_recognition_batch_size</code></td><td>图表解析模型的批处理大小。如果设置为<code>None</code>,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>region_detection_model_name</code></td><td>文档图像版面子模块检测的模型名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>region_detection_model_dir</code></td><td>文档图像版面子模块检测模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>doc_orientation_classify_model_name</code></td><td>文档方向分类模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>doc_orientation_classify_model_dir</code></td><td>文档方向分类模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>doc_unwarping_model_name</code></td><td>文本图像矫正模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>doc_unwarping_model_dir</code></td><td>文本图像矫正模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_detection_model_name</code></td><td>文本检测模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_detection_model_dir</code></td><td>文本检测模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_det_limit_side_len</code></td><td>文本检测的最大边长度限制。<ul><li><b>int</b>:大于 <code>0</code> 的任意整数;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>960</code>。</li></ul></td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>text_det_limit_type</code></td><td>文本检测的图像边长限制类型。<ul><li><b>str</b>:支持 <code>min</code> 和 <code>max</code>,<code>min</code> 表示保证图像最短边不小于 <code>det_limit_side_len</code>,<code>max</code> 表示保证图像最长边不大于 <code>limit_side_len</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>max</code>。</li></ul></td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_det_thresh</code></td><td>检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数;<li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.3</code>。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>text_det_box_thresh</code></td><td>检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数;<li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.6</code>。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>text_det_unclip_ratio</code></td><td>文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数;<li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>2.0</code>。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>textline_orientation_model_name</code></td><td>文本行方向模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>textline_orientation_model_dir</code></td><td>文本行方向模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>textline_orientation_batch_size</code></td><td>文本行方向模型的批处理大小。如果设置为<code>None</code>,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>text_recognition_model_name</code></td><td>文本识别模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_recognition_model_dir</code></td><td>文本识别模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_recognition_batch_size</code></td><td>文本识别模型的批处理大小。如果设置为<code>None</code>,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>text_rec_score_thresh</code></td><td>文本识别阈值,得分大于该阈值的文本结果会被保留。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数;<li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.0</code>,即不设阈值。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>table_classification_model_name</code></td><td>表格分类模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>table_classification_model_dir</code></td><td>表格分类模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wired_table_structure_recognition_model_name</code></td><td>有线表格结构识别模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wired_table_structure_recognition_model_dir</code></td><td>有线表格结构识别模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wireless_table_structure_recognition_model_name</code></td><td>无线表格结构识别模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wireless_table_structure_recognition_model_dir</code></td><td>无线表格结构识别模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wired_table_cells_detection_model_name</code></td><td>有线表格单元格检测模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wired_table_cells_detection_model_dir</code></td><td>有线表格单元格检测模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wireless_table_cells_detection_model_name</code></td><td>无线表格单元格检测模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>wireless_table_cells_detection_model_dir</code></td><td>无线表格单元格检测模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_text_detection_model_name</code></td><td>印章文本检测模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_text_detection_model_dir</code></td><td>印章文本检测模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_limit_side_len</code></td><td>印章文本检测的图像边长限制。<ul><li><b>int</b>:大于 <code>0</code> 的任意整数;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>736</code>。</li></ul></td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_limit_type</code></td><td>印章文本检测的图像边长限制类型。<ul><li><b>str</b>:支持 <code>min</code> 和 <code>max</code>,<code>min</code> 表示保证图像最短边不小于 <code>det_limit_side_len</code>,<code>max</code> 表示保证图像最长边不大于 <code>limit_side_len</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为 <code>min</code>。</li></ul></td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_thresh</code></td><td>检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。<ul><li><b>float</b>:大于 <code>0</code> 的任意浮点数; <li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.2</code>。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_box_thresh</code></td><td>检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数; <li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.6</code>。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_unclip_ratio</code></td><td>印章文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数; <li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.5</code>。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_text_recognition_model_name</code></td><td>印章文本识别模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_text_recognition_model_dir</code></td><td>印章文本识别模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_text_recognition_batch_size</code></td><td>印章文本识别模型的批处理大小。如果设置为<code>None</code>,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>seal_rec_score_thresh</code></td><td>印章文本识别阈值,得分大于该阈值的文本结果会被保留。<ul><li><b>float</b>:大于<code>0</code>的任意浮点数; <li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值 <code>0.0</code>,即不设阈值。</li></li></ul></td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>formula_recognition_model_name</code></td><td>公式识别模型的名称。如果设置为<code>None</code>,将会使用产线默认模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>formula_recognition_model_dir</code></td><td>公式识别模型的目录路径。如果设置为<code>None</code>,将会下载官方模型。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>formula_recognition_batch_size</code></td><td>公式识别模型的批处理大小。如果设置为<code>None</code>,将默认设置批处理大小为<code>1</code>。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>use_doc_orientation_classify</code></td><td>是否加载并使用文档方向分类模块。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_doc_unwarping</code></td><td>是否加载并使用文本图像矫正模块。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_textline_orientation</code></td><td>是否加载并使用文本行方向分类模块. 如果设置为<code>None</code>, default is <code>True</code>.</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_seal_recognition</code></td><td>是否加载并使用印章识别子产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_table_recognition</code></td><td>是否加载并使用表格识别子产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_formula_recognition</code></td><td>是否加载并使用公式识别子产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_chart_recognition</code></td><td>是否加载并使用图表识别子产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_region_detection</code></td><td>是否加载并使用文档区域检测产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>device</code></td><td>用于推理的设备。支持指定具体卡号。<ul><li><b>CPU</b>:如 <code>cpu</code> 表示使用 CPU 进行推理;</li><li><b>GPU</b>:如 <code>gpu:0</code> 表示使用第 1 块 GPU 进行推理;</li><li><b>NPU</b>:如 <code>npu:0</code> 表示使用第 1 块 NPU 进行推理;</li><li><b>XPU</b>:如 <code>xpu:0</code> 表示使用第 1 块 XPU 进行推理;</li><li><b>MLU</b>:如 <code>mlu:0</code> 表示使用第 1 块 MLU 进行推理;</li><li><b>DCU</b>:如 <code>dcu:0</code> 表示使用第 1 块 DCU 进行推理;</li><li><b>None</b>:如果设置为<code>None</code>, 初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。</li></ul></td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>enable_hpi</code></td><td>是否启用高性能推理。</td><td><code>bool</code></td><td><code>False</code></td></tr><tr><td><code>use_tensorrt</code></td><td>是否使用 TensorRT 进行推理加速。</td><td><code>bool</code></td><td><code>False</code></td></tr><tr><td><code>min_subgraph_size</code></td><td>最小子图大小,用于优化模型子图的计算。</td><td><code>int</code></td><td><code>3</code></td></tr><tr><td><code>precision</code></td><td>计算精度,如 fp32、fp16。</td><td><code>str</code></td><td><code>"fp32"</code></td></tr><tr><td><code>enable_mkldnn</code></td><td>是否启用 MKL-DNN 加速库。如果设置为<code>None</code>, 将默认关闭。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>cpu_threads</code></td><td>在 CPU 上进行推理时使用的线程数。</td><td><code>int</code></td><td><code>8</code></td></tr><tr><td><code>paddlex_config</code></td><td>PaddleX产线配置文件路径。</td><td><code>str</code></td><td><code>None</code></td></tr></tbody></table></details><details><summary>(2)调用 PP-StructureV3 产线对象的 <code>predict()</code> 方法进行推理预测,该方法会返回一个结果列表。另外,产线还提供了 <code>predict_iter()</code> 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 <code>predict_iter()</code> 返回的是一个 <code>generator</code>,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。以下是 <code>predict()</code> 方法的参数及其说明:</summary><table><thead><tr><th>参数</th><th>参数说明</th><th>参数类型</th><th>默认值</th></tr></thead><tr><td><code>input</code></td><td>待预测数据,支持多种输入类型,必填。<ul><li><b>Python Var</b>:如 <code>numpy.ndarray</code> 表示的图像数据</li><li><b>str</b>:如图像文件或者PDF文件的本地路径:<code>/root/data/img.jpg</code>;<b>如URL链接</b>,如图像文件或PDF文件的网络URL:<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/demo_paper.png">示例</a>;<b>如本地目录</b>,该目录下需包含待预测图像,如本地路径:<code>/root/data/</code>(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径)</li><li><b>List</b>:列表元素需为上述类型数据,如<code>[numpy.ndarray, numpy.ndarray]</code>,<code>["/root/data/img1.jpg", "/root/data/img2.jpg"]</code>,<code>["/root/data1", "/root/data2"]。</code></li></ul></td><td><code>Python Var|str|list</code></td><td></td></tr><tr><td><code>use_doc_orientation_classify</code></td><td>是否在推理时使用文档方向分类模块。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_doc_unwarping</code></td><td>是否在推理时使用文本图像矫正模块。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_textline_orientation</code></td><td>是否在推理时使用文本行方向分类模块。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_seal_recognition</code></td><td>是否在推理时使用印章识别子产线。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_table_recognition</code></td><td>是否在推理时使用表格识别子产线。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_formula_recognition</code></td><td>是否在推理时使用公式识别子产线。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_chart_recognition</code></td><td>是否加载并使用图表识别子产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>use_region_detection</code></td><td>是否加载并使用文档区域检测产线。如果设置为<code>None</code>,将默认使用产线初始化的该参数值,初始化为<code>True</code>。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>layout_threshold</code></td><td>与实例化时的参数相同。</td><td><code>float|dict</code></td><td><code>None</code></td></tr><tr><td><code>layout_nms</code></td><td>与实例化时的参数相同。</td><td><code>bool</code></td><td><code>None</code></td></tr><tr><td><code>layout_unclip_ratio</code></td><td>与实例化时的参数相同。</td><td><code>float|Tuple[float,float]|dict</code></td><td><code>None</code></td></tr><tr><td><code>layout_merge_bboxes_mode</code></td><td>与实例化时的参数相同。</td><td><code>str|dict</code></td><td><code>None</code></td></tr><tr><td><code>text_det_limit_side_len</code></td><td>与实例化时的参数相同。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>text_det_limit_type</code></td><td>与实例化时的参数相同。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>text_det_thresh</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>text_det_box_thresh</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>text_det_unclip_ratio</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>text_rec_score_thresh</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_limit_side_len</code></td><td>与实例化时的参数相同。</td><td><code>int</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_limit_type</code></td><td>与实例化时的参数相同。</td><td><code>str</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_thresh</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_box_thresh</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_det_unclip_ratio</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>seal_rec_score_thresh</code></td><td>与实例化时的参数相同。</td><td><code>float</code></td><td><code>None</code></td></tr><tr><td><code>use_wired_table_cells_trans_to_html</code></td><td>是否启用有线表单元格检测结果直转HTML,默认False,启用则直接基于有线表单元格检测结果的几何关系构建HTML。<ul><li><b>bool</b>:<code>True</code> 或者 <code>False</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为<code>False</code>。</li></ul></td><td><code>float|None</code></td><td><code>False</code></td></tr><tr><td><code>use_wireless_table_cells_trans_to_html</code></td><td>是否启用无线表单元格检测结果直转HTML,默认False,启用则直接基于无线表单元格检测结果的几何关系构建HTML。<ul><li><b>bool</b>:<code>True</code> 或者 <code>False</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为<code>False</code>。</li></ul></td><td><code>float|None</code></td><td><code>False</code></td></tr><tr><td><code>use_table_orientation_classify</code></td><td>是否启用表格使用表格方向分类,启用时当图像中的表格存在90/180/270度旋转时,能够将方向校正并正确完成表格识别。<ul><li><b>bool</b>:<code>True</code> 或者 <code>False</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为<code>True</code>。</li></ul></td><td><code>bool|None</code></td><td><code>True</code></td></tr><tr><td><code>use_ocr_results_with_table_cells</code></td><td>是否启用单元格切分OCR,启用时会基于单元格预测结果对OCR检测结果进行切分和重识别,避免出现文字缺失情况。<ul><li><b>bool</b>:<code>True</code> 或者 <code>False</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为<code>True</code>。</li></ul></td><td><code>bool|None</code></td><td><code>True</code></td></tr><tr><td><code>use_e2e_wired_table_rec_model</code></td><td>是否启用有线表端到端表格识别模式,启用则不使用单元格检测模型,只使用表格结构识别模型。<ul><li><b>bool</b>:<code>True</code> 或者 <code>False</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为<code>False</code>。</li></ul></td><td><code>bool|None</code></td><td><code>False</code></td></tr><tr><td><code>use_e2e_wireless_table_rec_model</code></td><td>是否启用无线表端到端表格识别模式,启用则不使用单元格检测模型,只使用表格结构识别模型。<ul><li><b>bool</b>:<code>True</code> 或者 <code>False</code>;</li><li><b>None</b>:如果设置为<code>None</code>, 将默认使用产线初始化的该参数值,初始化为<code>False</code>。</li></ul></td><td><code>bool|None</code></td><td><code>True</code></td></tr></table></details><details><summary>(3)对预测结果进行处理:每个样本的预测结果均为对应的Result对象,且支持打印、保存为图片、保存为<code>json</code>文件的操作:</summary><table><thead><tr><th>方法</th><th>方法说明</th><th>参数</th><th>参数类型</th><th>参数说明</th><th>默认值</th></tr></thead><tr><td rowspan="3"><code>print()</code></td><td rowspan="3">打印结果到终端</td><td><code>format_json</code></td><td><code>bool</code></td><td>是否对输出内容进行使用 <code>JSON</code> 缩进格式化。</td><td><code>True</code></td></tr><tr><td><code>indent</code></td><td><code>int</code></td><td>指定缩进级别,以美化输出的 <code>JSON</code> 数据,使其更具可读性,仅当 <code>format_json</code> 为 <code>True</code> 时有效。</td><td>4</td></tr><tr><td><code>ensure_ascii</code></td><td><code>bool</code></td><td>控制是否将非 <code>ASCII</code> 字符转义为 <code>Unicode</code>。设置为 <code>True</code> 时,所有非 <code>ASCII</code> 字符将被转义;<code>False</code> 则保留原始字符,仅当<code>format_json</code>为<code>True</code>时有效。</td><td><code>False</code></td></tr><tr><td rowspan="3"><code>save_to_json()</code></td><td rowspan="3">将结果保存为json格式的文件</td><td><code>save_path</code></td><td><code>str</code></td><td>保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致。</td><td>无</td></tr><tr><td><code>indent</code></td><td><code>int</code></td><td>指定缩进级别,以美化输出的 <code>JSON</code> 数据,使其更具可读性,仅当 <code>format_json</code> 为 <code>True</code> 时有效。</td><td>4</td></tr><tr><td><code>ensure_ascii</code></td><td><code>bool</code></td><td>控制是否将非 <code>ASCII</code> 字符转义为 <code>Unicode</code>。设置为 <code>True</code> 时,所有非 <code>ASCII</code> 字符将被转义;<code>False</code> 则保留原始字符,仅当<code>format_json</code>为<code>True</code>时有效。</td><td><code>False</code></td></tr><tr><td><code>save_to_img()</code></td><td>将中间各个模块的可视化图像保存在png格式的图像</td><td><code>save_path</code></td><td><code>str</code></td><td>保存的文件路径,支持目录或文件路径。</td><td>无</td></tr><tr><td><code>save_to_markdown()</code></td><td>将图像或者PDF文件中的每一页分别保存为markdown格式的文件。</td><td><code>save_path</code></td><td><code>str</code></td><td>保存的文件路径,支持目录或文件路径。</td><td>无</td></tr><tr><td><code>save_to_html()</code></td><td>将文件中的表格保存为html格式的文件</td><td><code>save_path</code></td><td><code>str</code></td><td>保存的文件路径,支持目录或文件路径。</td><td>无</td></tr><tr><td><code>save_to_xlsx()</code></td><td>将文件中的表格保存为xlsx格式的文件</td><td><code>save_path</code></td><td><code>str</code></td><td>保存的文件路径,支持目录或文件路径。</td><td>无</td></tr><tr><td><code>concatenate_markdown_pages()</code></td><td>将多页Markdown内容拼接为单一文档</td><td><code>markdown_list</code></td><td><code>list</code></td><td>包含每一页Markdown数据的列表。</td><td>返回处理后的Markdown文本和图像列表。</td></tr></table>- 调用`print()` 方法会将结果打印到终端,打印到终端的内容解释如下: - `input_path`: `(str)` 待预测图像或者PDF的输入路径 - `page_index`: `(Union[int, None])` 如果输入是PDF文件,则表示当前是PDF的第几页,否则为 `None` - `model_settings`: `(Dict[str, bool])` 配置产线所需的模型参数 - `use_doc_preprocessor`: `(bool)` 控制是否启用文档预处理子产线 - `use_seal_recognition`: `(bool)` 控制是否启用印章识别子产线 - `use_table_recognition`: `(bool)` 控制是否启用表格识别子产线 - `use_formula_recognition`: `(bool)` 控制是否启用公式识别子产线 - `doc_preprocessor_res`: `(Dict[str, Union[List[float], str]])` 文档预处理结果字典,仅当`use_doc_preprocessor=True`时存在 - `input_path`: `(str)` 文档预处理子产线接受的图像路径,当输入为`numpy.ndarray`时,保存为`None`,此处为`None` - `page_index`: `None`,此处的输入为`numpy.ndarray`,所以值为`None` - `model_settings`: `(Dict[str, bool])` 文档预处理子产线的模型配置参数 - `use_doc_orientation_classify`: `(bool)` 控制是否启用文档图像方向分类子模块 - `use_doc_unwarping`: `(bool)` 控制是否启用文本图像扭曲矫正子模块 - `angle`: `(int)` 文档图像方向分类子模块的预测结果,启用时返回实际角度值 - `parsing_res_list`: `(List[Dict])` 解析结果的列表,每个元素为一个字典,列表顺序为解析后的阅读顺序。 - `block_bbox`: `(np.ndarray)` 版面区域的边界框。 - `block_label`: `(str)` 版面区域的标签,例如`text`, `table`等。 - `block_content`: `(str)` 内容为版面区域内的内容。 - `seg_start_flag`: `(bool)` 标识该版面区域是否是段落的开始。 - `seg_end_flag`: `(bool)` 标识该版面区域是否是段落的结束。 - `sub_label`: `(str)` 版面区域的子标签,例如`text`的子标签可能为`title_text`。 - `sub_index`: `(int)` 版面区域的子索引,用于恢复Markdown。 - `index`: `(int)` 版面区域的索引,用于显示版面排序结果。 - `overall_ocr_res`: `(Dict[str, Union[List[str], List[float], numpy.ndarray]])` 全局 OCR 结果的字典 - `input_path`: `(Union[str, None])` 图像OCR子产线接受的图像路径,当输入为`numpy.ndarray`时,保存为`None` - `page_index`: `None`,此处的输入为`numpy.ndarray`,所以值为`None` - `model_settings`: `(Dict)` OCR子产线的模型配置参数 - `dt_polys`: `(List[numpy.ndarray])` 文本检测的多边形框列表。每个检测框由4个顶点坐标构成的numpy数组表示,数组shape为(4, 2),数据类型为int16 - `dt_scores`: `(List[float])` 文本检测框的置信度列表 - `text_det_params`: `(Dict[str, Dict[str, int, float]])` 文本检测模块的配置参数 - `limit_side_len`: `(int)` 图像预处理时的边长限制值 - `limit_type`: `(str)` 边长限制的处理方式 - `thresh`: `(float)` 文本像素分类的置信度阈值 - `box_thresh`: `(float)` 文本检测框的置信度阈值 - `unclip_ratio`: `(float)` 文本检测框的膨胀系数 - `text_type`: `(str)` 文本检测的类型,当前固定为"general" - `text_type`: `(str)` 文本检测的类型,当前固定为"general" - `textline_orientation_angles`: `(List[int])` 文本行方向分类的预测结果。启用时返回实际角度值(如[0,0,1] - `text_rec_score_thresh`: `(float)` 文本识别结果的过滤阈值 - `rec_texts`: `(List[str])` 文本识别结果列表,仅包含置信度超过`text_rec_score_thresh`的文本 - `rec_scores`: `(List[float])` 文本识别的置信度列表,已按`text_rec_score_thresh`过滤 - `rec_polys`: `(List[numpy.ndarray])` 经过置信度过滤的文本检测框列表,格式同`dt_polys` - `formula_res_list`: `(List[Dict[str, Union[numpy.ndarray, List[float], str]]])` 公式识别结果列表,每个元素为一个字典 - `rec_formula`: `(str)` 公式识别结果 - `rec_polys`: `(numpy.ndarray)` 公式检测框,shape为(4, 2),dtype为int16 - `formula_region_id`: `(int)` 公式所在的区域编号 - `seal_res_list`: `(List[Dict[str, Union[numpy.ndarray, List[float], str]]])` 印章识别结果列表,每个元素为一个字典 - `input_path`: `(str)` 印章图像的输入路径 - `page_index`: `None`,此处的输入为`numpy.ndarray`,所以值为`None` - `model_settings`: `(Dict)` 印章识别子产线的模型配置参数 - `dt_polys`: `(List[numpy.ndarray])` 印章检测框列表,格式同`dt_polys` - `text_det_params`: `(Dict[str, Dict[str, int, float]])` 印章检测模块的配置参数, 具体参数含义同上 - `text_type`: `(str)` 印章检测的类型,当前固定为"seal" - `text_rec_score_thresh`: `(float)` 印章识别结果的过滤阈值 - `rec_texts`: `(List[str])` 印章识别结果列表,仅包含置信度超过`text_rec_score_thresh`的文本 - `rec_scores`: `(List[float])` 印章识别的置信度列表,已按`text_rec_score_thresh`过滤 - `rec_polys`: `(List[numpy.ndarray])` 经过置信度过滤的印章检测框列表,格式同`dt_polys` - `rec_boxes`: `(numpy.ndarray)` 检测框的矩形边界框数组,shape为(n, 4),dtype为int16。每一行表示一个矩形 - `table_res_list`: `(List[Dict[str, Union[numpy.ndarray, List[float], str]]])` 表格识别结果列表,每个元素为一个字典 - `cell_box_list`: `(List[numpy.ndarray])` 表格单元格的边界框列表 - `pred_html`: `(str)` 表格的HTML格式字符串 - `table_ocr_pred`: `(dict)` 表格的OCR识别结果 - `rec_polys`: `(List[numpy.ndarray])` 单元格的检测框列表 - `rec_texts`: `(List[str])` 单元格的识别结果 - `rec_scores`: `(List[float])` 单元格的识别置信度 - `rec_boxes`: `(numpy.ndarray)` 检测框的矩形边界框数组,shape为(n, 4),dtype为int16。每一行表示一个矩形- 调用`save_to_json()` 方法会将上述内容保存到指定的 `save_path` 中,如果指定为目录,则保存的路径为`save_path/{your_img_basename}_res.json`,如果指定为文件,则直接保存到该文件中。由于 json 文件不支持保存numpy数组,因此会将其中的 `numpy.array` 类型转换为列表形式。- 调用`save_to_img()` 方法会将可视化结果保存到指定的 `save_path` 中,如果指定为目录,则会将版面区域检测可视化图像、全局OCR可视化图像、版面阅读顺序可视化图像等内容保存,如果指定为文件,则直接保存到该文件中。(产线通常包含较多结果图片,不建议直接指定为具体的文件路径,否则多张图会被覆盖,仅保留最后一张图)- 调用`save_to_markdown()` 方法会将转化后的 Markdown 文件保存到指定的 `save_path` 中,保存的文件路径为`save_path/{your_img_basename}.md`,如果输入是 PDF 文件,建议直接指定目录,否责多个 markdown 文件会被覆盖。- 调用 `concatenate_markdown_pages()` 方法将 `PP-StructureV3 pipeline` 输出的多页Markdown内容`markdown_list`合并为单个完整文档,并返回合并后的Markdown内容。此外,也支持通过属性获取带结果的可视化图像和预测结果,具体如下:<table><thead><tr><th>属性</th><th>属性说明</th></tr></thead><tbody><tr><td><code>json</code></td><td>获取预测的 <code>json</code> 格式的结果</td></tr><tr><td rowspan="2"><code>img</code></td><td rowspan="2">获取格式为 <code>dict</code> 的可视化图像</td></tr><tr></tr><tr><td rowspan="3"><code>markdown</code></td><td rowspan="3">获取格式为 <code>dict</code> 的 markdown 结果</td></tr><tr></tr><tr></tr></tbody></table>- `json` 属性获取的预测结果为字典类型的数据,相关内容与调用 `save_to_json()` 方法保存的内容一致。- `img` 属性返回的预测结果是一个字典类型的数据。其中,键分别为 `layout_det_res`、`overall_ocr_res`、`text_paragraphs_ocr_res`、`formula_res_region1`、`table_cell_img` 和 `seal_res_region1`,对应的值是 `Image.Image` 对象:分别用于显示版面区域检测、OCR、OCR文本段落、公式、表格和印章结果的可视化图像。如果没有使用可选模块,则字典中只包含 `layout_det_res`。- `markdown` 属性返回的预测结果是一个字典类型的数据。其中,键分别为 `markdown_texts` 、 `markdown_images`和`page_continuation_flags`,对应的值分别是 markdown 文本,在 Markdown 中显示的图像(`Image.Image` 对象)和用于标识当前页面第一个元素是否为段开始以及最后一个元素是否为段结束的bool元组。</details>