华为云AI开发平台ModelArts手势识别技能开发(ModelArts+华为HiLens)_云淘科技
ModelArts是面向AI开发者的一站式开发平台,您可以使用ModelArts开发一个用于华为HiLens平台的算法模型,然后基于您自定义的算法模型和逻辑代码新建技能。
本章节提供了一个手势识别技能的样例,介绍从模型训练到查看技能效果,新建一个全新技能的全流程,帮助您快速熟悉华为HiLens技能开发的使用过程。
开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。具体技能开发的步骤如下所示:
准备训练数据
订阅算法
使用订阅算法创建训练作业
转换模型
导入模型至华为HiLens
新建技能
(可选)发布技能
安装技能
启动技能
准备工作
已注册华为帐号并开通华为云,且在使用华为HiLens前检查帐号状态,帐号不能处于欠费或冻结状态。
已购买HiLens Kit设备,并准备好网线,电脑,路由器,HDMI线,显示屏。
成功注册设备HiLens Kit设备至华为HiLens控制台,详情请参见注册HiLens Kit。
登录OBS服务,创建桶和文件夹,用于存放样例的训练数据。创建名称为“hilens-gesture”OBS桶,区域选择“华北-北京四”,创建如下文件夹:
“gesture-data”:用于存放训练模型的数据。
“gesture-data-output”:用于存放模型输出数据。
“gesture-data-record”:用于存放日志。
“gesture-convert-output”:用于存放转换模型后的输出文件。
创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。为保证模型数据能正常访问,请务必保证创建的OBS桶与华为HiLens在同一区域。
占用OBS资源的操作均会收取一定费用,收费规则请参见对象存储服务 OBS。
准备训练数据
华为HiLens在公共OBS桶中提供了手势识别技能的用于模型训练的示例数据,命名为“gesture_recognition_data”,因此本文的操作示例使用此示例模型进行技能开发。您需要执行如下操作,将模型文件上传至您的OBS目录下,即准备工作中您创建的OBS目录“hilens-gesture/gesture-recognition”。
单击示例数据下载链接,将手势识别案例示例数据“gesture_recognition_data”下载至本地。
在本地,将“gesture_recognition_data”压缩包解压。例如解压至本地“gesture_recognition_data”文件夹下,包括1个子文件夹“gesture-data”和1个“.py”文件。
参考上传文件,利用OBS Browser+工具将“gesture_recognition_data/gesture-data”文件夹下的所有数据上传至“hilens-gesture/gesture-data”OBS路径下,OBS Browser+使用方法请参见OBS Browser+工具指南。
订阅算法
ModelArts提供了一个“ResNet_v1_50”,算法用途为图像分类,您可以使用此算法训练,得到所需的模型。目前“resnet_v1_50”算法发布在AI Gallery中。您可以前往AI Gallery,订阅此算法,然后同步至ModelArts中。
登录ModelArts管理控制台,在左侧菜单栏中选择“AI Gallery”。进入新版AI Gallery。
单击图像分类-ResNet_v1_50,进入算法详情页。
由于AI Gallery发布了多个“ResNet_v1_50”,本示例选择支持GPU训练+Snt3推理的算法。
图1 选择仅用于Snt3推理的算法
单击右侧的“订阅”,根据界面提示完成算法订阅。
订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。
单击详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”。
页面将自动跳转至ModelArts的“算法管理>我的订阅”中同步对应的算法。
图2 前往控制台
图3 选择云服务区域
在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。
图4 同步算法
使用订阅算法创建训练作业
算法订阅成功后,算法将呈现在“算法管理>我的订阅”中,您可以使用订阅的“ResNet_v1_50”算法创建训练作业,获得模型。
进入“算法管理>我的订阅”页面,选择订阅的“ResNet_v1_50”算法,单击左侧的单选按钮在列表页底部展开算法详情,在版本列表中,单击“创建训练作业”。
图5 创建训练作业
在“创建训练作业”页面,参考如下说明填写关键参数。
“算法> 我的订阅”:系统默认选择订阅的算法,请勿随意修改。
“训练输入”:选择数据存储位置,然后从弹出的窗口中选择准备训练数据中已上传训练模型数据的“hilens-gesture/gesture-data”OBS路径。
“训练输出”:选择训练结果的存储位置(OBS路径)。为避免出现错误,建议选择一个空目录用作“训练输出”。本样例选择准备工作中已创建的OBS桶“hilens-gesture”和文件夹“gesture-data-output”。
“超参”:建议采用默认值。如需进行调优,可参考算法详情页的训练参数说明。
“资源类型”:建议选择GPU规格的资源类型,训练效率会更高一些。
参数填写完成后,单击“提交”,确认规格,单击“确定”,完成训练作业创建。
进入“训练管理>训练作业”页面,等待训练作业完成。
训练作业运行需要几分钟时间,请耐心等待。根据经验,选择样例数据集,使用GPU资源运行,预计3分钟左右可完成。
当训练作业的状态变更为“已完成”时,表示已运行结束。
图6 查看训练作业状态
您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。
您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。
转换模型
在ModelArts管理控制台中,选择左侧导航栏的“AI应用管理 > 模型转换”,进入模型转换列表页面。
单击左上角的“创建任务”,进入创建任务页面。
在“创建任务”页面,按表1填写相关信息,如图7所示。
参数 |
推荐填写 |
---|---|
“名称” |
输入“gesture-recognition”。 |
“描述” |
输入判断手势技能的简短描述,如:将判断手势技能模型转换为“.om”格式。 |
“输入框架” |
选择“TensorFlow”。 |
“转换输入目录” |
选择转换输入目录为“hilens-gesture/gesture-data-output/frozen_graph”。 |
“输出框架” |
选择“MindSpore”。 |
“转换输出目录” |
选择转换输出目录为“hilens-gesture/gesture-convert-output”。 |
“转换模板” |
选择“TF-FrozenGraph-To-Ascend-HiLens”。 |
“高级选项” |
“输入张量形状”设置为“images:1,224,224,3”,其他选项均为默认值。 |
图7 创建模型转换任务
任务信息填写完成后,单击右下角“立即创建”。
创建完成后,系统自动跳转至“模型转换”中。刚创建的转换任务将呈现在界面中,其“任务状态”为“初始化”。任务执行过程预计需要几分钟到十几分钟不等,请耐心等待,当“任务状态”变为“成功”时,表示任务运行完成并且模型转换成功。
如果“任务状态”变为“失败”,建议单击任务名称进入详情页面,查看日志信息,根据日志信息调整任务的相关参数并创建新的转换任务。
导入模型至华为HiLens
登录华为HiLens管理控制台,在左侧导航栏中选择“基础版>技能开发>模型管理”,进入“模型管理”页面。
华为HiLens控制台技能开发所在的区域应和在ModelArts AI Gallery订阅算法的区域图2一致。
在“模型管理”页面,单击右上角的“导入(转换)模型”。
在“导入模型”页面,然后参考表2填写参数,信息确认无误后单击“确定”完成导入,如图8所示。
参数 |
推荐填写 |
---|---|
“名称” |
输入“gesture-recognition”。 |
“版本” |
输入“1.0.0”。 |
“描述” |
输入导入模型的描述。 |
“模型来源” |
单击“从ModelArts导入”,在右侧下拉框中选择“OM(从转换任务中获取)”,然后在下方转换任务列表中勾选之前在转换模型转换的模型“gesture-recognition”。 |
图8 导入模型
模型导入后,将进入“模型管理”页面,您导入的模型可从列表中查看模型状态,导入成功后模型“状态”为“导入成功”。
新建技能
在华为HiLens管理控制台的左侧导航栏中选择“技能开发>技能管理”,进入技能列表。
在“技能管理”页面,单击右上角“新建技能”,进入“创建技能”页面。
在“创建技能”页面,在“技能模板”中选择“使用空模板”后,填写基本信息和技能内容。
基本信息
按表3填写技能的基本信息,如图9所示。
参数 |
推荐填写 |
---|---|
“技能模板” |
选择“使用空模板”。 |
“技能名称” |
输入“Gesture_Recognition”。 |
“技能版本” |
输入“1.0.0”。 |
“适用芯片” |
默认为“Ascend310”。 |
“检验值” |
根据准备训练数据所下载的“手势识别案例”文件夹中的“main.py”文件中init函数参数的值的代码,这里检验值应输入“gesture”。此处的检验值和init函数参数值应保持一致。 |
“应用场景” |
选择“其他”,文本框中输入“手势识别”。 |
“技能图标” |
上传技能图标。 |
“技能图片” |
用来向用户介绍技能的使用或技能的效果,可不上传。 |
“OS平台” |
选择“Linux”系统。 |
“描述” |
输入技能的描述。 |
图9 填写基本信息
技能内容
根据您的模型和逻辑代码情况,按表4填写技能内容,详细参数说明请参见技能内容。
参数 |
推荐填写 |
---|---|
“技能格式” |
选择“技能包”格式。 |
“运行时语言” |
选择“Python3.7”。 |
“代码执行文件” |
默认输入“index.py”。 |
“模型” |
单击加号,您可以在弹出框中,选择导入的模型“gesture-recognition”。 |
“代码上传方式” |
选择“在线编辑”,在代码编辑框中直接编辑代码,可直接复制准备训练数据所下载的“手势识别案例”文件夹中的“.py”文件中的代码内容,请核对代码中模型名称,保持代码中的模型名称与转换模型的模型名称一致。此样例中模型名称应是“gesture-recognition.om”,如下所示。 model = hilens.Model(hilens.get_model_dir() + "gesture-recognition.om") |
图10 技能内容
基本信息和技能内容填写完成后,您可以在界面右侧查看其配置参数值,如果某个字段填写错误,在右侧会显示一个小红叉。
确认信息无误后,单击“确定”完成技能创建。
图11 确认信息并完成新建技能
创建完成后,您的技能将进入“技能开发>技能管理”页面,且状态为“未发布”,您可以执行发布操作,将技能发布至技能市场;您也可以安装技能至设备,并查看设备使用技能效果。
(可选)发布技能
在华为HiLens管理控制台,单击左侧导航栏“技能开发>技能管理”,进入“技能管理”页面。
选择需要发布的技能,单击右边的“发布”。
在弹出的“发布技能到技能市场”对话框中,按图12设置相关信息,单击“确定”。
图12 发布技能
参数字段 |
说明 |
---|---|
发布服务 |
技能发布的服务位置。本样例选择“HiLens技能市场”。 |
计费策略 |
技能发布在技能市场的计费策略。可选择“免费”和“收费”。 |
计费模式 |
技能发布后的计费模式。 若选择“免费”计费策略,仅可选择“一次性”计费模式。 |
计量单位 |
每份License可用在设备上的规格。有“路数”和“并发量”两种计量方式。若以“路数”规格,一份License可安装在设备上使用一路视频。 |
规格限制 |
技能在同一设备上最多可以处理视频的路数,或最大并发量。 |
隐私声明 |
技能涉及到的用户隐私声明。 |
提交之后,将发送至华为HiLens后台,由工作人员进行审核,3个工作日之内完成审核,请您耐心等待。当审核通过后,状态将变更为“审核通过,已发布”。
安装技能
在“技能开发>技能管理”页面,选择已开发的技能,单击右侧操作列“安装”。
勾选已注册且状态在线的设备,单击“安装”,安装成功后单击“确定”,完成安装技能操作,如图13所示。
安装过程中,华为HiLens管理控制台会将技能包下发到设备。下发技能包需要一段时间,可以从进度条中看到技能安装进度,下发完成后“进度”栏会提示“安装成功”。
图13 安装成功
安装成功后,您可以启动技能查看技能输出数据。
启动技能
使用HDMI视频线缆连接HiLens Kit视频输出端口和显示器。
单击左侧导航栏“设备管理>设备列表”,进入“设备列表”页面。
单击已注册设备的“技能管理”,查看技能状态已安装的手势识别技能状态为“停止”,单击操作列的“启动”,并单击“确定”,确定启动技能运行在端侧设备上。
等待一会,当状态变为“运行中”,则技能成功运行在端侧设备上。
安装技能的状态说明如图14所示。
图14 查看技能状态
状态名 |
状态说明 |
---|---|
停止 |
停止状态,技能停止运行在端侧设备上。 |
运行中 |
运行状态,技能成功安装在端侧设备。 |
技能处于“运行中”状态时,您可以通过显示器查看技能输出的视频数据,此样例所开发的手势识别技能可识别一般的手势,技能输出的视频中会用方框标记出手势,并标记出手势含义。
父主题: ModelArts+HiLens
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家