
# 开发者开发可训练技能
华为HiLens提供可训练技能模板，通过工作流指引支持自主上传数据集，零代码构建安全帽检测技能，并一键下发到端侧设备HiLens Kit；针对难例数据，可快速迭代更新技能，提升精度。
本章节介绍如何使用HiLens安全帽检测工作流零代码开发技能，通过上传训练数据、训练模型、评估模型，并将技能一键部署至端侧设备HiLens Kit设备，对未戴安全帽的人进行告警。
首先，请仔细阅读[准备工作]罗列的要求，提前完成准备工作。使用安全帽检测工作流开发技能的步骤如下所示：
- [步骤1：上传数据至OBS]
- [步骤2：新建可训练技能]
- [步骤3：选择数据]
- [步骤4：训练模型]
- [步骤5：评估模型]
- [步骤6：部署服务]
- [步骤7：运行技能]
 #### 准备工作
- 注册华为账号，开通华为云，并完成套件申请、访问授权配置等准备工作，详情请见准备工作。
- 保证华为云账号不欠费。在ModelArts Pro控制台开发应用时，会占用对象存储服务OBS资源，需要收取一定费用。
- 基于可训练技能模板新建技能，训练模型和部署技能会占用ModelArts训练资源，需要收取一定费用。
- 在使用安全帽检测技能模板开发技能之前，您需要提前准备用于模型训练的数据，数据要求请见准备数据。
 
 #### 步骤1：上传数据至OBS
1. 按准备数据准备训练数据集，文件夹命名为"Training-Dataset"，并保存至本地。
2. 登录OBS服务，创建桶和文件夹，用于存放数据集。 
   - 创建名称为"mapro-hilens"的OBS桶。
   
   - 创建名称为"training-data-in"的文件夹用于存放训练数据集。
   
   - 创建名称为"training-data-out"的文件夹用于存放输出的数据集。
   
   
   创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。为保证数据能正常访问，请务必保证创建的OBS桶与ModelArts Pro服务在同一区域。
   
   
3. 参考上传文件，使用单个文件上传方式将本地准备的训练数据集"Training-Dataset"文件上传至OBS路径"mapro-hilens/training-data-in"
 
 #### 步骤2：新建可训练技能
1. 登录[ModelArts Pro控制台](https://console.huaweicloud.com/mapro/#/home)，单击"HiLens套件"卡片的"进入套件"。
   
   进入HiLens管理控制台，默认进入"全部模板"页面。
   
   
2. 单击"可训练模板（Beta）"，切换至"可训练模板"页签。
3. 选择技能，单击技能模板卡片的"新建技能"。 
   图1新建技能   
   ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0000001166517950.png)
   
   
4. 在"新建技能"对话框，根据业务需求填写"技能名称"、"技能负责人"和"技能描述"，选择"所属行业"，认真阅读并勾选"同意《公测使用服务协议》"。
5. 确认信息后，单击"确定"。 
   跳至"应用开发"页面，开始开发技能。
   
   
 
 #### 步骤3：选择数据
1. 在"数据选择"页面，单击"新建训练数据集"，右侧弹出"新建数据集"页面。
2. 根据数据存储位置和数据标注情况，按[表1]填写数据集基本信息，然后单击"确定"。
   
   图2新建数据集   
   ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0000001170379698.png)
    表1新建训练数据集参数说明 
   | 参数      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 数据集名称   | 待新建的数据集名称。                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 描述      | 数据集简要描述。                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 数据集状态   | 按上传的数据是否标注分为"已标注数据集"和"未标注数据集"。数据格式请见准备数据。                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 数据上传方式  | 训练数据上传的方式，当前仅支持把数据上传至OBS，默认为"选择obs文件"。                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 数据集输入位置 | 训练数据存储至OBS的位置。 单击"数据集输入位置"右侧输入框，在弹出的"数据集输入位置"对话框中，选择"OBS桶"和"文件夹"，然后单击"确定"。 本样例选择在[步骤1：上传数据至OBS]中创建的OBS桶和文件夹"/mapro-hilens/training-data-in"。                                        |
   | 数据集输出位置 | 待新建的数据集存储至OBS的位置。 待新建的数据集有一个默认存储位置。如果需要修改数据集存储位置，请单击"数据集输出位置"右侧的"修改"，在弹出的"数据集输出位置"对话框中，选择"OBS桶"和"文件夹"，然后单击"确定"。 本样例选择在[步骤1：上传数据至OBS]中创建的OBS桶和文件夹"/mapro-hilens/training-data-out"。 |
      
   
   
3. 勾选当前应用开发所需的训练数据集。 
   下方可查看标签解析。
   图3选择数据集   
   ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0000001170219718.png "点击放大")
   
   
4. 单击右下角的"下一步"。 
   进入"模型训练"步骤。
   
   
 
 #### 步骤4：训练模型
1. 在"模型训练"页面，按[表2]配置训练参数，然后单击"开始训练"。
   
   图4配置模型训练参数   
   ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0000001166558392.png "点击放大")
    表2模型训练参数说明 
   | 参数    | 说明                                                           |
   |:---|:---|
   | 输出路径  | 模型训练后，输出的模型和数据存储在OBS的路径。单击输入框，在输出路径的对话框中选择OBS桶和文件夹，然后单击"确定"。 |
   | 预训练模型 | 当前服务提供安全帽检测预置模型"saved_model.pb"，请勾选预训练模型。                    |
   | 高级参数  | 当前仅支持使用默认参数，无法调整。                                            |
      
   
   
2. 模型训练一般需要运行一段时间，等模型训练完成后，"应用开发\>模型训练"页面下方显示训练详情。 
   图5训练详情   
   ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0000001211759279.png "点击放大")
   
   
3. 单击右下角的"下一步"。 
   进入"模型评估"步骤。
   
   
 
 #### 步骤5：评估模型
1. 在"应用开发\>模型评估"页面，可以针对当前版本的模型进行模型评估，查看评估参数对比和详细评估。 
   - 模型评估
     图6模型评估   
     ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0278857832.png "点击放大")
     训练模型的版本、标签数量、测试集数量。单击"下载评估结果"，可保存评估结果至本地。
     
   
   - 评估参数对比
     图7评估参数对比   
     ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0278857967.png "点击放大")
     左侧是各个标签数据的精确率、召回率、F1值。勾选标签，右侧会显示对应标签数据经过预置模型和增量模型评估后的参数对比柱状图。
     
   
   - 详细评估
     图8详细评估   
     ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0278858500.png "点击放大")
     可在右上角筛选标签和置信度范围，查看详细的测试数据。
     
   
   
   
   
2. 单击右下角的"下一步"。 
   进入"应用开发\>服务部署"页面。
   
   
 
 #### 步骤6：部署服务
"服务部署"页面，工作流会根据训练的模型自动创建技能，并显示如下默认参数。
- 技能名称：工作流自动创建技能后，生成默认技能名称。
- 设备类别：当前仅支持将技能安装至HiLens Kit设备上，安装技能之前，请在同一账号同一区域的华为HiLens控制台注册HiLens Kit设备，详细操作指导请见[注册HiLens Kit](https://support.huaweicloud.com/usermanual-hilens/hilens_02_0048.html)。
- 设备名称：显示同一账号同一区域下注册在华为HiLens控制台的设备列表。
1. 在"服务部署"页面，勾选待安装技能的设备。 
   勾选设备需处于"在线"状态。
   图9服务部署   
   ![](https://support.huaweicloud.com/qs-hilens/zh-cn_image_0000001166425566.png "点击放大")
   
   
2. 单击技能名称右侧的"开始安装"，就开始安装技能。 
   设备列表的进度列会显示安装技能的进度，安装完成后，会显示"已安装"。
   
   
 
 #### 步骤7：运行技能
1. 使用HDMI视频线缆连接HiLens Kit视频输出端口和显示器。
2. 登录HiLens管理控制台，单击左侧导航栏"设备管理\>设备列表"，进入"设备列表"页面。
3. 选择上一步骤中安装技能的设备，单击设备卡片。 
   进入"设备详情"页，默认展示"技能管理"页签。
   
   
4. 选择上一步骤中安装的技能，单击操作列的"启动"，并单击"确定"，确定启动技能运行在端侧设备上。 
   等待一会，当状态变为"运行中"，则技能成功运行在端侧设备上。
   已安装的技能状态说明如[表3]所示。
    表3安装技能状态 
   | 状态名 | 状态说明               |
   |:---|:---|
   | 停止  | 停止状态，技能停止运行在端侧设备上。 |
   | 运行中 | 运行状态，技能成功安装在端侧设备。  |
      
   技能处于"运行中"状态时，您可以通过显示器查看技能输出的视频数据，此样例所开发的安全帽检测技能可检测人是否会戴安全帽。
   
   
 
