---
comments: true
---
# PP-DocTranslation 产线使用教程
## 1. PP-DocTranslation 产线介绍
PP-DocTranslation 是飞桨提供的文档智能翻译解决方案,融合了先进的通用版面解析技术与大语言模型(LLM)能力,为您提供高效的文档智能翻译服务。该解决方案能够精准识别并提取文档中的各类元素,包括文本块、标题、段落、图片、表格及其他复杂版面结构,并在此基础之上实现高质量的多语种互译。PP-DocTranslation 支持多种主流语言间的相互翻译,尤其擅长处理排版复杂、上下文依赖性强的文档场景,力求输出精准自然、流畅专业的翻译结果。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
PP-DocTranslation 产线中使用了 PP-StructureV3 子产线,因此具有 PP-StructureV3 产线的所有功能,更多关于 PP-StructureV3 产线的功能介绍和使用细节,可以点击 [PP-StructureV3 产线文档](./PP-StructureV3.md) 页面查看。
在本产线中,您可以根据下方的基准测试数据选择使用的模型。
> 推理耗时仅包含模型推理耗时,不包含前后处理耗时。
文档图像方向分类模块: 文本图像矫正模块: 版面区域检测模块模型: 表格结构识别模块: 表格分类模块模型: 表格单元格检测模块模型: 文本检测模块: 文本识别模块模型: 文本行方向分类模块(可选): 公式识别模块: 印章文本检测模块: 对于服务提供的主要操作: 服务提供的主要操作如下: 使用计算机视觉模型对图像进行分析,获得OCR、表格识别结果等。 利用大模型翻译文档。 👉模型列表详情
模型 模型下载链接
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
高精度文本图像矫正模型
模型 模型下载链接
mAP(0.5)(%)
GPU推理耗时(ms)
[常规模式 / 高性能模式]CPU推理耗时(ms)
[常规模式 / 高性能模式]模型存储大小(M)
介绍
PP-DocLayout_plus-L
推理模型/训练模型
83.2
53.03 / 17.23
634.62 / 378.32
126.01
基于RT-DETR-L在包含中英文论文、多栏杂志、报纸、PPT、合同、书本、试卷、研报、古籍、日文文档、竖版文字文档等场景的自建数据集训练的更高精度版面区域定位模型
PP-DocLayout-L
推理模型/训练模型
90.4
33.59 / 33.59
503.01 / 251.08
123.76
基于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
PP-OCRv5_rec 是新一代文本识别模型。该模型致力于以单一模型高效、精准地支持简体中文、繁体中文、英文、日文四种主要语言,以及手写、竖版、拼音、生僻字等复杂文本场景的识别。在保持识别效果的同时,兼顾推理速度和模型鲁棒性,为各种场景下的文档理解提供高效、精准的技术支撑。
PP-OCRv5_mobile_rec
推理模型/训练模型
81.29
5.43 / 1.46
21.20 / 5.32
16
PP-OCRv4_server_rec_doc
推理模型/训练模型
86.58
8.69 / 2.78
37.93 / 37.93
74.7
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
PP-OCRv4的轻量级识别模型,推理效率高,可以部署在包含端侧设备的多种硬件设备中
PP-OCRv4_server_rec
推理模型/训练模型
80.61
8.75 / 2.49
36.93 / 36.93
71.2
PP-OCRv4的服务器端模型,推理精度高,可以部署在多种不同的服务器上
PP-OCRv3_mobile_rec
推理模型/训练模型
72.96
3.89 / 1.16
8.72 / 3.56
9.2
PP-OCRv3的轻量级识别模型,推理效率高,可以部署在包含端侧设备的多种硬件设备中
模型 模型下载链接
识别 Avg Accuracy(%)
GPU推理耗时(ms)
[常规模式 / 高性能模式]CPU推理耗时(ms)
[常规模式 / 高性能模式]模型存储大小(M)
介绍
ch_SVTRv2_rec
推理模型/训练模型
68.81
10.38 / 8.31
66.52 / 30.83
73.9
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
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
基于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
基于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
基于PP-OCRv3识别模型训练得到的超轻量拉丁文识别模型,支持拉丁文、数字识别
arabic_PP-OCRv3_mobile_rec
推理模型/训练模型
73.55
3.60 / 0.83
8.44 / 4.69
7.8
基于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
基于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
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
LaTeX_OCR_rec
推理模型/训练模型
71.63
1088.89 / 1088.89
- / -
89.7
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的移动端印章文本检测模型,效率更高,适合在端侧部署
模式
GPU配置
CPU配置
加速技术组合
常规模式
FP32精度 / 无TRT加速
FP32精度 / 8线程
PaddleInference
高性能模式
选择先验精度类型和加速策略的最优组合
FP32精度 / 8线程
选择先验最优后端(Paddle/OpenVINO/TRT等)
命令行支持更多参数设置,点击展开以查看命令行参数的详细说明
参数
参数说明
参数类型
默认值
input待预测数据,必填。如图像文件或者PDF文件的本地路径:
/root/data/img.jpg;如URL链接,如图像文件或PDF文件的网络URL:示例;如本地目录,该目录下需包含待预测图像,如本地路径:/root/data/(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径)。
str
save_path指定推理结果文件保存的路径。如果不设置,推理结果将不会保存到本地。
str
target_language目标语言(ISO 639-1 语言代码)。
strzh
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。
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文本检测的图像边长限制类型。支持
min 和 max,min 表示保证图像最短边不小于 det_limit_side_len,max 表示保证图像最长边不大于 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印章文本检测的图像边长限制类型。支持
min 和 max,min 表示保证图像最短边不小于 det_limit_side_len,max 表示保证图像最长边不大于 limit_side_len。如果不设置,将使用产线初始化的该参数值,默认初始化为 min。
str
seal_det_thresh检测像素阈值。输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。
大于 0 的任意浮点数
。如果不设置,将默认使用产线初始化的该参数值 0.2。
float
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是否加载并使用文档方向分类模块。如果不设置,将使用产线初始化的该参数值,默认初始化为
False。bool
use_doc_unwarping是否加载并使用文本图像矫正模块。如果不设置,将使用产线初始化的该参数值,默认初始化为
False。bool
use_textline_orientation是否加载并使用文本行方向分类模块。如果不设置,将使用产线初始化的该参数值,默认初始化为
True。bool
use_seal_recognition是否加载并使用印章文本识别子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为
True。bool
use_table_recognition是否加载并使用表格识别子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为
True。bool
use_formula_recognition是否加载并使用公式识别子产线。如果不设置,将使用产线初始化的该参数值,默认初始化为
True。bool
use_chart_recognition是否加载并使用文档区域检测模块。如果不设置,将使用产线初始化的该参数值,默认初始化为
False。bool
use_region_detection是否加载并使用文档区域检测模块。如果不设置,将使用产线初始化的该参数值,默认初始化为
True。bool
qianfan_api_key千帆平台的API key。
str
device用于推理的设备。支持指定具体卡号:
如果不设置,将默认使用产线初始化的该参数值,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。
cpu 表示使用 CPU 进行推理;gpu:0 表示使用第 1 块 GPU 进行推理;npu:0 表示使用第 1 块 NPU 进行推理;xpu:0 表示使用第 1 块 XPU 进行推理;mlu:0 表示使用第 1 块 MLU 进行推理;dcu:0 表示使用第 1 块 DCU 进行推理;str
enable_hpi是否启用高性能推理。
boolFalse
use_tensorrt是否启用 Paddle Inference 的 TensorRT 子图引擎。如果模型不支持通过 TensorRT 加速,即使设置了此标志,也不会使用加速。
对于 CUDA 11.8 版本的飞桨,兼容的 TensorRT 版本为 8.x(x>=6),建议安装 TensorRT 8.6.1.6。
boolFalse
precision计算精度,如 fp32、fp16。
strfp32
enable_mkldnn是否启用 MKL-DNN 加速推理。如果 MKL-DNN 不可用或模型不支持通过 MKL-DNN 加速,即使设置了此标志,也不会使用加速。
boolTrue
mkldnn_cache_capacity
MKL-DNN 缓存容量。
int10
cpu_threads在 CPU 上进行推理时使用的线程数。
int8
paddlex_configPaddleX产线配置文件路径。
str
运行结果会被打印到终端上。
### 2.2 Python脚本方式集成
命令行方式是为了快速体验查看效果,一般来说,在项目中,往往需要通过代码集成,可以下载 [测试文件](https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/vehicle_certificate-1.png),使用如下示例代码进行推理:
```python
from paddleocr import PPDocTranslation
# 创建翻译产线
pipeline = PPDocTranslation()
# 文档路径
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|NoneNone
layout_detection_model_dir版面区域检测模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
layout_threshold版面模型得分阈值。
0-1 之间的任意浮点数;{0:0.1} key为类别ID,value为该类别的阈值;None,将使用产线初始化的该参数值,默认初始化为 0.5。float|dict|NoneNone
layout_nms版面检测是否使用后处理NMS。如果设置为
None,将使用产线初始化的该参数值,默认初始化为True。bool|NoneNone
layout_unclip_ratio版面区域检测模型检测框的扩张系数。
0 浮点数;cls_id, value为tuple类型,如{0: (1.1, 2.0)},表示将模型输出的第0类别检测框中心不变,宽度扩张1.1倍,高度扩张2.0倍;None,将使用产线初始化的该参数值,默认初始化为 1.0。float|Tuple[float,float]|dict|NoneNone
layout_merge_bboxes_mode版面区域检测的重叠框过滤方式。
large,small,union,分别表示重叠框过滤时选择保留大框,小框还是同时保留;cls_id,value为str类型,如{0: "large", 2: "small"},表示对第0类别检测框使用large模式,对第2类别检测框使用small模式;None,将使用产线初始化的该参数值,默认初始化为 large。str|dict|NoneNone
chart_recognition_model_name图表解析的模型名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
chart_recognition_model_dir图表解析模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
chart_recognition_batch_size图表解析模型的batch size。如果设置为
None,将默认设置batch size为1。int|NoneNone
region_detection_model_name文档图像版面子模块检测的模型名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
region_detection_model_dir文档图像版面子模块检测模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
doc_orientation_classify_model_name文档方向分类模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
doc_orientation_classify_model_dir文档方向分类模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
doc_unwarping_model_name文本图像矫正模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
doc_unwarping_model_dir文本图像矫正模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
text_detection_model_name文本检测模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
text_detection_model_dir文本检测模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
text_det_limit_side_len文本检测的图像边长限制。
0 的任意整数;None,将使用产线初始化的该参数值,默认初始化为 960。int|NoneNone
text_det_limit_type文本检测的图像边长限制类型。
min 和 max,min 表示保证图像最短边不小于 det_limit_side_len,max 表示保证图像最长边不大于 limit_side_len;None,将使用产线初始化的该参数值,默认初始化为 max。str|NoneNone
text_det_thresh检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 0.3。float|NoneNone
text_det_box_thresh检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 0.6。float|NoneNone
text_det_unclip_ratio文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 2.0。float|NoneNone
textline_orientation_model_name文本行方向模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
textline_orientation_model_dir文本行方向模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
textline_orientation_batch_size文本行方向模型的batch size。如果设置为
None,将默认设置batch size为1。int|NoneNone
text_recognition_model_name文本识别模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
text_recognition_model_dir文本识别模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
text_recognition_batch_size文本识别模型的batch size。如果设置为
None,将默认设置batch size为1。int|NoneNone
text_rec_score_thresh文本识别阈值,得分大于该阈值的文本结果会被保留。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 0.0,即不设阈值。float|NoneNone
table_classification_model_name表格分类模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
table_classification_model_dir表格分类模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
wired_table_structure_recognition_model_name有线表格结构识别模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
wired_table_structure_recognition_model_dir有线表格结构识别模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
wireless_table_structure_recognition_model_name无线表格结构识别模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
wireless_table_structure_recognition_model_dir无线表格结构识别模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
wired_table_cells_detection_model_name有线表格单元格检测模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
wired_table_cells_detection_model_dir有线表格单元格检测模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
wireless_table_cells_detection_model_name无线表格单元格检测模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
wireless_table_cells_detection_model_dir无线表格单元格检测模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
table_orientation_classify_model_name表格方向分类模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
table_orientation_classify_model_dir表格方向分类模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
seal_text_detection_model_name印章文本检测模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
seal_text_detection_model_dir印章文本检测模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
seal_det_limit_side_len印章文本检测的图像边长限制。
0 的任意整数;None,将使用产线初始化的该参数值,默认初始化为 736。int|NoneNone
seal_det_limit_type印章文本检测的图像边长限制类型。
min 和 max,min 表示保证图像最短边不小于 det_limit_side_len,max 表示保证图像最长边不大于 limit_side_len;None,将使用产线初始化的该参数值,默认初始化为 min。str|NoneNone
seal_det_thresh检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。
0 的任意浮点数;
None,将默认使用产线初始化的该参数值 0.2。float|NoneNone
seal_det_box_thresh检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 0.6。float|NoneNone
seal_det_unclip_ratio印章文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 0.5。float|NoneNone
seal_text_recognition_model_name印章文本识别模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
seal_text_recognition_model_dir印章文本识别模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
seal_text_recognition_batch_size印章文本识别模型的batch size。如果设置为
None,将默认设置batch size为1。int|NoneNone
seal_rec_score_thresh印章文本识别阈值,得分大于该阈值的文本结果会被保留。
0的任意浮点数;
None,将默认使用产线初始化的该参数值 0.0,即不设阈值。float|NoneNone
formula_recognition_model_name公式识别模型的名称。如果设置为
None,将会使用产线默认模型。str|NoneNone
formula_recognition_model_dir公式识别模型的目录路径。如果设置为
None,将会下载官方模型。str|NoneNone
formula_recognition_batch_size公式识别模型的batch size。如果设置为
None,将默认设置batch size为1。int|NoneNone
use_doc_orientation_classify是否加载并使用文档方向分类模块。如果设置为
None,将使用产线初始化的该参数值,默认初始化为False。bool|NoneNone
use_doc_unwarping是否加载并使用文本图像矫正模块。如果设置为
None,将使用产线初始化的该参数值,默认初始化为False。bool|NoneNone
use_textline_orientation是否加载并使用文本行方向分类模块。如果设置为
None,将使用产线初始化的该参数值,默认初始化为True。bool|NoneNone
use_seal_recognition是否加载并使用印章文本识别子产线。如果设置为
None,将使用产线初始化的该参数值,默认初始化为True。bool|NoneNone
use_table_recognition是否加载并使用表格识别子产线。如果设置为
None,将使用产线初始化的该参数值,默认初始化为True。bool|NoneNone
use_formula_recognition是否加载并使用公式识别子产线。如果设置为
None,将使用产线初始化的该参数值,默认初始化为True。bool|NoneNone
use_chart_recognition是否加载并使用图表解析模块。如果设置为
None,将使用产线初始化的该参数值,默认初始化为False。bool|NoneNone
use_region_detection是否加载并使用文档区域检测模块。如果设置为
None,将使用产线初始化的该参数值,默认初始化为True。bool|NoneNone
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|NoneNone
device用于推理的设备。支持指定具体卡号:
cpu 表示使用 CPU 进行推理;gpu:0 表示使用第 1 块 GPU 进行推理;npu:0 表示使用第 1 块 NPU 进行推理;xpu:0 表示使用第 1 块 XPU 进行推理;mlu:0 表示使用第 1 块 MLU 进行推理;dcu:0 表示使用第 1 块 DCU 进行推理;None,初始化时,会优先使用本地的 GPU 0号设备,如果没有,则使用 CPU 设备。str|NoneNone
enable_hpi是否启用高性能推理。
boolFalse
use_tensorrt是否启用 Paddle Inference 的 TensorRT 子图引擎。如果模型不支持通过 TensorRT 加速,即使设置了此标志,也不会使用加速。
对于 CUDA 11.8 版本的飞桨,兼容的 TensorRT 版本为 8.x(x>=6),建议安装 TensorRT 8.6.1.6。
boolFalse
precision计算精度,如 fp32、fp16。
str"fp32"
enable_mkldnn是否启用 MKL-DNN 加速推理。如果 MKL-DNN 不可用或模型不支持通过 MKL-DNN 加速,即使设置了此标志,也不会使用加速。
boolTrue
mkldnn_cache_capacity
MKL-DNN 缓存容量。
int10
cpu_threads在 CPU 上进行推理时使用的线程数。
int8
paddlex_configPaddleX产线配置文件路径。
str|NoneNone(2)调用 PP-DocTranslation 产线对象的
visual_predict() 方法获取视觉预测结果,该方法会返回一个结果列表。另外,产线还提供了 visual_predict_iter() 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 visual_predict_iter() 返回的是一个 generator,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。以下是 visual_predict() 方法的参数及其说明:
参数
参数说明
参数类型
默认值
input待预测数据,支持多种输入类型,必填。
numpy.ndarray 表示的图像数据;/root/data/img.jpg;如URL链接,如图像文件或PDF文件的网络URL:示例;如本地目录,该目录下需包含待预测图像,如本地路径:/root/data/(当前不支持目录中包含PDF文件的预测,PDF文件需要指定到具体文件路径);[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|NoneNone
use_doc_unwarping是否在推理时使用文本图像矫正模块。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
use_textline_orientation是否在推理时使用文本行方向分类模块。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
use_seal_recognition是否在推理时使用印章文本识别子产线。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
use_table_recognition是否在推理时使用表格识别子产线。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
use_formula_recognition是否在推理时使用公式识别子产线。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
use_chart_recognition是否在推理时使用图表解析模块。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
use_region_detection是否在推理时使用文档区域检测模块。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
layout_threshold参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|dict|NoneNone
layout_nms参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。bool|NoneNone
layout_unclip_ratio参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|Tuple[float,float]|dict|NoneNone
layout_merge_bboxes_mode参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。str|dict|NoneNone
text_det_limit_side_len参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。int|NoneNone
text_det_limit_type参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。str|NoneNone
text_det_thresh参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
text_det_box_thresh参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
text_det_unclip_ratio参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
text_rec_score_thresh参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
seal_det_limit_side_len参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。int|NoneNone
seal_det_limit_type参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。str|NoneNone
seal_det_thresh参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
seal_det_box_thresh参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
seal_det_unclip_ratio参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
seal_rec_score_thresh参数含义与实例化参数基本相同。设置为
None表示使用实例化参数,否则该参数优先级更高。float|NoneNone
use_wired_table_cells_trans_to_html是否启用有线表单元格检测结果直转HTML,启用则直接基于有线表单元格检测结果的几何关系构建HTML。
boolFalse
use_wireless_table_cells_trans_to_html是否启用无线表单元格检测结果直转HTML,启用则直接基于无线表单元格检测结果的几何关系构建HTML。
boolFalse
use_table_orientation_classify是否启用表格使用表格方向分类,启用时当图像中的表格存在90/180/270度旋转时,能够将方向校正并正确完成表格识别。
boolTrue
use_ocr_results_with_table_cells是否启用单元格切分OCR,启用时会基于单元格预测结果对OCR检测结果进行切分和重识别,避免出现文字缺失情况。
boolTrue
use_e2e_wired_table_rec_model是否启用有线表端到端表格识别模式,启用则不使用单元格检测模型,只使用表格结构识别模型。
boolFalse
use_e2e_wireless_table_rec_model是否启用无线表端到端表格识别模式,启用则不使用单元格检测模型,只使用表格结构识别模型。
boolTrue(3)对视觉预测结果进行处理:每个样本的预测结果均为对应的Result对象,且支持打印、保存为图片、保存为
json文件的操作:
- 调用`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)` 内容为版面区域内的内容。
- `block_id`: `(int)` 版面区域的索引,用于显示版面排序结果。
- `block_order` `(int)` 版面区域的顺序,用于显示版面阅读顺序,对于非排序部分,默认值为 `None`。
- `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内容。
方法
方法说明
参数
参数类型
参数说明
默认值
print()打印结果到终端
format_jsonbool是否对输出内容进行使用
JSON 缩进格式化True
indentint指定缩进级别,以美化输出的
JSON 数据,使其更具可读性,仅当 format_json 为 True 时有效4
ensure_asciibool控制是否将非
ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_json为True时有效False
save_to_json()将结果保存为json格式的文件
save_pathstr保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致
无
indentint指定缩进级别,以美化输出的
JSON 数据,使其更具可读性,仅当 format_json 为 True 时有效4
ensure_asciibool控制是否将非
ASCII 字符转义为 Unicode。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_json为True时有效False
save_to_img()将中间各个模块的可视化图像保存在png格式的图像
save_pathstr保存的文件路径,支持目录或文件路径
无
save_to_markdown()将图像或者PDF文件中的每一页分别保存为markdown格式的文件
save_pathstr保存的文件路径,支持目录或文件路径
无
save_to_html()将文件中的表格保存为html格式的文件
save_pathstr保存的文件路径,支持目录或文件路径
无
save_to_xlsx()将文件中的表格保存为xlsx格式的文件
save_pathstr保存的文件路径,支持目录或文件路径
无
(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翻译文本分块处理的字符数阈值。
int5000
task_description自定义任务描述提示词。
str|NoneNone
output_format指定输出格式要求,如“保持原Markdown结构”。
str|NoneNone
rules_str自定义翻译规则说明。
str|NoneNone
few_shot_demo_text_content少样本学习的示例文本内容。
str|NoneNone
few_shot_demo_key_value_list结构化少样本示例数据。键值对格式的示例数据,可传入专业术语对照表。
str|NoneNone
glossary翻译专业术语对照表。
dict|NoneNone
llm_request_interval向大语言模型发送请求的时间间隔,单位为秒。该参数可用于防止过于频繁地调用大语言模型。
float0.0
chat_bot_config大语言模型配置。设置为
None表示使用实例化参数,否则该参数优先级更高。dict|NoneNoneAPI参考
200,响应体的属性如下:
名称
类型
含义
logIdstring请求的UUID。
errorCodeinteger错误码。固定为
0。
errorMsgstring错误说明。固定为
"Success"。
resultobject操作结果。
名称
类型
含义
logIdstring请求的UUID。
errorCodeinteger错误码。与响应状态码相同。
errorMsgstring错误说明。
analyzeImagesPOST /doctrans-visual
名称
类型
含义
是否必填
filestring服务器可访问的图像文件或PDF文件的URL,或上述类型文件内容的Base64编码结果。默认对于超过10页的PDF文件,只有前10页的内容会被处理。
要解除页数限制,请在产线配置文件中添加以下配置:
Serving:
extra:
max_num_input_imgs: null
是
fileTypeinteger|null文件类型。
0表示PDF文件,1表示图像文件。若请求体无此属性,则将根据URL推断文件类型。否
useDocOrientationClassifyboolean | null请参阅产线对象中
visual_predict 方法的 use_doc_orientation_classify 参数相关说明。否
useDocUnwarpingboolean | null请参阅产线对象中
visual_predict 方法的 use_doc_unwarping 参数相关说明。否
useTextlineOrientationboolean | null请参阅产线对象中
visual_predict 方法的 use_textline_orientation 参数相关说明。否
useSealRecognitionboolean | null请参阅产线对象中
visual_predict 方法的 use_seal_recognition 参数相关说明。否
useTableRecognitionboolean | null请参阅产线对象中
visual_predict 方法的 use_table_recognition 参数相关说明。否
useFormulaRecognitionboolean | null请参阅产线对象中
visual_predict 方法的 use_formula_recognition 参数相关说明。否
useChartRecognitionboolean | null请参阅产线对象中
visual_predict 方法的 use_chart_recognition 参数相关说明。否
useRegionDetectionboolean | null请参阅产线对象中
visual_predict 方法的 use_region_detection 参数相关说明。否
layoutThresholdnumber | object | null请参阅产线对象中
visual_predict 方法的 layout_threshold 参数相关说明。否
layoutNmsboolean | null请参阅产线对象中
visual_predict 方法的 layout_nms 参数相关说明。否
layoutUnclipRationumber | array | object | null请参阅产线对象中
visual_predict 方法的 layout_unclip_ratio 参数相关说明。否
layoutMergeBboxesModestring | object | null请参阅产线对象中
visual_predict 方法的 layout_merge_bboxes_mode 参数相关说明。否
textDetLimitSideLeninteger | null请参阅产线对象中
visual_predict 方法的 text_det_limit_side_len 参数相关说明。否
textDetLimitTypestring | null请参阅产线对象中
visual_predict 方法的 text_det_limit_type 参数相关说明。否
textDetThreshnumber | null请参阅产线对象中
visual_predict 方法的 text_det_thresh 参数相关说明。否
textDetBoxThreshnumber | null请参阅产线对象中
visual_predict 方法的 text_det_box_thresh 参数相关说明。否
textDetUnclipRationumber | null请参阅产线对象中
visual_predict 方法的 text_det_unclip_ratio 参数相关说明。否
textRecScoreThreshnumber | null请参阅产线对象中
visual_predict 方法的 text_rec_score_thresh 参数相关说明。否
sealDetLimitSideLeninteger | null请参阅产线对象中
visual_predict 方法的 seal_det_limit_side_len 参数相关说明。否
sealDetLimitTypestring | null请参阅产线对象中
visual_predict 方法的 seal_det_limit_type 参数相关说明。否
sealDetThreshnumber | null请参阅产线对象中
visual_predict 方法的 seal_det_thresh 参数相关说明。否
sealDetBoxThreshnumber | null请参阅产线对象中
visual_predict 方法的 seal_det_box_thresh 参数相关说明。否
sealDetUnclipRationumber | null请参阅产线对象中
visual_predict 方法的 seal_det_unclip_ratio 参数相关说明。否
sealRecScoreThreshnumber | null请参阅产线对象中
visual_predict 方法的 seal_rec_score_thresh 参数相关说明。否
useWiredTableCellsTransToHtmlboolean请参阅产线对象中
visual_predict 方法的 use_wired_table_cells_trans_to_html 参数相关说明。No
useWirelessTableCellsTransToHtmlboolean请参阅产线对象中
visual_predict 方法的 use_wireless_table_cells_trans_to_html 参数相关说明。No
useTableOrientationClassifyboolean请参阅产线对象中
visual_predict 方法的 use_table_orientation_classify 参数相关说明。No
useOcrResultsWithTableCellsboolean请参阅产线对象中
visual_predict 方法的 use_ocr_results_with_table_cells 参数相关说明。否
useE2eWiredTableRecModelboolean请参阅产线对象中
visual_predict 方法的 use_e2e_wired_table_rec_model 参数相关说明。否
useE2eWirelessTableRecModelboolean请参阅产线对象中
visual_predict 方法的 use_e2e_wireless_table_rec_model 参数相关说明。否
visualizeboolean | null是否返回可视化结果图以及处理过程中的中间图像等。
true:返回图像。false:不返回图像。null:遵循产线配置文件Serving.visualize 的设置。
例如,在产线配置文件中添加如下字段:
将默认不返回图像,通过请求体中的Serving:
visualize: False
visualize参数可以覆盖默认行为。如果请求体和配置文件中均未设置(或请求体传入null、配置文件中未设置),则默认返回图像。
否
result具有如下属性:
名称
类型
含义
layoutParsingResultsarray版面解析结果。数组长度为1(对于图像输入)或实际处理的文档页数(对于PDF输入)。对于PDF输入,数组中的每个元素依次表示PDF文件中实际处理的每一页的结果。
dataInfoobject输入数据信息。
layoutParsingResults中的每个元素为一个object,具有如下属性:
名称
类型
含义
prunedResultobject产线对象的
visual_predict 方法生成的 layout_parsing_result 的 JSON 表示中 res 字段的简化版本,其中去除了 input_path 和 page_index 字段。
markdownobjectMarkdown结果。
outputImagesobject | null参见产线预测结果的
img 属性说明。图像为JPEG格式,使用Base64编码。
inputImagestring | null输入图像。图像为JPEG格式,使用Base64编码。
markdown为一个object,具有如下属性:
名称
类型
含义
textstringMarkdown文本。
imagesobjectMarkdown图片相对路径和Base64编码图像的键值对。
isStartboolean当前页面第一个元素是否为段开始。
isEndboolean当前页面最后一个元素是否为段结束。
translatePOST /doctrans-translate
名称
类型
含义
是否必填
markdownListarray待翻译的Markdown列表。可从
analyzeImages操作的结果中获取。images属性将不会被用到。是
targetLanguagestring请参阅产线对象中
translate 方法的 target_language 参数相关说明。否
chunkSizeinteger请参阅产线对象中
translate 方法的 chunk_size 参数相关说明。否
taskDescriptionstring | null请参阅产线对象中
translate 方法的 task_description 参数相关说明。否
outputFormatstring | null请参阅产线对象中
translate 方法的 output_format 参数相关说明。否
rulesStrstring | null请参阅产线对象中
translate 方法的 rules_str 参数相关说明。否
fewShotDemoTextContentstring | null请参阅产线对象中
translate 方法的 few_shot_demo_text_content 参数相关说明。否
fewShotDemoKeyValueListstring | null请参阅产线对象中
translate 方法的 few_shot_demo_key_value_list 参数相关说明。否
glossaryobject | null请参阅产线对象中
translate 方法的 glossary 参数相关说明。否
llmRequestIntervalnumber | null请参阅产线对象中
translate 方法的 llm_request_interval 参数相关说明。否
chatBotConfigobject | null请参阅产线对象中
translate 方法的 chat_bot_config 参数相关说明。否
result具有如下属性:
名称
类型
含义
translationResultsarray翻译结果。
translationResults中的每个元素为一个object,具有如下属性:
名称
类型
含义
languagestring目标语言。
markdownobjectMarkdown结果。对象定义与
analyzeImages操作返回的markdown一致。
多语言调用服务示例
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 进行分析,通过可视化图像,确定是哪个模块存在问题,并参考以下表格中对应的微调教程链接进行模型微调。
| 情形 | 微调模块 | 微调参考链接 |
|---|---|---|
| 版面区域检测不准,如印章、表格未检出等 | 版面区域检测模块 | 链接 |
| 表格结构识别不准 | 表格结构识别模块 | 链接 |
| 公式识别不准 | 公式识别模块 | 链接 |
| 印章文本存在漏检 | 印章文本检测模块 | 链接 |
| 文本存在漏检 | 文本检测模块 | 链接 |
| 文本内容都不准 | 文本识别模块 | 链接 |
| 垂直或者旋转文本行矫正不准 | 文本行方向分类模块 | 链接 |
| 整图旋转矫正不准 | 文档图像方向分类模块 | 链接 |
| 图像扭曲矫正不准 | 文本图像矫正模块 | 暂不支持微调 |