使用ModelArts 0代码实现人脸口罩检测

举报
JeffDing 发表于 2020/09/30 19:46:13 2020/09/30
【摘要】 使用ModelArts 0代码实现人脸口罩检测

一、灵感来源

前两天闲逛华为Modelarts AI市场的时候偶然间发现huqi大佬上传的一个有关口罩检测的数据集,突然就想着看见好多大佬写过口罩检测的案例,要不我也玩一把试试。虽然没有大佬们高大上都是自己写代码或者自己找的数据集,我基本都是现成的直接拿来用就行了。不过玩的开心就好,正好复习一下以前在AI实战训练营学到的知识,来一个0代码实现人脸口罩检测。


二、下载数据集

首先在modelarts页面左侧的导航栏中找到AI市场

进入到AI市场后,在页面的菜单栏点击数据集,然后在出现的页面搜索框中输入关键词“口罩”就会显示出数据集中所有包含口罩关键词的数据集了,这边有两个,这里我们选择《人脸口罩检测数据集-训练集》作为训练数据加载。

点击需要下载的数据集的数据集名称就可以进入到数据集页面

然后点击页面中的下载按钮,就可以进入到下载页面

在这个页面中选择【数据云存储位置】不要选择modelarts数据集,我们目标区域选择【华北-北京四】,目标位置选择OBS桶的文件夹即可。选择完毕后点击下一步,系统就会开始下载数据集到OBS中。页面这边会显示正在下载,一直都不动,很多人会以为卡住了还是怎么了。这边不用管它,直接点确定按钮就好。

等待页面中的这的这一栏的状态变为推送成功后就说明数据集已经导入完成。这时候我们就可以去Modelarts中的数据管理->数据集功能中创建数据集了。


三、创建数据集

在ModelArts页面左侧的导航栏中点击数据管理->数据集进入到数据集页面

点击创建数据集后,就会出现创建数据集的页面

名称这一栏我们给数据集进行命名,名字的话自己取,随意。只要不要重复就好。

标注场景选择:图片

标注类型选择:物体检测

数据集输入位置选择:前面在AI市场数据集下载的时候选择的那个目录文件夹就好

数据集输出位置:在OBS中新建一个文件夹用于存储数据集输出

OBS中仅限文件夹的方法,在打开的页面对话框中选择新建文件夹按钮即可新建一个文件夹。全都完成后点创建系统就会开始进行数据集创建操作。由于这个数据集里图片还是比较多的,可能需要等几分钟

等到页面中标注进度变为6118/6120时候,说明系统已经导入和标注完数据了。可能会有人问为什么不是6120,而是6118呢。因为还有2个图片系统没有标注成功,这时候就需要我们进行手工标注了。点击数据集名称,进入到数据集页面

然后点击开始标注按钮,进行数据集人工标注页面。进入到标注页面后,再点击页面中的未标注,就可以看见有哪两张图片没有进行标注。

首先我们点击左面的第一张图片,进入到标注页面就可以进行人工标注

点击页面左面工具栏中的第一个方框,我们就可以进行标注框的选择了。在我们想要的标注框左上角的位置点击鼠标左键,然后鼠标移动到方框足够覆盖到需要标注的内容后,再次点击鼠标左键。结束标注。

数据标注完成后页面会显示出一个对话框让我们选择一下标签名字。这里的话根据实际情况进行选择。如果这个脸有戴口罩那就选择face_mask,没有戴口罩的话就选择face。全都标注完成后,点击页面顶部的下一张进入到下一张图片的标注。同样的方法标注完第二张后,标注完成第二张后,由于这个数据集只有两张没有自动标注完成,所以我们点下一批。

由于数据集也没有下一批了,所以系统会连续弹出两个对话框进行提示,这里两个都直接点确定就可以返回到预览界面了。

现在可以看到全部6120,已标注6120。数据集创建基本就完成了。然后我们点击页面上方的返回数据及概览。

下一步我们点击页面顶部的发布按钮。就会弹出数据集发布对话框进行数据集的发布操作。

在这个对话框中我们把数据切分打开,然后训练集比例,我们设定为0.8-0.9都可以。全都设定完成后点击确定。


四、订阅算法

这一次算法那我选择YOLOv3_ResNet18(物体检测/TensorFlow/Ascend910训练)算法进行模型训练

进入到AI市场,在搜索栏搜索YOLO,就会出现所有和YOLO有关的算法

可以看到有两个物体检测YOLOv3,左数第一个是使用GPU进行训练的,左数第三个是基于华为昇腾910芯片进行训练。本来想使用GPU进行训练,但是由于免费的1小时资源可能不足够训练,所以本文我就使用昇腾芯片的YOLOv3_Resnet18进行操作了,也就界面中左数第三个使用昇腾芯片进行训练。


如果想要使用GPU进行训练的话,这里选择第一个的YOLOv3_ResNet18就可以了,想用昇腾芯片进行训练的话选择第三个的YOLOv3_resNet18(介绍中带有Ascend910训练字样),两种环境创建训练作业-模型转换-模型导入-部署的操作设置配置也是一模一样的

进入到算法详细界面后,直接点击订阅就可以完成算法的订阅了


五、创建训练作业

在Modelart主界面左面的导航栏点击训练管理->训练作业就可以进入到训练作业页面,点击页面上的创建按钮,就可以开始创建训练作业了。

这里的主要配置如下:

算法来源:算法管理

算法名称点开选择我们前面订阅的算法,这里如果没有显示就绪的话,可能需要点一下右面的同步,稍等片刻等到状态变为就绪后就可以选择了。

数据集:选择我们前面创建好的数据集

模型输出:这里选择模型训练好的文件需要存储到OBS的那个位置。这里的文件在后面模型训练的时候还会用到

调优参数:

调优参数这里保持默认就好,为了节省训练时间,我们这里把max_epochs设为50。

规格:选择单卡训练就好

这里如果使用的是GPU版本的YOLOv3_ResNet18的话,规格那边的界面选择免费的GPU.free或者models.p3.large.ex都是可以的。GPU版本的和昇腾版本的设置也就这一块有所不同。后面的操作也是一模一样了。

image.png

全都设定完成后,点击确定按钮就开始训练了。差不多半小时左右就能完成训练了。


六、模型转换

模型训练完成后直接点击创建模型按钮就可以直接进入到创建模型的界面了。但是这个模型直接用CPU或者GPU部署会有点问题,那么于是乎我就计划用昇腾910训练,不如我推理的时候把他转为昇腾310的模型来推理。在Modelarts页面左侧的导航栏选择模型管理->压缩/转换进入到模型转换界面

点击页面中的创建任务,打开模型转换的配置页面

主要配置参数:

输入框架:Tensorflow

转化输入目录:选择前面训练作业输出目录中的frozen_graph文件夹

输出框架:Mindspore

输出目录:选择前面训练作业输出目录中的om目录中的model文件夹

转换模板:Tf-FrozenGraph-To-Ascend-C32

输入张量形状:images:1,352,640,3

其他的都默认即可

设置完毕后点击立即创建,就会开始转化模型了。

等到任务状态变为成功后,就可以前往ModelArts的模型管理->模型功能导入模型了


七、导入模型及部署

进入到模型管理界面后点击页面上的导入按钮进入模型导入配置界面

主要参数配置:

元模型来源:从模板中选择

模型类型

ARM-Ascend模板

模型目录:选择训练任务输出目录中的om文件夹中的model文件夹(也是前面模型转换的输出目录)

输入输出模式选择:预置物体检测模式

全部配置完成后点击立即创建,系统就会开始创建模型

点击模型名左面的箭头会出现模型部署详细信息,等到模型的状态变为正常后就说明模型导入完成了,可以直接点部署->在线服务进行在线服务的部署。

部署参数基本保持默认,直接点开始下一步然后提交即可(友情提示一下使用昇腾310进行训练会有费用产生,差不多1小时1.43)然后直接点击查看服务详情就会跳转到在线服务的详情页面。


等到页面中的状态变为运行中的时候,我们点击页面下方的预测,然后在出来的界面中点击上传选择一个图进行预测。激动的搓搓手,赶紧去网上找一个图片上传一下试试看效果吧。


八、后记及总结

闲来没事又玩了一个以前没有玩过的模型和数据集训练操作,顺便重温了一下AI实战营学到的一些知识,没想到的是连模型转换的知识也顺便重温了一下,这一体验简直棒呆了。其实0代码动手做XXXX系列真的不是很难,点点鼠标就可以完成。知识就是需要这样不断练习,熟能生巧,以前学过的技能练多了玩多了也就熟练了。有兴趣的同学可以去AI市场找找有没有自己感兴趣的数据集和算法,也可以一步一个脚印的倒腾起来,没准不知不觉你也可以实现自己动手0代码开发一个AI模型训练到部署的操作。整个博客终于写完了,中间可能会有不完美的地方,也能有不小心写错的地方,也有可能有不足的地方。还望看过的小伙伴发现的话及时指出,只有大家指出我的不足,我才能不断成长,谢谢!


学AI就来huaweicloud.ai

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。