|
@@ -165,28 +165,28 @@ comments: true
|
|
|
</thead>
|
|
</thead>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
-<td>SeaFormer_base(slice)</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_base(slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_base(slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
|
|
|
|
+<td>SeaFormer_base</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_base(slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_base(slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
<td>40.92</td>
|
|
<td>40.92</td>
|
|
|
<td>24.4073</td>
|
|
<td>24.4073</td>
|
|
|
<td>397.574</td>
|
|
<td>397.574</td>
|
|
|
<td>30.8 M</td>
|
|
<td>30.8 M</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
-<td>SeaFormer_large (slice)</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_large (slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_large (slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
|
|
|
|
+<td>SeaFormer_large</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_large (slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_large (slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
<td>43.66</td>
|
|
<td>43.66</td>
|
|
|
<td>27.8123</td>
|
|
<td>27.8123</td>
|
|
|
<td>550.464</td>
|
|
<td>550.464</td>
|
|
|
<td>49.8 M</td>
|
|
<td>49.8 M</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
-<td>SeaFormer_small (slice)</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_small (slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_small (slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
|
|
|
|
+<td>SeaFormer_small</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_small (slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_small (slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
<td>38.73</td>
|
|
<td>38.73</td>
|
|
|
<td>19.2295</td>
|
|
<td>19.2295</td>
|
|
|
<td>358.343</td>
|
|
<td>358.343</td>
|
|
|
<td>14.3 M</td>
|
|
<td>14.3 M</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
-<td>SeaFormer_tiny (slice)</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_tiny (slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_tiny (slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
|
|
|
|
+<td>SeaFormer_tiny</td><td><a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0b2/SeaFormer_tiny (slice)_infer.tar">Inference Model</a>/<a href="https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/SeaFormer_tiny (slice)_pretrained.pdparams">Trained Model</a></td>
|
|
|
<td>34.58</td>
|
|
<td>34.58</td>
|
|
|
<td>13.9496</td>
|
|
<td>13.9496</td>
|
|
|
<td>330.132</td>
|
|
<td>330.132</td>
|
|
@@ -206,12 +206,200 @@ from paddlex import create_model
|
|
|
model = create_model("PP-LiteSeg-T")
|
|
model = create_model("PP-LiteSeg-T")
|
|
|
output = model.predict("general_semantic_segmentation_002.png", batch_size=1)
|
|
output = model.predict("general_semantic_segmentation_002.png", batch_size=1)
|
|
|
for res in output:
|
|
for res in output:
|
|
|
- res.print(json_format=False)
|
|
|
|
|
|
|
+ res.print()
|
|
|
res.save_to_img("./output/")
|
|
res.save_to_img("./output/")
|
|
|
res.save_to_json("./output/res.json")
|
|
res.save_to_json("./output/res.json")
|
|
|
```
|
|
```
|
|
|
|
|
+
|
|
|
|
|
+运行后,得到的结果为:
|
|
|
|
|
+```bash
|
|
|
|
|
+{'res': "{'input_path': 'general_semantic_segmentation_002.png', 'pred': '...'}"}
|
|
|
|
|
+```
|
|
|
|
|
+运行结果参数含义如下:
|
|
|
|
|
+- `input_path`: 表示输入待预测图像的路径
|
|
|
|
|
+- `pred`: 语义分割模型实际预测的mask,由于数据过大不便于直接print,所以此处用`...`替换,可以通过`res.save_to_img()`将预测结果保存为图片,通过`res.save_to_json()`将预测结果保存为json文件。
|
|
|
|
|
+
|
|
|
|
|
+可视化图片如下:
|
|
|
|
|
+
|
|
|
|
|
+<img src="https://raw.githubusercontent.com/BluebirdStory/PaddleX_doc_images/main/images/modules/semantic_segmentation/general_semantic_segmentation_002_res.png">
|
|
|
|
|
+
|
|
|
|
|
+相关方法、参数等说明如下:
|
|
|
|
|
+
|
|
|
|
|
+* `create_model`实例化通用语义分割模型(此处以`PP-LiteSeg-T`为例),具体说明如下:
|
|
|
|
|
+<table>
|
|
|
|
|
+<thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<th>参数</th>
|
|
|
|
|
+<th>参数说明</th>
|
|
|
|
|
+<th>参数类型</th>
|
|
|
|
|
+<th>可选项</th>
|
|
|
|
|
+<th>默认值</th>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>model_name</code></td>
|
|
|
|
|
+<td>模型名称</td>
|
|
|
|
|
+<td><code>str</code></td>
|
|
|
|
|
+<td>无</td>
|
|
|
|
|
+<td><code>无</code></td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>model_dir</code></td>
|
|
|
|
|
+<td>模型存储路径</td>
|
|
|
|
|
+<td><code>str</code></td>
|
|
|
|
|
+<td>无</td>
|
|
|
|
|
+<td>无</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>target_size</code></td>
|
|
|
|
|
+<td>模型预测时分辨率</td>
|
|
|
|
|
+<td><code>int/tuple</code></td>
|
|
|
|
|
+<td><code>None/-1/int/tuple</code></td>
|
|
|
|
|
+<td><code>None</code></td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</table>
|
|
|
|
|
+
|
|
|
|
|
+* 其中,`model_name` 必须指定,指定 `model_name` 后,默认使用 PaddleX 内置的模型参数,在此基础上,指定 `model_dir` 时,使用用户自定义的模型。
|
|
|
|
|
+
|
|
|
|
|
+* `target_size`在初始化时指定模型推理时分辨率,默认为`None`。`-1`表示直接使用原图尺寸推理,`None`表示沿用上一层的设置,参数设置的优先级从高到低为:`predict参数传入 > create_model初始化传入 > yaml配置文件设置`。
|
|
|
|
|
+
|
|
|
|
|
+* 调用通用语义分割模型的 `predict()` 方法进行推理预测,`predict()` 方法参数有 `input` 、 `batch_size` 和 `target_size`,具体说明如下:
|
|
|
|
|
+
|
|
|
|
|
+<table>
|
|
|
|
|
+<thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<th>参数</th>
|
|
|
|
|
+<th>参数说明</th>
|
|
|
|
|
+<th>参数类型</th>
|
|
|
|
|
+<th>可选项</th>
|
|
|
|
|
+<th>默认值</th>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>input</code></td>
|
|
|
|
|
+<td>待预测数据,支持多种输入类型</td>
|
|
|
|
|
+<td><code>Python Var</code>/<code>str</code>/<code>dict</code>/<code>list</code></td>
|
|
|
|
|
+<td>
|
|
|
|
|
+<ul>
|
|
|
|
|
+ <li><b>Python变量</b>,如<code>numpy.ndarray</code>表示的图像数据</li>
|
|
|
|
|
+ <li><b>文件路径</b>,如图像文件的本地路径:<code>/root/data/img.jpg</code></li>
|
|
|
|
|
+ <li><b>URL链接</b>,如图像文件的网络URL:<a href = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_semantic_segmentation_001.png">示例</a></li>
|
|
|
|
|
+ <li><b>本地目录</b>,该目录下需包含待预测数据文件,如本地路径:<code>/root/data/</code></li>
|
|
|
|
|
+ <li><b>列表</b>,列表元素需为上述类型数据,如<code>[numpy.ndarray, numpy.ndarray]</code>,<code>[\"/root/data/img1.jpg\", \"/root/data/img2.jpg\"]</code>,<code>[\"/root/data1\", \"/root/data2\"]</code></li>
|
|
|
|
|
+</ul>
|
|
|
|
|
+</td>
|
|
|
|
|
+<td>无</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>batch_size</code></td>
|
|
|
|
|
+<td>批大小</td>
|
|
|
|
|
+<td><code>int</code></td>
|
|
|
|
|
+<td>任意整数</td>
|
|
|
|
|
+<td>1</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>target_size</code></td>
|
|
|
|
|
+<td>推理时图像的尺寸(W, H)</td>
|
|
|
|
|
+<td><code>int</code>/<code>tuple</code></td>
|
|
|
|
|
+<td>
|
|
|
|
|
+<ul>
|
|
|
|
|
+ <li><b>-1</b>,表示直接原图尺寸推理</li>
|
|
|
|
|
+ <li><b>None</b>,表示沿用上一层设置, 参数设置优先级从高到低为: <code>predict参数传入 > create_model初始化传入 > yaml配置文件设置</code></li>
|
|
|
|
|
+ <li><b>int</b>,如512,表示推理时使用<code>(512, 512)</code>分辨率</li>
|
|
|
|
|
+ <li><b>tuple</b>,如(512, 1024),表示推理时使用<code>(512, 1024)</code>分辨率</li>
|
|
|
|
|
+</ul>
|
|
|
|
|
+</td>
|
|
|
|
|
+<td>None</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</table>
|
|
|
|
|
+
|
|
|
|
|
+* 对预测结果进行处理,每个样本的预测结果均为`dict`类型,且支持打印、保存为图片、保存为`json`文件的操作:
|
|
|
|
|
+
|
|
|
|
|
+<table>
|
|
|
|
|
+<thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<th>方法</th>
|
|
|
|
|
+<th>方法说明</th>
|
|
|
|
|
+<th>参数</th>
|
|
|
|
|
+<th>参数类型</th>
|
|
|
|
|
+<th>参数说明</th>
|
|
|
|
|
+<th>默认值</th>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td rowspan = "3"><code>print()</code></td>
|
|
|
|
|
+<td rowspan = "3">打印结果到终端</td>
|
|
|
|
|
+<td><code>format_json</code></td>
|
|
|
|
|
+<td><code>bool</code></td>
|
|
|
|
|
+<td>是否对输出内容进行使用 <code>JSON</code> 缩进格式化</td>
|
|
|
|
|
+<td><code>True</code></td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>indent</code></td>
|
|
|
|
|
+<td><code>int</code></td>
|
|
|
|
|
+<td>指定缩进级别,以美化输出的 <code>JSON</code> 数据,使其更具可读性,仅当 <code>format_json</code> 为 <code>True</code> 时有效</td>
|
|
|
|
|
+<td>4</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>ensure_ascii</code></td>
|
|
|
|
|
+<td><code>bool</code></td>
|
|
|
|
|
+<td>控制是否将非 <code>ASCII</code> 字符转义为 <code>Unicode</code>。设置为 <code>True</code> 时,所有非 <code>ASCII</code> 字符将被转义;<code>False</code> 则保留原始字符,仅当<code>format_json</code>为<code>True</code>时有效</td>
|
|
|
|
|
+<td><code>False</code></td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td rowspan = "3"><code>save_to_json()</code></td>
|
|
|
|
|
+<td rowspan = "3">将结果保存为json格式的文件</td>
|
|
|
|
|
+<td><code>save_path</code></td>
|
|
|
|
|
+<td><code>str</code></td>
|
|
|
|
|
+<td>保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致</td>
|
|
|
|
|
+<td>无</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>indent</code></td>
|
|
|
|
|
+<td><code>int</code></td>
|
|
|
|
|
+<td>指定缩进级别,以美化输出的 <code>JSON</code> 数据,使其更具可读性,仅当 <code>format_json</code> 为 <code>True</code> 时有效</td>
|
|
|
|
|
+<td>4</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>ensure_ascii</code></td>
|
|
|
|
|
+<td><code>bool</code></td>
|
|
|
|
|
+<td>控制是否将非 <code>ASCII</code> 字符转义为 <code>Unicode</code>。设置为 <code>True</code> 时,所有非 <code>ASCII</code> 字符将被转义;<code>False</code> 则保留原始字符,仅当<code>format_json</code>为<code>True</code>时有效</td>
|
|
|
|
|
+<td><code>False</code></td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td><code>save_to_img()</code></td>
|
|
|
|
|
+<td>将结果保存为图像格式的文件</td>
|
|
|
|
|
+<td><code>save_path</code></td>
|
|
|
|
|
+<td><code>str</code></td>
|
|
|
|
|
+<td>保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致</td>
|
|
|
|
|
+<td>无</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</table>
|
|
|
|
|
+
|
|
|
|
|
+* 此外,也支持通过属性获取带结果的可视化图像和预测结果,具体如下:
|
|
|
|
|
+
|
|
|
|
|
+<table>
|
|
|
|
|
+<thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<th>属性</th>
|
|
|
|
|
+<th>属性说明</th>
|
|
|
|
|
+</tr>
|
|
|
|
|
+</thead>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td rowspan = "1"><code>json</code></td>
|
|
|
|
|
+<td rowspan = "1">获取预测的<code>json</code>格式的结果</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+<tr>
|
|
|
|
|
+<td rowspan = "1"><code>img</code></td>
|
|
|
|
|
+<td rowspan = "1">获取格式为<code>dict</code>的可视化图像</td>
|
|
|
|
|
+</tr>
|
|
|
|
|
+
|
|
|
|
|
+</table>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
关于更多 PaddleX 的单模型推理的 API 的使用方法,可以参考[PaddleX单模型Python脚本使用说明](../../instructions/model_python_API.md)。
|
|
关于更多 PaddleX 的单模型推理的 API 的使用方法,可以参考[PaddleX单模型Python脚本使用说明](../../instructions/model_python_API.md)。
|
|
|
|
|
|
|
|
|
|
+
|
|
|
## 四、二次开发
|
|
## 四、二次开发
|
|
|
如果你追求更高精度的现有模型,可以使用PaddleX的二次开发能力,开发更好的语义分割模型。在使用PaddleX开发语义分割模型之前,请务必安装PaddleX的图像分割相关的模型训练能力,安装过程可以参考 [PaddleX本地安装教程](../../../installation/installation.md)中的二次开发部分。
|
|
如果你追求更高精度的现有模型,可以使用PaddleX的二次开发能力,开发更好的语义分割模型。在使用PaddleX开发语义分割模型之前,请务必安装PaddleX的图像分割相关的模型训练能力,安装过程可以参考 [PaddleX本地安装教程](../../../installation/installation.md)中的二次开发部分。
|
|
|
|
|
|
|
@@ -423,7 +611,7 @@ python main.py -c paddlex/configs/semantic_segmentation/PP-LiteSeg-T.yaml \
|
|
|
|
|
|
|
|
1.<b>产线集成</b>
|
|
1.<b>产线集成</b>
|
|
|
|
|
|
|
|
-文档图像分类模块可以集成的PaddleX产线有[通用语义分割](../../../pipeline_usage/tutorials/cv_pipelines/semantic_segmentation.md),只需要替换模型路径即可完成文本检测模块的模型更新。在产线集成中,你可以使用高性能部署和服务化部署来部署你得到的模型。
|
|
|
|
|
|
|
+图像通用语义分割模块可以集成的PaddleX产线有[通用语义分割](../../../pipeline_usage/tutorials/cv_pipelines/semantic_segmentation.md),只需要替换模型路径即可完成图像通用语义分割模块的模型更新。在产线集成中,你可以使用高性能部署和服务化部署来部署你得到的模型。
|
|
|
|
|
|
|
|
2.<b>模块集成</b>
|
|
2.<b>模块集成</b>
|
|
|
|
|
|