华为云用户手册

  • 前提条件 已在华为HiLens控制台选择“HiLens安全帽检测”技能模板新建技能,并评估模型,详情请见评估模型。 由于部署在线应用涉及ModelArts功能,需消耗资源,要确保账户未欠费。 安装技能至设备,需要提前在华为HiLens控制台注册HiLens Kit设备,详细操作指导请见注册HiLens Kit。 在华为HiLens控制台自动创建的技能只能安装至同一账号同一区域下注册的HiLens Kit设备。
  • 操作步骤 在HiLens Studio界面打开技能项目。 单击左上角,左侧将展示开发项目的文件目录。 单击“model”文件夹,右键单击“.om”格式的模型文件,选择“Encrypt Model”。 弹出“Encrypt Model”对话框。 图1 加密模型 “Encrypt Model”对话框中显示了模型密钥,单击“OK”。 在左侧“model”目录下会生成带密钥的模型文件,为区别于原模型,名称后缀增加“.en”。 图2 带密钥模型
  • 采用ModelArts开发 ModelArts是面向AI开发者的一站式开发平台,您可以使用ModelArts开发一个用于HiLens平台的算法模型。 在使用ModelArts开发或训练的模型后,其模型将存储在ModelArts的模型列表中。由于目前华为HiLens仅支持TensorFlow和Caffe引擎开发的算法模型,因此建议在使用ModelArts开发时,注意选择引擎类型以及模型保存格式。 ModelArts自动学习功能训练生成的模型,暂时不支持用于HiLens平台。
  • 前提条件 目前,HiLens Kit的AI芯片支持运行“.om”模型,“.om”模型可以通过TensorFlow或Caffe模型转换而来,但“.om”模型并不支持TensorFlow和Caffe全部的算子,所以在开发模型的时候开发者需要用“.om”模型支持的算子,才能把TensorFlow和Caffe模型转换成“.om”模型。“.om”模型支持的TensorFlow和Caffe算子边界请见附录Caffe算子边界和Tensorflow算子边界。 “.om”模型当前暂不能完全兼容TensorFlow内置的Keras API。 “.om”模型当前不支持Caffe2。
  • 技能结果上传接口 请求消息 推理结果将以HTTPS POST请求方法推送到应用系统server的指定URL地址。 POST {sendUrl} 其中sendUrl在技能运行时配置中设置。 请求消息头 技能以json形式返回推理结果,因此消息头Content-Type类型为“application/json”,参数说明如表5所示。 表5 请求消息头参数说明 名称 描述 是否必选 示例 Content-Type 消息体的类型(格式) 是 application/json。 公共消息体 华为HiLens 公共消息体包含了技能的公共消息内容,如表6所示。 表6 公共消息体参数说明 名称 类型 说明 msg_type String 技能类型,为face_detection_result。 cam_name String 摄像头名称。 skill_id String 技能ID。 技能消息体 人脸检测的json消息体如表7所示: 表7 技能消息体参数说明 名称 类型 说明 face_id String 人脸图UUID。 track_id Uint64 人脸的跟踪标记,相同的track_id表示同一个人脸。 ori_img_id String 人脸背景原始图UUID。 time Uint64 图片解码时间的时间戳,单位为秒。 bbox Object 人脸图在背景图中的位置信息。位置信息参数请参见表8。 clarity Float 人脸清晰度,范围[0,1]。 face_image String 人脸图BASE64编码结果。 ori_image String 原始图BASE64编码结果,如果配置不发送原始图,则无该字段。 表8 bbox位置信息参数说明 字段 类型 说明 x Int 人脸图左上角顶点x坐标值。 y Int 人脸图左上角顶点y坐标值。 h Int 人脸图高。 w Int 人脸图宽。 人脸检测的json消息体示例如下: { "msg_type": "face_detection_result", "cam_name": "store001_pos2", "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c", "face_id": "0DD1BEA6-634B-11E8-8B0B-407D0FAD9218", "track_id": 1, "ori_img_id": "0DD1BF0A-634B-11E8-8B0B-407D0FAD9218", "time": 1527603463, "bbox ": { "x": 32, "y": 379, "w": 49, "h": 65 }, "clarity": 0.55, "face_image": "4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQE...", "ori_image": "4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQE...", } 响应消息 响应消息头 响应消息头由服务器端(应用系统)收到请求消息后返回。 响应消息头可包含如下两部分。 一个HTTP状态代码,从2xx成功代码到4xx或5xx错误代码。或者可以返回服务定义的状态码。 附加响应头字段,如支持请求的响应所需,如Content-type响应消息头。 详细的公共响应消息头参数说明如表9所示。 表9 公共响应消息头参数说明 名称 描述 示例 Date HTTP协议标准报头。表示消息发送的时间,时间的描述格式由rfc822定义。 Mon, 12 Nov 2007 15:55:01 GMT Server HTTP协议标准报头。包含了服务器用来处理请求的软件信息。 Apache Content-Length HTTP协议标准报头。用于指明实体正文的长度,以字节方式存储的十进制数字来表示。 xxx Content-Type HTTP协议标准报头。用于指明发送给接收者的实体正文的媒体类型。 application/json 响应消息体(可选) 响应消息体通常以结构化格式(如json或xml)返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。
  • 技能描述 面向智慧商超的人脸采集技能。本技能使用多个深度学习算法,实时分析视频流,自动抓取画面中的清晰人脸上传至您的后台系统,用于后续实现其他业务。 本技能支持: 判断并过滤尺寸过小、清晰度较差、角度过大等无法判断的人脸。 同时检测多张人脸。 人脸跟踪。对同一个人抓拍的人脸做去重,避免大量的重复上报。 根据业务需求划定区域,只抓取固定区域内的人脸。 使用时需要提供您的业务RESTful接口和RTSP视频地址,最大支持10路网络摄像头接入,并按照接入的路数进行收费。 摄像头部署建议请参见摄像头部署。 技能配置项请参见运行时配置参数。 技能接口设计请参见技能结果上传接口。
  • 运行时配置参数 技能在运行时,需要添加运行时配置。配置完成后,参数会从华为HiLens云侧下发到端侧设备。 配置参数说明 技能相关配置参数设计如表3所示。 表3 运行时配置参数 名称 是否必选 参数类型 说明 logLevel 是 Enum 日志级别,包括INFO,DEBUG,WARNING和ERROR。建议设置为INFO。 keep_running 是 Int 当技能崩溃是否自动拉起技能并持续运行。此项配置在1.1.0及以后版本起作用。 multi_camera 是 List 一个设备上多路视频的技能参数,详情请参见表4。 表4 视频参数说明 名称 是否必选 参数类型 说明 camera_names 是 List 摄像头名称。可配置多个名称,表示多个摄像头采用同样的技能配置。 sendOriImgFlag 是 Int 是否发送人脸背景原始图,默认值:0。 0:表示不发送 1:表示发送 sendRepeatFaceFlag 是 Int 是否重复发送清晰人脸图,开关打开后,同一个人只要显示更清晰的人脸会重复发送, 默认值:0。 0:表示不发送 1:表示发送 sendOriImgCompressionRatio 否 Int 原始图jpeg压缩百分比,默认值为90,表示图片压缩比90%,取值范围[1 100]。 cropSizeMax 否 Int 发送人脸图片长宽的最大像素,默认值400。 cropSizeMin 否 Int 发送人脸图片长宽的最小像素,默认值80。 roi 否 String 检测区域配置。区域的设置由Polygon开头,其后依次为区域的坐标(按顺时针排列的x,y坐标)。默认值为Polygon 0 0 0 0,表示检测整个画面。 sendUrl 是 String 发送技能消息POST请求的URL地址。 faceQualityThreshold 是 Float 人脸清晰度阈值。清晰度大于此值的人脸才发送。取值范围[0.0, 1.0],默认值0.38。 centerMode 否 Int 是否只检测roi区域中的最大人脸,默认值0。 0:返回所有人脸。 1:只返回roi中最大的人脸。 示例 HiLens Kit设备支持多路摄像头接入,如果要为不同的摄像头设置不同的技能配置,或者几个摄像头共用同一技能配置,则可在配置列表中给出相应的配置信息,示例如下: //Store001的两个摄像头pos1和pos2配置不同参数:{ "logLevel": "INFO", "keep_running": 1, "multi_camera": [{ "camera_names": ["store001_pos1"], "sendOriImgFlag": 0, "sendRepeatFaceFlag": 0, "sendOriImgCompressionRatio": 90, "cropSizeMax": 400, "cropSizeMin": 120, "roi": "Polygon 0 0 0 0", "sendUrl": "https://abc.company.com/face", "faceQualityThreshold": 0.45, "centerMode": 0 }, { "camera_names": ["store001_pos2"], "sendOriImgFlag": 1, "sendRepeatFaceFlag": 1, "sendOriImgCompressionRatio": 100, "cropSizeMax": 300, "cropSizeMin": 80, "roi": "Polygon 0 0 0 0", "sendUrl": "https://abc.company.com/face", "faceQualityThreshold": 0.55, "centerMode": 0 }]}//Store002的两个摄像头pos1和pos2配置相同参数:{ "logLevel": "INFO", "keep_running": 1, "multi_camera": [{ "camera_names": ["store002_pos1","store002_pos2"], "sendOriImgFlag": 0, "sendRepeatFaceFlag": 0, "sendOriImgCompressionRatio": 90, "cropSizeMax": 400, "cropSizeMin": 120, "roi": "Polygon 0 0 0 0", "sendUrl": "https://abc.company.com/face" "faceQualityThreshold": 0.55, "centerMode": 0 }]}
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 授权范围:自定义策略的授权范围,包括 IAM 项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 对应API接口:自定义策略实际调用的API接口。 华为HiLens服务的支持自定义策略授权项如下所示: 设备管理权限 技能开发权限 技能市场权限 管理产品权限
  • 华为HiLens自定义策略样例 示例:拒绝用户删除已开发的技能 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。 如果您给用户授予华为HiLens FullAccess的系统策略,但不希望用户拥有华为HiLens FullAccess中定义的删除已开发的技能权限,您可以创建一条拒绝删除已开发的技能的自定义策略,然后同时将华为HiLens FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对华为HiLens执行除了删除已开发的技能外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "hilens:project:deleteProject" ] } ] }
  • HiLens Framework示例代码 HiLens Kit搭载了HiLens Framework,开发者在开发技能编写逻辑代码时,可以直接调用HiLens Framework的API。 下面是使用HiLens Framework获取摄像头内容并做简单处理的示例。 需要在开发技能时填写代码执行文件。 固件1.1.2及以后版本支持配置技能的Python依赖库。开发者在开发技能过程中,可根据自身需要配置技能的Python依赖库,详情请见配置技能的Python依赖库。 #!/usr/bin/python3# skillframework 1.0.0 python demoimport hilens # 导入hilens包import cv2 # 导入opencvdef main(): hilens.init("hello") # 技能初始化 model = hilens.Model(hilens.get_model_dir() + "faceDetection.om") # 构造模型管理器。 disp = hilens.Display(hilens.HDMI) # 构造显示器 cap = hilens.VideoCapture() # 构造摄像头 proc = hilens.Preprocessor() # 构造预处理器 hilens.set_log_level(hilens.DEBUG) # 设定日志级别 hilens.Info("This is a skillframework python demo") # 打印日志 for i in range(10): frame = cap.read() # 读取一帧画面 rframe = proc.resize(frame, 480, 480, 1) # 缩放 inputs = [rframe.flatten()] # 构造模型输入 outputs = model.infer(inputs) # 推理 hilens.Info("outputs len: %d" % len(outputs)) # 打印输出尺寸 for o in outputs: hilens.Info("output shape: " + str(o.shape)) # post process is ignored disp.show(frame) # 将图像输出到显示器 hilens.terminate() # 销毁资源if __name__ == "__main__": main()
  • 技能开发流程介绍 在华为HiLens控制台选择“HiLens安全帽检测”技能模板新建技能后,您可以自主上传数据训练模型,开发安全帽检测技能,实现安全帽检测功能,并快速创建技能,一键部署至端侧设备。 图1 HiLens安全帽检测技能流程 表1 HiLens安全帽检测技能说明 流程 说明 详细指导 准备数据 在使用安全帽检测技能模板开发技能之前,您需要提前准备用于模型训练的数据,上传至OBS服务中。 准备数据 选择数据 在使用HiLens安全帽检测技能模板开发应用时,您需要新建训练数据集,后续训练模型操作是基于您创建的训练数据集。 选择数据 训练模型 选择训练数据后,基于已标注的训练数据,选择预训练模型、配置参数,用于训练安全帽检测模型。 训练模型 评估模型 训练得到模型之后,整个开发过程还不算结束,需要对模型进行评估和考察。 一些常用的指标,如精准率、召回率、F1值等,能帮助您有效的评估,最终获得一个满意的模型。 评估模型 部署应用 模型准备完成后,您可以快速创建技能,并一键安装技能至端侧设备。也可以进入HiLens Studio自动创建技能,进一步调试技能。 部署应用 父主题: HiLens安全帽检测技能
  • 订购技能(用于35XX系列设备) 您可在华为HiLens平台的技能市场订购所需要的技能,用于开发海思35XX系列的设备。技能适用的芯片包括:3516CV500、3519AV100、3519V101、3516DV300、3516EV200、3516EV300、3518EV300、ARM。 如果技能市场有您需要的技能,您可以直接购买技能。如果技能市场没有您需要的技能,可以向华为HiLens提出定制技能。 购买技能:在技能市场中,您需要选择“适用于海思35XX系列芯片”的技能。详细指导请参见购买技能。 定制技能:详细指导请参见定制技能,在定制技能时,必须根据实际情况填写适用芯片。 父主题: 管理产品
  • 使用SSH查看日志 SSH连接到HiLens Kit设备,详细操作指导请参见连接PC和HiLens Kit。 根据固件版本号,执行查看日志命令: 固件版本1.0.4前(不包含固件版本1.0.4): 查看设备agent日志 tail -f /home/hilens/hda/log/hdad.log 查看技能日志 tail -f /home/hilens/hda/log/开发者.技能名.技能ID.log 固件版本1.0.4至1.1.1: 查看设备agent日志 tail -f /home/log/alog/hilens/hda/hdad.log 查看技能日志 tail -f /home/log/alog/hilens/hda/开发者.技能名.技能ID.log 固件版本1.1.2及以后: 查看设备agent日志 tail -f /home/log/alog/hilens/hda/hdad.log 查看技能日志 tail -f /home/log/alog/hilens/skills/开发者.技能名.技能ID/开发者.技能名.技能ID.log 为保证您的设备可以运行更新更好的技能,建议及时升级固件版本。升级固件版本请参见升级HiLens_Device_Agent固件版本。
  • 上传数据至OBS 使用 ModelArts Pro 进行应用开发时,您需要将数据上传至OBS桶中。 首先需要获取访问OBS权限,在未进行委托授权之前,无法使用此功能。 已创建用于存储数据的OBS桶及文件夹,且数据存储的OBS桶与ModelArts Pro在同一区域(目前仅支持华为-北京四),详情请见创建OBS桶。 上传数据至OBS,OBS上传数据的详细操作请参见《 对象存储服务 快速入门》。 您在创建OBS桶时,需保证您的OBS桶与ModelArts Pro在同一个区域。 建议根据业务情况及使用习惯,选择OBS使用方法。 如果您的数据量较小(小于100MB)或数据文件较少(少于100个),建议您使用控制台上传数据。控制台上传无需工具下载或多余配置,在少量数据上传时,更加便捷高效。 如果您的数据量较大或数据文件较多,建议选择OBS Browser+或obsutil工具上传。OBS Browser+是一个比较常用的图形化工具,支持完善的桶管理和对象管理操作。推荐使用此工具创建桶或上传对象。obsutil是一款用于访问管理OBS的命令行工具,对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务较好的选择。 如果您的业务环境需要通过API或SDK执行数据上传操作,或者您习惯于使用API和SDK,推荐选择OBS的API或SDK方法创建桶和上传对象。 上述说明仅罗列OBS常用的使用方式和工具,更多OBS工具说明,请参见《OBS工具指南》。
  • 使用场景 当您注册的设备超过1台时,在该设备上安装您自行开发的基础技能类型技能,包括在控制台开发的技能、使用可训练技能模板开发的技能,需要购买HiLens端边云协同平台服务,在设备管理页面对指定设备进行权限激活。 安装来自技能市场的技能,其安装权限不受限制,无需购买HiLens端边云协同平台服务,也无需激活权限。 首台注册的设备,其技能安装权限不受限制,无需购买HiLens端边云协同平台服务,也无需激活权限。
  • 导入(转换)模型 在HiLens Studio界面左侧,单击。 页面左侧将显示您在ModelArts训练好的模型列表。 图1 模型列表 选择待导入、转换的模型,单击“Operation”列的“Apply”。 如果是“om”格式的模型,待模型导入成功后,HiLens Studio右下角会提示“Model imported successfully.”,文件夹“model”下会显示新导入的模型文件。 如果是非“om”格式的模型,会弹出“Convert Model”对话框。 按表1填写模型转换的信息,单击“OK”。 表1 Convert Model参数说明 参数 说明 Model Path 待转换的模型文件在技能项目文件中的位置。一般将模型导入至文件夹“save_model”。 Configuration 待转换模型的配置文件在技能项目文件中的位置。例如“save_model/aipp_rgb.cfg”。 Output Path 模型转换后输出位置。 Type 模型转换的类型,包括“TF-FrozenGraph-To-Ascend-HiLens”、“Caffe to Ascend”。 “TF-FrozenGraph-To-Ascend-HiLens” 支持将Tensorflow frozen graph模型转换成可在ascend芯片上运行的模型。 “Caffe to Ascend” 支持将Caffe模型转换成可在ascend芯片上运行的模型。 Advanced Options 当模型转换类型为“TF-FrozenGraph-To-Ascend-HiLens”时,可填写高级选项,包括张量形状、转换输出节点等参数选项,详情请见表2。 表2 Advanced Options 参数名称 参数说明 Input Tensor Shape 输入张量形状。若在上文“模型来源”中,选择需要转换格式的模型(非om格式模型),并且转换类型是“Tensorflow frozen graph 转 Ascend”或“Tensorflow SavedModel 转 Ascend”时,需要填写输入张量形状。 张量形状即模型输入数据的shape,输入数据格式为NHWC,如“input_name:1,224,224,3”,必填项。“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。 如果存在多个输入,请以分号(;)隔开。 out_nodes 转换输出节点,即指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。 input_format 输入数据格式,默认是“NHWC”,如果实际是“NCHW”的话,需要通过此参数指定“NCHW”。 net_format 优选数据格式,即指定网络算子优先选用的数据格式,“ND(N=4)”和“5D”。仅在网络中算子的输入数据同时支持“ND”和“5D”两种格式时,指定该参数才生效。“ND”表示模型中算子按“NCHW”转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。 fp16_high_precsion 生成高精度模型,指定是否生成高精度“FP16 Davinci”模型。 0为默认值,表示生成普通“FP16 Davinci”模型,推理性能更好。 1表示生成高精度“FP16 Davinci”模型,推理精度更好。 output_type 网络输出数据类型,“FP32”为默认值,推荐分类网络、检测网络使用;图像超分辨率网络,推荐使用“UINT8”,推理性能更好。
  • 前提条件 已在ModelArts在线训练算法模型,训练模型可参见《ModelArts文档》。如果要使用ModelArts的预置算法,当前华为HiLens平台仅支持转换如下预置算法: yolov3_resnet18(检测物体类别和位置) ResNet_v1_50(图像分类) 暂不支持导入ModelArts中“自动学习”训练的模型。 华为HiLens 只能导入ModelArts中训练的模型文件,不能导入ModelArts的模型。
  • 模型输入目录规范 在本地开发模型后或在ModelArts开发并转换模型后,针对Ascend芯片,其模型输入目录需要满足一定的规范要求。华为HiLens当前对模型输入目录的要求如下: 针对基于Caffe框架的模型,执行模型导入(转换)时,其输入目录需符合如下规范。 ||---xxxx.caffemodel 模型参数文件,输入目录下有且只能有一个,必填。|---xxxx.prototxt 模型网络文件,输入目录下有且只能有一个,必填。|---insert_op_conf.cfg 插入算子配置文件,输入目录下有且只有一个,可选。|---plugin 自定义算子目录,输入目录下有且只能有一个plugin文件夹,可选。仅支持基于TE(Tensor Engine)开发的自定义算子。 针对基于TensorFlow框架的模型(“frozen_graph”或“saved_model”格式),执行模型导入(转换)时,其输入目录需符合如下规范。 “frozen_graph”格式 ||---xxxx.pb 模型网络文件,输入目录下有且只能有一个,必填。支持以frozen_graph或saved_model格式保存的模型。|---insert_op_conf.cfg 插入算子配置文件,输入目录下有且只有一个,可选。|---plugin 自定义算子目录,输入目录下有且只能有一个plugin文件夹,可选。仅支持基于TE(Tensor Engine)开发的自定义算子。 “saved_model”格式 ||---saved_model.pb 模型网络文件,输入目录下有且只能有一个,必填。支持以frozen_graph或saved_model格式保存的模型。|---variables 固定子目录名称,包含模型的权重偏差等信息,必选 |---variables.index 必选 |---variables.data-00000-of-00001 必选|---insert_op_conf.cfg 插入算子配置文件,输入目录下有且只有一个,可选。|---plugin 自定义算子目录,输入目录下有且只能有一个plugin文件夹,可选。仅支持基于TE(Tensor Engine)开发的自定义算子。 父主题: 管理算法模型
  • 运行时配置参数 技能在运行时,需要添加运行时配置。配置完成后,参数会从华为HiLens云侧下发到端侧设备。 表2 运行时参数说明 参数 是否必选 参数类型 说明 confidence_threshold 是 Float 车牌显示结果最小得分。 province 是 String 当前Kit所部署的省份信息。 multi_camera 是 Array 一个设备上多路视频的技能参数,其技能参数说明请见表3。 表3 “multi_camera”参数说明 名称 是否必须 参数类型 说明 camera_names 是 Array 摄像头名称。摄像头名称与设备的rtsp流配置的名称对应。可配置多个名称,表示多个摄像头采用同样的配置。
  • 技能描述 面向智慧商超的车牌技能。本技能使用多个深度学习算法,实时分析视频流,自动抓取画面中的车牌,结果自动上传至您的后台系统,用于后续实现其他业务。 本技能支持: 显示外接IPC摄像头中捕捉到的画面中出现的车牌信息。 画面中同时出现多个车牌的情况下只支持一个车牌的显示及结果上传。 支持返回车牌颜色。 自动过滤视频流中出现的重复车牌。 摄像头部署建议请参考摄像头部署。 技能接口设计请参见技能结果上传接口。
  • 技能结果上传接口 请求消息 推理结果将以HTTPS POST请求方法推送到应用系统server的指定URL地址。 POST {sendUrl} 其中sendUrl在技能运行时配置中设置。 请求消息头 技能以json形式返回推理结果,因此消息头“Content-Type”类型为“application/json”。消息头其它部分,用户可根据自身的业务需求设定,如鉴权等。 表4 请求消息参数说明 名称 描述 是否必须 样例 Content-Type 消息体类型(格式) 是 application/json 响应消息 表5 响应消息参数说明 参数 参数类型 说明 msg_from String 调用成功时返回的相机配置信息。 plate_number String 车牌号内容。 color String 车牌底色,支持的车牌底色包括“blue”、“green”、“black”、“white”、“yellow”中的一种。 location Array of objects 车牌的区域位置信息,列表形式,包含文字区域四个顶点的二维坐标(x,y),其中坐标原点为图片左上角,x轴沿水平方向,y轴沿竖直方向。 confidence Float 相关字段的置信度信息,置信度越大,表示本次结果的对应字段的可靠性越高,在统计意义上,置信度越大,准确率越高。 说明: 置信度由算法给出,不直接等价于对应字段的准确率。 processed_time String 结果发送时间戳。 成功响应返回结果: { "plate_number": "京XXXXX", "location": [ [370,881], [2591,881], [2591,2281], [370,2281] ], "confidence": 0.9225, "color": "blue", "processed_time": Sat Jun 13 18:24:09 2020, "msg_from": "/tmp/test.mp4"}
  • 使用SSH注册设备 使用SSH注册设备指通过SSH登录HiLens Kit系统,使用Linux命令注册设备。SSH登录设备系统支持操作HiLens Kit的系统文件等配置。 使用SSH注册设备流程如图3所示,详细操作指引请参见表3。 图3 SSH注册设备流程 表3 SSH注册设备流程说明 流程 说明 详细指导 连接PC和HiLens Kit 在注册HiLens Kit至控制台之前,您需要连接PC和HiLens Kit。 连接PC和HiLens Kit SSH登录HiLens Kit 使用SSH连接设备HiLens Kit,用Linux指令进行操作。 SSH登录HiLens Kit设备 组网配置 HiLens Kit有两种组网方式,分为无线和有线两种方式连接路由器,您可以选择其中一种方式进行组网配置。 不能同时使用无线网络和有线网络连接同一个路由器,无线连接会自动删除默认网关,再次使用有线网络时需要配置默认网关。推荐使用无线连接到路由器,以免更新设备IP后遗忘或丢失IP。 无线网络配置(SSH) 有线网络配置(SSH) 注册HiLens Kit 注册设备至控制台上,并在控制台上查看设备状态。 SSH注册HiLens Kit
  • HiLens Kit简介 HiLens Kit是一款具备AI推理能力的多媒体终端设备,具有强大的计算性能、高清摄像头接入、体积小、接口丰富等特点。硬件集成了Atlas 200 AI加速模块(简称Atlas 200),方便用户快速简捷的接入并使用Ascend 310 AI处理器强大的处理能力,主要应用于AI开发者预研开发和视频监控领域。系统内置HiLens Framework,给运行的技能提供丰富的API接口。 HiLens Kit板载32GB eMMC,提供1个Micro SD卡槽位,可自行扩展Micro SD卡,最高支持速率SDR50,最大容量2TB,外接SD卡操作请见使用SD卡。其具体参数请参见表1。 图1 HiLens Kit
  • 技能结果上传接口 请求消息 技能推理结果将以HTTPS POST请求方法推送到应用系统server的指定URL地址。 POST {sendUrl}/ 其中sendUrl在技能运行时配置中为每个设备设置的推理结果上传地址。 请求消息头 技能以json形式返回推理结果,因此消息头Content-Type类型为“application/json”。 表4 请求消息头参数说明 参数 是否必选 说明 示例 Content-Type 是 消息体的类型(格式)。 application/json 公共消息体 华为HiLens 公共消息体包含了技能的公共消息内容,如表5所示。 表5 公共消息体参数说明 参数 类型 说明 msg_type Enum 技能类型,如“flow_count_result”。 cam_name String 摄像头名称。 skill_id String 技能ID。 技能消息体 过线统计的json消息体如表6所示。 表6 过线统计消息体参数说明 参数 类型 说明 event_type Int 事件类型,过线统计的事件类型为0,区域统计为1。 start_time Uint64 过线统计开始的时间戳。 end_time Uint64 过线统计结束的时间戳。 counter List 输出结果列表。每组数据对应一条自定义直线,包含: x、y:直线两个点的x、y坐标。 id:直线的ID。 side1_name、side2_name:直线两侧的标识名。 side1、side2:人流穿过直线到side1_name与side2_name侧的统计量。 过线统计的消息体示例如下: { "msg_type": "flow_count_result", "cam_name": "store001_pos2", "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c", "event_type": 0, "start_time": 1535546730, "end_time": 1535546732, "counter": [{ "x": [480, 1440], "y": [540, 540], "id": 0, "side1": 0, "side2": 0, "side1_name": "side1", "side2_name": "side2" }, { "x": [490, 1500], "y": [640, 340], "id": 0, "side1": 7, "side2": 3, "side1_name": "in", "side2_name": "out" }]} 区域统计的json消息体如表7所示。 表7 区域统计消息体参数说明 参数 类型 说明 event_type Int 事件类型,过线统计的事件类型为0,区域统计为1。 time Uint64 进行区域统计的时间戳。 occupy List 输出结果列表。每组数据对应一个自定义的封闭区域,包含: x、y:封闭区域所有点x,y坐标。 person_list:客流位置信息。详细的位置参数说明请参见表8。 counter:当前时刻,区域的人流统计量。 表8 person_list参数说明 参数 类型 说明 x Int 客流头肩区域的中心点x坐标。 y Int 客流头肩区域的中心点y坐标。 区域统计的消息体示例如下所示: { 'time': 1588927220, 'msg_type': 'flow_count_result', 'event_type': 1, 'cam_name': 'store001_pos2', 'skill_id': 'ff8080826dd4b10d016e20fbb8ae0405', 'device_id': '8366e510ed8b4f94bb9a567e9cc21d23', 'occupy': [{ 'x': [0, 1920, 1920, 0], 'y': [0, 0, 1080, 1080], 'person_list': { 'x': [1155], 'y': [217] }, 'counter': 1 }]}
  • 技能描述 面向智慧商超的客流统计技能。本技能使用深度学习算法,实时分析视频流,自动统计固定时间间隔的客流信息。 本技能支持: 根据业务需求划定区域,只统计固定区域内的客流,技能返回区域内客流的统计信息和坐标信息。 绘制客流统计线,对人形经过该线的人数进行统计,返回客流统计信息。 区域客流统计还可以根据客流坐标生成人流热力图。 使用时需要提供您的业务RESTful接口和RTSP视频地址,最大支持8路网络摄像头接入,并按照接入的路数进行收费。 摄像头部署建议请参考摄像头部署。 技能配置项请参见运行时配置参数。 技能接口设计请参见技能结果上传接口。
  • 运行时配置参数 技能在运行时,需要添加运行时配置。配置完成后,参数会从华为HiLens云侧下发到端侧设备。 技能相关配置参数说明如表2所示。 表2 运行时配置参数 参数 是否必选 参数类型 说明 multi_camera 是 List 一个设备上多路视频的技能参数,详细的参数说明请参见表3。 表3 mul_input_parameter参数说明 名称 是否必选 参数类型 说明 camera_names 是 List 摄像头名称。摄像头名称与设备的rtsp流配置的名称对应。可配置多个名称,表示多个摄像头采用同样的配置。 lineCountCycle 是 Int 过线人流量统计周期,单位为秒。取值范围为(0, +∞),默认值为10。 regionCountCycle 是 Int 区域人流量统计周期,单位为秒。取值范围为(0, +∞),默认值为10 enableLine 是 Bool 是否开启过线人流量统计,默认值为1。 0:表示不开启 1:表示开启 enableRegion 是 Bool 是否开启区域人流量统计,支持矩形区域统计,默认值为1。 0:表示不开启 1:表示开启 countSetting 否 String 自定义线与区域列表。采用竖线(|)分隔封闭或直线区域,例如:“Polygon 0 0 0 1000 1000 1000 1000 0|Line 500 0 500 1000 side1 side2”。 封闭区域:由Polygon开头,其后接的依次为区域的端点的坐标。其中端点坐标由x坐标与y坐标组成。 直线区域:位置由Line开头,其后接的四个整型分别为线两端点坐标,最后以side1与side2结尾。side1与side2标志着直线两侧,对于非水平线,左侧为side1,右侧为side2,对于水平线上侧为side1,下侧为side2,其名称可自定义。 sendUrl 是 String 发送技能消息POST请求的URL地址。
  • 摄像头部署 客流统计算法根据头肩检测统计客流的大小。摄像头的架设会影响头肩检测模型的准确率。在实际架设中,尽量保证拍摄画面清晰,光照充足,人形较正,无遮挡。监控视频场景下尽量保证拍摄的画面能拍到更多的人形。 摄像头参数基本设置 不同品牌的摄像头都有一些基本的视频设置,例如分辨率、帧率和码率等,具体要求如下: 分辨率:建议1080P,不低于720P,不高于4K(3840*2160)。 帧率:不高于25fps,不低于15fps,建议值20fps。 码率:720P建议设为4096Kbps~6144Kbps,1080P建议设为6144Kpbs~8192Kbps,更高分辨率可设置更高码率。 视频编码:如果支持H.265,设置为H.265。 日夜切换:关闭夜间自动切换红外模式,暂不支持抓取红外模式下的人脸。 宽动态:关闭宽动态。普通摄像头的宽动态无法到达专业相机的效果,人的走动速度较快时存在运动模糊,应关闭宽动态设置。 摄像头拍摄方向 摄像头拍摄方向要正向行人正反面,略成俯视角度,具体要求如下: 保证行人上半身轮廓清晰可见。 架设高度:4m左右。 监控距离:5-10m 。 监控宽度:2-5m 。 俯视角度:左右偏角小于8°;俯仰角10°-20°。 光照要求 光照条件要求需要满足如下要求: 行人区域正面光照强度100lux及以上;防止出现过暗或者噪点。 行人左右侧光照强度差不超过一倍;防止产生阴阳脸。 行人背部光照强度不超过正面强度两倍;防止产生脸部曝光不足,五官细节丢失。 如果现场的光线不满足上述要求,则需要通过强光抑制或补光来优化现场的光照条件。强光抑制可以改善“阴阳脸”、“背光”现象,即通过减弱侧面光照来改善光照条件。补光则可以通过增加额外光源的方式改善光照条件,提高人脸图像的采集效果;主要通过普通射灯、白炽灯等在不影响装修、路人视觉效果的情况下提高人脸的光照度,消除“阴阳脸”。 安装补光灯时需要注意以下几点条件: 避免补光不均匀。 考虑不同时段设置光照。 根据现场情况灵活变通。 避免直射行人眼睛 。 周围环境要求 镜头前方不要有遮挡的障碍物,避免漏检。 不要将摄像头架在房子遮阴的挡板下,会造成光照过暗,人形模糊。 室外安装摄像头,避免在露天下布置,以免雨水或者雪将摄像头的镜头盖住,造成拍摄画面模糊不清。 室内安装摄像头,当部署楼道时需要注意光照,楼道里灯光明暗交替变化过快,摄像头拍摄时获取的画面可能会偏暗。
  • 停止技能 单击HiLens Studio界面右侧。 在右侧“Skill Installation” 区,在“Device name”列选择您要启动技能的设备,单击设备名左侧的,查看设备下的技能。 鼠标移至“Operation”,单击“Stop”。 弹出“Stop Skill”对话框。 图2 停止技能-33 在“Stop Skill”对话框中单击“Yes”。 右下方提示“Start to stop skill”。 停止技能,技能停止时会有一个命令下发过程,您需要等待一段时间,技能才能停止成功,右下方提示“Success to stop the skill”,同时在界面看到技能状态“Status”更新为“Stopped”。
  • 启动技能 单击HiLens Studio界面右侧。 在右侧“Skill Installation” 区,在“Device Name”列选择您要启动技能的设备,单击设备名称左侧的,查看设备下的技能。 鼠标移至“Operation”,单击“Start”。 弹出“Start Skill”对话框。 图1 启动技能-32 在“Start Skill”对话框中单击“Yes”。 右下方提示“Starting the skill”。 开始启动技能,技能启动时会有一个命令下发过程,您需要等待一段时间技能才能启动成功,右下方提示“Success to start the skill”,同时在界面看到技能状态“Status”更新为“Runing”。
  • 设备管理权限 表1 设备管理 权限说明 方法 授权项 依赖其他服务的最小化授权项 注销设备 PUT hilens:device:deleteDevice - 升级设备固件 PUT hilens:device:upgradeDeviceFirmware - 注册设备 POST hilens:device:registerDevice - 更新设备信息 PUT hilens:device:updateDevice - 更新设备配置信息 PUT hilens:device:updateDeviceConfig - 获取设备配置信息 GET hilens:device:getDeviceConfig - 获取设备列表 GET hilens:device:getDeviceList - 获取设备下已安装的技能列表 GET hilens:device:getDeviceSkillList - 卸载设备上指定技能 DELETE hilens:skill:uninstallSkill - 更新设备上指定技能的技能配置信息 PUT hilens:skill:updateSkillConfig - 启动设备上指定技能 POST hilens:skill:startSkill - 停止设备上指定技能 POST hilens:skill:stopSkill - 获取设备上指定技能的技能配置信息 GET hilens:skill:getConfig - 父主题: 权限策略和授权项
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全