文档首页/ 华为HiLens/ 最佳实践/ 人脸检测技能开发
更新时间:2023-06-15 GMT+08:00

人脸检测技能开发

针对业务开发者,华为HiLens提供了导入(转换)模型功能和开发技能的功能,您可以自行开发模型并导入华为HiLens,根据业务诉求编写逻辑代码,然后基于您自定义的算法模型和逻辑代码新建技能。

本章节提供了一个人脸检测技能的样例,介绍从模型导入到查看技能效果,新建一个全新技能的全流程,帮助您快速熟悉华为HiLens技能开发的使用过程。

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

准备工作

  • 已注册华为云帐号,且在使用华为HiLens前检查帐号状态,帐号不能处于欠费或冻结状态。
  • 已购买HiLens Kit设备,并准备好网线,电脑,路由器,HDMI线,显示屏。
  • 成功注册设备HiLens Kit设备至华为HiLens控制台,详情请参见用户指南>注册HiLens Kit。
  • 登录OBS服务,创建桶和文件夹,用于存放样例的模型数据。创建名称为“hilens-test1”OBS桶,创建名称为“face-detection”文件夹和名称为“face-detection-output”的文件夹。

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

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

步骤1:准备数据

华为HiLens在公共OBS桶中提供了人脸检测技能的示例模型,命名为“face_detection_model”,因此本文的操作示例使用此示例模型进行技能开发。您需要执行如下操作,将模型文件上传至您的OBS目录下,即准备工作中您创建的OBS目录“hilens-test1/face-detection”

  1. 单击模型下载链接,将人脸检测案例示例模型“face_detection_model”下载至本地,在文件存放目录完成签名校验(Windows系统推荐使用Git工具),验证成功将返回OK。执行命令如下:

    echo ec5160c48f5ba6025dac696d7ff8b827f1902f6aa712b6969609cb5f290d149a face_detection_model.zip | sha256sum -c

  2. 在本地,将“face_detection_model”压缩包解压。例如解压至本地“face_detection_model”文件夹下,包括两个子文件夹“caffemodel+transfer”“logic_code”
  3. 参考上传文件,将“caffemodel+transfer”文件夹下的3个文件上传至“hilens-test1/face-detection”OBS路径下,包含caffe模型文件“.caffemodel”“.prototxt”和配置文件“.cfg”

步骤2:导入(转换)模型

导入的模型可为“.om”格式、“.pb”格式或“.caffemodel”格式,其中“.om”格式的模型才可以在HiLens Kit上运行,“.pb”格式或“.caffemodel”格式的模型在“导入(转换)”过程中,华为HiLens平台会自动将模型转换为“.om”格式。

  1. 登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。
  2. “模型管理”页面,单击右上角的“导入(转换)模型”
  3. “导入模型”页面,按表1填写参数,信息确认无误后单击“确定”完成导入。

    图1 导入模型
    表1 导入模型参数

    参数

    推荐填写

    “名称”

    输入“face-detection-demo”

    “版本”

    输入“1.0.0”

    “描述”

    输入导入模型的描述。

    “模型来源”

    单击“从OBS导入”,在“选择模型地址”右侧单击,进入模型上传至OBS的存储路径“/hilens-test1/face-detection/”,选中“face_detection.caffemodel”文件,单击“确定”,如图2所示。

    “转换类型”

    选择“Caffe 转 Ascend”

    “转换输入目录”

    在选择“模型来源”后默认输入路径。

    “转换输出目录”

    单击选择转换输出目录为“/hilens-test1/face-detection-output/”

    “高级选项”

    包括输入张量形状、转换输出节点等参数选项。此样例可保持默认参数。

    图2 模型来源
    图3 导入模型

    模型导入后,将进入“模型管理”页面,您导入的模型可从列表中查看模型导入(转换)的状态,包括“转换中”“转换失败”“转换成功”“导入失败”“导入成功”,当状态为“导入成功”时,您可以在华为HiLens管理控制台新建技能。

步骤3:新建技能

  1. 在华为HiLens管理控制台的左侧导航栏中选择“技能开发>技能管理”,进入技能列表。
  2. “技能管理”页面,单击右上角“新建技能”,进入“创建技能”页面。
  3. “创建技能”页面,在“技能模板”中选择“使用空模板”后,填写“基本信息”“技能内容”。此样例可不填“运行时配置(可选)”“难例上传设置(可选)”“弹性技能参数(可选)”

    基本信息

    表2填写基本信息,如图4所示。
    表2 基本信息参数

    参数

    推荐填写

    “技能模板”

    选择“使用空模板”

    “技能名称”

    输入“Face_Detection”

    “技能版本”

    输入“1.0.0”

    “适用芯片”

    默认为“Ascend310”

    “检验值”

    根据步骤1:准备数据所下载的文件“face_detection_model>logic_code”中的“main.py”文件中init函数参数值,这里检验值应输入“test”。此处的检验值和init函数参数值应保持一致。

    “应用场景”

    选择“其他”,然后在文本框中输入“人脸检测”

    “技能图标”

    上传技能图标。

    “OS平台”

    选择“Linux”系统。

    “描述”

    输入技能的描述。

    图4 填写基本信息

    技能内容

    根据您的模型和逻辑代码情况,按表3填写技能内容,如图5所示。
    表3 技能内容参数

    参数

    推荐填写

    “技能格式”

    选择“技能包”格式。

    “运行时语言”

    选择“Python3.7”

    “代码执行文件”

    默认为“index.py”,此样例代码文件名称为“main.py”,因此输入“main.py”

    “模型”

    单击加号,您可以在弹出框中,选择导入的模型“face-detection-demo”

    “代码上传方式”

    1. 选择“在线编辑”,在代码编辑框中直接编辑代码:

      单击,把默认文件“index.py”的文件名改为“main.py”,然后复制步骤1:准备数据所下载的“face_detection_model>logic_code>main.py”文件中的代码,粘贴至“main.py”文件的编辑框中。

    2. 单击“文件>创建同级文件”,输入文件名称“postprocess.py”,单击“确定”。然后复制步骤1:准备数据所下载的“face_detection_model>logic_code>postprocess.py”文件中的代码,粘贴至“postprocess.py”文件的编辑框中。
    图5 技能内容

  4. 基本信息和技能内容填写完成后,您可以在界面右侧查看其配置参数值,如果某个字段填写错误,在右侧会显示一个小红叉。

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

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

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

发布后,技能将处于“审核中”状态,华为HiLens工作人员将在3个工作日内完成审核,请您耐心等待。当审核通过后,状态将变更为“审核通过,已发布”

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

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

    表4 发布技能参数说明

    参数字段

    说明

    发布服务

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

    计费策略

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

    计费模式

    技能发布后的计费模式。

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

    计量单位

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

    规格限制

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

    隐私声明

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

    提交之后,将发送至华为HiLens后台,由工作人员进行审核,3个工作日之内完成审核,请您耐心等待。

步骤5:安装技能

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

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

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

步骤6:启动技能

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

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

    已安装的技能状态说明如表5所示。
    图8 查看技能状态
    表5 安装技能状态

    状态名

    状态说明

    停止

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

    运行中

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

    技能处于“运行中”状态时,您可以通过显示器查看技能输出的视频数据。
    图9 技能效果