跳转至

PP-DocTranslation 产线使用教程

1. PP-DocTranslation 产线介绍

PP-DocTranslation 是飞桨提供的文档智能翻译解决方案,融合了先进的通用版面解析技术与大语言模型(LLM)能力,为您提供高效的文档智能翻译服务。该解决方案能够精准识别并提取文档中的各类元素,包括文本块、标题、段落、图片、表格及其他复杂版面结构,并在此基础之上实现高质量的多语种互译。PP-DocTranslation 支持多种主流语言间的相互翻译,尤其擅长处理排版复杂、上下文依赖性强的文档场景,力求输出精准自然、流畅专业的翻译结果。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

PP-DocTranslation 产线中使用了 PP-StructureV3 子产线,因此具有 PP-StructureV3 产线的所有功能,更多关于 PP-StructureV3 产线的功能介绍和使用细节,可以点击 PP-StructureV3 产线文档 页面查看

在本产线中,您可以根据下方的基准测试数据选择使用的模型。

👉模型列表详情

文档图像方向分类模块:

模型模型下载链接 Top-1 Acc(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
PP-LCNet_x1_0_doc_ori 推理模型/训练模型 99.06 2.62 / 0.59 3.24 / 1.19 7 基于PP-LCNet_x1_0的文档图像分类模型,含有四个类别,即0度,90度,180度,270度

文本图像矫正模块:

模型模型下载链接 CER 模型存储大小(M) 介绍
UVDoc 推理模型/训练模型 0.179 30.3 M 高精度文本图像矫正模型

版面区域检测模块模型:

模型模型下载链接 mAP(0.5)(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
PP-DocLayout_plus-L 推理模型/训练模型 83.2 53.03 / 17.23 634.62 / 378.32 126.01 M 基于RT-DETR-L在包含中英文论文、多栏杂志、报纸、PPT、合同、书本、试卷、研报、古籍、日文文档、竖版文字文档等场景的自建数据集训练的更高精度版面区域定位模型
PP-DocLayout-L 推理模型/训练模型 90.4 33.59 / 33.59 503.01 / 251.08 123.76 M 基于RT-DETR-L在包含中英文论文、杂志、合同、书本、试卷和研报等场景的自建数据集训练的高精度版面区域定位模型
PP-DocLayout-M 推理模型/训练模型 75.2 13.03 / 4.72 43.39 / 24.44 22.578 基于PicoDet-L在包含中英文论文、杂志、合同、书本、试卷和研报等场景的自建数据集训练的精度效率平衡的版面区域定位模型
PP-DocLayout-S 推理模型/训练模型 70.9 11.54 / 3.86 18.53 / 6.29 4.834 基于PicoDet-S在中英文论文、杂志、合同、书本、试卷和研报等场景上自建数据集训练的高效率版面区域定位模型

表格结构识别模块:

模型模型下载链接 精度(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小 (M) 介绍
SLANeXt_wired 推理模型/训练模型 69.65 85.92 / 85.92 - / 501.66 351M SLANeXt 系列是百度飞桨视觉团队自研的新一代表格结构识别模型。相较于 SLANet 和 SLANet_plus,SLANeXt 专注于对表格结构进行识别,并且对有线表格(wired)和无线表格(wireless)的识别分别训练了专用的权重,对各类型表格的识别能力都得到了明显提高,特别是对有线表格的识别能力得到了大幅提升。
SLANeXt_wireless 推理模型/训练模型

表格分类模块模型:

模型模型下载链接 Top1 Acc(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小 (M)
PP-LCNet_x1_0_table_cls 推理模型/训练模型 94.2 2.62 / 0.60 3.17 / 1.14 6.6M

表格单元格检测模块模型:

模型模型下载链接 mAP(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小 (M) 介绍
RT-DETR-L_wired_table_cell_det 推理模型/训练模型 82.7 33.47 / 27.02 402.55 / 256.56 124M RT-DETR 是第一个实时的端到端目标检测模型。百度飞桨视觉团队基于 RT-DETR-L 作为基础模型,在自建表格单元格检测数据集上完成预训练,实现了对有线表格、无线表格均有较好性能的表格单元格检测。
RT-DETR-L_wireless_table_cell_det 推理模型/训练模型

文本检测模块:

模型模型下载链接 检测Hmean(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
PP-OCRv5_server_det 推理模型/训练模型 83.8 89.55 / 70.19 383.15 / 383.15 84.3 PP-OCRv5 的服务端文本检测模型,精度更高,适合在性能较好的服务器上部署
PP-OCRv5_mobile_det 推理模型/训练模型 79.0 10.67 / 6.36 57.77 / 28.15 4.7 PP-OCRv5 的移动端文本检测模型,效率更高,适合在端侧设备部署
PP-OCRv4_server_det 推理模型/训练模型 69.2 127.82 / 98.87 585.95 / 489.77 109 PP-OCRv4 的服务端文本检测模型,精度更高,适合在性能较好的服务器上部署
PP-OCRv4_mobile_det 推理模型/训练模型 63.8 9.87 / 4.17 56.60 / 20.79 4.7 PP-OCRv4 的移动端文本检测模型,效率更高,适合在端侧设备部署
PP-OCRv3_mobile_det 推理模型/训练模型 精度接近 PP-OCRv4_mobile_det 9.90 / 3.60 41.93 / 20.76 2.1 PP-OCRv3 的移动端文本检测模型,效率更高,适合在端侧设备部署
PP-OCRv3_server_det 推理模型/训练模型 精度接近 PP-OCRv4_server_det 119.50 / 75.00 379.35 / 318.35 102.1 PP-OCRv3 的服务端文本检测模型,精度更高,适合在性能较好的服务器上部署

文本识别模块模型:

* 中文识别模型
模型模型下载链接 识别 Avg Accuracy(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
PP-OCRv5_server_rec 推理模型/训练模型 86.38 8.46 / 2.36 31.21 / 31.21 81 M PP-OCRv5_rec 是新一代文本识别模型。该模型致力于以单一模型高效、精准地支持简体中文、繁体中文、英文、日文四种主要语言,以及手写、竖版、拼音、生僻字等复杂文本场景的识别。在保持识别效果的同时,兼顾推理速度和模型鲁棒性,为各种场景下的文档理解提供高效、精准的技术支撑。
PP-OCRv5_mobile_rec 推理模型/训练模型 81.29 5.43 / 1.46 21.20 / 5.32 16 M
PP-OCRv4_server_rec_doc 推理模型/训练模型 86.58 8.69 / 2.78 37.93 / 37.93 74.7 M PP-OCRv4_server_rec_doc是在PP-OCRv4_server_rec的基础上,在更多中文文档数据和PP-OCR训练数据的混合数据训练而成,增加了部分繁体字、日文、特殊字符的识别能力,可支持识别的字符为1.5万+,除文档相关的文字识别能力提升外,也同时提升了通用文字的识别能力
PP-OCRv4_mobile_rec 推理模型/训练模型 78.74 5.26 / 1.12 17.48 / 3.61 10.6 M PP-OCRv4的轻量级识别模型,推理效率高,可以部署在包含端侧设备的多种硬件设备中
PP-OCRv4_server_rec 推理模型/训练模型 80.61 8.75 / 2.49 36.93 / 36.93 71.2 M PP-OCRv4的服务器端模型,推理精度高,可以部署在多种不同的服务器上
PP-OCRv3_mobile_rec 推理模型/训练模型 72.96 3.89 / 1.16 8.72 / 3.56 9.2 M PP-OCRv3的轻量级识别模型,推理效率高,可以部署在包含端侧设备的多种硬件设备中
模型模型下载链接 识别 Avg Accuracy(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
ch_SVTRv2_rec 推理模型/训练模型 68.81 10.38 / 8.31 66.52 / 30.83 73.9 M SVTRv2 是一种由复旦大学视觉与学习实验室(FVL)的OpenOCR团队研发的服务端文本识别模型,其在PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务中荣获一等奖,A榜端到端识别精度相比PP-OCRv4提升6%。
模型模型下载链接 识别 Avg Accuracy(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
ch_RepSVTR_rec 推理模型/训练模型 65.07 6.29 / 1.57 20.64 / 5.40 22.1 M RepSVTR 文本识别模型是一种基于SVTRv2 的移动端文本识别模型,其在PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务中荣获一等奖,B榜端到端识别精度相比PP-OCRv4提升2.5%,推理速度持平。
* 英文识别模型
模型模型下载链接 识别 Avg Accuracy(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
en_PP-OCRv4_mobile_rec 推理模型/训练模型 70.39 4.81 / 1.23 17.20 / 4.18 6.8 M 基于PP-OCRv4识别模型训练得到的超轻量英文识别模型,支持英文、数字识别
en_PP-OCRv3_mobile_rec 推理模型/训练模型 70.69 3.56 / 0.78 8.44 / 5.78 7.8 M 基于PP-OCRv3识别模型训练得到的超轻量英文识别模型,支持英文、数字识别
* 多语言识别模型
模型模型下载链接 识别 Avg Accuracy(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
korean_PP-OCRv3_mobile_rec 推理模型/训练模型 60.21 3.73 / 0.98 8.76 / 2.91 8.6 M 基于PP-OCRv3识别模型训练得到的超轻量韩文识别模型,支持韩文、数字识别
japan_PP-OCRv3_mobile_rec 推理模型/训练模型 45.69 3.86 / 1.01 8.62 / 2.92 8.8 M 基于PP-OCRv3识别模型训练得到的超轻量日文识别模型,支持日文、数字识别
chinese_cht_PP-OCRv3_mobile_rec 推理模型/训练模型 82.06 3.90 / 1.16 9.24 / 3.18 9.7 M 基于PP-OCRv3识别模型训练得到的超轻量繁体中文识别模型,支持繁体中文、数字识别
te_PP-OCRv3_mobile_rec 推理模型/训练模型 95.88 3.59 / 0.81 8.28 / 6.21 7.8 M 基于PP-OCRv3识别模型训练得到的超轻量泰卢固文识别模型,支持泰卢固文、数字识别
ka_PP-OCRv3_mobile_rec 推理模型/训练模型 96.96 3.49 / 0.89 8.63 / 2.77 8.0 M 基于PP-OCRv3识别模型训练得到的超轻量卡纳达文识别模型,支持卡纳达文、数字识别
ta_PP-OCRv3_mobile_rec 推理模型/训练模型 76.83 3.49 / 0.86 8.35 / 3.41 8.0 M 基于PP-OCRv3识别模型训练得到的超轻量泰米尔文识别模型,支持泰米尔文、数字识别
latin_PP-OCRv3_mobile_rec 推理模型/训练模型 76.93 3.53 / 0.78 8.50 / 6.83 7.8 M 基于PP-OCRv3识别模型训练得到的超轻量拉丁文识别模型,支持拉丁文、数字识别
arabic_PP-OCRv3_mobile_rec 推理模型/训练模型 73.55 3.60 / 0.83 8.44 / 4.69 7.8 M 基于PP-OCRv3识别模型训练得到的超轻量阿拉伯字母识别模型,支持阿拉伯字母、数字识别
cyrillic_PP-OCRv3_mobile_rec 推理模型/训练模型 94.28 3.56 / 0.79 8.22 / 2.76 7.9 M 基于PP-OCRv3识别模型训练得到的超轻量斯拉夫字母识别模型,支持斯拉夫字母、数字识别
devanagari_PP-OCRv3_mobile_rec 推理模型/训练模型 96.44 3.60 / 0.78 6.95 / 2.87 7.9 M 基于PP-OCRv3识别模型训练得到的超轻量梵文字母识别模型,支持梵文字母、数字识别

文本行方向分类模块(可选):

模型 模型下载链接 Top-1 Acc(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
PP-LCNet_x0_25_textline_ori 推理模型/训练模型 95.54 2.16 / 0.41 2.37 / 0.73 0.32 基于PP-LCNet_x0_25的文本行分类模型,含有两个类别,即0度,180度

公式识别模块:

模型模型下载链接 Avg-BLEU(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小 (M) 介绍
UniMERNet 推理模型/训练模型 86.13 2266.96/- -/- 1.4 G UniMERNet是由上海AI Lab研发的一款公式识别模型。该模型采用Donut Swin作为编码器,MBartDecoder作为解码器,并通过在包含简单公式、复杂公式、扫描捕捉公式和手写公式在内的一百万数据集上进行训练,大幅提升了模型对真实场景公式的识别准确率 PP-FormulaNet-S 推理模型/训练模型 87.12 1311.84 / 1311.84 - / 8288.07 167.9 M PP-FormulaNet 是由百度飞桨视觉团队开发的一款先进的公式识别模型,支持5万个常见LateX源码词汇的识别。PP-FormulaNet-S 版本采用了 PP-HGNetV2-B4 作为其骨干网络,通过并行掩码和模型蒸馏等技术,大幅提升了模型的推理速度,同时保持了较高的识别精度,适用于简单印刷公式、跨行简单印刷公式等场景。而 PP-FormulaNet-L 版本则基于 Vary_VIT_B 作为骨干网络,并在大规模公式数据集上进行了深入训练,在复杂公式的识别方面,相较于PP-FormulaNet-S表现出显著的提升,适用于简单印刷公式、复杂印刷公式、手写公式等场景。
PP-FormulaNet-L 推理模型/训练模型 92.13 1976.52/- -/- 535.2 M LaTeX_OCR_rec 推理模型/训练模型 71.63 1088.89 / 1088.89 - / - 89.7 M LaTeX-OCR是一种基于自回归大模型的公式识别算法,通过采用 Hybrid ViT 作为骨干网络,transformer作为解码器,显著提升了公式识别的准确性。

印章文本检测模块:

模型模型下载链接 检测Hmean(%) GPU推理耗时(ms)
[常规模式 / 高性能模式]
CPU推理耗时(ms)
[常规模式 / 高性能模式]
模型存储大小(M) 介绍
PP-OCRv4_server_seal_det 推理模型/训练模型 98.21 124.64 / 91.57 545.68 / 439.86 109 PP-OCRv4的服务端印章文本检测模型,精度更高,适合在较好的服务器上部署
PP-OCRv4_mobile_seal_det 推理模型/训练模型 96.47 9.70 / 3.56 50.38 / 19.64 4.6 PP-OCRv4的移动端印章文本检测模型,效率更高,适合在端侧部署
测试环境说明:
  • 性能测试环境
    • 测试数据集:
      • 文档图像方向分类模型:PaddleX 自建的数据集,覆盖证件和文档等多个场景,包含 1000 张图片。
      • 文本图像矫正模型:DocUNet
      • 版面区域检测模型:PaddleOCR 自建的版面区域分析数据集,包含中英文论文、杂志和研报等常见的 1w 张文档类型图片。
      • PP-DocLayout_plus-L:PaddleOCR 自建的版面区域检测数据集,包含中英文论文、杂志、报纸、研报、PPT、试卷、课本等 1300 张文档类型图片。
      • 表格结构识别模型:PaddleX 内部自建英文表格识别数据集。
      • 文本检测模型:PaddleOCR 自建的中文数据集,覆盖街景、网图、文档、手写多个场景,其中检测包含 500 张图片。
      • 中文识别模型: PaddleOCR 自建的中文数据集,覆盖街景、网图、文档、手写多个场景,其中文本识别包含 1.1w 张图片。
      • ch_SVTRv2_rec:PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务A榜评估集。
      • ch_RepSVTR_rec:PaddleOCR算法模型挑战赛 - 赛题一:OCR端到端识别任务B榜评估集。
      • 英文识别模型:PaddleX 自建的英文数据集。
      • 多语言识别模型:PaddleX 自建的多语种数据集。
      • 文本行方向分类模型:PaddleX 自建的数据集,覆盖证件和文档等多个场景,包含 1000 张图片。
      • 印章文本检测模型:PaddleX 自建的数据集,包含500张圆形印章图像。
    • 硬件配置:
      • GPU:NVIDIA Tesla T4
      • CPU:Intel Xeon Gold 6271C @ 2.60GHz
    • 软件环境:
      • Ubuntu 20.04 / CUDA 11.8 / cuDNN 8.9 / TensorRT 8.6.1.6
      • paddlepaddle 3.0.0 / paddleocr 3.0.3
  • 推理模式说明
模式 GPU配置 CPU配置 加速技术组合
常规模式 FP32精度 / 无TRT加速 FP32精度 / 8线程 PaddleInference
高性能模式 选择先验精度类型和加速策略的最优组合 FP32精度 / 8线程 选择先验最优后端(Paddle/OpenVINO/TRT等)

2. 快速开始

在本地使用 PP-DocTranslation 产线前,请确保您已经按照安装教程完成了wheel包安装。

请注意,如果在执行过程中遇到程序失去响应、程序异常退出、内存资源耗尽、推理速度极慢等问题,请尝试参考文档调整配置,例如关闭不需要使用的功能或使用更轻量的模型。

使用前需准备大语言模型的API密钥,支持百度云千帆平台或符合OpenAI接口标准的本地大模型服务。

2.1 命令行方式体验

可以下载 测试文件,使用一行命令即可快速体验产线效果:

paddleocr pp_doctranslation -i vehicle_certificate-1.png --target_language en --qianfan_api_key your_api_key
命令行支持更多参数设置,点击展开以查看命令行参数的详细说明
参数 参数说明 参数类型 默认值
input 待预测数据,必填。如图像文件或者PDF文件的本地路径:/root/data/img.jpg如URL链接,如图像文件或PDF文件的网络URL:示例如本地目录,该目录下需包含待预测图像,如本地路径:/root/data/(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径)。 str
save_path 指定推理结果文件保存的路径。如果不设置,推理结果将不会保存到本地。 str
target_language 目标语言(ISO 639-1 语言代码)。 str zh
layout_detection_model_name 版面区域检测的模型名称。如果不设置,将会使用产线默认模型。 str
layout_detection_model_dir 版面区域检测模型的目录路径。如果不设置,将会下载官方模型。 str
layout_threshold 版面模型得分阈值。0-1 之间的任意浮点数。如果不设置,将使用产线初始化的该参数值,默认初始化为 0.5 float
layout_nms 版面检测是否使用后处理NMS。如果不设置,将使用产线初始化的该参数值,默认初始化为True bool
layout_unclip_ratio 版面区域检测模型检测框的扩张系数。 任意大于 0 浮点数。如果不设置,将使用产线初始化的该参数值,默认初始化为 1.0 float
layout_merge_bboxes_mode 版面检测中模型输出的检测框的合并处理模式。
  • large,设置为large时,表示在模型输出的检测框中,对于互相重叠包含的检测框,只保留外部最大的框,删除重叠的内部框;
  • small,设置为small,表示在模型输出的检测框中,对于互相重叠包含的检测框,只保留内部被包含的小框,删除重叠的外部框;
  • union,不进行框的过滤处理,内外框都保留;
如果不设置,将使用产线初始化的该参数值,默认初始化为large
str
chart_recognition_model_name 图表解析的模型名称。如果不设置,将会使用产线默认模型。 str
chart_recognition_model_dir 图表解析模型的目录路径。如果不设置,将会下载官方模型。 str
chart_recognition_batch_size 图表解析模型的batch size。如果不设置,将默认设置batch size为1 int
region_detection_model_name 文档图像版面子模块检测的模型名称。如果不设置,将会使用产线默认模型。 str
region_detection_model_dir 文档图像版面子模块检测模型的目录路径。如果不设置,将会下载官方模型。 str
doc_orientation_classify_model_name 文档方向分类模型的名称。如果不设置,将会使用产线默认模型。 str
doc_orientation_classify_model_dir 文档方向分类模型的目录路径。如果不设置,将会下载官方模型。 str
doc_unwarping_model_name 文本图像矫正模型的名称。如果不设置,将会使用产线默认模型。 str
doc_unwarping_model_dir 文本图像矫正模型的目录路径。如果不设置,将会下载官方模型。 str
text_detection_model_name 文本检测模型的名称。如果不设置,将会使用产线默认模型。 str
text_detection_model_dir 文本检测模型的目录路径。如果不设置,将会下载官方模型。 str
text_det_limit_side_len 文本检测的图像边长限制。 大于 0 的任意整数。如果不设置,将使用产线初始化的该参数值,默认初始化为 960 int
text_det_limit_type 文本检测的图像边长限制类型。支持 minmaxmin 表示保证图像最短边不小于 det_limit_side_lenmax 表示保证图像最长边不大于 limit_side_len。如果不设置,将使用产线初始化的该参数值,默认初始化为 max str
text_det_thresh 检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。 大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 0.3 float
text_det_box_thresh 检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 0.6 float
text_det_unclip_ratio 文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。 大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 2.0 float
textline_orientation_model_name 文本行方向模型的名称。如果不设置,将会使用产线默认模型。 str
textline_orientation_model_dir 文本行方向模型的目录路径。如果不设置,将会下载官方模型。 str
textline_orientation_batch_size 文本行方向模型的batch size。如果不设置,将默认设置batch size为1 int
text_recognition_model_name 文本识别模型的名称。如果不设置,将会使用产线默认模型。 str
text_recognition_model_dir 文本识别模型的目录路径。如果不设置,将会下载官方模型。 str
text_recognition_batch_size 文本识别模型的batch size。如果不设置,将默认设置batch size为1 int
text_rec_score_thresh 文本识别阈值,得分大于该阈值的文本结果会被保留。 大于 0 的任意浮点数。如果不设置,将默认使用产线初始化的该参数值 0.0。即不设阈值。 float
table_classification_model_name 表格分类模型的名称。如果不设置,将会使用产线默认模型。 str
table_classification_model_dir 表格分类模型的目录路径。如果不设置,将会下载官方模型。 str
wired_table_structure_recognition_model_name 有线表格结构识别模型的名称。如果不设置,将会使用产线默认模型。 str
wired_table_structure_recognition_model_dir 有线表格结构识别模型的目录路径。如果不设置,将会下载官方模型。 str
wireless_table_structure_recognition_model_name 无线表格结构识别模型的名称。如果不设置,将会使用产线默认模型。 str
wireless_table_structure_recognition_model_dir 无线表格结构识别模型的目录路径。如果不设置,将会下载官方模型。 str
wired_table_cells_detection_model_name 有线表格单元格检测模型的名称。如果不设置,将会使用产线默认模型。 str
wired_table_cells_detection_model_dir 有线表格单元格检测模型的目录路径。如果不设置,将会下载官方模型。 str
wireless_table_cells_detection_model_name 无线表格单元格检测模型的名称。如果不设置,将会使用产线默认模型。 str
wireless_table_cells_detection_model_dir 无线表格单元格检测模型的目录路径。如果不设置,将会下载官方模型。 str
table_orientation_classify_model_name 表格方向分类模型的名称。如果不设置,将会使用产线默认模型。 str
table_orientation_classify_model_dir 表格方向分类模型的目录路径。如果不设置,将会下载官方模型。 str
seal_text_detection_model_name 印章文本检测模型的名称。如果不设置,将会使用产线默认模型。 str
seal_text_detection_model_dir 印章文本检测模型的目录路径。如果不设置,将会下载官方模型。 str
seal_det_limit_side_len 印章文本检测的图像边长限制。 大于 0 的任意整数。如果不设置,将使用产线初始化的该参数值,默认初始化为 736 int
seal_det_limit_type 印章文本检测的图像边长限制类型。支持 minmaxmin 表示保证图像最短边不小于 det_limit_side_lenmax 表示保证图像最长边不大于 limit_side_len。如果不设置,将使用产线初始化的该参数值,默认初始化为 min str
seal_det_thresh 检测像素阈值。输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。 大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 0.2float
seal_det_box_thresh 检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。 大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 0.6 float
seal_det_unclip_ratio 印章文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。 大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 0.5 float
seal_text_recognition_model_name 印章文本识别模型的名称。如果不设置,将会使用产线默认模型。 str
seal_text_recognition_model_dir 印章文本识别模型的目录路径。如果不设置,将会下载官方模型。 str
seal_text_recognition_batch_size 印章文本识别模型的batch size。如果不设置,将默认设置batch size为1 int
seal_rec_score_thresh 文本识别阈值,得分大于该阈值的文本结果会被保留。 大于 0 的任意浮点数 。如果不设置,将默认使用产线初始化的该参数值 0.0。即不设阈值。 float
formula_recognition_model_name 公式识别模型的名称。如果不设置,将会使用产线默认模型。 str
formula_recognition_model_dir 公式识别模型的目录路径。如果不设置,将会下载官方模型。 str
formula_recognition_batch_size 公式识别模型的batch size。如果不设置,将默认设置batch size为1 int
use_doc_orientation_classify 是否使用文档方向分类模块。 bool False
use_doc_unwarping 是否使用文本图像矫正模块。 bool False
use_textline_orientation 是否加载并使用文本行方向分类模块。如果不设置,将使用产线初始化的该参数值,默认初始化为True bool
use_seal_recognition 是否加载并使用印章文本识别子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为True bool
use_table_recognition 是否加载并使用表格识别子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为True bool
use_formula_recognition 是否加载并使用公式识别子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为True bool
use_chart_recognition 是否使用图表解析模块。 bool False
use_region_detection 是否加载并使用文档区域检测子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为True bool
device 用于推理的设备。支持指定具体卡号:
  • CPU:如 cpu 表示使用 CPU 进行推理;
  • GPU:如 gpu:0 表示使用第 1 块 GPU 进行推理;
  • NPU:如 npu:0 表示使用第 1 块 NPU 进行推理;
  • XPU:如 xpu:0 表示使用第 1 块 XPU 进行推理;
  • MLU:如 mlu:0 表示使用第 1 块 MLU 进行推理;
  • DCU:如 dcu:0 表示使用第 1 块 DCU 进行推理;
如果不设置,将默认使用产线初始化的该参数值,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。
str
enable_hpi 是否启用高性能推理。 bool False
use_tensorrt 是否启用 Paddle Inference 的 TensorRT 子图引擎。如果模型不支持通过 TensorRT 加速,即使设置了此标志,也不会使用加速。
对于 CUDA 11.8 版本的飞桨,兼容的 TensorRT 版本为 8.x(x>=6),建议安装 TensorRT 8.6.1.6。
对于 CUDA 12.6 版本的飞桨,兼容的 TensorRT 版本为 10.x(x>=5),建议安装 TensorRT 10.5.0.18。
bool False
precision 计算精度,如 fp32、fp16。 str fp32
enable_mkldnn 是否启用 MKL-DNN 加速推理。如果 MKL-DNN 不可用或模型不支持通过 MKL-DNN 加速,即使设置了此标志,也不会使用加速。 bool True
mkldnn_cache_capacity MKL-DNN 缓存容量。 int 10
cpu_threads 在 CPU 上进行推理时使用的线程数。 int 8
paddlex_config PaddleX产线配置文件路径。 str


运行结果会被打印到终端上。

2.2 Python脚本方式集成

命令行方式是为了快速体验查看效果,一般来说,在项目中,往往需要通过代码集成,可以下载 测试文件,使用如下示例代码进行推理:

from paddlex import create_pipeline
# 创建翻译产线
pipeline = create_pipeline(pipeline="PP-DocTranslation")

# 文档路径
input_path = "document_sample.pdf"

# 输出目录
output_path = "./output"

# 大模型配置
chat_bot_config = {
    "module_name": "chat_bot",
    "model_name": "ernie-3.5-8k",
    "base_url": "https://qianfan.baidubce.com/v2",
    "api_type": "openai",
    "api_key": "api_key",  # your api_key
}

if input_path.lower().endswith(".md"):
    # 读取markdown文档,支持传入目录和以 .md 为后缀的 url 链接
    ori_md_info_list = pipeline.load_from_markdown(input_path)
else:
    # 使用 PP-StructureV3 对 PDF/图片 文档进行版面解析,获取markdown信息
    visual_predict_res = pipeline.visual_predict(
        input_path,
        use_doc_orientation_classify=False,
        use_doc_unwarping=False,
        use_common_ocr=True,
        use_seal_recognition=True,
        use_table_recognition=True,
    )

    ori_md_info_list = []
    for res in visual_predict_res:
        layout_parsing_result = res["layout_parsing_result"]
        ori_md_info_list.append(layout_parsing_result.markdown)
        layout_parsing_result.save_to_img(output_path)
        layout_parsing_result.save_to_markdown(output_path)

    # 将多页文档的 markdown 信息拼接成一个 markdown 文件,可将合并后的 markdown 原文保存
    if input_path.lower().endswith(".pdf"):
        ori_md_info = pipeline.concatenate_markdown_pages(ori_md_info_list)
        ori_md_info.save_to_markdown(output_path)

# 执行文档翻译(目标语言:英文)
tgt_md_info_list = pipeline.translate(
    ori_md_info_list=ori_md_info_list,
    target_language="en",
    chunk_size=5000,
    chat_bot_config=chat_bot_config,
)
# 保存翻译结果
for tgt_md_info in tgt_md_info_list:
    tgt_md_info.save_to_markdown(output_path)

执行上述代码后,您将得到翻译原文的文档解析结果、翻译原文的 Markdown 文件和翻译后文档的 Markdown 文件,保存在 output 目录中。

PP-DocTranslation 预测的流程、API 说明、产出说明如下:

(1)调用 PPDocTranslation 实例化 PP-DocTranslation 产线对象。 相关参数说明如下:
参数 参数说明 参数类型 默认值
layout_detection_model_name 版面区域检测的模型名称。如果设置为None,将会使用产线默认模型。 str|None None
layout_detection_model_dir 版面区域检测模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
layout_threshold 版面模型得分阈值。
  • float0-1 之间的任意浮点数;
  • dict{0:0.1} key为类别ID,value为该类别的阈值;
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 0.5
float|dict|None None
layout_nms 版面检测是否使用后处理NMS。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
layout_unclip_ratio 版面区域检测模型检测框的扩张系数。
  • float:任意大于 0 浮点数;
  • Tuple[float,float]:在横纵两个方向各自的扩张系数;
  • dict,dict的key为int类型,代表cls_id, value为tuple类型,如{0: (1.1, 2.0)},表示将模型输出的第0类别检测框中心不变,宽度扩张1.1倍,高度扩张2.0倍;
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 1.0
float|Tuple[float,float]|dict|None None
layout_merge_bboxes_mode 版面区域检测的重叠框过滤方式。
  • strlargesmallunion,分别表示重叠框过滤时选择保留大框,小框还是同时保留;
  • dict: dict的key为int类型,代表cls_id,value为str类型,如{0: "large", 2: "small"},表示对第0类别检测框使用large模式,对第2类别检测框使用small模式;
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 large
str|dict|None None
chart_recognition_model_name 图表解析的模型名称。如果设置为None,将会使用产线默认模型。 str|None None
chart_recognition_model_dir 图表解析模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
chart_recognition_batch_size 图表解析模型的batch size。如果设置为None,将默认设置batch size为1 int|None None
region_detection_model_name 文档图像版面子模块检测的模型名称。如果设置为None,将会使用产线默认模型。 str|None None
region_detection_model_dir 文档图像版面子模块检测模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
doc_orientation_classify_model_name 文档方向分类模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
doc_orientation_classify_model_dir 文档方向分类模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
doc_unwarping_model_name 文本图像矫正模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
doc_unwarping_model_dir 文本图像矫正模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
text_detection_model_name 文本检测模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
text_detection_model_dir 文本检测模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
text_det_limit_side_len 文本检测的图像边长限制。
  • int:大于 0 的任意整数;
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 960
int|None None
text_det_limit_type 文本检测的图像边长限制类型。
  • str:支持 minmaxmin 表示保证图像最短边不小于 det_limit_side_lenmax 表示保证图像最长边不大于 limit_side_len
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 max
str|None None
text_det_thresh 检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.3
float|None None
text_det_box_thresh 检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.6
float|None None
text_det_unclip_ratio 文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 2.0
float|None None
textline_orientation_model_name 文本行方向模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
textline_orientation_model_dir 文本行方向模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
textline_orientation_batch_size 文本行方向模型的batch size。如果设置为None,将默认设置batch size为1 int|None None
text_recognition_model_name 文本识别模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
text_recognition_model_dir 文本识别模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
text_recognition_batch_size 文本识别模型的batch size。如果设置为None,将默认设置batch size为1 int|None None
text_rec_score_thresh 文本识别阈值,得分大于该阈值的文本结果会被保留。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.0,即不设阈值。
float|None None
table_classification_model_name 表格分类模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
table_classification_model_dir 表格分类模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
wired_table_structure_recognition_model_name 有线表格结构识别模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
wired_table_structure_recognition_model_dir 有线表格结构识别模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
wireless_table_structure_recognition_model_name 无线表格结构识别模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
wireless_table_structure_recognition_model_dir 无线表格结构识别模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
wired_table_cells_detection_model_name 有线表格单元格检测模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
wired_table_cells_detection_model_dir 有线表格单元格检测模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
wireless_table_cells_detection_model_name 无线表格单元格检测模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
wireless_table_cells_detection_model_dir 无线表格单元格检测模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
table_orientation_classify_model_name 表格方向分类模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
table_orientation_classify_model_dir 表格方向分类模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
seal_text_detection_model_name 印章文本检测模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
seal_text_detection_model_dir 印章文本检测模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
seal_det_limit_side_len 印章文本检测的图像边长限制。
  • int:大于 0 的任意整数;
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 736
int|None None
seal_det_limit_type 印章文本检测的图像边长限制类型。
  • str:支持 minmaxmin 表示保证图像最短边不小于 det_limit_side_lenmax 表示保证图像最长边不大于 limit_side_len
  • None:如果设置为None,将使用产线初始化的该参数值,默认初始化为 min
str|None None
seal_det_thresh 检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。
  • float:大于 0 的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.2
float|None None
seal_det_box_thresh 检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.6
float|None None
seal_det_unclip_ratio 印章文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.5
float|None None
seal_text_recognition_model_name 印章文本识别模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
seal_text_recognition_model_dir 印章文本识别模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
seal_text_recognition_batch_size 印章文本识别模型的batch size。如果设置为None,将默认设置batch size为1 int|None None
seal_rec_score_thresh 印章文本识别阈值,得分大于该阈值的文本结果会被保留。
  • float:大于0的任意浮点数;
  • None:如果设置为None,将默认使用产线初始化的该参数值 0.0,即不设阈值。
float|None None
formula_recognition_model_name 公式识别模型的名称。如果设置为None,将会使用产线默认模型。 str|None None
formula_recognition_model_dir 公式识别模型的目录路径。如果设置为None,将会下载官方模型。 str|None None
formula_recognition_batch_size 公式识别模型的batch size。如果设置为None,将默认设置batch size为1 int|None None
use_doc_orientation_classify 是否加载并使用文档方向分类模块。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_doc_unwarping 是否加载并使用文本图像矫正模块。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_textline_orientation 是否加载并使用文本行方向分类模块。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_seal_recognition 是否加载并使用印章文本识别子产线。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_table_recognition 是否加载并使用表格识别子产线。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_formula_recognition 是否加载并使用公式识别子产线。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_chart_recognition 是否加载并使用图表解析模块。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
use_region_detection 是否加载并使用文档区域检测子产线。如果设置为None,将使用产线初始化的该参数值,默认初始化为True bool|None None
chat_bot_config 大语言模型配置信息。配置内容为如下dict:
{
"module_name": "chat_bot",
"model_name": "ernie-3.5-8k",
"base_url": "https://qianfan.baidubce.com/v2",
"api_type": "openai",
"api_key": "api_key"  # 请将此设置为实际的API密钥
}
dict|None None
device 用于推理的设备。支持指定具体卡号:
  • CPU:如 cpu 表示使用 CPU 进行推理;
  • GPU:如 gpu:0 表示使用第 1 块 GPU 进行推理;
  • NPU:如 npu:0 表示使用第 1 块 NPU 进行推理;
  • XPU:如 xpu:0 表示使用第 1 块 XPU 进行推理;
  • MLU:如 mlu:0 表示使用第 1 块 MLU 进行推理;
  • DCU:如 dcu:0 表示使用第 1 块 DCU 进行推理;
  • None:如果设置为None,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。
str|None None
enable_hpi 是否启用高性能推理。 bool False
use_tensorrt 是否启用 Paddle Inference 的 TensorRT 子图引擎。如果模型不支持通过 TensorRT 加速,即使设置了此标志,也不会使用加速。
对于 CUDA 11.8 版本的飞桨,兼容的 TensorRT 版本为 8.x(x>=6),建议安装 TensorRT 8.6.1.6。
对于 CUDA 12.6 版本的飞桨,兼容的 TensorRT 版本为 10.x(x>=5),建议安装 TensorRT 10.5.0.18。
bool False
precision 计算精度,如 fp32、fp16。 str "fp32"
enable_mkldnn 是否启用 MKL-DNN 加速推理。如果 MKL-DNN 不可用或模型不支持通过 MKL-DNN 加速,即使设置了此标志,也不会使用加速。 bool True
mkldnn_cache_capacity MKL-DNN 缓存容量。 int 10
cpu_threads 在 CPU 上进行推理时使用的线程数。 int 8
paddlex_config PaddleX产线配置文件路径。 str|None None
(2)调用 PP-DocTranslation 产线对象的 visual_predict() 方法获取视觉预测结果,该方法会返回一个结果列表。另外,产线还提供了 visual_predict_iter() 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 visual_predict_iter() 返回的是一个 generator,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。以下是 visual_predict() 方法的参数及其说明:
参数 参数说明 参数类型 默认值
input 待预测数据,支持多种输入类型,必填。
  • Python Var:如 numpy.ndarray 表示的图像数据;
  • str:如图像文件或者PDF文件的本地路径:/root/data/img.jpg如URL链接,如图像文件或PDF文件的网络URL:示例如本地目录,该目录下需包含待预测图像,如本地路径:/root/data/(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径);
  • list:列表元素需为上述类型数据,如[numpy.ndarray, numpy.ndarray]["/root/data/img1.jpg", "/root/data/img2.jpg"]["/root/data1", "/root/data2"]
Python Var|str|list
use_doc_orientation_classify 是否在推理时使用文档方向分类模块。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None False
use_doc_unwarping 是否在推理时使用文本图像矫正模块。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None False
use_textline_orientation 是否在推理时使用文本行方向分类模块。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None None
use_seal_recognition 是否在推理时使用印章文本识别子产线。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None None
use_table_recognition 是否在推理时使用表格识别子产线。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None None
use_formula_recognition 是否在推理时使用公式识别子产线。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None None
use_chart_recognition 是否使用图表解析模块。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None False
use_region_detection 是否使用文档区域检测子产线。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None None
layout_threshold 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|dict|None None
layout_nms 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 bool|None None
layout_unclip_ratio 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|Tuple[float,float]|dict|None None
layout_merge_bboxes_mode 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 str|dict|None None
text_det_limit_side_len 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 int|None None
text_det_limit_type 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 str|None None
text_det_thresh 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
text_det_box_thresh 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
text_det_unclip_ratio 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
text_rec_score_thresh 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
seal_det_limit_side_len 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 int|None None
seal_det_limit_type 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 str|None None
seal_det_thresh 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
seal_det_box_thresh 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
seal_det_unclip_ratio 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
seal_rec_score_thresh 参数含义与实例化参数基本相同。设置为None表示使用实例化参数,否则该参数优先级更高。 float|None None
use_wired_table_cells_trans_to_html 是否启用有线表单元格检测结果直转HTML,启用则直接基于有线表单元格检测结果的几何关系构建HTML。 bool False
use_wireless_table_cells_trans_to_html 是否启用无线表单元格检测结果直转HTML,启用则直接基于无线表单元格检测结果的几何关系构建HTML。 bool False
use_table_orientation_classify 是否启用表格使用表格方向分类,启用时当图像中的表格存在90/180/270度旋转时,能够将方向校正并正确完成表格识别。 bool True
use_ocr_results_with_table_cells 是否启用单元格切分OCR,启用时会基于单元格预测结果对OCR检测结果进行切分和重识别,避免出现文字缺失情况。 bool True
use_e2e_wired_table_rec_model 是否启用有线表端到端表格识别模式,启用则不使用单元格检测模型,只使用表格结构识别模型。 bool False
use_e2e_wireless_table_rec_model 是否启用无线表端到端表格识别模式,启用则不使用单元格检测模型,只使用表格结构识别模型。 bool True
(3)对视觉预测结果进行处理:每个样本的预测结果均为对应的Result对象,且支持打印、保存为图片、保存为json文件的操作:
方法 方法说明 参数 参数类型 参数说明 默认值
print() 打印结果到终端 format_json bool 是否对输出内容进行使用 JSON 缩进格式化 True
indent int 指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_jsonTrue 时有效 4
ensure_ascii bool 控制是否将非 ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_jsonTrue时有效 False
save_to_json() 将结果保存为json格式的文件 save_path str 保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致
indent int 指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_jsonTrue 时有效 4
ensure_ascii bool 控制是否将非 ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_jsonTrue时有效 False
save_to_img() 将中间各个模块的可视化图像保存在png格式的图像 save_path str 保存的文件路径,支持目录或文件路径
save_to_markdown() 将图像或者PDF文件中的每一页分别保存为markdown格式的文件 save_path str 保存的文件路径,支持目录或文件路径
save_to_html() 将文件中的表格保存为html格式的文件 save_path str 保存的文件路径,支持目录或文件路径
save_to_xlsx() 将文件中的表格保存为xlsx格式的文件 save_path str 保存的文件路径,支持目录或文件路径
- 调用`print()` 方法会将结果打印到终端,打印到终端的内容解释如下: - `input_path`: `(str)` 待预测图像或者PDF的输入路径 - `page_index`: `(Union[int, None])` 如果输入是PDF文件,则表示当前是PDF的第几页,否则为 `None` - `model_settings`: `(Dict[str, bool])` 配置产线所需的模型参数 - `use_doc_preprocessor`: `(bool)` 控制是否启用文档预处理子产线 - `use_general_ocr`: `(bool)` 控制是否启用 OCR 子产线 - `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-DocTranslation 产线输出的多页Markdown内容`markdown_list`合并为单个完整文档,并返回合并后的Markdown内容。
(4)调用 translate() 方法执行文档翻译,该方法会返回翻译的 markdown 原文和译文,是一个markdown对象,可以通过执行 save_to_markdown() 方法将需要的部分保存到本地。以下是 translate() 方法的相关参数说明:
参数 参数说明 参数类型 默认值
ori_md_info_list 原始Markdown格式的数据列表,包含需要翻译的内容。必须为字典组成的列表,每个字典表示一个文档块 List[Dict] 无默认值(必填)
target_language 目标语言(ISO 639-1 语言代码,如 "en"/"ja"/"fr")。 str "zh"
chunk_size 翻译文本分块处理的字符数阈值。 int 5000
task_description 自定义任务描述提示词。 str|None None
output_format 指定输出格式要求,如“保持原Markdown结构”。 str|None None
rules_str 自定义翻译规则说明。 str|None None
few_shot_demo_text_content 少样本学习的示例文本内容。 str|None None
few_shot_demo_key_value_list 结构化少样本示例数据。键值对格式的示例数据,可传入专业术语对照表。 str|None None
chat_bot_config 大语言模型配置。设置为None表示使用实例化参数,否则该参数优先级更高。 dict|None None
llm_request_interval 向大语言模型发送请求的时间间隔,单位为秒。该参数可用于防止过于频繁地调用大语言模型。 float 0

3. 开发集成/部署

如果产线可以达到您对产线推理速度和精度的要求,您可以直接进行开发集成/部署。

若您需要将产线直接应用在您的Python项目中,可以参考 2.2 Python脚本方式中的示例代码。

此外,PaddleOCR 也提供了其他两种部署方式,详细说明如下:

🚀 高性能推理:在实际生产环境中,许多应用对部署策略的性能指标(尤其是响应速度)有着较严苛的标准,以确保系统的高效运行与用户体验的流畅性。为此,PaddleOCR 提供高性能推理功能,旨在对模型推理及前后处理进行深度性能优化,实现端到端流程的显著提速,详细的高性能推理流程请参考高性能推理

☁️ 服务化部署:服务化部署是实际生产环境中常见的一种部署形式。通过将推理功能封装为服务,客户端可以通过网络请求来访问这些服务,以获取推理结果。详细的产线服务化部署流程请参考服务化部署

以下是基础服务化部署的API参考与多语言服务调用示例:

API参考

对于服务提供的主要操作:

  • HTTP请求方法为POST。
  • 请求体和响应体均为JSON数据(JSON对象)。
  • 当请求处理成功时,响应状态码为200,响应体的属性如下:
名称 类型 含义
logId string 请求的UUID。
errorCode integer 错误码。固定为0
errorMsg string 错误说明。固定为"Success"
result object 操作结果。
  • 当请求处理未成功时,响应体的属性如下:
名称 类型 含义
logId string 请求的UUID。
errorCode integer 错误码。与响应状态码相同。
errorMsg string 错误说明。

服务提供的主要操作如下:

  • analyzeImages

使用计算机视觉模型对图像进行分析,获得OCR、表格识别结果等。

POST /doctrans-visual

  • 请求体的属性如下:
名称 类型 含义 是否必填
file string 服务器可访问的图像文件或PDF文件的URL,或上述类型文件内容的Base64编码结果。默认对于超过10页的PDF文件,只有前10页的内容会被处理。
要解除页数限制,请在产线配置文件中添加以下配置:
Serving:
  extra:
    max_num_input_imgs: null
fileType integernull 文件类型。0表示PDF文件,1表示图像文件。若请求体无此属性,则将根据URL推断文件类型。
useDocOrientationClassify boolean | null 请参阅产线对象中 predict 方法的 use_doc_orientation_classify 参数相关说明。
useDocUnwarping boolean | null 请参阅产线对象中 predict 方法的 use_doc_unwarping 参数相关说明。
useTextlineOrientation boolean | null 请参阅产线对象中 predict 方法的 use_textline_orientation 参数相关说明。
useSealRecognition boolean | null 请参阅产线对象中 predict 方法的 use_seal_recognition 参数相关说明。
useTableRecognition boolean | null 请参阅产线对象中 predict 方法的 use_table_recognition 参数相关说明。
useFormulaRecognition boolean | null 请参阅产线对象中 predict 方法的 use_formula_recognition 参数相关说明。
useChartRecognition boolean | null 请参阅产线对象中 predict 方法的 use_chart_recognition 参数相关说明。
useRegionDetection boolean | null 请参阅产线对象中 predict 方法的 use_region_detection 参数相关说明。
layoutThreshold number | object | null 请参阅产线对象中 predict 方法的 layout_threshold 参数相关说明。
layoutNms boolean | null 请参阅产线对象中 predict 方法的 layout_nms 参数相关说明。
layoutUnclipRatio number | array | object | null 请参阅产线对象中 predict 方法的 layout_unclip_ratio 参数相关说明。
layoutMergeBboxesMode string | object | null 请参阅产线对象中 predict 方法的 layout_merge_bboxes_mode 参数相关说明。
textDetLimitSideLen integer | null 请参阅产线对象中 predict 方法的 text_det_limit_side_len 参数相关说明。
textDetLimitType string | null 请参阅产线对象中 predict 方法的 text_det_limit_type 参数相关说明。
textDetThresh number | null 请参阅产线对象中 predict 方法的 text_det_thresh 参数相关说明。
textDetBoxThresh number | null 请参阅产线对象中 predict 方法的 text_det_box_thresh 参数相关说明。
textDetUnclipRatio number | null 请参阅产线对象中 predict 方法的 text_det_unclip_ratio 参数相关说明。
textRecScoreThresh number | null 请参阅产线对象中 predict 方法的 text_rec_score_thresh 参数相关说明。
sealDetLimitSideLen integer | null 请参阅产线对象中 predict 方法的 seal_det_limit_side_len 参数相关说明。
sealDetLimitType string | null 请参阅产线对象中 predict 方法的 seal_det_limit_type 参数相关说明。
sealDetThresh number | null 请参阅产线对象中 predict 方法的 seal_det_thresh 参数相关说明。
sealDetBoxThresh number | null 请参阅产线对象中 predict 方法的 seal_det_box_thresh 参数相关说明。
sealDetUnclipRatio number | null 请参阅产线对象中 predict 方法的 seal_det_unclip_ratio 参数相关说明。
sealRecScoreThresh number | null 请参阅产线对象中 predict 方法的 seal_rec_score_thresh 参数相关说明。
useWiredTableCellsTransToHtml boolean 请参阅产线对象中 predict 方法的 use_wired_table_cells_trans_to_html 参数相关说明。 No
useWirelessTableCellsTransToHtml boolean 请参阅产线对象中 predict 方法的 use_wireless_table_cells_trans_to_html 参数相关说明。 No
useTableOrientationClassify boolean 请参阅产线对象中 predict 方法的 use_table_orientation_classify 参数相关说明。 No
useOcrResultsWithTableCells boolean 请参阅产线对象中 predict 方法的 use_ocr_results_with_table_cells 参数相关说明。
useE2eWiredTableRecModel boolean 请参阅产线对象中 predict 方法的 use_e2e_wired_table_rec_model 参数相关说明。
useE2eWirelessTableRecModel boolean 请参阅产线对象中 predict 方法的 use_e2e_wireless_table_rec_model 参数相关说明。
visualize boolean | null 是否返回可视化结果图以及处理过程中的中间图像等。
  • 传入 true:返回图像。
  • 传入 false:不返回图像。
  • 若请求体中未提供该参数或传入 null:遵循产线配置文件Serving.visualize 的设置。

例如,在产线配置文件中添加如下字段:
Serving:
  visualize: False
将默认不返回图像,通过请求体中的visualize参数可以覆盖默认行为。如果请求体和配置文件中均未设置(或请求体传入null、配置文件中未设置),则默认返回图像。
  • 请求处理成功时,响应体的result具有如下属性:
名称 类型 含义
layoutParsingResults array 版面解析结果。数组长度为1(对于图像输入)或实际处理的文档页数(对于PDF输入)。对于PDF输入,数组中的每个元素依次表示PDF文件中实际处理的每一页的结果。
dataInfo object 输入数据信息。

layoutParsingResults中的每个元素为一个object,具有如下属性:

名称 类型 含义
prunedResult object 产线对象的 visual_predict 方法生成的 layout_parsing_result 的 JSON 表示中 res 字段的简化版本,其中去除了 input_pathpage_index 字段。
markdown object Markdown结果。
outputImages object | null 参见产线预测结果的 img 属性说明。图像为JPEG格式,使用Base64编码。
inputImage string | null 输入图像。图像为JPEG格式,使用Base64编码。

markdown为一个object,具有如下属性:

名称 类型 含义
text string Markdown文本。
images object Markdown图片相对路径和Base64编码图像的键值对。
isStart boolean 当前页面第一个元素是否为段开始。
isEnd boolean 当前页面最后一个元素是否为段结束。
  • translate

利用大模型翻译文档。

POST /doctrans-translate

  • 请求体的属性如下:
名称 类型 含义 是否必填
markdownList array 待翻译的Markdown列表。可从analyzeImages操作的结果中获取。images属性将不会被用到。
targetLanguage string 请参阅产线对象中 translate 方法的 target_language 参数相关说明。
chunkSize integer 请参阅产线对象中 translate 方法的 chunk_size 参数相关说明。
taskDescription string | null 请参阅产线对象中 translate 方法的 task_description 参数相关说明。
outputFormat string | null 请参阅产线对象中 translate 方法的 output_format 参数相关说明。
rulesStr string | null 请参阅产线对象中 translate 方法的 rules_str 参数相关说明。
fewShotDemoTextContent string | null 请参阅产线对象中 translate 方法的 few_shot_demo_text_content 参数相关说明。
fewShotDemoKeyValueList string | null 请参阅产线对象中 translate 方法的 few_shot_demo_key_value_list 参数相关说明。
chatBotConfig object | null 请参阅产线对象中 translate 方法的 chat_bot_config 参数相关说明。
llmRequestInterval number | null 请参阅产线对象中 translate 方法的 llm_request_interval 参数相关说明。
  • 请求处理成功时,响应体的result具有如下属性:
名称 类型 含义
translationResults array 翻译结果。

translationResults中的每个元素为一个object,具有如下属性:

名称 类型 含义
language string 目标语言。
markdown object Markdown结果。对象定义与analyzeImages操作返回的markdown一致。
  • 注意:
  • 在请求体中包含大模型调用的API key等敏感参数可能存在安全风险。如无必要,请在配置文件中设置这些参数,在请求时不传递。

    多语言调用服务示例
    Python
    import base64
    import pathlib
    import pprint
    import sys
    
    import requests
    
    
    API_BASE_URL = "http://127.0.0.1:8080"
    
    file_path = "./demo.jpg"
    target_language = "en"
    
    with open(file_path, "rb") as file:
        file_bytes = file.read()
        file_data = base64.b64encode(file_bytes).decode("ascii")
    
    payload = {
        "file": file_data,
        "fileType": 1,
    }
    resp_visual = requests.post(url=f"{API_BASE_URL}/doctrans-visual", json=payload)
    if resp_visual.status_code != 200:
        print(
            f"Request to doctrans-visual failed with status code {resp_visual.status_code}."
        )
        pprint.pp(resp_visual.json())
        sys.exit(1)
    result_visual = resp_visual.json()["result"]
    
    markdown_list = []
    for i, res in enumerate(result_visual["layoutParsingResults"]):
        md_dir = pathlib.Path(f"markdown_{i}")
        md_dir.mkdir(exist_ok=True)
        (md_dir / "doc.md").write_text(res["markdown"]["text"])
        for img_path, img in res["markdown"]["images"].items():
            img_path = md_dir / img_path
            img_path.parent.mkdir(parents=True, exist_ok=True)
            img_path.write_bytes(base64.b64decode(img))
        print(f"Markdown document to be translated is saved at {md_dir / 'doc.md'}")
        del res["markdown"]["images"]
        markdown_list.append(res["markdown"])
        for img_name, img in res["outputImages"].items():
            img_path = f"{img_name}_{i}.jpg"
            with open(img_path, "wb") as f:
                f.write(base64.b64decode(img))
            print(f"Output image saved at {img_path}")
    
    payload = {
        "markdownList": markdown_list,
        "targetLanguage": target_language,
    }
    resp_translate = requests.post(url=f"{API_BASE_URL}/doctrans-translate", json=payload)
    if resp_translate.status_code != 200:
        print(
            f"Request to doctrans-translate failed with status code {resp_translate.status_code}."
        )
        pprint.pp(resp_translate.json())
        sys.exit(1)
    result_translate = resp_translate.json()["result"]
    
    for i, res in enumerate(result_translate["translationResults"]):
        md_dir = pathlib.Path(f"markdown_{i}")
        (md_dir / "doc_translated.md").write_text(res["markdown"]["text"])
        print(f"Translated markdown document saved at {md_dir / 'doc_translated.md'}")
    


    4. 二次开发

    如果 PP-DocTranslation 产线提供的默认模型权重在您的场景中,精度或速度不满意,您可以尝试利用您自己拥有的特定领域或应用场景的数据对现有模型进行进一步的微调,以提升在您的场景中的识别效果。

    4.1 模型微调

    由于 PP-DocTranslation 产线包含若干模块,模型产线的效果如果不及预期,可能来自于其中任何一个模块。您可以对提取效果差的 case 进行分析,通过可视化图像,确定是哪个模块存在问题,并参考以下表格中对应的微调教程链接进行模型微调。

    情形 微调模块 微调参考链接
    版面区域检测不准,如印章、表格未检出等 版面区域检测模块 链接
    表格结构识别不准 表格结构识别模块 链接
    公式识别不准 公式识别模块 链接
    印章文本存在漏检 印章文本检测模块 链接
    文本存在漏检 文本检测模块 链接
    文本内容都不准 文本识别模块 链接
    垂直或者旋转文本行矫正不准 文本行方向分类模块 链接
    整图旋转矫正不准 文档图像方向分类模块 链接
    图像扭曲矫正不准 文本图像矫正模块 暂不支持微调

    4.2 模型应用

    当您使用私有数据集完成微调训练后,可获得本地模型权重文件,然后可以通过自定义产线配置文件的方式,使用微调后的模型权重。

    1. 获取产线配置文件

    可调用 PaddleOCR 中 PP-DocTranslation 产线对象的 export_paddlex_config_to_yaml 方法,将当前产线配置导出为 YAML 文件:

    from paddleocr import PPDocTranslation
    
    pipeline = PPDocTranslation()
    pipeline.export_paddlex_config_to_yaml("PP-DocTranslation.yaml")
    
    1. 修改配置文件

    在得到默认的产线配置文件后,将微调后模型权重的本地路径替换至产线配置文件中的对应位置即可。例如

    ......
    SubModules:
        TextDetection:
        module_name: text_detection
        model_name: PP-OCRv5_server_det
        model_dir: null # 替换为微调后的文本检测模型权重路径
        limit_side_len: 960
        limit_type: max
        thresh: 0.3
        box_thresh: 0.6
        unclip_ratio: 1.5
    
        TextRecognition:
        module_name: text_recognition
        model_name: PP-OCRv5_server_rec
        model_dir: null # 替换为微调后的文本检测模型权重路径
        batch_size: 1
                score_thresh: 0
    ......
    

    在产线配置文件中,不仅包含 PaddleOCR CLI 和 Python API 支持的参数,还可进行更多高级配置,具体信息可在 PaddleX模型产线使用概览 中找到对应的产线使用教程,参考其中的详细说明,根据需求调整各项配置。

    1. 在 CLI 中加载产线配置文件

    在修改完成配置文件后,通过命令行的 --paddlex_config 参数指定修改后的产线配置文件的路径,PaddleOCR 会读取其中的内容作为产线配置。示例如下:

    paddleocr pp_doctranslation --paddlex_config PP-DocTranslation.yaml ...
    
    1. 在 Python API 中加载产线配置文件

    初始化产线对象时,可通过 paddlex_config 参数传入 PaddleX 产线配置文件路径或配置dict,PaddleOCR 会读取其中的内容作为产线配置。示例如下:

    from paddleocr import PPDocTranslation
    
    pipeline = PPDocTranslation(paddlex_config="PP-DocTranslation.yaml")
    

    评论