浏览代码

polish docs

cuicheng01 1 年之前
父节点
当前提交
94a1ee833f

+ 2 - 5
README.md

@@ -61,12 +61,9 @@ PaddleX 3.0 集成飞桨生态优势能力,覆盖7大场景任务,构建 16
 - [数据标注](./docs/tutorials/data/annotation/README.md)
 - [数据校验](./docs/tutorials/data/dataset_check.md)
 
-#### 3. 模型训练
-- [模型训练/评估](./docs/tutorials/base/README.md)
-- [模型优化](./docs/tutorials/base/model_optimize.md)
+#### 3. 模型训练/评估/推理
+- [模型训练/评估/推理](./docs/tutorials/base/README.md)
 
-#### 4. 模型推理
-- [模型推理](./docs/tutorials/base/README.md)
 
 ### 二、模型产线开发工具 🔥
 本节将介绍 PaddleX3.0 模型产线的全流程开发流程,包括数据准备、模型训练/评估、模型推理的使用方法。PaddleX3.0 支持的模型产线可以参考 [PaddleX 模型产线列表](./docs/tutorials/pipelines/support_pipeline_list.md)

+ 3 - 1
docs/tutorials/INSTALL.md

@@ -85,7 +85,6 @@ git clone https://gitee.com/paddlepaddle/PaddleX.git
 
 参考下述命令,按提示操作,完成 PaddleX 依赖的安装。
 
-<!-- 这里需要指明安装成功的状态, 廷权 -->
 ```bash
 cd PaddleX
 
@@ -95,6 +94,9 @@ pip install -e .
 
 # 安装 PaddleX 相关依赖
 paddlex --install
+
+# 完成安装后会有如下提示:
+# All packages are installed.
 ```
 
 **注 :** 在安装过程中,需要克隆 Paddle 官方模型套件,`--platform` 可以指定克隆源,可选 `github.com`,`gitee.com`,分别代表这些套件从 github 上和 gitee 上克隆,默认为 `github.com`。

+ 3 - 3
docs/tutorials/INSTALL_OTHER_DEVICES.md

@@ -20,7 +20,7 @@ docker run -it --name paddle-npu-dev -v $(pwd):/work \
     -e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \
     registry.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-x86_64-gcc84-py39 /bin/bash
 ```
-### 1.2 安装paddle包
+### 1.2 安装 paddle 
 当前提供 Python3.9 的 wheel 安装包。如有其他 Python 版本需求,可以参考[飞桨官方文档](https://www.paddlepaddle.org.cn/install/quick)自行编译安装。
 
 - 1.下载安装 Python3.9 的 wheel 安装包
@@ -59,7 +59,7 @@ docker run -it --name paddle-mlu-dev -v $(pwd):/work \
   -v /usr/bin/cnmon:/usr/bin/cnmon \
   registry.baidubce.com/device/paddle-mlu:ctr2.15.0-ubuntu20-gcc84-py310 /bin/bash
 ```
-### 2.2 安装paddle包
+### 2.2 安装 paddle 
 当前提供 Python3.10 的 wheel 安装包。有其他 Python 版本需求,可以参考[飞桨官方文档](https://www.paddlepaddle.org.cn/install/quick)自行编译安装。
 
 - 1.下载安装 Python3.10 的wheel 安装包。
@@ -97,7 +97,7 @@ docker run -it --name=xxx -m 81920M --memory-swap=81920M \
     registry.baidubce.com/device/paddle-xpu:kylinv10-aarch64-gcc82 bash
 ```
 
-## 3.2 安装paddle包
+## 3.2 安装 paddle 
 当前提供 Python3.10 的 wheel 安装包。有其他 Python 版本需求,可以参考[飞桨官方文档](https://www.paddlepaddle.org.cn/install/quick)自行编译安装。
 
 - 1.安装 Python3.10 的 wheel 安装包

+ 12 - 4
docs/tutorials/base/README.md

@@ -25,7 +25,7 @@ PaddleX 中每个模型都提供了模型开发的配置文件,用于设置相
 
 更多超参数介绍,请参考 [PaddleX 超参数介绍](./hyperparameters_introduction.md)。
 
-**注:** 
+**注:**
 - 以上参数可以通过追加令行参数的形式进行设置,如指定模式为模型训练:`-o Global.mode=train`;指定前 2 卡 GPU 训练:`-o Global.device=gpu:0,1`;设置训练轮次数为 10:`-o Train.epochs_iters=10`。
 - 模型训练过程中,PaddleX 会自动保存模型权重文件,默认为`output`,如需指定保存路径,可通过配置文件中 `-o Global.output` 字段进行设置。
 - 在 OCR 和语义分割任务模块中,参数 `epochs_iters` 对应训练 Step 数,在其他任务模块中,参数 `epochs_iters` 对应训练 Epoch 数。
@@ -55,12 +55,20 @@ python main.py -c paddlex/configs/image_classification/PP-LCNet_x1_0.yaml \
     -o Predict.input_path="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg"
 ```
 
-**注:** PaddleX 允许使用 wheel 包进行推理,在此处,当您验证好自己的模型之后,即使用 PaddleX 的 wheel 包进行推理,方便地将模型集成到您自己的项目中。模型推理方法请参考 [PaddleX 单模型开发工具](../tools/model_tools.md)。
+**注:** PaddleX 允许使用 wheel 包进行推理,在此处,当您验证好自己的模型之后,即使用 PaddleX 的 wheel 包进行推理,方便地将模型集成到您自己的项目中。模型推理方法请参考 [PaddleX 单模型开发工具推理预测](../models/model_inference_tools.md)。
 
 ## 4. 须知事项
+
 ### 4.1 训练须知事项
+
 - 训练其他模型时,需要的指定相应的配置文件,模型和配置的文件的对应关系,可以详情[模型库](../models/support_model_list.md)。
 - PaddleX 对您屏蔽了动态图权重和静态图权重的概念,在模型训练的过程中,会同时产出动态图和静态图的权重,在模型推理时,默认选择静态图权重推理。
-<!-- 这里需要补充说明,廷权 -->
+
 ### 4.2 训练产出解释
-<!-- 这里需要补充说明,廷权 -->
+
+在完成模型训练后,所有产出保存在指定的输出目录(默认为`./output/`)下,通常有以下产出:
+
+* train_result.json:训练结果记录文件,记录了训练任务是否正常完成,以及产出的权重指标、相关文件路径等;
+* train.log:训练日志文件,记录了训练过程中的模型指标变化、loss 变化等;
+* config.yaml:训练配置文件,记录了本次训练的超参数的配置;
+* .pdparams\.pdema\.pdopt\.pdstate\.pdiparams\.pdmodel:模型权重相关文件,包括网络参数、优化器、EMA、静态图网络参数、静态图网络结构等;

+ 11 - 1
docs/tutorials/base/hyperparameters_introduction.md

@@ -1,7 +1,9 @@
 # PaddleX 超参数介绍
+
 PaddleX 暴露了模型迭代中最常修改的参数,方便您在配置文件中或者命令行中进行修改。训练模型的基础配置和高级配置参数如下:
 
 ## 1. 基础参数
+
 对于非时序任务模块,基础参数包括`epochs_iters`,`batch_size`,`class_num`,`learning_rate`,相关的参数解释如下:
 - `epochs_iters`:Epochs 或者 Steps,模型对训练数据的重复学习次数,一般来说,轮次越大,模型训练时间越长,模型精度越高,但是如果设置特别大,可能会导致模型过拟合。如果对轮次没有特别的要求,可以使用默认值进行训练。
 - `batch_size`:批大小,由于训练数据量一般较大,模型每轮次的训练是分批读取数据的,批大小是每一批数据的数据量,和显存直接相关,批大小越大模型训练的速度越快,显存占用越高。
@@ -17,6 +19,7 @@ PaddleX 暴露了模型迭代中最常修改的参数,方便您在配置文件
 - `seq_len`:群组编号,须结合自己的数据设置指定群组编号的列名称, 如:group_id, 群组编号表示的是每个时序样本。
 
 ## 2. 进阶参数
+
 - `resune_path`:断点训练权重:在模型训练过程中发生人为或意外终止的情况时,加载训练中断之前保存的断点权重路径,完成继续训练,避免算力资源浪费。
 - `pretrain_weight_path`:预训练权重:基于已经在大数据集上训练好的模型权重进行微调训练,可提高模型训练开始前的初始经验,提高训练效率。
 - `warmup_steps`:热启动步数(WarmUp Steps):在训练初始阶段以较小学习率缓慢增加到设置学习率的批次数量,该值的设置可以避免模型在初始阶段以较大学习率迭代模型最终破坏预训练权重,一定程度上提升模型的精度。
@@ -27,6 +30,13 @@ PaddleX 暴露了模型迭代中最常修改的参数,方便您在配置文件
 **注:** 在**目标检测**和**实例分割**任务模块中,评估、保存间隔为统一参数 `eval_interval`。
 
 ## 3. 更多参数
+
 在 PaddleX 中,除了常见的参数修改之外,也支持您修改更多的参数。
-<!-- 这里简单解释不同config的逻辑,以及参数覆盖逻辑,廷权 -->
 
+PaddleX 中的参数设置有三种方式,其优先级为:
+
+1. 命令行追加 `-o` 参数,如:`-o Global.mode=train`;
+2. 编辑 `paddlex/configs/` 目录下对应的 yaml 配置文件,如 `paddlex/configs/image_classification/ResNet50.yaml`;
+3. 编辑 `paddlex/repo_apis/xxx_api/configs/` 目录下的 yaml 配置文件,如 `paddlex/repo_apis/PaddleClas_api/configs/ResNet50.yaml`;
+
+**基础参数**和**进阶参数**均可通过【1.】和【2.】方式修改,**更多参数**可以通过【3.】的方式修改,比如视觉类任务中需要修改训练图像尺寸等。

+ 0 - 1
docs/tutorials/base/model_optimize.md

@@ -1 +0,0 @@
-# 模型优化方法

+ 42 - 11
docs/tutorials/data/README.md

@@ -22,9 +22,43 @@ python main.py -c paddlex/configs/image_classification/PP-LCNet_x1_0.yaml \
     -o Global.dataset_dir=./dataset/cls_flowers_examples
 ```
 
-执行上述命令后,PaddleX 会对数据集进行校验,并统计数据集的基本信息。相关信息会保存在当前目录的 `./output/check_dataset` 目录下。
+执行上述命令后,PaddleX 会对数据集进行校验,并统计数据集的基本信息。命令运行成功后会在log中打印出 `Check dataset passed !` 信息,同时相关产出会保存在当前目录的 `./output/check_dataset` 目录下,产出目录中包括可视化的示例样本图片和样本分布直方图。校验结果文件保存在 `./output/check_dataset_result.json`,校验结果文件具体内容为
+```
+{
+  "done_flag": true,
+  "check_pass": true,
+  "attributes": {
+    "label_file": "dataset/label.txt",
+    "num_classes": 102,
+    "train_samples": 1020,
+    "train_sample_paths": [
+      "check_dataset/demo_img/image_01904.jpg",
+      "check_dataset/demo_img/image_06940.jpg"
+    ],
+    "val_samples": 1020,
+    "val_sample_paths": [
+      "check_dataset/demo_img/image_01937.jpg",
+      "check_dataset/demo_img/image_06958.jpg"
+    ]
+  },
+  "analysis": {
+    "histogram": "check_dataset/histogram.png"
+  },
+  "dataset_path": "./dataset/cls_flowers_examples",
+  "show_type": "image",
+  "dataset_type": "ClsDataset"
+}
+```
+上述校验结果中,check_pass 为 True 表示数据集格式符合要求,其他部分指标的说明如下:
 
-<!-- 这里需要增加输出的说明,以及产出的说明,畅达 -->
+- attributes.num_classes:该数据集类别数为 102;
+- attributes.train_samples:该数据集训练集样本数量为 1020;
+- attributes.val_samples:该数据集验证集样本数量为 1020;
+- attributes.train_sample_paths:该数据集训练集样本可视化图片相对路径列表;
+- attributes.val_sample_paths:该数据集验证集样本可视化图片相对路径列表;
+
+另外,数据集校验还对数据集中所有类别的样本数量分布情况进行了分析,并绘制了分布直方图(histogram.png):
+![样本分布直方图](https://github.com/PaddlePaddle/PaddleX/assets/142379845/e2cada1f-337f-4062-8504-077c90a3b8da)
 
 **注**:只有通过数据校验的数据才可以训练和评估。
 
@@ -36,15 +70,12 @@ python main.py -c paddlex/configs/image_classification/PP-LCNet_x1_0.yaml \
 数据集校验相关的参数可以通过修改配置文件中 `CheckDataset` 下的字段进行设置,配置文件中部分参数的示例说明如下:
 
 * `CheckDataset`:
-    <!-- 这里需要增加详细的说明,比如图像分类这里不支持转换,也需要说明,畅达 -->
-    * `dst_dataset_name`: 生成的数据集目录名,PaddleX 在数据校验时,会产生一个新的数据集;
-
     * `convert`:
-        * `enable`: 是否进行数据集格式转换
-        * `src_dataset_type`: 如果进行数据集格式转换,则需设置源数据集格式;
+        * `enable`: 是否进行数据集格式转换,图像分类不支持格式转换,默认为 `False`;
+        * `src_dataset_type`: 如果进行数据集格式转换,则需设置源数据集格式,图像分类不支持数据转换,默认为 `null`;
     * `split`:
-        * `enable`: 是否进行重新划分数据集;
-        * `train_percent`: 如果重新划分数据集,则需要设置训练集的百分比;
-        * `val_percent`: 如果重新划分数据集,则需要设置验证集的百分比;
+        * `enable`: 是否进行重新划分数据集,为 `True` 时进行数据集格式转换,默认为 `False`
+        * `train_percent`: 如果重新划分数据集,则需要设置训练集的百分比,类型为0-100之间的任意整数,需要保证和 `val_percent` 值加和为100
+        * `val_percent`: 如果重新划分数据集,则需要设置验证集的百分比,类型为0-100之间的任意整数,需要保证和 `train_percent` 值加和为100
 
-以上参数同样支持通过追加命令行参数的方式进行设置,如重新划分数据集并设置训练集与验证集比例:`-o CheckDataset.split=True -o CheckDataset.train_percent=0.8 -o CheckDataset.val_percent=0.2`。
+数据转换和数据划分支持同时开启,对于数据划分原有标注文件会被在原路径下重命名为 `xxx.bak`,以上参数同样支持通过追加命令行参数的方式进行设置,例如如重新划分数据集并设置训练集与验证集比例:`-o CheckDataset.split.enable=True -o CheckDataset.split.train_percent=80 -o CheckDataset.split.val_percent=20`。

+ 1 - 3
docs/tutorials/data/annotation/README.md

@@ -7,7 +7,5 @@
 |    图像分类   |   [文档链接](ClsAnnoTools.md)  |
 |    目标检测   |   [文档链接](DetAnnoTools.md)  |
 |    语义分割   |   [文档链接](SegAnnoTools.md)  |
-|    实例分割   |   [文档链接](InsSegAnnoTools.md)  |
+|    实例分割   |   [文档链接](InstSegAnnoTools.md)  |
 |    OCR/表格识别   |   [文档链接](OCRAnnoTools.md)  |
-
-

+ 103 - 1
docs/tutorials/models/model_inference_api.md

@@ -1 +1,103 @@
-# 单模型 Python API 推理文档
+# PaddleX 单模型推理 Python API 文档
+
+PaddleX 预置了丰富的模型,并提供了 Python API 调用接口,可以方便的集成到其他项目中,或是实现多模型串联,自定义产线。
+
+## 1. 安装 PaddleX
+
+首先需要安装 PaddleX 的 wheel 包,安装方式请参考 [PaddleX 安装文档](../INSTALL.md)。
+
+## 2. Python API 介绍
+
+使用 Python API 调用模型进行预测,仅需几行代码,如下示例:
+
+```python
+from paddlex import PaddleInferenceOption, create_model
+
+model_name = "PP-LCNet_x1_0"
+
+# 实例化 PaddleInferenceOption 设置推理配置
+kernel_option = PaddleInferenceOption()
+kernel_option.set_device("gpu")
+
+# 调用 create_model 函数实例化预测模型
+model = create_model(model_name=model_name, kernel_option=kernel_option)
+
+# 调用预测模型 model 的 predict 方法进行预测
+result = model.predict({'input_path': "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg"})
+```
+
+具体来说,需要简单几步:1. 实例化 PaddleInferenceOption 进行推理相关设置;2. 调用 create_model 实例化预测模型对象;3. 调用预测模型对象的 predict 方法进行推理预测。
+
+#### 1. 实例化 PaddleInferenceOption 进行推理相关设置
+
+* set_deivce:设置推理设备;
+    * 参数:
+        * device_setting:str 类型,推理设备类型及卡号,设备类型支持可选 'gpu', 'cpu', 'npu', 'xpu', 'mlu',当使用加速卡时,支持指定卡号,如使用 0 号 gpu 卡:'gpu:0',默认为 'gpu:0';
+    * 返回值:None
+
+* set_run_mode:设置推理后端;
+    * 参数:
+        * run_mode:str 类型,推理后端,支持可选 'paddle','trt_fp32','trt_fp16','trt_int8','mkldnn','mkldnn_bf16',其中 'mkldnn' 仅当推理设备使用 CPU 时可选,默认为 'paddle';
+    * 返回值:None
+
+* set_cpu_threads:设置 CPU 加速库计算线程数,仅当推理设备使用 CPU 时候有效;
+    * 参数:
+        * cpu_threads:int 类型,CPU 推理时加速库计算线程数;
+    * 返回值:None
+
+* get_support_run_mode:获取支持的推理后端设置;
+    * 参数:无;
+    * 返回值:list 类型,可选的推理后端设置;
+
+* get_support_device:获取支持的运行设备类型
+    * 参数:无;
+    * 返回值:list 类型,可选的设备类型;
+
+* get_device:获取当前设置的设备;
+    * 参数:无;
+    * 返回值:str 类型
+
+<!--
+* set_batch_size:设置推理批大小;
+    * 参数:
+        * batch_size:int 类型,推理的批大小;
+    * 返回值:None
+
+* set_min_subgraph_size:设置 TensorRT 后端的最小子图大小;
+    * 参数:
+        * min_subgraph_size:TensorRT 后端的最小子图大小,仅当使用 trt_fp32、trt_fp16、trt_int8 后端时有效;
+    * 返回值:None
+
+* set_shape_info_filename:
+    * 参数:
+        * shape_info_filename:
+    * 返回值:None
+
+* set_trt_calib_mode:
+    * 参数:
+        * trt_calib_mode
+    * 返回值:None
+
+* set_trt_use_static:
+    * 参数:
+        * trt_use_static
+    * 返回值:None -->
+
+#### 2. 调用 create_model 实例化预测模型对象
+
+* create_model:实例化预测模型对象(BasePredictor)
+    * 参数:
+        * model_name:str 类型,模型名
+        * kernel_option:PaddleInferenceOption 类型,表示模型预测相关设置
+    * 返回值:BasePredictor 类型
+
+#### 3. 调用预测模型对象的 predict 方法进行推理预测
+
+* predict:使用定义的预测模型,对输入数据进行预测;
+    * 参数:
+        * input:dict 类型,传入待预测数据,字典的 key 可通过 get_input_keys 方法获得;
+    * 返回值:dict 类型,包括待预测结果和预测数据等在内的数据,如 `{'input_path': 'a/b/c.jpg', 'image': ndarray(), 'cls_pred': [0.026 0.974], 'cls_result': [{'class_ids': [2, 1]}]}`,具体内容与模型及任务相关;
+
+* get_input_keys:
+    * 参数:无
+    * 返回值:list 类型,表示 predict 方法的字典参数 input 所需指定的 key,如 `['path', 'size']` 表示字典参数 input 必须包含 `'path'` 和 `'size'` 两个 key,如 `[['input_path', 'size'], ['input_data']]` 表示字典参数 input 必须包含 `'input_path'` 和 `'size'` 两个 key,**或是**包含 `'input_data'`。

+ 5 - 3
docs/tutorials/models/model_inference_tools.md

@@ -3,7 +3,8 @@
 PaddleX 提供了丰富的单模型,其是完成某一类任务的子模块的最小单元,模型开发完后,可以方便地集成到各类系统中。PaddleX 中的每个模型提供了官方权重,支持通过命令行方式直接推理预测和调用 Python API 预测。命令行方式直接推理预测可以快速体验模型推理效果,而 Python API 预测可以方便地集成到自己的项目中进行预测。
 
 ## 1.安装 PaddleX
-在使用单模型开发工具之前,首先需要安装 PaddleX 的 wheel 包,安装方式请参考 [PaddleX 安装文档](./INSTALL.md)。
+
+在使用单模型开发工具之前,首先需要安装 PaddleX 的 wheel 包,安装方式请参考 [PaddleX 安装文档](../INSTALL.md)。
 
 ## 2.PaddleX 单模型开发工具使用方式
 
@@ -20,10 +21,11 @@ model_name = "PP-LCNet_x1_0"
 kernel_option = PaddleInferenceOption()
 kernel_option.set_device("gpu")
 
+# 调用 create_model 函数实例化预测模型
 model = create_model(model_name=model_name, kernel_option=kernel_option)
 
-# 预测
+# 调用预测模型 model 的 predict 方法进行预测
 result = model.predict({'input_path': "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg"})
 ```
 
-PaddleX 提供的所有模型均支持以上 Python API 的调用,关于模型列表,您可以参考 [PaddleX 模型列表](../models/support_model_list.md),关于 Python API 的更多介绍,您可以参考 [PaddleX 模型推理 API](../API.md)。
+PaddleX 提供的所有模型均支持以上 Python API 的调用,关于模型列表,您可以参考 [PaddleX 模型列表](../models/support_model_list.md),关于 Python API 的更多介绍,您可以参考 [PaddleX 模型推理 API](model_inference_api.md)。

+ 22 - 41
docs/tutorials/models/support_model_list.md

@@ -1,7 +1,7 @@
 # PaddleX 模型列表
 
 ## 一、图像分类
-### 1. ResNet系列
+### 1. ResNet 系列
 | 模型名称 | config |
 | :--- | :---: |
 | ResNet18 | [ResNet18.yaml](../../../paddlex/configs/image_classification/ResNet18.yaml)|
@@ -9,7 +9,7 @@
 | ResNet50 | [ResNet50.yaml](../../../paddlex/configs/image_classification/ResNet50.yaml)|
 | ResNet101 | [ResNet101.yaml](../../../paddlex/configs/image_classification/ResNet101.yaml)|
 | ResNet152 | [ResNet152.yaml](../../../paddlex/configs/image_classification/ResNet152.yaml)|
-### 2.PP-LCNet系列
+### 2.PP-LCNet 系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-LCNet_x0_25 | [PP-LCNet_x0_25.yaml](../../../paddlex/configs/image_classification/PP-LCNet_x0_25.yaml)|
@@ -20,7 +20,7 @@
 | PP-LCNet_x1_5 | [PP-LCNet_x1_5.yaml](../../../paddlex/configs/image_classification/PP-LCNet_x1_5.yaml)|
 | PP-LCNet_x2_0 | [PP-LCNet_x2_0.yaml](../../../paddlex/configs/image_classification/PP-LCNet_x2_0.yaml)|
 | PP-LCNet_x2_5 | [PP-LCNet_x2_5.yaml](../../../paddlex/configs/image_classification/PP-LCNet_x2_5.yaml)|
-### 3.MobileNetV2系列
+### 3.MobileNetV2 系列
 | 模型名称 | config |
 | :--- | :---: |
 | MobileNetV2_x0_25 | [MobileNetV2_x0_25.yaml](../../../paddlex/configs/image_classification/MobileNetV2_x0_25.yaml)|
@@ -28,7 +28,7 @@
 | MobileNetV2_x1_0 | [MobileNetV2_x1_0.yaml](../../../paddlex/configs/image_classification/MobileNetV2_x1_0.yaml)|
 | MobileNetV2_x1_5 | [MobileNetV2_x1_5.yaml](../../../paddlex/configs/image_classification/MobileNetV2_x1_5.yaml)|
 | MobileNetV2_x2_0 | [MobileNetV2_x2_0.yaml](../../../paddlex/configs/image_classification/MobileNetV2_x2_0.yaml)|
-### 4.MobileNetV3系列
+### 4.MobileNetV3 系列
 | 模型名称 | config |
 | :--- | :---: |
 | MobileNetV3_small_x0_35 | [MobileNetV3_small_x0_35.yaml](../../../paddlex/configs/image_classification/MobileNetV3_small_x0_35.yaml)|
@@ -41,38 +41,34 @@
 | MobileNetV3_large_x0_75 | [MobileNetV3_large_x0_75.yaml](../../../paddlex/configs/image_classification/MobileNetV3_large_x0_75.yaml)|
 | MobileNetV3_large_x1_0 | [MobileNetV3_large_x1_0.yaml](../../../paddlex/configs/image_classification/MobileNetV3_large_x1_0.yaml)|
 | MobileNetV3_large_x1_25 | [MobileNetV3_large_x1_25.yaml](../../../paddlex/configs/image_classification/MobileNetV3_large_x1_25.yaml)|
-### 5.PP-HGNet系列
+### 5.PP-HGNet 系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-HGNet_small | [PP-HGNet_small.yaml](../../../paddlex/configs/image_classification/PP-HGNet_small.yaml)|
-### 6.PP-HGNetV2系列
+### 6.PP-HGNetV2 系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-HGNetV2-B0 | [PP-HGNetV2-B0.yaml](../../../paddlex/configs/image_classification/PP-HGNetV2-B0.yaml)|
 | PP-HGNetV2-B4 | [PP-HGNetV2-B4.yaml](../../../paddlex/configs/image_classification/PP-HGNetV2-B4.yaml)|
 | PP-HGNetV2-B6 | [PP-HGNetV2-B6.yaml](../../../paddlex/configs/image_classification/PP-HGNetV2-B6.yaml)|
-### 7.CLIP系列
+### 7.CLIP 系列
 | 模型名称 | config |
 | :--- | :---: |
 | CLIP_vit_base_patch16_224 | [CLIP_vit_base_patch16_224.yaml](../../../paddlex/configs/image_classification/CLIP_vit_base_patch16_224.yaml)|
 | CLIP_vit_large_patch14_224 | [CLIP_vit_large_patch14_224.yaml](../../../paddlex/configs/image_classification/CLIP_vit_large_patch14_224.yaml)|
-### 8.SwinTransformer系列
-| 模型名称 | config |
-| :--- | :---: |
-| SwinTransformer_base_patch4_window7_224 | [SwinTransformer_base_patch4_window7_224.yaml](../../../paddlex/configs/image_classification/SwinTransformer_base_patch4_window7_224.yaml)|
-### 9.ConvNeXt系列
+### 8.ConvNeXt 系列
 | 模型名称 | config |
 | :--- | :---: |
 | ConvNeXt_tiny | [ConvNeXt_tiny.yaml](../../../paddlex/configs/image_classification/ConvNeXt_tiny.yaml)|
 ## 二、目标检测
-### 1. PP-YOLOE_plus系列
+### 1. PP-YOLOE_plus 系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-YOLOE_plus-S | [PP-YOLOE_plus-S.yaml](../../../paddlex/configs/object_detection/PP-YOLOE_plus-S.yaml)|
 | PP-YOLOE_plus-M | [PP-YOLOE_plus-M.yaml](../../../paddlex/configs/object_detection/PP-YOLOE_plus-M.yaml)|
 | PP-YOLOE_plus-L | [PP-YOLOE_plus-L.yaml](../../../paddlex/configs/object_detection/PP-YOLOE_plus-L.yaml)|
 | PP-YOLOE_plus-X | [PP-YOLOE_plus-X.yaml](../../../paddlex/configs/object_detection/PP-YOLOE_plus-X.yaml)|
-### 2. RT-DETR系列
+### 2. RT-DETR 系列
 | 模型名称 | config |
 | :--- | :---: |
 | RT-DETR-R18 | [RT-DETR-R18.yaml](../../../paddlex/configs/object_detection/RT-DETR-R18.yaml)|
@@ -80,54 +76,39 @@
 | RT-DETR-L | [RT-DETR-L.yaml](../../../paddlex/configs/object_detection/RT-DETR-L.yaml)|
 | RT-DETR-H | [RT-DETR-H.yaml](../../../paddlex/configs/object_detection/RT-DETR-H.yaml)|
 | RT-DETR-X | [RT-DETR-X.yaml](../../../paddlex/configs/object_detection/RT-DETR-X.yaml)|
-### 3. PicoDet系列
-| 模型名称 | config |
-| :--- | :---: |
-| PicoDet-S | [PicoDet-S.yaml](../../../paddlex/configs/object_detection/PicoDet-S.yaml)|
-| PicoDet-L | [PicoDet-L.yaml](../../../paddlex/configs/object_detection/PicoDet-L.yaml)|
+
 ## 三、实例分割
-### 1.Mask-RT-DETR系列
+### 1.Mask-RT-DETR 系列
 | 模型名称 | config |
 | :--- | :---: |
 | Mask-RT-DETR-L | [Mask-RT-DETR-L.yaml](../../../paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml)|
 | Mask-RT-DETR-H | [Mask-RT-DETR-H.yaml](../../../paddlex/configs/instance_segmentation/Mask-RT-DETR-H.yaml)|
 ## 四、语义分割
-### 1.Deeplabv3系列
+### 1.Deeplabv3 系列
 | 模型名称 | config |
 | :--- | :---: |
 | Deeplabv3-R50 | [Deeplabv3-R50.yaml](../../../paddlex/configs/semantic_segmentation/Deeplabv3-R50.yaml)|
 | Deeplabv3-R101 | [Deeplabv3-R101.yaml](../../../paddlex/configs/semantic_segmentation/Deeplabv3-R101.yaml)|
 | Deeplabv3_Plus-R50 | [Deeplabv3_Plus-R50.yaml](../../../paddlex/configs/semantic_segmentation/Deeplabv3_Plus-R50.yaml)|
 | Deeplabv3_Plus-R101 | [Deeplabv3_Plus-R101.yaml](../../../paddlex/configs/semantic_segmentation/Deeplabv3_Plus-R101.yaml)|
-### 2.OCRNet系列
+### 2.OCRNet 系列
 | 模型名称 | config |
 | :--- | :---: |
 | OCRNet_HRNet-W48 | [OCRNet_HRNet-W48.yaml](../../../paddlex/configs/semantic_segmentation/OCRNet_HRNet-W48.yaml)|
-### 3.PP-LiteSeg系列
-| 模型名称 | config |
-| :--- | :---: |
-| PP-LiteSeg-T | [PP-LiteSeg-T.yaml](../../../paddlex/configs/semantic_segmentation/PP-LiteSeg-T.yaml)|
-## 五、表格识别
-| 模型名称 | config |
-| :--- | :---: |
-| SLANet | [SLANet.yaml](../../../paddlex/configs/table_recognition/SLANet.yaml)|
-## 六、文本检测
-### 1.PP-OCRv4系列
+
+## 五、文本检测
+### 1.PP-OCRv4 系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-OCRv4_server_det | [PP-OCRv4_server_det.yaml](../../../paddlex/configs/text_detection/PP-OCRv4_server_det.yaml)|
 | PP-OCRv4_mobile_det | [PP-OCRv4_mobile_det.yaml](../../../paddlex/configs/text_detection/PP-OCRv4_mobile_det.yaml)|
-## 、文本识别
-### 1.PP-OCRv4系列
+## 六、文本识别
+### 1.PP-OCRv4 系列
 | 模型名称 | config |
 | :--- | :---: |
 | PP-OCRv4_server_rec | [PP-OCRv4_server_rec.yaml](../../../paddlex/configs/text_recognition/PP-OCRv4_server_rec.yaml)|
 | PP-OCRv4_mobile_rec | [PP-OCRv4_mobile_rec.yaml](../../../paddlex/configs/text_recognition/PP-OCRv4_mobile_rec.yaml)|
-## 八、版面分析
-| 模型名称 | config |
-| :--- | :---: |
-| PicoDet_layout_1x | [PicoDet_layout_1x.yaml](../../../paddlex/configs/structure_analysis/PicoDet_layout_1x.yaml)|
-## 九、时序异常检测
+## 七、时序异常检测
 | 模型名称 | config |
 | :--- | :---: |
 | DLinear_ad | [DLinear_ad.yaml](../../../paddlex/configs/ts_anomaly_detection/DLinear_ad.yaml)|
@@ -135,11 +116,11 @@
 | TimesNet_ad | [TimesNet_ad.yaml](../../../paddlex/configs/ts_anomaly_detection/TimesNet_ad.yaml)|
 | AutoEncoder_ad | [AutoEncoder_ad.yaml](../../../paddlex/configs/ts_anomaly_detection/AutoEncoder_ad.yaml)|
 | Nonstationary_ad | [Nonstationary_ad.yaml](../../../paddlex/configs/ts_anomaly_detection/Nonstationary_ad.yaml)|
-## 、时序分类
+## 、时序分类
 | 模型名称 | config |
 | :--- | :---: |
 | TimesNet_cls | [TimesNet_cls.yaml](../../../paddlex/configs/ts_classification/TimesNet_cls.yaml)|
-## 十一、时序预测
+## 、时序预测
 | 模型名称 | config |
 | :--- | :---: |
 | DLinear | [DLinear.yaml](../../../paddlex/configs/ts_forecast/DLinear.yaml)|

+ 70 - 1
docs/tutorials/pipelines/pipeline_inference_api.md

@@ -1 +1,70 @@
-# 模型产线 Python API 推理文档
+# PaddleX 模型产线 Python API 文档
+
+PaddleX 提供了多个实用的模型产线,模型产线由一个或多个模型组合而成,面临,能够直接落地应用
+
+## 1. 安装 PaddleX
+
+首先需要安装 PaddleX 的 wheel 包,安装方式请参考 [PaddleX 安装文档](../INSTALL.md)。
+
+## 2. Python API 介绍
+
+使用 Python API 调用模型产线进行预测,仅需几行代码,如下示例:
+
+```python
+from paddlex import ClsPipeline
+from paddlex import PaddleInferenceOption
+
+model_name = "PP-LCNet_x1_0"
+pipeline = ClsPipeline(model_name, kernel_option=PaddleInferenceOption())
+result = pipeline.predict(
+        {'input_path': "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg"}
+    )
+print(result["cls_result"])
+```  
+
+如上代码所示,具体来说需要简单几步:1. 实例化 PaddleInferenceOption 进行推理相关设置;2. 实例化模型产线对象;3. 调用模型产线对象的 predict 方法进行推理预测。
+
+#### 1. 实例化 PaddleInferenceOption 进行推理相关设置
+
+
+* set_deivce:设置推理设备;
+    * 参数:
+        * device_setting:str 类型,推理设备类型及卡号,设备类型支持可选 'gpu', 'cpu', 'npu', 'xpu', 'mlu',当使用加速卡时,支持指定卡号,如使用 0 号 gpu 卡:'gpu:0',默认为 'gpu:0';
+    * 返回值:None;
+
+* set_run_mode:设置推理后端;
+    * 参数:
+        * run_mode:str 类型,推理后端,支持可选 'paddle','trt_fp32','trt_fp16','trt_int8','mkldnn','mkldnn_bf16',其中 'mkldnn' 仅当推理设备使用 CPU 时可选,默认为 'paddle';
+    * 返回值:None;
+
+* set_cpu_threads:设置 CPU 加速库计算线程数,仅当推理设备使用 CPU 时候有效;
+    * 参数:
+        * cpu_threads:int 类型,CPU 推理时加速库计算线程数;
+    * 返回值:None;
+
+* get_support_run_mode:获取支持的推理后端设置;
+    * 参数:无;
+    * 返回值:list 类型,可选的推理后端设置;
+
+* get_support_device:获取支持的运行设备类型
+    * 参数:无;
+    * 返回值:list 类型,可选的设备类型;
+
+* get_device:获取当前设置的设备;
+    * 参数:无;
+    * 返回值:str 类型;
+
+#### 2. 实例化模型产线对象
+
+从 paddlex 导入对应的产线类并实例化,如图像分类产线 `ClsPipeline`,更多模型产线查看[模型产线](support_pipeline_list.md)。
+
+#### 3. 调用预测模型对象的 predict 方法进行推理预测
+
+* predict:使用定义的预测模型,对输入数据进行预测;
+    * 参数:
+        * input:dict 类型,传入待预测数据,字典的 key 可通过 get_input_keys 方法获得;
+    * 返回值:dict 类型,包括待预测结果和预测数据等在内的数据,如 `{'input_path': 'a/b/c.jpg', 'image': ndarray(), 'cls_pred': [0.026 0.974], 'cls_result': [{'class_ids': [2, 1]}]}`,具体内容与模型及任务相关;
+
+* get_input_keys:
+    * 参数:无
+    * 返回值:list 类型,表示 predict 方法的字典参数 input 所需指定的 key,如 `['path', 'size']` 表示字典参数 input 必须包含 `'path'` 和 `'size'` 两个 key,如 `[['input_path', 'size'], ['input_data']]` 表示字典参数 input 必须包含 `'input_path'` 和 `'size'` 两个 key,**或是**包含 `'input_data'`。

+ 50 - 62
docs/tutorials/pipelines/pipeline_inference_tools.md

@@ -1,31 +1,29 @@
 # PaddleX 模型产线开发工具推理预测
 
-模型产线指的是可以独立完成某类任务且具备落地能力的模型或模型组合,其可以是单模型产线,也可以是多模型组合的产线,PaddleX 提供了丰富的模型产线,可以方便地完成 AI 任务的推理和部署。PaddleX 中的每个模型产线有多个模型可供选择,并均提供了官方权重,支持通过命令行方式直接推理预测和调用 Python API 预测。命令行方式直接推理预测可以快速体验模型推理效果,而 Python API 预测可以方便地集成到自己的项目中进行预测。
+模型产线指的是可以独立完成某类任务且具备落地能力的模型或模型组合,其可以是单模型产线,也可以是多模型组合的产线,PaddleX 提供了丰富的模型产线,可以方便地完成 AI 任务的推理和部署。云端使用请前往飞桨 [AI Studio 星河社区](https://aistudio.baidu.com/pipeline/mine)创建产线使用,本地端使用可以参考本文档, PaddleX 中的每个模型产线有多个模型可供选择,并均提供了官方权重,支持通过命令行方式直接推理预测和调用 Python API 预测。命令行方式直接推理预测可以快速体验模型推理效果,而 Python API 预测可以方便地集成到自己的项目中进行预测。
 
 ## 1.安装 PaddleX
-在使用单模型开发工具之前,首先需要安装 PaddleX 的 wheel 包,安装方式请参考 [PaddleX 安装文档](./INSTALL.md)。
-
+在使用单模型开发工具之前,首先需要安装 PaddleX 的 wheel 包,安装方式请参考 [PaddleX 安装文档](../INSTALL.md)。
 
 ## 2.PaddleX 模型产线开发工具使用方式
 
-### 2.1 图像分类产线
-图像分类产线内置了多个图像分类的单模型,包含 `ResNet` 系列、`PP-LCNet` 系列、`MobileNetV2` 系列、`MobileNetV3` 系列、`ConvNeXt` 系列、`SwinTransformer` 系列、`PP-HGNet` 系列、`PP-HGNetV2` 系列、`CLIP` 系列等模型。具体支持的分类模型列表,您可以参考[模型库](./models/support_model_list.md),您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](./train/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+### 2.1 通用图像分类产线
+图像分类产线内置了多个图像分类的单模型,包含 `ResNet` 系列、`PP-LCNet` 系列、`MobileNetV2` 系列、`MobileNetV3` 系列、`ConvNeXt` 系列、`PP-HGNet` 系列、`PP-HGNetV2` 系列、`CLIP` 系列等模型。具体支持的分类模型列表,您可以参考[模型库](../models/support_model_list.md),您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](../base/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+
+**命令行使用方式**
 
-<details>
-<summary><b> 命令行使用方式 </b></summary>
 您可以使用命令行将图片的类别分出来,命令行使用方式如下:
 
-```
+```bash
 paddlex --pipeline image_classification --model PP-LCNet_x1_0 --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg
 ```
 参数解释:
-- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`ocr`。
-- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型产线文档](./models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
+- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`OCR`。
+- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型库](../models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
 - `input`: 输入图片路径或 URL。
-</details>
 
-<details>
-<summary><b> Python API 使用方式</b></summary>
+
+**Python API 使用方式**
 
 
 ```python
@@ -39,29 +37,27 @@ result = pipeline.predict(
     )
 print(result["cls_result"])
 ```  
-</details>
 
-### 2.2 目标检测产线
 
+### 2.2 通用目标检测产线
 
-目标检测产线内置了多个目标检测的单模型,包含 `PicoDet` 系列、`RT-DETR` 系列、`PP-YOLO-E` 系列等模型。具体支持的目标检测模型列表,您可以参考[模型库](./models/support_model_list.md),您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](./train/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
 
-<details>
-<summary><b> 命令行使用方式 </b></summary>
+目标检测产线内置了多个目标检测的单模型,包含`RT-DETR` 系列、`PP-YOLO-E` 系列等模型。具体支持的目标检测模型列表,您可以参考[模型库](../models/support_model_list.md),您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](../base/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+
+**命令行使用方式**
+
 您可以使用命令行将图片中的目标检测出来,命令行使用方式如下:
 
-```
+```bash
 paddlex --pipeline object_detection --model RT-DETR-L --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_object_detection_002.png
 
 ```
 参数解释:
-- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`ocr`。
-- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型产线文档](./models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
+- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`OCR`。
+- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型库](../models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
 - `input`: 输入图片路径或 URL。
-</details>
 
-<details>
-<summary><b> Python API 使用方式</b></summary>
+**Python API 使用方式**
 
 ```python
 from pathlib import Path
@@ -78,30 +74,27 @@ result = pipeline.predict(
 print(result["boxes"])
 
 ```
-</details>
 
 
-### 2.3 语义分割产线
+### 2.3 通用语义分割产线
+
 
+语义分割产线内置了多个语义分割的单模型,包含`OCRNet` 系列、`DeepLabv3` 系列等模型。具体支持的语义分割模型列表,您可以参考[模型库](../models/support_model_list.md),您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](../base/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
 
-语义分割产线内置了多个语义分割的单模型,包含 `PP-LiteSeg` 系列、`OCRNet` 系列、`DeepLabv3` 系列等模型。具体支持的语义分割模型列表,您可以参考[模型库](./models/support_model_list.md),您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](./train/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+**命令行使用方式**
 
-<details>
-<summary><b> 命令行使用方式 </b></summary>
 您可以使用命令行将图片的语义信息分割出来,命令行使用方式如下:
 
-```
-paddlex --pipeline semantic_segmentation --model PP-LiteSeg-T --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png
+```bash
+paddlex --pipeline semantic_segmentation --model OCRNet_HRNet-W48 --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_002.png
 
 ```
 参数解释:
-- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`ocr`。
-- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型产线文档](./models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
+- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`OCR`。
+- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型库](../models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
 - `input`: 输入图片路径或 URL。
-</details>
 
-<details>
-<summary><b> Python API 使用方式</b></summary>
+**Python API 使用方式**
 
 ```python
 from pathlib import Path
@@ -109,7 +102,7 @@ from paddlex import SegPipeline
 from paddlex import PaddleInferenceOption
 
 
-model_name = "PP-LiteSeg-T",
+model_name = "OCRNet_HRNet-W48",
 output_base = Path("output")
 output = output_base / model_name
 pipeline = SegPipeline(model_name, output=output, kernel_option=PaddleInferenceOption())
@@ -119,30 +112,26 @@ result = pipeline.predict(
 print(result["seg_map"])
 
 ```
-</details>
 
+### 2.4 通用实例分割产线
 
-### 2.4 实例分割产线
 
+实例分割产线内置了两个目前 SOTA 的单模型,分别是 `Mask-RT-DETR-L` 和 `Mask-DT-DETR-H`。您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](../base/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
 
-实例分割产线内置了两个目前 SOTA 的单模型,分别是 `Mask-RT-DETR-L` 和 `Mask-DT-DETR-H`。您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](./train/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+**命令行使用方式**
 
-<details>
-<summary><b> 命令行使用方式 </b></summary>
 您可以使用命令行将图片中的实例分割出来,命令行使用方式如下:
 
-```
-paddlex --pipeline instance_segmentation --model RT-DETR-L --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_instance_segmentation_004.png
+```bash
+paddlex --pipeline instance_segmentation --model Mask-RT-DETR-L --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_instance_segmentation_004.png
 
 ```
 参数解释:
-- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`ocr`。
-- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型产线文档](./models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
+- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`OCR`。
+- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型库](../models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
 - `input`: 输入图片路径或 URL。
-</details>
 
-<details>
-<summary><b> Python API 使用方式</b></summary>
+**Python API 使用方式**
 
 ```python
 from pathlib import Path
@@ -159,33 +148,31 @@ result = pipeline.predict(
 print(result["boxes"])
 
 ```
-</details>
 
 ### 2.5 OCR 产线
-OCR 产线内置了 PP-OCRv4 模型,包括文本检测和文本识别两个部分。文本检测支持的模型有 `PP-OCRv4_mobile_det`、`PP-OCRv4_server_det`,文本识别支持的模型有 `PP-OCRv4_mobile_rec`、`PP-OCRv4_server_rec`。您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](./train/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+OCR 产线内置了 PP-OCRv4 模型,包括文本检测和文本识别两个部分。文本检测支持的模型有 `PP-OCRv4_mobile_det`、`PP-OCRv4_server_det`,文本识别支持的模型有 `PP-OCRv4_mobile_rec`、`PP-OCRv4_server_rec`。您可以使用以下两种方式进行推理预测,如果在您的场景中,上述模型不能满足您的需求,您可以参考 [PaddleX 模型训练文档](../base/README.md) 进行训练,训练后的模型可以非常方便地集成到该产线中。
+
+
+**命令行使用方式**
 
-<details>
-<summary><b> 命令行使用方式 </b></summary>
 您可以使用命令行将图片的文字识别出来,命令行使用方式如下:
 
-```
-paddlex --pipeline ocr --model PP-OCRv4_mobile_det PP-OCRv4_mobile_rec --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --output ./
+```bash
+paddlex --pipeline OCR --model PP-OCRv4_mobile_det PP-OCRv4_mobile_rec --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png
 ```
 参数解释:
-- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`ocr`。
-- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型产线文档](./models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
+- `pipeline`: 产线名称,当前支持的产线名称有 `image_classification`、`object_detection`、`semantic_segmentation`、`instance_segmentation`、`OCR`。
+- `model`: 模型名称,每个产线支持的模型名称不同,请参考 [PaddleX 模型库](../models/support_model_list.md)。对于多模型组合的产线,需要指定多个模型名称,以空格分隔。
 - `input`: 输入图片路径或 URL。
-- `output`: 输出可视化图片的路径。
 </details>
 
-<details>
-<summary><b> Python API 使用方式</b></summary>
+**Python API 使用方式**
 
 ```python
 import cv2
 from paddlex import OCRPipeline
 from paddlex import PaddleInferenceOption
-from paddle.pipelines.PPOCR.utils import draw_ocr_box_txt
+from paddlex.pipelines.PPOCR.utils import draw_ocr_box_txt
 
 pipeline = OCRPipeline(
     'PP-OCRv4_mobile_det',
@@ -199,4 +186,5 @@ result = pipeline.predict(
 draw_img = draw_ocr_box_txt(result['original_image'],result['dt_polys'], result["rec_text"])
 cv2.imwrite("ocr_result.jpg", draw_img[:, :, ::-1])
 ```
-</details>
+
+**注:** 更多产线推理持续更新中,敬请期待。

+ 35 - 1
docs/tutorials/pipelines/support_pipeline_list.md

@@ -1 +1,35 @@
-# PaddleX 模型产线列表
+# PaddleX 模型产线列表
+
+PaddleX 提供了丰富的模型产线,您可以在产线对应的星河社区体验地址里体验,也可以在本地体验,本地体验方式请参考 [PaddleX 模型产线](./pipeline_inference_tools.md)。
+
+## 基础模型产线
+
+| 产线名称 | 模型列表| 星河社区体验地址 | 产线介绍 |
+| :---: | :---: | :---: | :---: |
+| 通用图像分类 |[图像分类模型](../models/support_model_list.md#一图像分类)|[体验链接](https://aistudio.baidu.com/community/app/100061/webUI?source=appMineRecent)|通用图像分类产线汇聚了多个不同量级的图像分类模型。图像分类是计算机视觉领域的基础任务,旨在实现对未知类别的图像进行分类。|
+| 通用目标检测 |[目标检测模型](../models/support_model_list.md#二目标检测)|[体验链接](https://aistudio.baidu.com/community/app/70230/webUI?source=appMineRecent)|通用目标检测产线汇聚了多个不同量级的目标检测模型。目标检测任务是计算机视觉领域的核心任务之一,旨在从图像或视频中找出所有感兴趣的目标(物体),并确定它们的类别和位置。|
+| 通用语义分割 |[语义分割模型](../models/support_model_list.md#四语义分割)|[体验链接](https://aistudio.baidu.com/community/app/100062/webUI?source=appMineRecent)|通用语义分割产线汇聚了多个不同量级的语义分割模型。被广泛用于街景分割、医学图像分割、道路分割等场景。旨在对不同类别的像素或区域进行区分。|
+| 通用实例分割 |[实例分割模型](../models/support_model_list.md#https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/tutorials/models/support_model_list.md#三实例分割)|[体验链接](https://aistudio.baidu.com/community/app/100063/webUI?source=appMineRecent)|通用实例分割产线汇聚了多个不同量级的实例分割模型。实例分割任务是计算机视觉领域的核心任务之一,旨在从图像或视频中找出所有感兴趣的目标(物体),并确定它们的类别和像素边界。|
+| 通用OCR |[文本检测模型](../models/support_model_list.md#五文本检测)/[文本识别模型](../models/support_model_list.md#六文本识别)|[体验链接](https://aistudio.baidu.com/community/app/91660/webUI?source=appMineRecent)|通用 OCR 产线用于解决文字识别任务,提取图片中的文字信息以文本形式输出,PP-OCRv4 是一个端到端 OCR 串联系统,可实现 CPU 上毫秒级的文本内容精准预测,在通用场景上达到开源SOTA。基于该项目,产学研界多方开发者已快速落地多个 OCR 应用,使用场景覆盖通用、制造、金融、交通等各个领域。|
+| 通用表格识别 |[文本检测模型](../models/support_model_list.md#五文本检测)/[文本识别模型](../models/support_model_list.md#六文本识别)/版面分析模型/表格识别模型|[体验链接](https://aistudio.baidu.com/community/app/91661?source=appMineRecent)|通用表格识别产线是文本图像分析的子任务之一,旨在从图像中找到表格区域,并预测表格结构和文本内容,将表格恢复成 HTML 格式用于后续编辑或处理。|
+| 时序预测 |[时序预测模型](../models/support_model_list.md#九时序预测)|[体验链接](https://aistudio.baidu.com/community/app/105706/webUI?source=appMineRecent)|时序在每日的生活、工作中随处可见,比如 CPU 负载、上证指数、商场每天的人流量、商品每日的价格等都属于时间序列,总的来说时间序列就是按时间记录的有序数据,而时序预测就是运用历史的数据推测出事物的发展趋势。|
+| 时序分类 |[时序分类模型](../models/support_model_list.md#八时序分类)|[体验链接](https://aistudio.baidu.com/community/app/105707/webUI?source=appMineRecent)|时间序列分类是时间序列分析的一个重要应用场景,目的是利用标记好的训练数据,确定一个时间序列属于预先定义的哪一个类别。常见的应用场景包括:医疗健康监测,工业设备状态监测,交通状况分类等。|
+| 时序异常检测 |[时序异常检测模型](../models/support_model_list.md#七时序异常检测)|[体验链接](https://aistudio.baidu.com/community/app/105708/webUI?source=appMineRecent)|时序异常检测是目前时序数据分析成熟的应用之一,其旨在从正常的时间序列数据中识别出异常的事件或行为模式,在众多领域都发挥着重要作用:量化交易中,用于发现异常交易行为,规避潜在的金融风险;在网络安全领域,用于实时监测网络流量,及时发现并预防网络攻击行为的发生;在自动驾驶汽车领域,异常检测可以持续监测车载传感器数据,及时发现可能导致事故的异常情况;而在大型工业设备维护中,异常检测也能够帮助工程师提前发现设备故障苗头,从而采取预防性维护措施,降低设备停机时间和维修成本。|
+
+
+## 特色模型产线
+
+| 产线名称 | 模型列表| 星河社区体验地址 | 产线介绍 |
+| :---: | :---: | :---: | :---: |
+| 大模型半监督学习-图像分类 |[图像分类模型](../models/support_model_list.md#一图像分类)|[体验链接](https://aistudio.baidu.com/community/app/100061/webUI?source=appMineRecent)|大模型半监督学习-图像分类产线是飞桨特色的图像分类训练产线,通过大小模型联合训练的方式,使用少量有标签数据和大量无标签数据提升模型的精度,大幅度减少人工迭代模型的成本、标注数据的成本。|
+| 大模型半监督学习-目标检测 |[目标检测模型](../models/support_model_list.md#二目标检测)|[体验链接](https://aistudio.baidu.com/community/app/70230/webUI?source=appMineRecent)|大模型半监督学习-目标检测产线是飞桨特色的目标检测训练产线,通过大小模型联合训练的方式,使用少量有标签数据和大量无标注数据提升模型的精度,大幅度减少人工迭代模型的成本、标注数据的成本。|
+| 大模型半监督学习-OCR |[文本识别模型](../models/support_model_list.md#六文本识别)|[体验链接](https://aistudio.baidu.com/community/app/91660/webUI?source=appMineRecent)|大模型半监督学习-OCR 产线是飞桨特色的 OCR 训练产线,由文本检测模型和文本识别模型串联完成。预测图片首先经过文本检测模型获取全部的文本行检测框并进行矫正,之后经文本识别模型得到 OCR 文本结果。在文本识别部分,通过大小模型联合训练的方式,使用少量有标签数据和大量无标签数据提升模型的精度,大幅度减少人工迭代模型的成本、标注数据的成本。|
+| 通用场景信息抽取 |[文本检测模型](../models/support_model_list.md#五文本检测)/[文本识别模型](../models/support_model_list.md#六文本识别)|[体验链接](https://aistudio.baidu.com/community/app/100061/webUI?source=appMineRecent)|通用场景信息抽取产线(PP-ChatOCRv2-common)是飞桨特色的复杂文档智能分析解决方案,结合了 LLM 和 OCR 技术,将文心大模型将海量数据和知识相融合,准确率高且应用广泛。|
+| 文档场景信息抽取 |[文本检测模型](../models/support_model_list.md#五文本检测)/[文本识别模型](../models/support_model_list.md#六文本识别)/版面分析模型/表格识别模型|[体验链接](https://aistudio.baidu.com/community/app/100061/webUI?source=appMineRecent)|文档场景信息抽取产线(PP-ChatOCRv2-doc)是飞桨特色的复杂文档智能分析解决方案,结合了 LLM 和 OCR 技术,一站式解决生僻字、特殊标点、多页 pdf、表格等常见的复杂文档信息抽取难点问题,结合文心大模型将海量数据和知识相融合,准确率高且应用广泛。|
+| 多模型融合时序预测v2 |[时序预测模型](../models/support_model_list.md#九时序预测)|[体验链接](https://aistudio.baidu.com/community/app/105706/webUI?source=appMineRecent)|多模型融合时序预测v2 产线的特点是针对不同任务场景,能够自适应的选择和集成模型,提升任务的精度。时序在每日的生活、工作中随处可见,时序预测的任务是指根据历史时间序列数据的模式和趋势,对未来的时间序列进行预测的任务。它在许多领域中都有应用,包括金融、天气预报、交通流量预测、销售预测、股票价格预测等。|
+| 多模型融合时序异常检测v2 |[时序异常检测模型](../models/support_model_list.md#七时序异常检测)|[体验链接](https://aistudio.baidu.com/community/app/105708/webUI?source=appMineRecent)|多模型融合时序异常检测产线的特点是针对不同任务场景,能够自适应的选择和集成模型,提升任务的精度。时序异常检测是目前时序数据分析成熟的应用之一,其旨在从正常的时间序列数据中识别出异常的事件或行为模式,在众多领域都发挥着重要作用:量化交易中,用于发现异常交易行为,规避潜在的金融风险;在网络安全领域,用于实时监测网络流量,及时发现并预防网络攻击行为的发生;在自动驾驶汽车领域,异常检测可以持续监测车载传感器数据,及时发现可能导致事故的异常情况;而在大型工业设备维护中,异常检测也能够帮助工程师提前发现设备故障苗头,从而采取预防性维护措施,降低设备停机时间和维修成本。
+
+|
+
+
+

+ 18 - 0
paddlex/__init__.py

@@ -38,6 +38,24 @@ def _initialize():
         repo_manager.initialize()
 
 
+def _check_paddle_version():
+    """check paddle version
+    """
+    import paddle
+    supported_versions = ['3.0', '0.0']
+    version = paddle.__version__
+    # Recognizable version number: major.minor.patch
+    major, minor, patch = version.split('.')
+    # Ignore patch
+    version = f"{major}.{minor}"
+    if version not in supported_versions:
+        raise RuntimeError(
+            f"The {version} version of PaddlePaddle is not supported. "
+            f"Please install one of the following versions of PaddlePaddle: {supported_versions}."
+        )
+
+
 _initialize()
+_check_paddle_version()
 
 __version__ = version.get_pdx_version()

+ 0 - 0
paddlex/pipelines/PPOCR/__init__.py → paddlex/pipelines/OCR/__init__.py


+ 1 - 1
paddlex/pipelines/PPOCR/pipeline.py → paddlex/pipelines/OCR/pipeline.py

@@ -27,7 +27,7 @@ from .utils import draw_ocr_box_txt
 class OCRPipeline(BasePipeline):
     """OCR Pipeline
     """
-    entities = "PP-OCRv4"
+    entities = "OCR"
 
     def __init__(self,
                  text_det_model_name=None,

+ 0 - 0
paddlex/pipelines/PPOCR/utils.py → paddlex/pipelines/OCR/utils.py


+ 1 - 1
paddlex/pipelines/__init__.py

@@ -19,7 +19,7 @@ __all__ = [
 ]
 
 from .base import build_pipeline, BasePipeline
-from .PPOCR import OCRPipeline
+from .OCR import OCRPipeline
 from .image_classification import ClsPipeline
 from .object_detection import DetPipeline
 from .instance_segmentation import InstanceSegPipeline

+ 0 - 19
setup.py

@@ -87,26 +87,7 @@ def packages_and_package_data():
     return pkgs, {'paddlex': pkg_data}
 
 
-def check_paddle_version():
-    """check paddle version
-    """
-    import paddle
-    supported_versions = ['3.0', '0.0']
-    version = paddle.__version__
-    # Recognizable version number: major.minor.patch
-    major, minor, patch = version.split('.')
-    # Ignore patch
-    version = f"{major}.{minor}"
-    if version not in supported_versions:
-        raise RuntimeError(
-            f"The {version} version of PaddlePaddle is not supported. "
-            f"Please install one of the following versions of PaddlePaddle: {supported_versions}."
-        )
-
-
 if __name__ == '__main__':
-    check_paddle_version()
-
     pkgs, pkg_data = packages_and_package_data()
 
     s = setup(