本文分享自华为云社区《带你来秋日尝鲜 | ModelArts AI市场算法Fast-SCNN使用指导》,作者:Tianyi_Li

摘要:送小伙伴们一份新鲜出炉的ModelArts AI市场算法Fast-Scnn(以下简称为本算法)使用秘籍,保证轻松上手。

双十一到了,秋风瑟瑟,不能光顾着剁手是不是,是时候贴贴秋膘,尝尝鲜了,特意送来新鲜出炉的ModelArts AI市场算法Fast-Scnn(以下简称为本算法),附上使用秘籍,保证轻松上手。

本算法使用Cityscapes高质量标注数据集中的train集和val集,使用train集训练,在val集上测试达到了mIOU=68.668的准确率。

1. 准备数据集

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

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

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

1.1 下载数据集

点此链接下载gtFine_trainvaltest.zip 和 leftImg8bit_trainvaltest.zip 两个文件,如下图所示:

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

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

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

└─leftImg8bit
├─test
├─train
└─val
如果您需要使用自己的数据集进行训练,则需要将数据目录整理成和上面一样的形式。更详细的数据集说明请查看Cityscapes数据集官网上的描述。

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,点击登录;

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

(4)点击桶名称,进入到桶中,点击“新建文件夹”,输入文件夹名称,如“train_input”,点击进入文件夹,再新建“datasets”,点击“上传”->“添加文件”-> 选择本地下载好的数据集压缩包(之所以选压缩包格式是因为如果数据集比较大,上传压缩包比上传文件夹快很多) –> 确定,如下图所示;

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

2. 订阅本算法

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

如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功,注意请使用最新版的,目前应该是6.0.0版本,基本版本以订阅情况。

3. 创建训练作业

点击上图中的“创建训练作业”,按照下表填写训练作业参数:

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

4. 模型导入

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

(1)在ModelArts控制台的左侧导航栏点击“模型管理” -> “模型”,点击右侧页面中的“导入”。在导入模型页面填写名称,选择元模型来源,可以直接从训练中选择(推荐使用这种方法,简单方便,与训练无缝衔接),也可以从OBS中选择。如果是从OBS中选择,则需要选择到model目录的上一级目录;例如,本次可选择的目录为obs://fast-scnn/algorithms/train_output,如下图所示:

注意:选择好元模型路径后,“AI引擎”会自动填充。如未能自动填充,请检查元模型路径是否是model目录的上一级目录,或者model目录下是否包含模型配置文件config.json。

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

5. 创建在线服务

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

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

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

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

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

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

6. 创建批量服务

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

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

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

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

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

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

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

7. 模型评估

参考本文第2节中的步骤,创建“训练作业”,按照下表设置训练参数:

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成_result目录,其中包含推理后的.png图片和推理结果_results.txt文件。其中_results.txt文件包含验证结果,如图所示。

好了,到此即将结束了,这次尝鲜大家感觉怎么样呢?期待大家的分享使用体验和感受。

点击关注,第一时间了解华为云新鲜技术~

秋风到,ModelArts“ AI市场算法Fast-SCNN指南”秋膘贴起来的更多相关文章

  1. 实践案例丨基于ModelArts AI市场算法MobileNet_v2实现花卉分类

    概述 MobileNetsV2是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网,此模型基于 MobileNetV2: Inverted Residuals and Linear ...

  2. 贝叶斯公式由浅入深大讲解—AI基础算法入门

    1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...

  3. 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】

    本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...

  4. 2018科大讯飞AI营销算法大赛全面来袭,等你来战!

    AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...

  5. AI大厂算法测试心得:人脸识别关键指标有哪些?

    仅仅在几年前,程序员要开发一款人脸识别应用,就必须精通算法的编写.但现在,随着成熟算法的对外开放,越来越多开发者只需专注于开发垂直行业的产品即可. 由调查机构发布的<中国AI产业地图研究> ...

  6. 浅析基本AI五子棋算法

    五子棋是所有棋类博弈中比较简单的了,这里介绍的也只是一种非常基本的AI策略.其实,包括之前的AI贪吃蛇,感觉这两个AI其实体现的都是一种建模思想,把一个现实中的问题模型化,抽象化,得到其一般特征,再设 ...

  7. 社区发现算法 - Fast Unfolding(Louvian)算法初探

    1. 社团划分 0x1:社区是什么 在社交网络中,用户相当于每一个点,用户之间通过互相的关注关系构成了整个网络的结构. 在这样的网络中,有的用户之间的连接较为紧密,有的用户之间的连接关系较为稀疏.其中 ...

  8. 五子棋 AI(AIpha-beta算法)

    博弈树 下过五子棋的人都应该知道,越厉害的人,对棋面的预测程度越深.换句话讲,就是当你下完一步棋,我就能在我的脑海里假设把我所有可能下的地方都下一遍,然后考虑我下完之后你又会下在哪里,最后我根据每次预 ...

  9. 小米造最强超分辨率算法 | Fast, Accurate and Lightweight Super-Resolution with Neural Architecture Search

    本篇是基于 NAS 的图像超分辨率的文章,知名学术性自媒体 Paperweekly 在该文公布后迅速跟进,发表分析称「属于目前很火的 AutoML / Neural Architecture Sear ...

  10. 3.5星|《算法霸权》:AI、算法、大数据在美国的阴暗面

    算法霸权 作者在华尔街对冲基金德绍集团担任过金融工程师,后来去银行做过风险分析,再后来去做旅游网站的用户分析.后来辞职专门揭露美国社会生活背后的各种算法的阴暗面. 书中提到的算法的技术缺陷,我归纳为两 ...

随机推荐

  1. 2020/5/8—cf,我裂开来

    呜呜呜我爆零了呜呜呜ljll 嗯T1T2防爆零的没了呜呜呜在此纪念可怜的yjz大佬21发AC 太惨了(逃 先来说说我们都有些啥题目吧... T1 嗯,裂开了,当场裂开我一看!桶排!然后实现,嗯?嗯!嗯 ...

  2. Python 轻松生成PDF文档

    PDF(Portable Document Format)是一种常用的文档格式,具有跨平台兼容性.保真性.安全性和交互性等特点.我们日常生活工作中的合同.报告.论文等通常都采用PDF格式,以确保文档在 ...

  3. 一分钟理解TCP重传

    为什么需要重传 任何信息在介质中传输可能丢失,这是由于传输介质的物理特性决定的,所以网络不可能被设计为"可靠的"(不是由于考虑"性能"原因而是压根做不到).既然 ...

  4. Ubuntu 20.04 开启局域网唤醒(WoL)

    打开主板相关设置 创建 systemd 自启动设置文件 vim /etc/systemd/system/wol@.service 放入以下内容: [Unit] Description=Wake-on- ...

  5. 增长实验室-ab分流的流量保护功能介绍

    介绍ab分流的流量保护功能之前,先普及一下ab分流的一些概念和术语 名词解释: 实验:用来验证某个决定请求处理方式的功能或策略的一部分流量,通常用来验证某个功能或策略对系统指标(如PV/UV,CRT, ...

  6. uni-app小程序项目发布流程

    uni-app小程序项目发布流程开发工具:HbuilderX编辑器.微信小程序开发工具1.小程序开发工具就可以点击发行版本了 2.登录开发者平台配置域名白名单 在开发者设置里完成服务器域名配置(域名白 ...

  7. preparedStatement.setObject()为什么要这样写?

    setObject就是给JDBC的SQL语句的占位符赋值的,即是下面的"?" 预编译的SQL:参数使用?作为占位符 注意:sql的参数使用?作为占位符. 如: select * f ...

  8. classpath 和 classpath* 的区别

    classpath 和 classpath* 的区别 classpath 和 classpath* 是两种不同的类路径搜索模式,它们在寻找资源文件时有所不同: classpath:classpath ...

  9. 大白话说Python+Flask入门(六)Flask SQLAlchemy操作mysql数据库

    写在前面 这篇文章被搁置真的太久了,不知不觉拖到了周三了,当然,也算跟falsk系列说再见的时候,真没什么好神秘的,就是个数据库操作,就大家都知道的CRUD吧. Flask SQLAlchemy的使用 ...

  10. 没错,数据库确实应该放入 K8s 里!

    昨天冯老板发了一篇文章探讨了为什么将数据库放入 K8S 中不是一个明智的选择. 如果是四年前有人质疑容器化数据库我觉得还可以 battle 一下,都 2023 年了还有人不能认清这个大势,我就有必要来 ...