文档首页 > > 最佳实践> 手势识别技能开发

手势识别技能开发

分享
更新时间:2020/09/11 GMT+08:00

ModelArts是面向AI开发者的一站式开发平台,您可以使用ModelArts开发一个用于Huawei HiLens平台的算法模型,然后基于您自定义的算法模型和逻辑代码新建技能。

本章节提供了一个手势识别技能的样例,介绍从模型训练到查看技能效果,新建一个全新技能的全流程,帮助您快速熟悉Huawei HiLens技能开发的使用过程。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。具体技能开发的步骤如下所示:

准备工作

  • 已注册华为云账号,且在使用Huawei HiLens前检查账号状态,账号不能处于欠费或冻结状态。
  • 已购买HiLens Kit设备,并准备好网线,电脑,路由器,HDMI线,显示屏。
  • 成功注册设备HiLens Kit设备至Huawei HiLens控制台,详情请参见注册HiLens Kit
  • 登录OBS服务,创建桶和文件夹,用于存放样例的训练数据。创建名称为“hilens-gesture”OBS桶,区域选择“华北-北京四”,创建如下文件夹:

    “gesture-data”:用于存放训练模型的数据。

    “gesture-data-output”:用于存放模型输出数据。

    “gesture-data-record”:用于存放日志。

    “gesture-convert-output”:用于存放转换模型后的输出文件。

    创建OBS桶和文件夹的操作指导请参见创建桶新建文件夹。为保证模型数据能正常访问,请务必保证创建的OBS桶与Huawei HiLens在同一区域。

    占用OBS资源的操作均会收取一定费用,收费规则请参见对象存储服务 OBS

步骤1:准备数据

Huawei HiLens在公共OBS桶中提供了手势识别技能的用于模型训练的示例数据,命名为“gesture_recognition_data”,因此本文的操作示例使用此示例模型进行技能开发。您需要执行如下操作,将模型文件上传至您的OBS目录下,即准备工作中您创建的OBS目录“hilens-gesture/gesture-recognition”

  1. 单击示例数据下载链接,将手势识别案例示例数据“gesture_recognition_data”下载至本地。
  2. 在本地,将“gesture_recognition_data”压缩包解压。例如解压至本地“gesture_recognition_data”文件夹下,包括1个子文件夹“gesture-data”和1个“.py”文件。
  3. 参考上传文件,利用OBS Browser+工具将“gesture_recognition_data/gesture-data”文件夹下的所有数据上传至“hilens-gesture/gesture-data”OBS路径下,OBS Browser+使用方法请参见OBS Browser+工具指南

步骤2:创建数据集

  1. 登录ModelArts管理控制台,根据要求完成全局配置,在左侧菜单栏中选择“数据管理>数据集”
  2. 在数据集管理页面,单击“创建数据集”。在“创建数据集”页面,“数据集输入位置”选择步骤1:准备数据中上传的数据存储目录(OBS路径),需选择到具体图片存储的父目录。“数据集输出位置”,请指定一个空目录,且此目录不能是数据来源目录下的子目录。“标注类型”选择“图像分类”
    图1 创建数据集
  3. 参数填写完成后,单击“创建”,完成数据集创建。
  4. 进入数据集管理页面,等待数据同步完毕,您可以单击数据集名称进入概览页面,了解进度。由于提供的样例数据集已完成数据标注,当数据集概览页面显示图片已标注,表示数据已同步完成。
    图2 标注进展
  5. 发布数据集。在数据集管理页面,单击“发布”,在弹出窗口中,根据界面提示进行配置。由于本示例使用的算法,必须使用切分的数据集进行训练,因此训练验证比例的参数必须设置,建议设置为“0.8”“0.9”,表示训练集和验证集的比例为“8:2”“9:1”
    单击“确定”完成发布数据集。
    图3 发布数据集

步骤3:订阅算法

ModelArts官方提供了一个“ResNet_v1_50”,算法用途为图像分类,您可以使用此算法训练,得到所需的模型。目前“resnet_v1_50”算法发布在AI市场中。您可以前往AI市场,订阅此模型,然后推送至ModelArts中。

  1. 登录ModelArts管理控制台,在左侧菜单栏中选择“AI市场”。进入新版AI市场。
  2. 在AI市场中,在搜索框中输入“ResNet_v1_50”,查找对应的算法。

    ModelArts AI市场有三个“ResNet_v1_50”,请选择仅支持Ascend 310推理的算法进行应用。即图标中无“Ascend 910/Ascend 310”标识的算法。

    图4 选择“ResNet_v1_50”算法
  3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

    此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面将自动跳转至“个人中心 > ModelHub >我的订阅”页面。

    图5 订阅算法
  4. 单击“应用控制台”列的“ModelArts”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”,将此算法推送至ModelArts中。

    推送成功后,页面将自动跳转至ModelArts的“算法管理>市场订阅”中查看对应的算法详情。

    图6 推送至ModelArts
  5. 在ModelArts管理控制台的算法管理页面,单击“同步”,将算法同步至ModelArts中。

    未同步的算法,无法直接用于创建训练作业,因此从AI市场订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”

    图7 同步算法

步骤4:使用订阅算法创建训练作业

  1. 进入ModelArts管理控制台,单击左侧导航栏“训练管理>训练作业”,进入“训练作业”页面。
  2. 单击“创建”,进入“创建训练作业”页面。
  3. “创建训练作业”页面,填写训练作业相关参数,然后单击“下一步”
    1. 在基本信息区域,“计费模式”“版本”为系统自动生成,不需修改。请根据界面提示填写“名称”“描述”
      图8 训练作业基本信息
    2. 设置“算法来源”为订阅的“ResNet_v1_50”算法。在“算法来源”,选择“算法管理”,单击“算法名称”右侧的“选择”,在弹出框中,选择“市场订阅”的算法,如图10所示。
      图9 算法来源设置为算法管理
      图10 选择市场订阅的算法
    3. 设置“训练输入”“训练输出”“调优参数”

      “训练输入”:选择“数据集”,选择步骤2:创建数据集中创建并发布的数据集及其版本。

      “训练输出”:选择准备工作中新建的“hilens-gesture/gesture-data-output”文件夹。建议设置为一个OBS空目录,且此目录不能是数据来源目录下的子目录。

      “调优参数”:本示例可使用官方提供的默认参数值。如果您需要调整,建议参考算法说明进行调整。

      “作业日志路径”:选择准备工作中新建的“gesture-data-record”文件夹用于存放日志。
      图11 训练作业详细参数
    4. 在资源设置区域,选择“公共资源池”,并选择一个“规格”,建议选择一个GPU规格,运行效果更佳,“计算节点个数”设置为“1”
      图12 选择资源
    5. 完成信息填写,单击“下一步”
  4. “规格确认”页面,确认填写信息无误后,单击“提交”
  5. “训练作业”管理页面,可以查看新建训练作业的状态。训练作业的创建和运行需要一些时间,预计十几分钟,当状态变更为“运行成功”时,表示训练作业创建完成。

    您可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”“日志”、和“资源占用情况”等信息。在“训练输出位置”所在的OBS路径中,可以获取到生成的模型文件。

步骤5:转换模型

  1. 在ModelArts管理控制台中,选择左侧导航栏的“模型管理 > 压缩/转换”,进入模型转换列表页面。
  2. 单击左上角的“创建任务”,进入任务创建任务页面。
  3. “创建任务”页面,如图13所示,填写相关信息。
    • “名称”:输入“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”,其他选项均为默认值。
    图13 创建模型压缩/转换任务
  4. 任务信息填写完成后,单击右下角“立即创建”

    创建完成后,系统自动跳转至“模型压缩/转换列表”中。刚创建的转换任务将呈现在界面中,其“任务状态”“初始化”。任务执行过程预计需要几分钟到十几分钟不等,请耐心等待,当“任务状态”变为“成功”时,表示任务运行完成并且模型转换成功。

    如果“任务状态”变为“失败”,建议单击任务名称进入详情页面,查看日志信息,根据日志信息调整任务的相关参数并创建新的转换任务。

步骤6:导入模型至Huawei HiLens

  1. 登录Huawei HiLens管理控制台,在左侧导航栏中选择“技能开发 > 模型管理”,进入“模型管理”页面。
  2. “模型管理”页面,单击右上角的“导入(转换)模型”
  3. “导入模型”页面,然后参考图14填写参数,信息确认无误后单击“确定”完成导入。
    • “名称”:输入“gesture-recognition”
    • “版本”:输入“1.0.0”
    • “描述”:输入导入模型的描述。
    • “模型来源”:单击“从ModelArts导入”,在右侧下拉框中选择“OM(从转换任务中获取)”,然后在下方转换任务列表中勾选之前在步骤5:转换模型转换的模型“gesture-recognition”
    图14 导入模型

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

步骤7:新建技能

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

    基本信息

    图15所示。

    • “技能模板”:选择“使用空模板”
    • “技能名称”:输入“Gesture_Recognition”
    • “技能版本”:输入“1.0.0”
    • “适用芯片”:默认为“Ascend310”
    • “检验值”:根据步骤1:准备数据所下载的“手势识别案例”文件夹中的“main.py”文件中init函数参数的值的代码,这里检验值应输入“gesture”。此处的检验值和init函数参数值应保持一致。
    • “应用场景”:选择“其他”,文本框中输入“手势识别”
    • “技能图标”:上传技能图标。
    • “技能图片”:用来向用户介绍技能的使用或技能的效果,可不上传。
    • “OS平台”:选择“Linux”系统。
    • “描述”:输入技能的描述。
    图15 填写基本信息

    技能内容

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

    • “技能格式”:选择“技能包”格式。
    • “运行时语言”:选择“Python3.7”
    • “代码执行文件”:默认输入“index.py”
    • “模型”:单击加号,您可以在弹出框中,选择导入的模型“gesture-recognition”
    • “代码上传方式”:选择“在线编辑”,在代码编辑框中直接编辑代码,可直接复制步骤1:准备数据所下载的“手势识别案例”文件夹中的“.py”文件中的代码内容,请核对代码中模型名称,保持代码中的模型名称与步骤5:转换模型的模型名称一致。此样例中模型名称应是“gesture-recognition.om”,如下所示。
      model   = hilens.Model(hilens.get_model_dir() + "gesture-recognition.om")
    图16 技能内容
  4. 基本信息和技能内容填写完成后,您可以在界面右侧查看其配置参数值,如果某个字段填写错误,在右侧会显示一个小红叉。

    确认信息无误后,单击“确定”完成技能创建。

    图17 确认信息并完成新建技能

创建完成后,您的技能将进入“技能开发>技能管理”页面,且状态为“未发布”,您可以执行发布操作,将技能发布至技能市场;您也可以安装技能至设备,并查看设备使用技能效果。

步骤8:(可选)发布技能

  1. 在Huawei HiLens管理控制台,单击左侧导航栏“技能开发 > 技能管理”,进入“技能管理”页面。
  2. 选择需要发布的技能,单击右边的“发布”
  3. 在弹出的“发布技能到技能市场”对话框中,按图18设置相关信息,单击“确定”
    图18 发布技能
    表1 发布技能参数说明

    参数字段

    说明

    发布服务

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

    计费策略

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

    计费模式

    技能发布后的计费模式。

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

    计量单位

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

    规格限制

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

    隐私声明

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

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

步骤9:安装技能

  1. “技能开发 > 技能管理”页面,选择已开发的的技能,单击右侧操作列“安装”
  2. 勾选已注册且状态在线的设备,单击“安装”,安装成功后单击“确定”,完成安装技能操作,图19所示
    安装过程中,HiLens管理控制台会将技能包下发到设备。下发技能包需要一段时间,可以从进度条中看到技能安装进度,下发完成后“进度”栏会提示“安装成功”
    图19 安装成功

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

步骤10:启动技能

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

    等待一会,当状态变为“运行中”,则技能成功运行在端侧设备上。同时,您也可以通过显示器查看技能输出数据。

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

    图20 查看技能状态
    表2 安装技能状态

    状态名

    状态说明

    停止

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

    运行中

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

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问