论文学习
[华为云AI经典论文复现] AI Gallery PointRend算法使用介绍

发布于42个月以前

  • 0
  • 0
  • 256

发布于42个月以前

下面是对ModelArts AI Gallery 算法PointRend(以下简称为本算法)的使用介绍。

本算法使用Cityscapes高质量标注数据集中的train集和val集,使用train集训练,在val集上测试达到了AP=36.2728的准确率。代码结构如下:

  1. PointRend

  2.  |-configs#配置文件,包括其他数据集

  3.      |-InstanceSegmentation

  4.          |-...

  5.      |-SemanticSegmentation

  6.          |-...

  7.      |-Base-RCNN-FPN.yaml

  8.  |-datasets#此文件夹为空,上传数据集时会自动同步至云端本目录

  9.  |-detectron2#开源包

  10.      |-...

  11.  |-inputimage#空文件夹,用于运行demo.py时自动同步待预测的影像

  12.  |-model#用于部署在线服务、批量服务

  13.      |-customize_service.py#用于部署在线服务、批量服务

  14.      |-iteration_24000_mAP_36.3.pth#最优模型参数

  15.      |-config.json#配置文件

  16.      |-...

  17.  |-output#空文件夹,训练和评估时暂存模型结果,最后会同步至obs

  18.  |-outputimage#空文件夹,运行demo.py时暂存输出影像,同步obs

  19.  |-point_rend#模型其他包

  20.      |-...

  21.  |-pre-trained_weights#预训练参数

  22.      |R-50.pkl

  23.  |-config.json

  24.  |-demo.py#预测整个文件夹的影像

  25.  |-matches.json#预测整个文件夹影像的json结果文件

  26.  |-pip-requirements.txt

  27.  |-train_net.py#包括train和eval

  28.  |-detectron2-0.3+cu102-cp36-cp36m-linux_x86_64.whl#detectron2包

1. 准备数据集

本算法支持的数据集格式为Cityscapes数据集。

Cityscapes数据集包含来自50个不同城市的街道场景中记录的各种立体声视频序列集,以及较大的20000个弱注释帧集和5000个帧的高质量像素级注释。因此,该数据集比已有的类似数据集大一个数量级。有关带注释的类的详细信息和注释示例可在数据集官网上(备用链接:https://www.cityscapes-dataset.com/news/)找到。

Cityscapes 数据集旨在用于:
(1) 评估视觉算法在语义城市场景理解的主要任务上的性能:像素级,实例级和全景语义标记;
(2) 支持旨在利用大量(弱)注释数据的研究,例如用于训练深度神经网络。

1.1 下载数据集

点此链接(备用链接:https://www.cityscapes-dataset.com/downloads/)下载gtFine_trainvaltest.zip 和 leftImg8bit_trainvaltest.zip 两个文件,如下图所示:
1_download_datasets.jpg

gtFine_trainvaltest.zip解压后的目录结构如下(本算法训练不需自行解压,可直接使用压缩包):

└─gtFine
├─test
├─train
└─val

leftImg8bit_trainvaltest.zip解压后的目录结构如下(本算法训练不需自行解压,可直接使用压缩包):

└─leftImg8bit
├─test
├─train
└─val
如果您需要使用自己的数据集进行训练,则需要将数据目录整理成和上面一样的形式。更详细的数据集说明请查看Cityscapes数据集官网备用链接:https://www.cityscapes-dataset.com/news/)上的描述。

1.2 安装OBS Browser+并上传数据集

ModelArts使用对象存储服务(OBS)来存储数据,实现安全、高可靠和低成本的存储需求。OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。

具体操作步骤如下:
(1)点此下载OBS Browser+,下载完成后解压缩,双击exe进行安装,安装完成后运行;

(2)登录界面如下图所示,需要您填写账号名、Access Key ID(AK)和Secret Accsee Key(SK),参考此文档,获取AK和SK,华为云上的许多产品都需要用到访问密钥,请妥善保存该密钥文件,然后参考下图填写您的华为云账号名及刚获取的AK和SK,点击登录;
2_login_in_obs_browser.jpg

(3)参考下图,点击“创建桶”,输入桶名称,注意:区域要选择华北-北京四、标准存储、私有、关闭多AZ,桶名需自定义,OBS桶名要全局唯一,如提示桶名已存在,则需要您修改为其他名称,比如本文设置桶名为point-rend。您设置的桶名必须与此不同,如在下文的操作指导中看到point-rend,请主动将桶名替换为您自己的桶名,下文将不再进行提示;
image.png

(4)点击桶名称,进入到桶中,点击“新建文件夹”,自定义输入文件夹名称,如“citydatasets”,点击进入文件夹,点击“上传”->“添加文件夹”-> 选择本地下载好的已解压的数据集 –> 确定,如下图所示;
image.png

(5)点击OBS Browser+左侧的“任务管理”,可查看数据上传进度。如下图所示,点击设置,在基础设置中,设置最大并发数为最大值50,可以加快数据上传速度
image.png

2. 订阅本算法

点击本页面右上方的【订阅】按钮。然后点击页面下方的【下一步】按钮,再点击【确认付款】按钮,最后点击【确定】按钮进入我的订阅页面,可以看到刚刚订阅的算法。点击【应用控制台】超链接,选择华北-北京四区域,进入算法管理页面。

如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功,注意请使用最新版的。

3.训练模型

   当使用本算法添加config-file字段时为训练模型,config-file的值为configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml(可支持用户自定义obs路径):

可以支持修改maxiter;batchsize;num-gpus;设置eval=0,MODELWEIGHTS保持默认即可。

image.png

训练时会输出日志,训练结束后会使用本次训练的模型进行评估,训练得到的模型参数会输出到model目录下,model目录,config.yaml,log.txt在obs输出目录

image.png

4.评估模型

当添加

config-file=configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_cityscapes.yaml

eval=1

MODELWEIGHTS=model/iteration_24000_mAP_36.3.pth(此参数支持用户obs目录路径)

具体介绍一下MODELWEIGHTS参数

1.    默认情况:默认加载已训练好的模型,即源码目录中的model/iteration_24000_mAP_36.3.pth,加载成功会打印日志。

2.    格式规范:支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。 

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成model目录,该目录下有模型文件、ModelArts平台推理脚本(config.json、customize_service.py)和其他运行模型必备的文件。

image.png

评估时会输出预测影像到pred_results目录下,评估结束后保存整个文件夹以及eval_result.txt在obs输出目录。

image.png

5. 模型导入

准备好模型及相关的必备文件后,您可以将生成的模型导入至ModelArts模型管理。具体操作如下:

(1)在ModelArts控制台的左侧导航栏点击“模型管理” -> “模型”,点击右侧页面中的“导入”。在导入模型页面填写名称,选择元模型来源,可以直接从训练中选择(推荐使用这种方法,简单方便,与训练无缝衔接),比如在这里我选择了上一步训练生成的模型“trainjob-train-epoch0-final”;也可以从OBS中选择。如果是从OBS中选择,则需要选择到model目录的上一级目录。如下图所示:

image.png

点击“立即创建”,需要一点时间来等待模型导入和构建,当模型版本状态为“正常”后,即表示模型导入成功。

6. 创建在线服务

在ModelArts上,可以将模型部署为在线服务,然后上传图片进行预测,直接在网页端观察预测结果,本算法支持GPU部署。

部署为在线服务具体步骤如下:

(1)在ModelArts左侧导航栏中选择“部署上线 -> 在线服务”,然后点击页面中的“部署”;

(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,计算节点规格选择"CPU:2核8GiB GPU:1*P4"即可;

image.png

(3)点击“下一步”,参数确认无误后,点击“提交”。

提交后,您可以在在线服务列表中查看部署进度,当状态变为“运行中”后,点击服务名称,进入详情页面,点击“预测”,上传图片进行测试。测试结果如下图所示,右侧为得到的预测结果,左图中标注出了预测结果。

image.png

7. 创建批量服务

在ModelArts上,还可以将模型部署为批量服务,从OBS加载测试集图片进行预测,然后将预测结果输出到OBS,本算法支持GPU部署。

部署为批量服务具体步骤如下:

(1)在ModelArts左侧导航栏中选择“部署上线 -> 批量服务”,然后点击页面中的“部署”;

(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,填写输入数据目录和输出数据目录,计算节点规格选择有GPU的节点,计算节点个数设为1;

image.png

这里的输入数据目录位置为存放待预测图像的位置,注意该位置下仅能存放待预测图片,而输出数据目录位置为空文件夹即可,可自行定义。

(3)点击“下一步”,参数确认无误后,点击“提交”。

提交后,您可以在批量服务列表中查看部署进度,当状态变为“运行中”后,表示正在预测中,当状态变为“运行完成”,表示这批图片已经预测结束,预测结果保存在上图指定的OBS输出数据目录位置中,可以前往该目录查看结果。

评论 0

登录后评论

    euuufe

    作者相关内容

    2021第三届华为云人工智能大赛无人车挑战杯学习资料
    发布于44个月以前
    华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读
    发布于41个月以前
    [华为云AI经典论文复现] AI Gallery CrowdDet算法使用介绍
    发布于42个月以前
    华为云AI论文精读会2021第四期:Dynamic RCNN:一种有效提升RCNN系列网络表现的动态训练方法
    发布于42个月以前
    华为云AI论文精读会2021第十九期:ACGAN-动漫头像生成
    发布于41个月以前

    暂无数据

    热门内容推荐

    快速体验10个精选论文复现算法模型,赢取蓝牙音箱、体脂秤、ModelArts图书!
    WAYNE 发布于44个月以前
    华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读
    euuufe 发布于41个月以前
    [华为云AI经典论文复现] AI Gallery CrowdDet算法使用介绍
    euuufe 发布于42个月以前
    Fast-SCNN: Fast Semantic Segmentation Network
    spy 发布于44个月以前
    华为云AI论文精读会2021第四期:Dynamic RCNN:一种有效提升RCNN系列网络表现的动态训练方法
    euuufe 发布于42个月以前

    暂无数据