华为云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所示。

表1 创建任务参数

参数

推荐填写

“名称”

输入“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所示。

表2 导入模型参数

参数

推荐填写

“名称”

输入“gesture-recognition”。

“版本”

输入“1.0.0”。

“描述”

输入导入模型的描述。

“模型来源”

单击“从ModelArts导入”,在右侧下拉框中选择“OM(从转换任务中获取)”,然后在下方转换任务列表中勾选之前在转换模型转换的模型“gesture-recognition”。

图8 导入模型

模型导入后,将进入“模型管理”页面,您导入的模型可从列表中查看模型状态,导入成功后模型“状态”为“导入成功”。

新建技能

在华为HiLens管理控制台的左侧导航栏中选择“技能开发>技能管理”,进入技能列表。
在“技能管理”页面,单击右上角“新建技能”,进入“创建技能”页面。
在“创建技能”页面,在“技能模板”中选择“使用空模板”后,填写基本信息和技能内容。

基本信息

按表3填写技能的基本信息,如图9所示。

表3 技能基本信息参数

参数

推荐填写

“技能模板”

选择“使用空模板”。

“技能名称”

输入“Gesture_Recognition”。

“技能版本”

输入“1.0.0”。

“适用芯片”

默认为“Ascend310”。

“检验值”

根据准备训练数据所下载的“手势识别案例”文件夹中的“main.py”文件中init函数参数的值的代码,这里检验值应输入“gesture”。此处的检验值和init函数参数值应保持一致。

“应用场景”

选择“其他”,文本框中输入“手势识别”。

“技能图标”

上传技能图标。

“技能图片”

用来向用户介绍技能的使用或技能的效果,可不上传。

“OS平台”

选择“Linux”系统。

“描述”

输入技能的描述。

图9 填写基本信息

技能内容

根据您的模型和逻辑代码情况,按表4填写技能内容,详细参数说明请参见技能内容。

表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 发布技能

表5 发布技能参数说明

参数字段

说明

发布服务

技能发布的服务位置。本样例选择“HiLens技能市场”。

计费策略

技能发布在技能市场的计费策略。可选择“免费”和“收费”。

计费模式

技能发布后的计费模式。

若选择“免费”计费策略,仅可选择“一次性”计费模式。
若选择“收费”计费策略,可选择“包年/包月”和“一次性”两种计费模式。

计量单位

每份License可用在设备上的规格。有“路数”和“并发量”两种计量方式。若以“路数”规格,一份License可安装在设备上使用一路视频。

规格限制

技能在同一设备上最多可以处理视频的路数,或最大并发量。

隐私声明

技能涉及到的用户隐私声明。

提交之后,将发送至华为HiLens后台,由工作人员进行审核,3个工作日之内完成审核,请您耐心等待。当审核通过后,状态将变更为“审核通过,已发布”。

安装技能

在“技能开发>技能管理”页面,选择已开发的技能,单击右侧操作列“安装”。
勾选已注册且状态在线的设备,单击“安装”,安装成功后单击“确定”,完成安装技能操作,如图13所示。

安装过程中,华为HiLens管理控制台会将技能包下发到设备。下发技能包需要一段时间,可以从进度条中看到技能安装进度,下发完成后“进度”栏会提示“安装成功”。

图13 安装成功

安装成功后,您可以启动技能查看技能输出数据。

启动技能

使用HDMI视频线缆连接HiLens Kit视频输出端口和显示器。
单击左侧导航栏“设备管理>设备列表”,进入“设备列表”页面。
单击已注册设备的“技能管理”,查看技能状态已安装的手势识别技能状态为“停止”,单击操作列的“启动”,并单击“确定”,确定启动技能运行在端侧设备上。

等待一会,当状态变为“运行中”,则技能成功运行在端侧设备上。

安装技能的状态说明如图14所示。

图14 查看技能状态

表6 安装技能状态

状态名

状态说明

停止

停止状态,技能停止运行在端侧设备上。

运行中

运行状态,技能成功安装在端侧设备。

技能处于“运行中”状态时,您可以通过显示器查看技能输出的视频数据,此样例所开发的手势识别技能可识别一般的手势,技能输出的视频中会用方框标记出手势,并标记出手势含义。

父主题: ModelArts+HiLens

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家