
# 人脸检测技能开发
针对业务开发者，华为HiLens提供了导入（转换）模型功能和开发技能的功能，您可以自行开发模型并导入华为HiLens，根据业务诉求编写逻辑代码，然后基于您自定义的算法模型和逻辑代码新建技能。
本章节提供了一个人脸检测技能的样例，介绍从模型导入到查看技能效果，新建一个全新技能的全流程，帮助您快速熟悉华为HiLens技能开发的使用过程。
开始使用样例前，请仔细阅读[准备工作]罗列的要求，提前完成准备工作。具体技能开发的步骤如下所示：
- [步骤1：准备数据]
- [步骤2：导入（转换）模型]
- [步骤3：新建技能]
- [步骤4：（可选）发布技能]
- [步骤5：安装技能]
- [步骤6：启动技能]
 #### 准备工作
- 已注册华为云帐号，且在使用华为HiLens前检查帐号状态，帐号不能处于欠费或冻结状态。
- 已购买HiLens Kit设备，并准备好网线，电脑，路由器，HDMI线，显示屏。
- 成功注册设备HiLens Kit设备至华为HiLens控制台，详情请参见[注册HiLens Kit](https://support.huaweicloud.com/usermanual-hilens/hilens_02_0048.html)。
- 登录OBS服务，创建桶和文件夹，用于存放样例的模型数据。创建名称为"hilens-test1"OBS桶，创建名称为"face-detection"文件夹和名称为"face-detection-output"的文件夹。 创建OBS桶和文件夹的操作指导请参见[创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)和[新建文件夹](https://support.huaweicloud.com/usermanual-obs/obs_03_0316.html)。为保证模型数据能正常访问，请务必保证创建的OBS桶与华为HiLens在同一区域。
  占用OBS资源的操作均会收取一定费用，收费规则请参见[对象存储服务 OBS](https://www.huaweicloud.com/pricing.html?tab=detail#/obs)。
  
 
 #### 步骤1：准备数据
华为HiLens在公共OBS桶中提供了人脸检测技能的示例模型，命名为"face_detection_model"，因此本文的操作示例使用此示例模型进行技能开发。您需要执行如下操作，将模型文件上传至您的OBS目录下，即准备工作中您创建的OBS目录"hilens-test1/face-detection"。
1. 单击[模型下载链接](https://hilens-guide-cn-north-4.obs.cn-north-4.myhuaweicloud.com/face_detection_model.zip)，将人脸检测案例示例模型"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. 参考[上传文件](https://support.huaweicloud.com/usermanual-obs/obs_03_1002.html)，将"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管理控制台](https://console.huaweicloud.com/hilens/)，在左侧导航栏中选择"技能开发\>模型管理"，进入"模型管理"页面。
2. 在"模型管理"页面，单击右上角的"导入（转换）模型"。
3. 在"导入模型"页面，按[表1]填写参数，信息确认无误后单击"确定"完成导入。
   
   图1导入模型   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001162531898.png "点击放大")
    表1导入模型参数 
   | 参数       | 推荐填写                                                                                                                                                                                                                                                      |
   |:---|:---|
   | "名称"     | 输入"face-detection-demo"。                                                                                                                                                                                                                                  |
   | "版本"     | 输入"1.0.0"。                                                                                                                                                                                                                                                |
   | "描述"     | 输入导入模型的描述。                                                                                                                                                                                                                                                |
   | "模型来源"   | 单击"从OBS导入"，在"选择模型地址"右侧单击![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001093148353.png "点击放大")，进入模型上传至OBS的存储路径"/hilens-test1/face-detection/"，选中"face_detection.caffemodel"文件，单击"确定"，如[图2]所示。 |
   | "转换类型"   | 选择"Caffe 转 Ascend"。                                                                                                                                                                                                                                       |
   | "转换输入目录" | 在选择"模型来源"后默认输入路径。                                                                                                                                                                                                                                         |
   | "转换输出目录" | 单击![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001093148355.png "点击放大")选择转换输出目录为"/hilens-test1/face-detection-output/"。                                                                                                        |
   | "高级选项"   | 包括输入张量形状、转换输出节点等参数选项，详情请见[高级选项](https://support.huaweicloud.com/usermanual-hilens/hilens_02_0062.html#hilens_02_0062__table19918847567)。此样例可保持默认参数。                                                                                                       |
      
   图2模型来源   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001093409299.png)
   图3导入模型   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0236786651.png "点击放大")
   模型导入后，将进入"模型管理"页面，您导入的模型可从列表中查看模型导入（转换）的状态，包括"转换中"、"转换失败"、"转换成功"、"导入失败"、"导入成功"，当状态为"导入成功"时，您可以在华为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填写基本信息   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0243357776.png "点击放大")
   **技能内容**
   根据您的模型和逻辑代码情况，按[表3]填写技能内容，如[图5]所示。
    表3技能内容参数 
   | 参数       | 推荐填写                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|
   | "技能格式"   | 选择"技能包"格式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | "运行时语言"  | 选择"Python3.7"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | "代码执行文件" | 默认为"index.py"，此样例代码文件名称为"main.py"，因此输入"main.py"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | "模型"     | 单击加号，您可以在弹出框中，选择导入的模型"face-detection-demo"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | "代码上传方式" | 1. 选择"在线编辑"，在代码编辑框中直接编辑代码： 单击![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001093553425.png "点击放大")，把默认文件"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技能内容   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0240669708.png "点击放大")
   
   
   
4. 基本信息和技能内容填写完成后，您可以在界面右侧查看其配置参数值，如果某个字段填写错误，在右侧会显示一个小红叉。 
   确认信息无误后，单击"确定"完成技能创建。
   图6确认信息并完成新建技能   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0236803689.png)
   
   
 
创建完成后，您的技能将进入"技能开发\>技能管理"页面，且状态为"未发布"，您可以执行发布操作，将技能发布至技能市场；您也可以安装技能至设备，并查看设备使用技能效果。
发布后，技能将处于"审核中"状态，华为HiLens工作人员将在3个工作日内完成审核，请您耐心等待。当审核通过后，状态将变更为"审核通过，已发布"。
 #### 步骤4：（可选）发布技能
1. 在华为HiLens管理控制台，单击左侧导航栏"技能开发\>技能管理"，进入"技能管理"页面。
2. 选择需要发布的技能，单击右边的"发布"。
3. 在弹出的"发布技能"对话框中，按[表4]设置相关信息，单击"确定"。
   
   图7发布技能至技能市场   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001079479994.png "点击放大")
    表4发布技能参数说明 
   | 参数字段 | 说明                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 发布服务 | 技能发布的服务位置。本样例选择"HiLens技能市场"。                                                                                                                                                                                                                                                                 |
   | 计费策略 | 技能发布在HiLens技能市场的计费策略。可选择"免费"和"收费"。                                                                                                                                                                                                                                                           |
   | 计费模式 | 技能发布后的计费模式。 - 若选择"免费"计费策略，仅可选择"一次性"计费模式。  - 若选择"收费"计费策略，可选择"包年/包月"和"一次性"两种计费模式。   |
   | 计量单位 | 表示可用在设备上的规格。有"路数"和"并发量"两种计量方式。若以"路数"规格，可安装在设备上使用一路视频。                                                                                                                                                                                                                                        |
   | 规格限制 | 技能在同一设备上最多可以处理视频的路数，或最大并发量。                                                                                                                                                                                                                                                                  |
   | 隐私声明 | 技能涉及到的用户隐私声明。                                                                                                                                                                                                                                                                                |
      
   提交之后，将发送至华为HiLens后台，由工作人员进行审核，3个工作日之内完成审核，请您耐心等待。
   
   
 
 #### 步骤5：安装技能
1. 在"技能开发\>技能管理"页面，选择已开发的的技能，单击右侧"安装"。
2. 勾选已注册且状态显示在线的设备，单击"安装"，安装成功后单击"确定"，完成安装技能操作，如[图8]所示。
   
   安装过程中，华为HiLens管理控制台会将技能包下发到设备。下发技能包需要一段时间，可以从进度条中看到技能安装进度，下发完成后"进度"栏会提示"安装成功"。
   图8安装成功   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0243641073.png "点击放大")
   安装成功后，您可以启动技能查看技能输出数据。
   
   
 
 #### 步骤6：启动技能
1. 使用HDMI视频线缆连接HiLens Kit视频输出端口和显示器。
2. 单击左侧导航栏"设备管理\>设备列表"，进入"设备列表"页面。
3. 单击已注册设备的设备卡片，进入设备详情页，默认进入"技能管理"页签，已安装的人脸检测技能状态为"停止"，单击操作列的"启动"，并单击"确定"，确定启动技能运行在端侧设备上。 
   等待一会，当状态变为"运行中"，则技能成功运行在端侧设备上。
   已安装的技能状态说明如[表5]所示。
   图9查看技能状态   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0243939586.png "点击放大")
    表5安装技能状态 
   | 状态名 | 状态说明               |
   |:---|:---|
   | 停止  | 停止状态，技能停止运行在端侧设备上。 |
   | 运行中 | 运行状态，技能成功安装在端侧设备。  |
      
   技能处于"运行中"状态时，您可以通过显示器查看技能输出的视频数据。
   图10技能效果   
   ![](https://support.huaweicloud.com/bestpractice-hilens/zh-cn_image_0000001088298347.png "点击放大")
   
   
 
