diff --git a/docs/appendix/model_zoo.md b/docs/appendix/model_zoo.md index 16d51ad69cc5ed7d28907687f8d1f88392a42c30..811c6f745fba0de095a84f7a1b5ae0b1d526b6ec 100644 --- a/docs/appendix/model_zoo.md +++ b/docs/appendix/model_zoo.md @@ -59,7 +59,7 @@ |[MaskRCNN-ResNet18-FPN](https://bj.bcebos.com/paddlex/pretrained_weights/mask_rcnn_r18_fpn_1x.tar) | 189.1MB | - | 33.6 | 30.5 | |[MaskRCNN-ResNet50](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_2x.tar) | 143.9MB | 87 | 38.2 | 33.4 | |[MaskRCNN-ResNet50-FPN](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_2x.tar)| 177.7MB | 63.9 | 38.7 | 34.7 | -|[MaskRCNN-ResNet50_vd-FPN](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_vd_fpn_2x.tar) | 177.7MB | 63.1 | 39.8 || 35.4 | +|[MaskRCNN-ResNet50_vd-FPN](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_vd_fpn_2x.tar) | 177.7MB | 63.1 | 39.8 | 35.4 | |[MaskRCNN-ResNet101-FPN](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_fpn_1x.tar) | 253.6MB | 77 | 39.5 | 35.2 | |[MaskRCNN-ResNet101_vd-FPN](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_vd_fpn_1x.tar) | 253.7MB | 76.4 | 41.4 | 36.8 | |[MaskRCNN-HRNet_W18-FPN](https://bj.bcebos.com/paddlex/pretrained_weights/mask_rcnn_hrnetv2p_w18_2x.tar) | 120.7MB | - | 38.7 | 34.7 | diff --git a/docs/appendix/slim_model_zoo.md b/docs/appendix/slim_model_zoo.md index a594d53dd7a777288571ccae6fad5ec21415de36..b43f415fad0b15584b2c7903a83996e3d9330312 100644 --- a/docs/appendix/slim_model_zoo.md +++ b/docs/appendix/slim_model_zoo.md @@ -40,14 +40,14 @@ ### 剪裁 -PaddleLite推理耗时说明: +Paddle Lite推理耗时说明: 环境:Qualcomm SnapDragon 845 + armv8 速度指标:Thread1/Thread2/Thread4耗时 -| 模型 | 压缩策略 | Top-1 | 存储体积 |PaddleLite推理耗时|TensorRT推理速度(FPS)| +| 模型 | 压缩策略 | Top-1 | 存储体积 |Paddle Lite推理耗时|TensorRT推理速度(FPS)| |:--:|:---:|:--:|:--:|:--:|:--:| | MobileNetV1 | 无 | 70.99% | 17MB | 66.052\35.8014\19.5762|-| | MobileNetV1 | 剪裁 -30% | 70.4% (-0.59%) | 12MB | 46.5958\25.3098\13.6982|-| @@ -70,13 +70,13 @@ PaddleLite推理耗时说明: 数据集:Pasacl VOC & COCO2017 -PaddleLite推理耗时说明: +Paddle Lite推理耗时说明: 环境:Qualcomm SnapDragon 845 + armv8 速度指标:Thread1/Thread2/Thread4耗时 -| 模型 | 压缩策略 | 数据集 | Image/GPU | 输入608 Box mmAP | 存储体积 | PaddleLite推理耗时(ms)(608*608) | TensorRT推理速度(FPS)(608*608) | +| 模型 | 压缩策略 | 数据集 | Image/GPU | 输入608 Box mmAP | 存储体积 | Paddle Lite推理耗时(ms)(608*608) | TensorRT推理速度(FPS)(608*608) | | :----------------------------: | :---------------: | :--------: | :-------: | :------------: | :----------: | :--------------: | :--------------: | | MobileNet-V1-YOLOv3 | 无 | Pascal VOC | 8 | 76.2 | 94MB | 1238\796.943\520.101|60.04| | MobileNet-V1-YOLOv3 | 剪裁 -52.88% | Pascal VOC | 8 | 77.6 (+1.4) | 31MB | 602.497\353.759\222.427 |99.36| @@ -108,14 +108,14 @@ PaddleLite推理耗时说明: ### 剪裁 -PaddleLite推理耗时说明: +Paddle Lite推理耗时说明: 环境:Qualcomm SnapDragon 845 + armv8 速度指标:Thread1/Thread2/Thread4耗时 -| 模型 | 压缩方法 | mIoU | 存储体积 | PaddleLite推理耗时 | TensorRT推理速度(FPS) | +| 模型 | 压缩方法 | mIoU | 存储体积 | Paddle Lite推理耗时 | TensorRT推理速度(FPS) | | :-------: | :---------------: | :-----------: | :------: | :------------: | :----: | | FastSCNN | 无 | 69.64 | 11MB | 1226.36\682.96\415.664 |39.53| | FastSCNN | 剪裁 -47.60% | 66.68 (-2.96) | 5.7MB | 866.693\494.467\291.748 |51.48| diff --git a/docs/change_log.md b/docs/change_log.md index bf1da23bcbd9facb293afa20a020a879ca90647d..08e95f7d5f2463fe60e1012d59dbe8a07b3173b5 100644 --- a/docs/change_log.md +++ b/docs/change_log.md @@ -10,7 +10,7 @@ > - 集成X2Paddle,PaddleX所有分类模型和语义分割模型支持导出为ONNX协议 - 模型部署更新 > - 模型加密增加支持Windows平台 -> - 新增Jetson、PaddleLite模型部署预测方案 +> - 新增Jetson、Paddle Lite模型部署预测方案 > - C++部署代码新增batch批预测,并采用OpenMP对预处理进行并行加速 - 新增2个PaddleX产业案例 > - [人像分割案例]() diff --git a/docs/data/annotation.md b/docs/data/annotation.md index 646066545cd276cae5c1bf0b12af07edb56d8d49..0220ca8ec765635d31a2f7f93d12ce3cb8c9bc5e 100755 --- a/docs/data/annotation.md +++ b/docs/data/annotation.md @@ -4,8 +4,7 @@ PaddleX支持图像分类、目标检测、实例分割和语义分割四大视 ## 常见标注工具 -> 图像分类无需标注工具,用户只需以txt文件记录每张图片的类别标签即可。 -> 对于目标检测、实例分割和语义分割,PaddleX已经与主流的标注工具进行了适配,用户可根据自己的需求,选择以下标注工具进行数据标注。 + 图像分类无需标注工具,用户只需以txt文件记录每张图片的类别标签即可。对于目标检测、实例分割和语义分割,PaddleX已经与主流的标注工具进行了适配,用户可根据自己的需求,选择以下标注工具进行数据标注。 | 标注工具 | 图像分类 | 目标检测 | 实例分割 | 语义分割 | 安装 | | :--------- | :------- | :------ | :------ | :------- | :----------------------------------------------- | @@ -15,22 +14,26 @@ PaddleX支持图像分类、目标检测、实例分割和语义分割四大视 数据标注完成后,参照如下流程,将标注数据转为可用PaddleX模型训练的数据组织格式。 -> *注*:精灵标注的目标检测数据可以在工具内部导出为PascalVOC格式,因此paddlex未提供精灵标注数据到PascalVOC格式的转换 +***注意**:精灵标注的目标检测数据可以在工具内部导出为PascalVOC格式,因此paddlex未提供精灵标注数据到PascalVOC格式的转换 ## 标注数据格式转换 -目前所有标注工具,生成的标注文件,均为与原图同名的json格式文件,如`1.jpg`在标注完成后,则会在标注文件保存的目录生成`1.json`文件。转换时参照以下步骤 -> 1. 将所有的原图文件放在同一个目录下,如`pics`目录 -> 2. 将所有的标注json文件放在同一个目录下,如`annotations`目录 -> 3. 使用如下命令进行转换 +目前所有标注工具生成的标注文件,均为与原图同名的json格式文件,如`1.jpg`在标注完成后,则会在标注文件保存的目录中生成`1.json`文件。转换时参照以下步骤: -> *注*:精灵标注的目标检测数据可以在工具内部导出为PascalVOC格式,因此paddlex未提供精灵标注数据到PascalVOC格式的转换 +1. 将所有的原图文件放在同一个目录下,如`pics`目录 +2. 将所有的标注json文件放在同一个目录下,如`annotations`目录 +3. 使用如下命令进行转换: ``` paddlex --data_conversion --source labelme --to PascalVOC --pics ./pics --annotations ./annotations --save_dir ./converted_dataset_dir ``` -> `--source`表示数据标注来源,支持`labelme`、`jingling`和`easydata`(分别表示数据来源于LabelMe,精灵标注助手和EasyData) -> `--to`表示数据需要转换成为的格式,支持`ImageNet`(图像分类)、`PascalVOC`(目标检测),`MSCOCO`(实例分割,也可用于目标检测)和`SEG`(语义分割) -> `--pics`指定原图所在的目录路径 -> `--annotations`指定标注文件所在的目录路径 + +| 参数 | 说明 | +| ---- | ---- | +| --source | 表示数据标注来源,支持`labelme`、`jingling`和`easydata`(分别表示数据来源于LabelMe,精灵标注助手和EasyData)| +| --to | 表示数据需要转换成为的格式,支持`ImageNet`(图像分类)、`PascalVOC`(目标检测),`MSCOCO`(实例分割,也可用于目标检测)和`SEG`(语义分割) | +| --pics | 指定原图所在的目录路径 | +| --annotations | 指定标注文件所在的目录路径 | + +**注意**:精灵标注的目标检测数据可以在工具内部导出为PascalVOC格式,因此paddlex未提供精灵标注数据到PascalVOC格式的转换 diff --git a/docs/deploy/paddlelite/android.md b/docs/deploy/paddlelite/android.md index 3f6ce154c2b225433624d48a8665fcd63aa08e08..88c0e04bfab6de691b311df691dd387b2696607d 100644 --- a/docs/deploy/paddlelite/android.md +++ b/docs/deploy/paddlelite/android.md @@ -1,12 +1,12 @@ # Android平台 -PaddleX的安卓端部署由PaddleLite实现,部署的流程如下,首先将训练好的模型导出为inference model,然后对模型进行优化,最后使用PaddleLite的预测库进行部署,PaddleLite的详细介绍和使用可参考:[PaddleLite文档](https://paddle-lite.readthedocs.io/zh/latest/) +PaddleX的安卓端部署由Paddle Lite实现,部署的流程如下,首先将训练好的模型导出为inference model,然后对模型进行优化,最后使用Paddle Lite的预测库进行部署,Paddle Lite的详细介绍和使用可参考:[Paddle Lite文档](https://paddle-lite.readthedocs.io/zh/latest/) -> PaddleX --> Inference Model --> PaddleLite Opt --> PaddleLite Inference +> PaddleX --> Inference Model --> Paddle Lite Opt --> Paddle Lite Inference 文章简介: - 1.介绍如何将PaddleX导出为inference model -- 2.使用PaddleLite的OPT模块对模型进行优化 +- 2.使用Paddle Lite的OPT模块对模型进行优化 - 3.介绍基于PaddleX Android SDK的安卓demo,以及如何快速部署训练好的模型 - 4.介绍PaddleX Android SDK和二次开发 @@ -14,11 +14,11 @@ PaddleX的安卓端部署由PaddleLite实现,部署的流程如下,首先将 参考[导出inference模型](../export_model.md)将模型导出为inference格式模型。 -## 2. 将inference模型优化为PaddleLite模型 +## 2. 将inference模型优化为Paddle Lite模型 -目前提供了两种方法将Paddle模型优化为PaddleLite模型: +目前提供了两种方法将Paddle模型优化为Paddle Lite模型: -- 1.python脚本优化模型,简单上手,目前支持最新的PaddleLite 2.6.1版本 +- 1.python脚本优化模型,简单上手,目前支持最新的Paddle Lite 2.6.1版本 - 2.bin文件优化模型(linux),支持develop版本(Commit Id:11cbd50e),适用于部署`DeepLab模型`和`Unet模型`的用户。 ### 2.1 使用python脚本优化模型 @@ -87,11 +87,11 @@ PaddleX提供了一个基于Mobilenetv2模型和PaddleX Android SDK的安卓demo ## 4. PaddleX Android SDK和二次开发 -PaddleX Android SDK是PaddleX基于Paddle-Lite开发的安卓端AI推理工具,以PaddleX导出的Yaml配置文件为接口,针对不同的模型实现图片的预处理,后处理,并进行可视化,开发者可集成到业务中。 -该SDK自底向上主要包括:Paddle-Lite推理引擎层,Paddle-Lite接口层以及PaddleX业务层。 +PaddleX Android SDK是PaddleX基于Paddle Lite开发的安卓端AI推理工具,以PaddleX导出的Yaml配置文件为接口,针对不同的模型实现图片的预处理,后处理,并进行可视化,开发者可集成到业务中。 +该SDK自底向上主要包括:Paddle Lite推理引擎层,Paddle Lite接口层以及PaddleX业务层。 -- Paddle-Lite推理引擎层,是在Android上编译好的二进制包,只涉及到Kernel 的执行,且可以单独部署,以支持极致的轻量级部署。 -- Paddle-Lite接口层,以Java接口封装了底层c++推理库。 +- Paddle Lite推理引擎层,是在Android上编译好的二进制包,只涉及到Kernel 的执行,且可以单独部署,以支持极致的轻量级部署。 +- Paddle Lite接口层,以Java接口封装了底层c++推理库。 - PaddleX业务层,封装了PaddleX导出模型的预处理,推理和后处理,以及可视化,支持PaddleX导出的检测、分割、分类模型。  diff --git a/docs/deploy/paddlelite/index.rst b/docs/deploy/paddlelite/index.rst index f10931a72b57774630f5aaf1b3dbea4ec3be0acf..f5b08811134dd66602db7122ec15f6f8a54353d3 100755 --- a/docs/deploy/paddlelite/index.rst +++ b/docs/deploy/paddlelite/index.rst @@ -1,4 +1,4 @@ -PaddleLite移动端部署 +Paddle Lite移动端部署 ======================================= diff --git a/docs/deploy/paddlelite/slim/prune.md b/docs/deploy/paddlelite/slim/prune.md index f734308e5022d90d99d5b0ace089108f3d170b13..acf89ad31df59946f819a6e7eedfac717d914bf1 100644 --- a/docs/deploy/paddlelite/slim/prune.md +++ b/docs/deploy/paddlelite/slim/prune.md @@ -1,6 +1,6 @@ # 模型裁剪 -为了更好地满足端侧部署场景下,低内存带宽、低功耗、低计算资源占用以及低模型存储等需求,PaddleX通过集成PaddleSlim实现`模型裁剪`,可提升PaddleLite端侧部署性能。 +为了更好地满足端侧部署场景下,低内存带宽、低功耗、低计算资源占用以及低模型存储等需求,PaddleX通过集成PaddleSlim实现`模型裁剪`,可提升Paddle Lite端侧部署性能。 ## 原理介绍 diff --git a/docs/deploy/paddlelite/slim/quant.md b/docs/deploy/paddlelite/slim/quant.md index bbb16713e510eccde6332dd18c432ce3ec586d9b..cb0558c0d1fbf2e321ca434313349c7f4b5c3c3f 100644 --- a/docs/deploy/paddlelite/slim/quant.md +++ b/docs/deploy/paddlelite/slim/quant.md @@ -1,6 +1,6 @@ # 模型量化 -为了更好地满足端侧部署场景下,低内存带宽、低功耗、低计算资源占用以及低模型存储等需求,PaddleX通过集成PaddleSlim实现`模型量化`,可提升PaddleLite端侧部署性能。 +为了更好地满足端侧部署场景下,低内存带宽、低功耗、低计算资源占用以及低模型存储等需求,PaddleX通过集成PaddleSlim实现`模型量化`,可提升Paddle Lite端侧部署性能。 ## 原理介绍 定点量化使用更少的比特数(如8-bit、3-bit、2-bit等)表示神经网络的权重和激活值,从而加速模型推理速度。PaddleX提供了训练后量化技术,其原理可参见[训练后量化原理](https://paddlepaddle.github.io/PaddleSlim/algo/algo.html#id14),该量化使用KL散度确定量化比例因子,将FP32模型转成INT8模型,且不需要重新训练,可以快速得到量化模型。 diff --git a/docs/examples/human_segmentation.md b/docs/examples/human_segmentation.md index 014b22bdecf9cce219f6dffc07f7d1e59108b703..b4c707709c9ea0304a44daec085ea4fa1ca2678c 100644 --- a/docs/examples/human_segmentation.md +++ b/docs/examples/human_segmentation.md @@ -1,6 +1,6 @@ # 人像分割模型 -本教程基于PaddleX核心分割模型实现人像分割,开放预训练模型和测试数据、支持视频流人像分割、提供模型Fine-tune到Paddle-Lite移动端部署的全流程应用指南。 +本教程基于PaddleX核心分割模型实现人像分割,开放预训练模型和测试数据、支持视频流人像分割、提供模型Fine-tune到Paddle Lite移动端部署的全流程应用指南。 ## 预训练模型和测试数据 @@ -243,15 +243,15 @@ python quant_offline.py --model_dir output/best_model \ * `--save_dir`: 量化模型保存路径 * `--image_shape`: 网络输入图像大小(w, h) -## Paddle-Lite移动端部署 +## Paddle Lite移动端部署 -本案例将人像分割模型在移动端进行部署,部署流程展示如下,通用的移动端部署流程参见[PaddleLite移动端部署](../../docs/deploy/paddlelite/android.md)。 +本案例将人像分割模型在移动端进行部署,部署流程展示如下,通用的移动端部署流程参见[Paddle Lite移动端部署](../../docs/deploy/paddlelite/android.md)。 ### 1. 将PaddleX模型导出为inference模型 本案例使用humanseg_mobile_quant预训练模型,该模型已经是inference模型,不需要再执行模型导出步骤。如果不使用预训练模型,则执行上一章节`模型训练`中的`模型导出`将自己训练的模型导出为inference格式。 -### 2. 将inference模型优化为PaddleLite模型 +### 2. 将inference模型优化为Paddle Lite模型 下载并解压 [模型优化工具opt](https://bj.bcebos.com/paddlex/deploy/lite/model_optimize_tool_11cbd50e.tar.gz),进入模型优化工具opt所在路径后,执行以下命令: diff --git a/docs/examples/images/PaddleX_Panorama.png b/docs/examples/images/PaddleX_Panorama.png index d53d7adc1f0c51a5c69b7fbfcc73699e8df2d297..363630673daa837420450c27f49b690bf0094349 100644 Binary files a/docs/examples/images/PaddleX_Panorama.png and b/docs/examples/images/PaddleX_Panorama.png differ diff --git a/docs/install.md b/docs/install.md index f087632aaf65e55279b43bdcdd40223c93886c66..082d327a606ef52332c3c9d614edc1b878729f4a 100755 --- a/docs/install.md +++ b/docs/install.md @@ -4,7 +4,7 @@ ## pip安装 -> 注意其中pycocotools在Windows安装较为特殊,可参考下面的Windows安装命令 +注意其中pycocotools在Windows安装较为特殊,可参考下面的Windows安装命令 ``` pip install paddlex -i https://mirror.baidu.com/pypi/simple @@ -28,15 +28,17 @@ python setup.py install ## pycocotools安装问题 -> PaddleX依赖pycocotools包,如安装pycocotools失败,可参照如下方式安装pycocotools +PaddleX依赖pycocotools包,如安装pycocotools失败,可参照如下方式安装pycocotools + +* Windows安装时可能会提示缺少`Microsoft Visual C++ 2015 build tools`,[点击下载VC build tools](https://go.microsoft.com/fwlink/?LinkId=691126)安装再执行如下pip命令 -> Windows安装时可能会提示缺少`Microsoft Visual C++ 2015 build tools`,[点击下载VC build tools](https://go.microsoft.com/fwlink/?LinkId=691126)安装再执行如下pip命令 ``` pip install cython pip install git+https://gitee.com/jiangjiajun/philferriere-cocoapi.git#subdirectory=PythonAPI ``` -> Linux/Mac系统下,直接使用pip安装如下两个依赖即可 +* Linux/Mac系统下,直接使用pip安装如下两个依赖即可 + ``` pip install cython pip install pycocotools diff --git a/docs/quick_start.md b/docs/quick_start.md index a91df68373dd1f29faba7d184f93624e24a429db..bd4a1960da89d599cf5b1d66a54ea7ba58709871 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -37,7 +37,7 @@ tar xzvf vegetables_cls.tar.gz **3. 定义训练/验证图像处理流程transforms** -由于训练时数据增强操作的加入,因此模型在训练和验证过程中,数据处理流程需要分别进行定义。如下所示,代码在`train_transforms`中加入了[RandomCrop](apis/transforms/cls_transforms.html#randomcrop)和[RandomHorizontalFlip](apis/transforms/cls_transforms.html#randomhorizontalflip)两种数据增强方式, 更多方法可以参考[数据增强文档](apis/transforms/augment.md)。 +因为训练时加入了数据增强操作,因此在训练和验证过程中,模型的数据处理流程需要分别进行定义。如下所示,代码在`train_transforms`中加入了[RandomCrop](apis/transforms/cls_transforms.html#randomcrop)和[RandomHorizontalFlip](apis/transforms/cls_transforms.html#randomhorizontalflip)两种数据增强方式, 更多方法可以参考[数据增强文档](apis/transforms/augment.md)。 ``` from paddlex.cls import transforms train_transforms = transforms.Compose([ @@ -93,13 +93,13 @@ model.train(num_epochs=20, **6. 训练过程使用VisualDL查看训练指标变化** -模型在训练过程中,训练指标和在验证集上的指标,均会以标准输出流形式,输出到命令终端。在用户设定`use_vdl=True`的前提下,也会使用VisualDL格式打点到`save_dir`目录下的`vdl_log`文件夹,用户可都终端通过如下命令启动visualdl,查看可视化的指标变化趋势。 +训练过程中,模型在训练集和验证集上的指标均会以标准输出流形式输出到命令终端。当用户设定`use_vdl=True`时,也会使用VisualDL格式将指标打点到`save_dir`目录下的`vdl_log`文件夹,在终端运行如下命令启动visualdl并查看可视化的指标变化情况。 ``` visualdl --logdir output/mobilenetv3_small_ssld --port 8001 ``` 服务启动后,通过浏览器打开https://0.0.0.0:8001或https://localhost:8001即可。 -> 如果您使用的是AIStudio平台进行训练,不能通过此方式启动visualdl,请参考AIStudio VisualDL启动教程使用 +如果您使用的是AIStudio平台进行训练,不能通过此方式启动visualdl,请参考AIStudio VisualDL启动教程使用 **7. 加载训练保存的模型预测** diff --git a/docs/train/classification.md b/docs/train/classification.md index d32c7bf62c4c61cc6263da60c1f5d525bb14682b..76c947e8dda482d7c78d952ba2c593e61feadfd3 100644 --- a/docs/train/classification.md +++ b/docs/train/classification.md @@ -8,7 +8,7 @@ PaddleX共提供了20+的图像分类模型,可满足开发者不同场景的 - **预测速度**:单张图片的预测用时(不包括预处理和后处理) - "-"表示指标暂未更新 -| 模型(点击获取代码) | Top1精度 | 模型大小 | GPU预测速度 | Arm预测速度 | 备注 | +| 模型(点击获取代码) | Top1精度 | 模型大小 | GPU预测速度 | Arm预测速度 | 备注 | | :---------------- | :------- | :------- | :--------- | :--------- | :----- | | [MobileNetV3_small_ssld](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/image_classification/mobilenetv3_small_ssld.py) | 71.3% | 21.0MB | 6.809ms | - | 模型小,预测速度快,适用于低性能或移动端设备 | | [MobileNetV2](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/image_classification/mobilenetv2.py) | 72.2% | 14.0MB | 4.546ms | - | 模型小,预测速度快,适用于低性能或移动端设备 | @@ -18,11 +18,11 @@ PaddleX共提供了20+的图像分类模型,可满足开发者不同场景的 ## 开始训练 -> 代码保存到本地后,即可直接训练,**训练代码会自动下载训练数据开始训练** -> > 如保存为`mobilenetv3_small_ssld.py`,如下命令即可开始训练 -> > ``` -> > python mobilenetv3_small_ssld.py -> > ``` +将代码保存到本地后运行(代码下载链接位于上面的表格),**代码会自动下载训练数据并开始训练**。如保存为`mobilenetv3_small_ssld.py`,执行如下命令即可开始训练: + +``` +python mobilenetv3_small_ssld.py +``` ## 相关文档 diff --git a/docs/train/images/deeplab_predict.jpg b/docs/train/images/deeplab_predict.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb71b963724e99de8a75509b311d301a50b003e4 Binary files /dev/null and b/docs/train/images/deeplab_predict.jpg differ diff --git a/docs/train/images/test.jpg b/docs/train/images/test.jpg new file mode 100755 index 0000000000000000000000000000000000000000..0c4f58e304176bae537f8c0a5b399db2443c7541 Binary files /dev/null and b/docs/train/images/test.jpg differ diff --git a/docs/train/index.rst b/docs/train/index.rst index 1e3124e30691d18f082d1576a8d0c2e35bcdf2be..54a8a1a7d39019a33a87d1c94ce04b76eb6fb8e8 100755 --- a/docs/train/index.rst +++ b/docs/train/index.rst @@ -1,7 +1,7 @@ 模型训练 ======================================= -PaddleX集成了PaddleClas、PaddleDetection和PaddleSeg三大CV工具套件中,在工业领域应用成熟的模型,并提供了统一,易用的API使用接口,帮助用户快速完成视觉领域的图像分类、目标检测、实例分割和语义分割模型的训练。 +PaddleX集成了PaddleClas、PaddleDetection和PaddleSeg三大CV工具套件中在工业领域应用成熟的模型,并提供了统一易用的API使用接口,帮助用户快速完成视觉领域的图像分类、目标检测、实例分割和语义分割模型的训练。 .. toctree:: diff --git a/docs/train/instance_segmentation.md b/docs/train/instance_segmentation.md index 8f6a1ec1d48a1cb239df0e24d68c3457def3ff70..2a6c5b01e5150eebefd26a4e6229c5dc8455ea31 100644 --- a/docs/train/instance_segmentation.md +++ b/docs/train/instance_segmentation.md @@ -2,7 +2,7 @@ ## 介绍 -PaddleX目前提供了MaskRCNN实例分割模型结构,多种backbone模型,可满足开发者不同场景和性能的需求。 +PaddleX目前提供了MaskRCNN实例分割模型结构,多种backbone模型,可满足开发者不同场景和性能的需求。 - **Box MMAP/Seg MMAP**: 模型在COCO数据集上的测试精度 - **预测速度**:单张图片的预测用时(不包括预处理和后处理) @@ -17,11 +17,11 @@ PaddleX目前提供了MaskRCNN实例分割模型结构,多种backbone模型, ## 开始训练 -> 代码保存到本地后,即可直接训练,**训练代码会自动下载训练数据开始训练** -> > 如保存为`mask_r50_fpn.py`,如下命令即可开始训练 -> > ``` -> > python mask_r50_fpn.py -> > ``` +将代码保存到本地后运行(代码下载链接位于上面表格中),**代码会自动下载训练数据并开始训练**。如保存为`mask_rcnn_r50_fpn.py`,执行如下命令即可开始训练: + +``` +python mask_rcnn_r50_fpn.py +``` ## 相关文档 diff --git a/docs/train/object_detection.md b/docs/train/object_detection.md index 8a8ddcde3b15f233ac8286091ef71cfba81b7643..62888ceaae5876ffc6fc04036edf22855accf45b 100644 --- a/docs/train/object_detection.md +++ b/docs/train/object_detection.md @@ -2,13 +2,13 @@ ## 介绍 -PaddleX目前提供了FasterRCNN和YOLOv3两种检测结构,多种backbone模型,可满足开发者不同场景和性能的需求。 +PaddleX目前提供了FasterRCNN和YOLOv3两种检测结构,多种backbone模型,可满足开发者不同场景和性能的需求。 - **Box MMAP**: 模型在COCO数据集上的测试精度 - **预测速度**:单张图片的预测用时(不包括预处理和后处理) - "-"表示指标暂未更新 -| 模型(点击获取代码) | Box MMAP | 模型大小 | GPU预测速度 | Arm预测速度 | 备注 | +| 模型(点击获取代码) | Box MMAP | 模型大小 | GPU预测速度 | Arm预测速度 | 备注 | | :---------------- | :------- | :------- | :--------- | :--------- | :----- | | [YOLOv3-MobileNetV1](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_mobilenetv1.py) | 29.3% | 99.2MB | 15.442ms | - | 模型小,预测速度快,适用于低性能或移动端设备 | | [YOLOv3-MobileNetV3](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_mobilenetv3.py) | 31.6% | 100.7MB | 143.322ms | - | 模型小,移动端上预测速度有优势 | @@ -20,11 +20,11 @@ PaddleX目前提供了FasterRCNN和YOLOv3两种检测结构,多种backbone模型 ## 开始训练 -> 代码保存到本地后,即可直接训练,**训练代码会自动下载训练数据开始训练** -> > 如保存为`yolov3_mobilenetv1.py`,如下命令即可开始训练 -> > ``` -> > python yolov3_mobilenetv1.py -> > ``` +将代码保存到本地后运行(代码下载链接位于上面的表格),**代码会自动下载训练数据并开始训练**。如保存为`yolov3_mobilenetv1.py`,执行如下命令即可开始训练: + +``` +python yolov3_mobilenetv1.py +``` ## 相关文档 diff --git a/docs/train/prediction.md b/docs/train/prediction.md index 927e47d96c24f1b4df04139a6db3bdce5437accb..d5b00ecdda263bc883f87020d937561264c09470 100644 --- a/docs/train/prediction.md +++ b/docs/train/prediction.md @@ -2,11 +2,12 @@ PaddleX可以使用`paddlex.load_model`接口加载模型(包括训练过程中保存的模型,导出的部署模型,量化模型以及裁剪的模型)进行预测,同时PaddleX中也内置了一系列的可视化工具函数,帮助用户方便地检查模型的效果。 -> 注意:使用`paddlex.load_model`接口加载仅用于模型预测,如需要在此模型基础上继续训练,可以将该模型作为预训练模型进行训练,具体做法是在训练代码中,将train函数中的`pretrain_weights`参数指定为预训练模型路径。 +**注意**:使用`paddlex.load_model`接口加载仅用于模型预测,如需要在此模型基础上继续训练,可以将该模型作为预训练模型进行训练,具体做法是在训练代码中,将train函数中的`pretrain_weights`参数指定为预训练模型路径。 ## 图像分类 -> [点击下载](https://bj.bcebos.com/paddlex/models/mobilenetv3_small_ssld_imagenet.tar.gz)如下示例代码中模型 +[点击下载](https://bj.bcebos.com/paddlex/models/mobilenetv3_small_ssld_imagenet.tar.gz)如下示例代码中的模型 + ``` import paddlex as pdx test_jpg = 'mobilenetv3_small_ssld_imagenet/test.jpg' @@ -14,19 +15,22 @@ model = pdx.load_model('mobilenetv3_small_ssld_imagenet') result = model.predict(test_jpg) print("Predict Result: ", result) ``` -结果输入如下 +结果输出如下: ``` -Predict Result: [{'category_id': 21, 'category': 'killer_whale', 'score': 0.8262267}] +Predict Result: [{'category_id': 549, 'category': 'envelope', 'score': 0.29062933}] ``` -测试图片如下 +测试图片如下: + + - 分类模型predict接口[说明文档](../apis/models/classification.html#predict) ## 目标检测 -> [点击下载](https://bj.bcebos.com/paddlex/models/yolov3_mobilenetv1_coco.tar.gz)如下示例代码中模型 +[点击下载](https://bj.bcebos.com/paddlex/models/yolov3_mobilenetv1_coco.tar.gz)如下示例代码中模型 + ``` import paddlex as pdx test_jpg = 'yolov3_mobilenetv1_coco/test.jpg' @@ -45,7 +49,8 @@ pdx.det.visualize(test_jpg, result, threshold=0.3, save_dir='./') ## 实例分割 -> [点击下载](https://bj.bcebos.com/paddlex/models/mask_r50_fpn_coco.tar.gz)如下示例代码中模型 +[点击下载](https://bj.bcebos.com/paddlex/models/mask_r50_fpn_coco.tar.gz)如下示例代码中模型 + ``` import paddlex as pdx test_jpg = 'mask_r50_fpn_coco/test.jpg' @@ -60,20 +65,24 @@ pdx.det.visualize(test_jpg, result, threshold=0.5, save_dir='./') - MaskRCNN模型predict接口[说明文档](../apis/models/instance_segmentation.html#predict) - 可视化pdx.det.visualize接口[说明文档](../apis/visualize.html#paddlex-det-visualize) -> 注意:目标检测和实例分割模型在调用`predict`接口得到的结果需用户自行过滤低置信度结果,在`paddlex.det.visualize`接口中,我们提供了`threshold`用于过滤,置信度低于此值的结果将被过滤,不会可视化。 +**注意**:目标检测和实例分割模型在调用`predict`接口得到的结果需用户自行过滤低置信度结果,在`paddlex.det.visualize`接口中,我们提供了`threshold`用于过滤,置信度低于此值的结果将被过滤,不会可视化。  ## 语义分割 + +[点击下载](https://bj.bcebos.com/paddlex/models/deeplabv3p_mobilenetv2_voc.tar.gz)如下示例代码中模型 + ``` import paddlex as pdx -test_jpg = './deeplabv3p_mobilenetv2_coco/test.jpg' -model = pdx.load_model('./deeplabv3p_mobilenetv2_coco') +test_jpg = './deeplabv3p_mobilenetv2_voc/test.jpg' +model = pdx.load_model('./deeplabv3p_mobilenetv2_voc') result = model.predict(test_jpg) -pdx.seg.visualize(test_jpg, result, weight=0.0, save_dir='./') +pdx.seg.visualize(test_jpg, result, weight=0.6, save_dir='./') ``` -在上述示例代码中,通过调用`paddlex.seg.visualize`可以对语义分割的预测结果进行可视化,可视化的结果保存在`save_dir`下。其中`weight`参数用于调整预测结果和原图结果融合展现时的权重,0.0时只展示预测结果mask的可视化,1.0时只展示原图可视化。 +在上述示例代码中,通过调用`paddlex.seg.visualize`可以对语义分割的预测结果进行可视化,可视化的结果保存在`save_dir`下,见下图。其中`weight`参数用于调整预测结果和原图结果融合展现时的权重,0.0时只展示预测结果mask的可视化,1.0时只展示原图可视化。 + ## 公开数据集训练模型下载 @@ -88,10 +97,10 @@ PaddleX提供了部分公开数据集上训练好的模型,用户可以直接 | 目标检测 | [YOLOv3-DarkNet53](https://bj.bcebos.com/paddlex/models/yolov3_darknet53_coco.tar.gz) | MSCOCO | 266MMB | Box MAP | 34.8% | | 目标检测 | [YOLOv3-MobileNetV3](https://bj.bcebos.com/paddlex/models/yolov3_mobilenetv3_coco.tar.gz) | MSCOCO | 101MB | Box MAP | 31.6% | | 实例分割 | [MaskRCNN-ResNet50-FPN](https://bj.bcebos.com/paddlex/models/mask_r50_fpn_coco.tar.gz) | MSCOCO | 193MB | Box MAP/Seg MAP | 38.7% / 34.7% | -| 语义分割 | DeepLabv3p-Xception65 | 人像分割 | - | mIoU | - | -| 语义分割 | HRNet_w18_small | 人像分割 | - | mIou | - | +| 语义分割 | [DeepLabv3p-Xception65](https://bj.bcebos.com/paddlex/examples/human_seg/models/humanseg_server_params.tar) | 人像分割 | - | mIoU | - | +| 语义分割 | [HRNet_w18_small](https://bj.bcebos.com/paddlex/examples/human_seg/models/humanseg_mobile_params.tar) | 人像分割 | - | mIou | - | -PaddleX的`load_model`接口可以满足用户一般的模型调研需求,如若为更高性能的预测部署,可以参考如下文档 +PaddleX的`load_model`接口可以满足用户一般的模型调研需求,如果是追求更高性能的预测部署,可以参考如下文档 - [服务端Python部署](../deploy/server/python.md) - [服务端C++部署](../deploy/server/cpp/index.html) diff --git a/docs/train/semantic_segmentation.md b/docs/train/semantic_segmentation.md index cbaacc93031cc279c7be79ca4b70da89fe0bd607..391df0aca7b3103dc89068cc7a2603bcc86226b0 100644 --- a/docs/train/semantic_segmentation.md +++ b/docs/train/semantic_segmentation.md @@ -20,11 +20,10 @@ PaddleX目前提供了DeepLabv3p、UNet、HRNet和FastSCNN四种语义分割结 ## 开始训练 -> 代码保存到本地后,即可直接训练,**训练代码会自动下载训练数据开始训练** -> > 如保存为`deeplabv3p_mobilenetv2_x0.25.py`,如下命令即可开始训练 -> > ``` -> > python deeplabv3p_mobilenetv2_x0.25.py -> > ``` +将代码保存到本地后运行(代码下载链接位于上面的表格中),**代码会自动下载训练数据并开始训练**。如保存为`deeplabv3p_mobilenetv2_x0.25.py`,执行如下命令即可开始训练: +``` +python deeplabv3p_mobilenetv2_x0.25.py +``` ## 相关文档 diff --git a/examples/human_segmentation/README.md b/examples/human_segmentation/README.md index f80091cafca957256befdee1d0aee03fd0cf8d20..2a9d54ff27e75e62f21ff9d1add7e584df20a689 100644 --- a/examples/human_segmentation/README.md +++ b/examples/human_segmentation/README.md @@ -1,13 +1,13 @@ # HumanSeg人像分割模型 -本教程基于PaddleX核心分割模型实现人像分割,开放预训练模型和测试数据、支持视频流人像分割、提供模型Fine-tune到Paddle-Lite移动端部署的全流程应用指南。 +本教程基于PaddleX核心分割模型实现人像分割,开放预训练模型和测试数据、支持视频流人像分割、提供模型Fine-tune到Paddle Lite移动端部署的全流程应用指南。 ## 目录 * [预训练模型和测试数据](#1) * [快速体验视频流人像分割](#2) * [模型Fine-tune](#3) -* [Paddle-Lite移动端部署](#4) +* [Paddle Lite移动端部署](#4) ##