Skip to content

Commit dd31f3a

Browse files
committed
update structure_v3 and chatocr_v4 docs
1 parent 23e68a0 commit dd31f3a

File tree

2 files changed

+232
-14
lines changed

2 files changed

+232
-14
lines changed

docs/version3.x/pipeline_usage/PP-ChatOCRv4.md

Lines changed: 90 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22
comments: true
33
---
44

5-
# 文档场景信息抽取v4产线使用教程
5+
# PP-ChatOCRv4 产线使用教程
66

7-
## 1. 文档场景信息抽取v4产线介绍
7+
## 1. PP-ChatOCRv4 产线介绍
88

9-
文档场景信息抽取v4(PP-ChatOCRv4是飞桨特色的文档和图像智能分析解决方案,结合了 LLM、MLLM 和 OCR 技术,一站式解决版面分析、生僻字、多页 pdf、表格、印章识别等常见的复杂文档信息抽取难点问题,结合文心大模型将海量数据和知识相融合,准确率高且应用广泛。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上部署。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
9+
PP-ChatOCRv4 是飞桨特色的文档和图像智能分析解决方案,结合了 LLM、MLLM 和 OCR 技术,一站式解决版面分析、生僻字、多页 pdf、表格、印章识别等常见的复杂文档信息抽取难点问题,结合文心大模型将海量数据和知识相融合,准确率高且应用广泛。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上部署。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
1010

1111
<img src="https://github.com/user-attachments/assets/0870cdec-1909-4247-9004-d9efb4ab9635">
1212

13-
文档场景信息抽取v4产线中包含<b>版面区域检测模块</b>、<b>表格结构识别模块</b>、<b>表格分类模块</b>、<b>表格单元格定位模块</b>、<b>文本检测模块</b>、<b>文本识别模块</b>、<b>印章文本检测模块</b>、<b>文本图像矫正模块</b>、<b>文档图像方向分类模块</b>。其中相关的模型是以子产线的方式集成,您可以通过[产线配置](../../../../paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml)来查看不同模块的模型配置。
13+
PP-ChatOCRv4 产线中包含<b>版面区域检测模块</b>、<b>表格结构识别模块</b>、<b>表格分类模块</b>、<b>表格单元格定位模块</b>、<b>文本检测模块</b>、<b>文本识别模块</b>、<b>印章文本检测模块</b>、<b>文本图像矫正模块</b>、<b>文档图像方向分类模块</b>。其中相关的模型是以子产线的方式集成,您可以通过[产线配置](../../../../paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml)来查看不同模块的模型配置。
1414

15-
<b>文档场景信息抽取v4产线中包含以下9个模块。每个模块均可独立进行训练和推理,并包含多个模型。有关详细信息,请点击相应模块以查看文档。</b>
15+
<b>PP-ChatOCRv4 产线中包含以下9个模块。每个模块均可独立进行训练和推理,并包含多个模型。有关详细信息,请点击相应模块以查看文档。</b>
1616

1717
- [文档图像方向分类模块](../module_usage/doc_img_orientation_classification.md)(可选)
1818
- [文本图像矫正模块](../module_usage/text_image_unwarping.md)(可选)
@@ -636,7 +636,7 @@ devanagari_PP-OCRv3_mobile_rec_infer.tar">推理模型</a>/<a href="">训练模
636636

637637
## 2. 快速开始
638638

639-
在本地使用文档场景信息抽取v4产线前,请确保您已经按照[安装教程](../ppocr/installation.md)完成了wheel包安装。
639+
在本地使用 PP-ChatOCRv4 产线前,请确保您已经按照[安装教程](../ppocr/installation.md)完成了wheel包安装。
640640

641641
在进行模型推理之前,首先需要准备大语言模型的 api_key,PP-ChatOCRv4 支持在[百度云千帆平台](https://console.bce.baidu.com/qianfan/ais/console/onlineService)或者本地部署的标准 OpenAI 接口大模型服务。如果使用百度云千帆平台,可以参考[认证鉴权](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Um2wxbaps) 获取 api_key。如果使用本地部署的大模型服务,可以参考[PaddleNLP大模型部署文档](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/llm)进行大模型部署对话接口部署和向量化接口部署,并填写对应的 base_url 和 api_key 即可。如果需要使用多模态大模型进行数据融合,可以参考[PaddleMIX模型文档](https://github.com/PaddlePaddle/PaddleMIX/tree/develop/paddlemix/examples/ppdocbee)中的OpenAI服务部署进行多模态大模型部署,并填写对应的 base_url 和 api_key 即可。
642642

@@ -2836,7 +2836,90 @@ print(result_chat["chatResult"])
28362836
<br/>
28372837

28382838
## 4. 二次开发
2839+
如果 PP-ChatOCRv4 产线提供的默认模型权重在您的场景中,精度或速度不满意,您可以尝试利用<b>您自己拥有的特定领域或应用场景的数据</b>对现有模型进行进一步的<b>微调</b>,以提升在您的场景中的识别效果。
28392840

2840-
如果文档场景信息抽取v4产线提供的默认模型权重在您的场景中,精度或速度不满意,您可以尝试利用<b>您自己拥有的特定领域或应用场景的数据</b>对现有模型进行进一步的<b>微调</b>,以提升通用表格识别产线的在您的场景中的识别效果。
2841+
### 4.1 模型微调
2842+
由于 PP-ChatOCRv4 产线包含若干模块,模型产线的效果如果不及预期,可能来自于其中任何一个模块。您可以对提取效果差的 case 进行分析,通过可视化图像,确定是哪个模块存在问题,并参考以下表格中对应的微调教程链接进行模型微调。
28412843

2844+
2845+
<table>
2846+
<thead>
2847+
<tr>
2848+
<th>情形</th>
2849+
<th>微调模块</th>
2850+
<th>微调参考链接</th>
2851+
</tr>
2852+
</thead>
2853+
<tbody>
2854+
<tr>
2855+
<td>版面区域检测不准,如印章、表格未检出等</td>
2856+
<td>版面区域检测模块</td>
2857+
<td><a href="../module_usage/layout_detection.md#四二次开发">链接</a></td>
2858+
</tr>
2859+
<tr>
2860+
<td>表格结构识别不准</td>
2861+
<td>表格结构识别</td>
2862+
<td><a href="../module_usage/table_structure_recognition.md#四二次开发">链接</a></td>
2863+
</tr>
2864+
<tr>
2865+
<td>印章文本存在漏检</td>
2866+
<td>印章文本检测模块</td>
2867+
<td><a href="../module_usage/seal_text_detection.md#四二次开发">链接</a></td>
2868+
</tr>
2869+
<tr>
2870+
<td>文本存在漏检</td>
2871+
<td>文本检测模块</td>
2872+
<td><a href="../module_usage/text_detection.md#四二次开发">链接</a></td>
2873+
</tr>
2874+
<tr>
2875+
<td>文本内容都不准</td>
2876+
<td>文本识别模块</td>
2877+
<td><a href="../module_usage/text_recognition.md#四二次开发">链接</a></td>
2878+
</tr>
2879+
<tr>
2880+
<td>垂直或者旋转文本行矫正不准</td>
2881+
<td>文本行方向分类模块</td>
2882+
<td><a href="../module_usage/text_line_orientation_classification.md#四二次开发">链接</a></td>
2883+
</tr>
2884+
<tr>
2885+
<td>整图旋转矫正不准</td>
2886+
<td>文档图像方向分类模块</td>
2887+
<td><a href="../module_usage/doc_img_orientation_classification.md#四二次开发">链接</a></td>
2888+
</tr>
2889+
<tr>
2890+
<td>图像扭曲矫正不准</td>
2891+
<td>文本图像矫正模块</td>
2892+
<td>暂不支持微调</td>
2893+
</tr>
2894+
</tbody>
2895+
</table>
2896+
2897+
2898+
### 4.2 模型应用
2899+
当您使用私有数据集完成微调训练后,可获得本地模型权重文件。
2900+
2901+
若您需要使用微调后的模型权重,只需对产线配置文件做修改,将微调后模型权重的本地路径替换至产线配置文件中的对应位置即可:
2902+
2903+
```yaml
2904+
......
2905+
SubModules:
2906+
TextDetection:
2907+
module_name: text_detection
2908+
model_name: PP-OCRv4_server_det
2909+
model_dir: null # 替换为微调后的文本检测模型权重路径
2910+
limit_side_len: 960
2911+
limit_type: max
2912+
thresh: 0.3
2913+
box_thresh: 0.6
2914+
unclip_ratio: 1.5
2915+
2916+
TextRecognition:
2917+
module_name: text_recognition
2918+
model_name: PP-OCRv4_server_rec
2919+
model_dir: null # 替换为微调后的文本检测模型权重路径
2920+
batch_size: 1
2921+
score_thresh: 0
28422922
......
2923+
```
2924+
2925+
随后, 参考[2.2 本地体验](#22-本地体验)中的命令行方式或Python脚本方式,加载修改后的产线配置文件即可。

docs/version3.x/pipeline_usage/PP-StructureV3.md

Lines changed: 142 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
comments: true
33
---
44

5-
# 通用版面解析v3产线使用教程
5+
# PP-StructureV3 产线使用教程
66

7-
## 1. 通用版面解析v3(PP-StructureV3)产线介绍
7+
## 1. PP-StructureV3 产线介绍
88

9-
版面解析是一种从文档图像中提取结构化信息的技术,主要用于将复杂的文档版面转换为机器可读的数据格式。这项技术在文档管理、信息提取和数据数字化等领域具有广泛的应用。版面解析通过结合光学字符识别(OCR)、图像处理和机器学习算法,能够识别和提取文档中的文本块、标题、段落、图片、表格以及其他版面元素。此过程通常包括版面分析、元素分析和数据格式化三个主要步骤,最终生成结构化的文档数据,提升数据处理的效率和准确性。<b>通用版面解析v3产线在通用版面解析v1产线的基础上,强化了版面区域检测、表格识别、公式识别的能力,增加了多栏阅读顺序的恢复能力、结果转换 Markdown 文件的能力,在多种文档数据中,表现优异,可以处理较复杂的文档数据。</b>本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
9+
版面解析是一种从文档图像中提取结构化信息的技术,主要用于将复杂的文档版面转换为机器可读的数据格式。这项技术在文档管理、信息提取和数据数字化等领域具有广泛的应用。版面解析通过结合光学字符识别(OCR)、图像处理和机器学习算法,能够识别和提取文档中的文本块、标题、段落、图片、表格以及其他版面元素。此过程通常包括版面分析、元素分析和数据格式化三个主要步骤,最终生成结构化的文档数据,提升数据处理的效率和准确性。<b>PP-StructureV3 产线在通用版面解析v1产线的基础上,强化了版面区域检测、表格识别、公式识别的能力,增加了多栏阅读顺序的恢复能力、结果转换 Markdown 文件的能力,在多种文档数据中,表现优异,可以处理较复杂的文档数据。</b>本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。
1010

11-
<b>通用版面解析v3产线中包含以下6个模块。每个模块均可独立进行训练和推理,并包含多个模型。有关详细信息,请点击相应模块以查看文档。</b>
11+
<b>PP-StructureV3 产线中包含以下6个模块。每个模块均可独立进行训练和推理,并包含多个模型。有关详细信息,请点击相应模块以查看文档。</b>
1212

1313
- [版面区域检测模块](../module_usage/layout_detection.md)
1414
- [通用OCR子产线](./OCR.md)
@@ -620,7 +620,7 @@ devanagari_PP-OCRv3_mobile_rec_infer.tar">推理模型</a>/<a href="https://padd
620620

621621
## 2. 快速开始
622622

623-
在本地使用通用版面解析v3产线前,请确保您已经按照[安装教程](../ppocr/installation.md)完成了wheel包安装。安装完成后,可以在本地使用命令行体验或 Python 集成。
623+
在本地使用 PP-StructureV3 产线前,请确保您已经按照[安装教程](../ppocr/installation.md)完成了wheel包安装。安装完成后,可以在本地使用命令行体验或 Python 集成。
624624

625625
### 2.1 命令行方式体验
626626

@@ -638,6 +638,9 @@ paddleocr PP-StructureV3 -i ./pp_structure_v3_demo.png --use_doc_unwarping True
638638
# 通过 --use_textline_orientation 指定是否使用文本行方向分类模型
639639
paddleocr PP-StructureV3 -i ./pp_structure_v3_demo.png --use_textline_orientation False
640640

641+
# 通过 --use_e2e_wireless_table_rec_model 启用无线表格端到端预测模式
642+
paddleocr PP-StructureV3 -i ./pp_structure_v3_demo.png --use_e2e_wireless_table_rec_model True
643+
641644
# 通过 --device 指定模型推理时使用 GPU
642645
paddleocr PP-StructureV3 -i ./pp_structure_v3_demo.png --device gpu
643646
```
@@ -1726,7 +1729,7 @@ for item in markdown_images:
17261729

17271730
</details>
17281731

1729-
<details><summary>(2)调用版面解析产线对象的 <code>predict()</code> 方法进行推理预测,该方法会返回一个结果列表。另外,产线还提供了 <code>predict_iter()</code> 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 <code>predict_iter()</code> 返回的是一个 <code>generator</code>,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。以下是 <code>predict()</code> 方法的参数及其说明:</summary>
1732+
<details><summary>(2)调用 PP-StructureV3 产线对象的 <code>predict()</code> 方法进行推理预测,该方法会返回一个结果列表。另外,产线还提供了 <code>predict_iter()</code> 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 <code>predict_iter()</code> 返回的是一个 <code>generator</code>,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。以下是 <code>predict()</code> 方法的参数及其说明:</summary>
17301733

17311734
<table>
17321735
<thead>
@@ -2530,6 +2533,138 @@ for i, res in enumerate(result["layoutParsingResults"]):
25302533

25312534

25322535
## 4. 二次开发
2533-
如果通用版面解析v3产线提供的默认模型权重在您的场景中,精度或速度不满意,您可以尝试利用<b>您自己拥有的特定领域或应用场景的数据</b>对现有模型进行进一步的<b>微调</b>,以提升通用版面解析v3产线的在您的场景中的识别效果。
2536+
如果 PP-StructureV3 产线提供的默认模型权重在您的场景中,精度或速度不满意,您可以尝试利用<b>您自己拥有的特定领域或应用场景的数据</b>对现有模型进行进一步的<b>微调</b>,以提升 PP-StructureV3 产线的在您的场景中的识别效果。
2537+
2538+
### 4.1 模型微调
2539+
由于 PP-StructureV3 产线包含若干模块,模型产线的效果不及预期可能来自于其中任何一个模块。您可以对提取效果差的 case 进行分析,通过可视化图像,确定是哪个模块存在问题,并参考以下表格中对应的微调教程链接进行模型微调。
2540+
2541+
2542+
<table>
2543+
<thead>
2544+
<tr>
2545+
<th>情形</th>
2546+
<th>微调模块</th>
2547+
<th>微调参考链接</th>
2548+
</tr>
2549+
</thead>
2550+
<tbody>
2551+
<tr>
2552+
<td>版面区域检测不准,如印章、表格未检出等</td>
2553+
<td>版面区域检测模块</td>
2554+
<td><a href="../module_usage/layout_detection.md#四二次开发">链接</a></td>
2555+
</tr>
2556+
<tr>
2557+
<td>表格结构识别不准</td>
2558+
<td>表格结构识别模块</td>
2559+
<td><a href="../module_usage/layout_detection.md#四二次开发">链接</a></td>
2560+
</tr>
2561+
<tr>
2562+
<td>公式识别不准</td>
2563+
<td>公式识别模块</td>
2564+
<td><a href="../module_usage/formula_recognition.md#四二次开发">链接</a></td>
2565+
</tr>
2566+
<tr>
2567+
<td>印章文本存在漏检</td>
2568+
<td>印章文本检测模块</td>
2569+
<td><a href="../module_usage/seal_text_detection.md#四二次开发">链接</a></td>
2570+
</tr>
2571+
<tr>
2572+
<td>文本存在漏检</td>
2573+
<td>文本检测模块</td>
2574+
<td><a href="../module_usage/text_detection.md#四二次开发">链接</a></td>
2575+
</tr>
2576+
<tr>
2577+
<td>文本内容都不准</td>
2578+
<td>文本识别模块</td>
2579+
<td><a href="../module_usage/text_recognition.md#四二次开发">链接</a></td>
2580+
</tr>
2581+
<tr>
2582+
<td>垂直或者旋转文本行矫正不准</td>
2583+
<td>文本行方向分类模块</td>
2584+
<td><a href="../module_usage/text_line_orientation_classification.md#四二次开发">链接</a></td>
2585+
</tr>
2586+
<tr>
2587+
<td>整图旋转矫正不准</td>
2588+
<td>文档图像方向分类模块</td>
2589+
<td><a href="../module_usage/doc_img_orientation_classification.md#四二次开发">链接</a></td>
2590+
</tr>
2591+
<tr>
2592+
<td>图像扭曲矫正不准</td>
2593+
<td>文本图像矫正模块</td>
2594+
<td>暂不支持微调</td>
2595+
</tr>
2596+
</tbody>
2597+
</table>
2598+
2599+
### 4.2 模型应用
2600+
当您使用私有数据集完成微调训练后,可获得本地模型权重文件,然后可以通过自定义产线配置文件的方式,使用微调后的模型权重。
2601+
2602+
1. 获取产线配置文件
2603+
2604+
可调用 PaddleOCR 中 PPStructureV3 产线对象的 export_paddlex_config_to_yaml 方法,将当前产线配置导出为 YAML 文件:
2605+
2606+
```Python
2607+
from paddleocr import PPStructureV3
25342608

2609+
pipeline = PPStructureV3()
2610+
pipeline.export_paddlex_config_to_yaml("PP-StructureV3.yaml")
2611+
```
2612+
2613+
2. 修改配置文件
2614+
2615+
在得到默认的产线配置文件后,将微调后模型权重的本地路径替换至产线配置文件中的对应位置即可。例如
2616+
2617+
```yaml
2618+
......
2619+
SubModules:
2620+
LayoutDetection:
2621+
module_name: layout_detection
2622+
model_name: PP-DocLayout-L
2623+
model_dir: null # 替换为微调后的版面区域检测模型权重路径
2624+
......
2625+
SubPipelines:
2626+
GeneralOCR:
2627+
pipeline_name: OCR
2628+
text_type: general
2629+
use_doc_preprocessor: False
2630+
use_textline_orientation: False
2631+
SubModules:
2632+
TextDetection:
2633+
module_name: text_detection
2634+
model_name: PP-OCRv4_server_det
2635+
model_dir: null # 替换为微调后的文本测模型权重路径
2636+
limit_side_len: 960
2637+
limit_type: max
2638+
max_side_limit: 4000
2639+
thresh: 0.3
2640+
box_thresh: 0.6
2641+
unclip_ratio: 1.5
2642+
2643+
TextRecognition:
2644+
module_name: text_recognition
2645+
model_name: PP-OCRv4_server_rec_doc
2646+
model_dir: null # 替换为微调后的文本识别模型权重路径
2647+
batch_size: 1
2648+
score_thresh: 0
25352649
......
2650+
```
2651+
2652+
在产线配置文件中,不仅包含 PaddleOCR CLI 和 Python API 支持的参数,还可进行更多高级配置,具体信息可在 [PaddleX模型产线使用概览](https://paddlepaddle.github.io/PaddleX/3.0/pipeline_usage/pipeline_develop_guide.html) 中找到对应的产线使用教程,参考其中的详细说明,根据需求调整各项配置。
2653+
2654+
3. 在 CLI 中加载产线配置文件
2655+
2656+
在修改完成配置文件后,通过命令行的 --paddlex_config 参数指定修改后的产线配置文件的路径,PaddleOCR 会读取其中的内容作为产线配置。示例如下:
2657+
2658+
```bash
2659+
paddleocr ocr --paddlex_config PP-StructureV3.yaml ...
2660+
```
2661+
2662+
4. 在 Python API 中加载产线配置文件
2663+
2664+
初始化产线对象时,可通过 paddlex_config 参数传入 PaddleX 产线配置文件路径或配置字典,PaddleOCR 会读取其中的内容作为产线配置。示例如下:
2665+
2666+
```python
2667+
from paddleocr import PPStructureV3
2668+
2669+
pipeline = PPStructureV3(paddlex_config="PP-StructureV3.yaml")
2670+
```

0 commit comments

Comments
 (0)