PointRend

# PointRend(图像分割/Pytorch) ## 1.概述 此模型基于PointRend: Image Segmentation as Rendering中提出的模型结构实现,该算法会载入在Cityscape上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。 图像分割的评估手段一般使用AP,详细说明请参考:https://github.com/mcordts/cityscapesScripts#evaluation 本算法的其他信息如下表所示: | 项目 | 说明 | | -------------- | ------------------------------------------------------------ | | 参考论文 | PointRend: Image Segmentation as Rendering | | 使用框架 | Pytorch1.4.0 | | 训练集 | Cityscapes leftImg8bit_trainvaltest.zip中的train | | epoch | 65(通过控制maxiter*batchsize/nums of pictures | | batchsize | 8,对应config文件夹下的yaml中IMS_PER_BATCH | | 训练硬件及耗时 | 1*v100,12小时 | | 测试集 | Cityscapes leftImg8bit_trainvaltest.zip中的test | | 推理硬件及速度 | CPU,1.85s/pic | | 输入图像尺寸 | 1024*2048,3通道 | | 原论文AP | AP=35.8 | | 本算法AP | AP=36.272 | ## 2.训练 ### 2.1算法基本信息 - 任务类型:图像分割 - 支持的框架引擎:PyTorch-1.4.0-python3.6 - 算法输入: - 存储在OBS上的数据集,必须按照Cityscape数据集的格式进行存储,详情请查看下文第4节案例指导 - Cityscape预训练模型,在Cityscape上的AP是36.2728 - 算法输出 - 用于Pytorch推理的pth模型,CPU推理速度:1.85s/pic - 代码结构 PointRend |-configs#配置文件,包括其他数据集 |-InstanceSegmentation |-... |-SemanticSegmentation |-... |-Base-RCNN-FPN.yaml |-datasets#此文件夹为空,上传数据集时会自动同步至云端本目录 |-detectron2#开源包 |-... |-inputimage#空文件夹,用于运行demo.py时自动同步待预测的影像 |-model#用于部署在线服务、批量服务 |-customize_service.py#用于部署在线服务、批量服务 |-iteration_24000_mAP_36.3.pth#最优模型参数 |-config.json#配置文件 |-... |-output#空文件夹,训练和评估时暂存模型结果,最后会同步至obs |-outputimage#空文件夹,运行demo.py时暂存输出影像,同步obs |-point_rend#模型其他包 |-... |-pre-trained_weights#预训练参数 |R-50.pkl |-config.json |-demo.py#预测整个文件夹的影像 |-matches.json#预测整个文件夹影像的json结果文件 |-pip-requirements.txt |-train_net.py#包括train和eval |-detectron2-0.3+cu102-cp36-cp36m-linux_x86_64.whl#detectron2包 ###2.2参数说明 | 名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述说明 | | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | | config-file |configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml | string | 是 | 是 | 配置文件路径,不配置时,默认路径为本算法代码内的路径 | | eval-only | 0 | int | 否 | 是 | 训练时设置值为0,评估时设置值为1 | | MODELWEIGHTS | modelweight/model_final.pth | string | 否 | 是 | 仅仅评估时才需要这个参数并设置值为默认值 | | maxiter | 2400 | int | 否 | 是 | 最大迭代次数,可以控制epoch=maxiter*batchsize/影像总数 | | batchsize | 8 | int | 否 | 是 | 批大小 | | num-gpus | 1 | int | 否 | 是 | gpu的数目 | 注意: eval参数有以下两种取值: (1)0,本算法执行模型训练过程; (2)1,本算法加载load_weight参数指定的模型,然后执行模型评估过程。 模型评估需要支持以下三种输入情况:2a) 创建训练作业时指定的数据存储位置data_url目录下,如果同时有图片和ground_truth,则模型评估过程输出pred_results目录和eval_result.txt文件,前者存放所有图片的预测结果,后者存放模型评估的精度指标; 2b) 创建训练作业时指定的数据存储位置data_url目录下,如果只有图片,则模型评估过程输出pred_results目录,存放所有图片的预测结果; 2c) 创建训练作业时指定的数据存储位置data_url目录下,如果没有图片,则模型评估过程报错; MODELWEIGHTS参数有以下两种取值: (1)固定的默认路径,默认加载本算法源码目录中的modelweight/model_final.pth继续训练,加载成功会打印日志; (2)可变的OBS路径,用户可指定OBS上的一个模型文件路径,然后本算法会加载该模型继续训练,加载成功会打印日志。 ##2.3. 训练输出文件 当仅添加config-file并设置为configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml时为训练(此路径也支持用户的obs路径),训练完成后会输出可部署的model文件夹以及config.yaml、log.txt,文件结构如下: |-config.yaml配置文件 |-log.txt日志文件 |-model |-customize_service.py#用于部署在线服务、批量服务 |-model_final.pth#用户训练得到的模型参数 |-config.json#配置文件 |-... 除config-file之外,如果添加超参数eval-only并设置为True,且添加超参数MODELWEIGHTS并设置为model/iteration_24000_mAP_36.3.pth(此路径也支持用户的obs路径)输出文件如下(pred_results和eval_result.txt都保存在指定的训练输出OBS目录下): |-eval_result.txt#评估结果,只有用户上传的数据集包括groundtruth才会有这个文件 |-pred_results;预测影像文件夹 |-frankfurt_000000_000294_leftImg8bit.png |-frankfurt_000000_000576_leftImg8bit.png |-... #3. GPU/CPU推理 元模型来源 选择 从训练中选择,选择训练作业及版本。 注意:推理配置文件config.json中的runtime字段为pytorch1.4-python3.7,表示该模型可同时在CPU或GPU运行。 #4. 案例指导 本算法的详细使用方法,请查看[《ModelArts AI Gallery算法PointRend使用指导》](https://marketplace.huaweicloud.com/markets/aihub/article/detail/?content_id=4f5b4722-6a56-47c3-a536-ff853a3feba6)。
PointRend(图像分割/Pytorch)
1.概述
此模型基于PointRend: Image Segmentation as Rendering中提出的模型结构实现,该算法会载入在Cityscape上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。
图像分割的评估手段一般使用AP,详细说明请参考:https://github.com/mcordts/cityscapesScripts#evaluation
本算法的其他信息如下表所示:
项目 | 说明 |
---|---|
参考论文 | PointRend: Image Segmentation as Rendering |
使用框架 | Pytorch1.4.0 |
训练集 | Cityscapes leftImg8bit_trainvaltest.zip中的train |
epoch | 65(通过控制maxiter*batchsize/nums of pictures |
batchsize | 8,对应config文件夹下的yaml中IMS_PER_BATCH |
训练硬件及耗时 | 1*v100,12小时 |
测试集 | Cityscapes leftImg8bit_trainvaltest.zip中的test |
推理硬件及速度 | CPU,1.85s/pic |
输入图像尺寸 | 1024*2048,3通道 |
原论文AP | AP=35.8 |
本算法AP | AP=36.272 |
2.训练
2.1算法基本信息
- 任务类型:图像分割
- 支持的框架引擎:PyTorch-1.4.0-python3.6
- 算法输入:
- 存储在OBS上的数据集,必须按照Cityscape数据集的格式进行存储,详情请查看下文第4节案例指导
- Cityscape预训练模型,在Cityscape上的AP是36.2728
- 算法输出
- 用于Pytorch推理的pth模型,CPU推理速度:1.85s/pic
- 代码结构
PointRend
|-configs#配置文件,包括其他数据集
|-InstanceSegmentation
|-…
|-SemanticSegmentation
|-…
|-Base-RCNN-FPN.yaml
|-datasets#此文件夹为空,上传数据集时会自动同步至云端本目录
|-detectron2#开源包
|-…
|-inputimage#空文件夹,用于运行demo.py时自动同步待预测的影像
|-model#用于部署在线服务、批量服务
|-customize_service.py#用于部署在线服务、批量服务
|-iteration_24000_mAP_36.3.pth#最优模型参数
|-config.json#配置文件
|-…
|-output#空文件夹,训练和评估时暂存模型结果,最后会同步至obs
|-outputimage#空文件夹,运行demo.py时暂存输出影像,同步obs
|-point_rend#模型其他包
|-…
|-pre-trained_weights#预训练参数
|R-50.pkl
|-config.json
|-demo.py#预测整个文件夹的影像
|-matches.json#预测整个文件夹影像的json结果文件
|-pip-requirements.txt
|-train_net.py#包括train和eval
|-detectron2-0.3+cu102-cp36-cp36m-linux_x86_64.whl#detectron2包
###2.2参数说明
名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述说明 |
---|---|---|---|---|---|
config-file | configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml | string | 是 | 是 | 配置文件路径,不配置时,默认路径为本算法代码内的路径 |
eval-only | 0 | int | 否 | 是 | 训练时设置值为0,评估时设置值为1 |
MODELWEIGHTS | modelweight/model_final.pth | string | 否 | 是 | 仅仅评估时才需要这个参数并设置值为默认值 |
maxiter | 2400 | int | 否 | 是 | 最大迭代次数,可以控制epoch=maxiter*batchsize/影像总数 |
batchsize | 8 | int | 否 | 是 | 批大小 |
num-gpus | 1 | int | 否 | 是 | gpu的数目 |
注意:
eval参数有以下两种取值:
(1)0,本算法执行模型训练过程;
(2)1,本算法加载load_weight参数指定的模型,然后执行模型评估过程。
模型评估需要支持以下三种输入情况:2a) 创建训练作业时指定的数据存储位置data_url目录下,如果同时有图片和ground_truth,则模型评估过程输出pred_results目录和eval_result.txt文件,前者存放所有图片的预测结果,后者存放模型评估的精度指标;
2b) 创建训练作业时指定的数据存储位置data_url目录下,如果只有图片,则模型评估过程输出pred_results目录,存放所有图片的预测结果;
2c) 创建训练作业时指定的数据存储位置data_url目录下,如果没有图片,则模型评估过程报错;
MODELWEIGHTS参数有以下两种取值:
(1)固定的默认路径,默认加载本算法源码目录中的modelweight/model_final.pth继续训练,加载成功会打印日志;
(2)可变的OBS路径,用户可指定OBS上的一个模型文件路径,然后本算法会加载该模型继续训练,加载成功会打印日志。
##2.3. 训练输出文件
当仅添加config-file并设置为configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml时为训练(此路径也支持用户的obs路径),训练完成后会输出可部署的model文件夹以及config.yaml、log.txt,文件结构如下:
|-config.yaml配置文件
|-log.txt日志文件
|-model
|-customize_service.py#用于部署在线服务、批量服务
|-model_final.pth#用户训练得到的模型参数
|-config.json#配置文件
|-...
除config-file之外,如果添加超参数eval-only并设置为True,且添加超参数MODELWEIGHTS并设置为model/iteration_24000_mAP_36.3.pth(此路径也支持用户的obs路径)输出文件如下(pred_results和eval_result.txt都保存在指定的训练输出OBS目录下):
|-eval_result.txt#评估结果,只有用户上传的数据集包括groundtruth才会有这个文件
|-pred_results;预测影像文件夹
|-frankfurt_000000_000294_leftImg8bit.png
|-frankfurt_000000_000576_leftImg8bit.png
|-...
#3. GPU/CPU推理
元模型来源 选择 从训练中选择,选择训练作业及版本。
注意:推理配置文件config.json中的runtime字段为pytorch1.4-python3.7,表示该模型可同时在CPU或GPU运行。
#4. 案例指导
本算法的详细使用方法,请查看《ModelArts AI Gallery算法PointRend使用指导》。
PointRend(图像分割/Pytorch)
1.概述
此模型基于PointRend: Image Segmentation as Rendering中提出的模型结构实现,该算法会载入在Cityscape上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。
图像分割的评估手段一般使用AP,详细说明请参考:https://github.com/mcordts/cityscapesScripts#evaluation
本算法的其他信息如下表所示:
项目 | 说明 |
---|---|
参考论文 | PointRend: Image Segmentation as Rendering |
使用框架 | Pytorch1.4.0 |
训练集 | Cityscapes leftImg8bit_trainvaltest.zip中的train |
epoch | 65(通过控制maxiter*batchsize/nums of pictures |
batchsize | 8,对应config文件夹下的yaml中IMS_PER_BATCH |
训练硬件及耗时 | 1*v100,12小时 |
测试集 | Cityscapes leftImg8bit_trainvaltest.zip中的test |
推理硬件及速度 | CPU,1.85s/pic |
输入图像尺寸 | 1024*2048,3通道 |
原论文AP | AP=35.8 |
本算法AP | AP=36.272 |
2.训练
2.1算法基本信息
- 任务类型:图像分割
- 支持的框架引擎:PyTorch-1.4.0-python3.6
- 算法输入:
- 存储在OBS上的数据集,必须按照Cityscape数据集的格式进行存储,详情请查看下文第4节案例指导
- Cityscape预训练模型,在Cityscape上的AP是36.2728
- 算法输出
- 用于Pytorch推理的pth模型,CPU推理速度:1.85s/pic
- 代码结构
PointRend
|-configs#配置文件,包括其他数据集
|-InstanceSegmentation
|-…
|-SemanticSegmentation
|-…
|-Base-RCNN-FPN.yaml
|-datasets#此文件夹为空,上传数据集时会自动同步至云端本目录
|-detectron2#开源包
|-…
|-inputimage#空文件夹,用于运行demo.py时自动同步待预测的影像
|-model#用于部署在线服务、批量服务
|-customize_service.py#用于部署在线服务、批量服务
|-iteration_24000_mAP_36.3.pth#最优模型参数
|-config.json#配置文件
|-…
|-output#空文件夹,训练和评估时暂存模型结果,最后会同步至obs
|-outputimage#空文件夹,运行demo.py时暂存输出影像,同步obs
|-point_rend#模型其他包
|-…
|-pre-trained_weights#预训练参数
|R-50.pkl
|-config.json
|-demo.py#预测整个文件夹的影像
|-matches.json#预测整个文件夹影像的json结果文件
|-pip-requirements.txt
|-train_net.py#包括train和eval
|-detectron2-0.3+cu102-cp36-cp36m-linux_x86_64.whl#detectron2包
###2.2参数说明
名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述说明 |
---|---|---|---|---|---|
config-file | configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml | string | 是 | 是 | 配置文件路径,不配置时,默认路径为本算法代码内的路径 |
eval-only | 0 | int | 否 | 是 | 训练时设置值为0,评估时设置值为1 |
MODELWEIGHTS | modelweight/model_final.pth | string | 否 | 是 | 仅仅评估时才需要这个参数并设置值为默认值 |
maxiter | 2400 | int | 否 | 是 | 最大迭代次数,可以控制epoch=maxiter*batchsize/影像总数 |
batchsize | 8 | int | 否 | 是 | 批大小 |
num-gpus | 1 | int | 否 | 是 | gpu的数目 |
注意:
eval参数有以下两种取值:
(1)0,本算法执行模型训练过程;
(2)1,本算法加载load_weight参数指定的模型,然后执行模型评估过程。
模型评估需要支持以下三种输入情况:2a) 创建训练作业时指定的数据存储位置data_url目录下,如果同时有图片和ground_truth,则模型评估过程输出pred_results目录和eval_result.txt文件,前者存放所有图片的预测结果,后者存放模型评估的精度指标;
2b) 创建训练作业时指定的数据存储位置data_url目录下,如果只有图片,则模型评估过程输出pred_results目录,存放所有图片的预测结果;
2c) 创建训练作业时指定的数据存储位置data_url目录下,如果没有图片,则模型评估过程报错;
MODELWEIGHTS参数有以下两种取值:
(1)固定的默认路径,默认加载本算法源码目录中的modelweight/model_final.pth继续训练,加载成功会打印日志;
(2)可变的OBS路径,用户可指定OBS上的一个模型文件路径,然后本算法会加载该模型继续训练,加载成功会打印日志。
##2.3. 训练输出文件
当仅添加config-file并设置为configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml时为训练(此路径也支持用户的obs路径),训练完成后会输出可部署的model文件夹以及config.yaml、log.txt,文件结构如下:
|-config.yaml配置文件
|-log.txt日志文件
|-model
|-customize_service.py#用于部署在线服务、批量服务
|-model_final.pth#用户训练得到的模型参数
|-config.json#配置文件
|-...
除config-file之外,如果添加超参数eval-only并设置为True,且添加超参数MODELWEIGHTS并设置为model/iteration_24000_mAP_36.3.pth(此路径也支持用户的obs路径)输出文件如下(pred_results和eval_result.txt都保存在指定的训练输出OBS目录下):
|-eval_result.txt#评估结果,只有用户上传的数据集包括groundtruth才会有这个文件
|-pred_results;预测影像文件夹
|-frankfurt_000000_000294_leftImg8bit.png
|-frankfurt_000000_000576_leftImg8bit.png
|-...
#3. GPU/CPU推理
元模型来源 选择 从训练中选择,选择训练作业及版本。
注意:推理配置文件config.json中的runtime字段为pytorch1.4-python3.7,表示该模型可同时在CPU或GPU运行。
#4. 案例指导
本算法的详细使用方法,请查看《ModelArts AI Gallery算法PointRend使用指导》。