From cffce64be69d6086c2edaa6ca0444e84b3444403 Mon Sep 17 00:00:00 2001 From: Liu Jiaxuan <85537209+liu-jiaxuan@users.noreply.github.com> Date: Mon, 19 May 2025 22:55:59 +0800 Subject: [PATCH] [Docs] refine table related docs (#15187) * refine docs * refine docs * refine docs --- .../module_usage/table_classification.md | 4 +- .../table_structure_recognition.md | 67 ++++++++++++- .../pipeline_usage/table_recognition_v2.md | 98 ++++++++++++++++++- 3 files changed, 165 insertions(+), 4 deletions(-) diff --git a/docs/version3.x/module_usage/table_classification.md b/docs/version3.x/module_usage/table_classification.md index 2ca5687c7d..0e2f9d037a 100644 --- a/docs/version3.x/module_usage/table_classification.md +++ b/docs/version3.x/module_usage/table_classification.md @@ -274,4 +274,6 @@ for res in output: ## 四、二次开发 -...... +由于 PaddleOCR 并不直接提供表格分类模块的训练,因此,如果需要训练表格分类模型,可以参考 [PaddleX 表格分类模块二次开发](https://paddlepaddle.github.io/PaddleX/latest/module_usage/tutorials/ocr_modules/table_classification.html#_4)部分进行训练。训练后的模型可以无缝集成到 PaddleOCR 的 API 中进行推理。 + +## 五、FAQ diff --git a/docs/version3.x/module_usage/table_structure_recognition.md b/docs/version3.x/module_usage/table_structure_recognition.md index ea9f0de4d0..13bcff35cb 100644 --- a/docs/version3.x/module_usage/table_structure_recognition.md +++ b/docs/version3.x/module_usage/table_structure_recognition.md @@ -290,4 +290,69 @@ for res in output: ## 四、二次开发 -...... +如果以上模型在您的场景上效果仍然不理想,您可以尝试以下步骤进行二次开发,此处以训练 `SLANet` 举例,其他模型替换对应配置文件即可。首先,您需要准备表格结构识别的数据集,可以参考[表格结构识别 Demo 数据](https://paddle-model-ecology.bj.bcebos.com/paddlex/data/table_rec_dataset_examples.tar)的格式准备,准备好后,即可按照以下步骤进行模型训练和导出,导出后,可以将模型快速集成到上述 API 中。此处以表格结构识别 Demo 数据示例。在训练模型之前,请确保已经按照[安装文档](xxx)安装了 PaddleOCR 所需要的依赖。 + + +## 4.1 数据集、预训练模型准备 + +### 4.1.1 准备数据集 + +```shell +# 下载示例数据集 +wget https://paddle-model-ecology.bj.bcebos.com/paddlex/data/table_rec_dataset_examples.tar +tar -xf table_rec_dataset_examples.tar +``` + +### 4.1.2 下载预训练模型 + +```shell +# 下载 SLANet 预训练模型 +wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SLANet_pretrained.pdparams +``` + +### 4.2 模型训练 + +PaddleOCR 对代码进行了模块化,训练 `SLANet` 识别模型时需要使用 `SLANet` 的[配置文件](https://github.com/PaddlePaddle/PaddleOCR/blob/main/configs/table/SLANet.yml)。 + + +训练命令如下: + +```bash +#单卡训练 (默认训练方式) +python3 tools/train.py -c configs/table/SLANet.yml \ + -o Global.pretrained_model=./SLANet_pretrained.pdparams +#多卡训练,通过--gpus参数指定卡号 +python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/table/SLANet.yml \ + -o Global.pretrained_model=./SLANet_pretrained.pdparams +``` + + +### 4.4 模型评估 + +您可以评估已经训练好的权重,如,`output/xxx/xxx.pdprams`,使用如下命令进行评估: + +```bash +# 注意将pretrained_model的路径设置为本地路径。若使用自行训练保存的模型,请注意修改路径和文件名为{path/to/weights}/{model_name}。 + # demo 测试集评估 + python3 tools/eval.py -c configs/table/SLANet.yml -o \ + Global.pretrained_model=output/xxx/xxx.pdprams + ``` + +### 4.5 模型导出 + +```bash + python3 tools/export_model.py -c configs/table/SLANet.yml -o \ + Global.pretrained_model=output/xxx/xxx.pdprams \ + save_inference_dir="./SLANet_infer/" + ``` + + 导出模型后,静态图模型会存放于当前目录的`./SLANet_infer/`中,在该目录下,您将看到如下文件: + ``` + ./SLANet_infer/ + ├── inference.json + ├── inference.pdiparams + ├── inference.yml + ``` +至此,二次开发完成,该静态图模型可以直接集成到 PaddleOCR 的 API 中。 + +## 五、FAQ diff --git a/docs/version3.x/pipeline_usage/table_recognition_v2.md b/docs/version3.x/pipeline_usage/table_recognition_v2.md index 31c41dabed..31a53899cc 100644 --- a/docs/version3.x/pipeline_usage/table_recognition_v2.md +++ b/docs/version3.x/pipeline_usage/table_recognition_v2.md @@ -39,6 +39,23 @@ comments: true
| 情形 | +微调模块 | +微调参考链接 | +
|---|---|---|
| 表格分类错误 | +表格分类模块 | +链接 | +
| 表格单元格定位错误 | +表格单元格检测模块 | +链接 | +
| 表格结构识别错误 | +表格结构识别模块 | +链接 | +
| 未能成功检测到表格所在区域 | +版面区域检测模块 | +链接 | +
| 文本存在漏检 | +文本检测模块 | +链接 | +
| 文本内容都不准 | +文本识别模块 | +链接 | +
| 整图旋转/表格旋转矫正不准 | +文档图像方向分类模块 | +链接 | +
| 图像扭曲矫正不准 | +文本图像矫正模块 | +暂不支持微调 | +