云服务器内容精选

  • 摄像头部署 摄像头的架设会影响安全帽检测模型的准确率。在实际架设中,尽量保证拍摄画面清晰,光照充足,人形较正,无遮挡。监控视频场景下尽量保证拍摄的画面能拍到更多的人形。 目前安全帽检测模型的训练场景主要针对工地入口。具体为摄像头距离地面三到四米左右,在安全帽检测的区域,人形不会有太严重的遮挡。为了保证检测算法的准确率,需要确保画面图像中安全帽清晰可辩。同时,摄像头画面中场景尽量干净简单、空旷,避免场景复杂造成误检。 摄像头参数基本设置 不同品牌的摄像头都有一些基本的视频设置,例如分辨率、帧率和码率等。 分辨率:建议1080P,不低于720P且不高于1080P。 帧率:不高于25fps,不低于15fps,建议值20fps。 码率:720P建议设为4096Kbps~6144Kbps左右,1080P建议设为6144Kpbs~8192Kbps。 视频编码:如果支持H.265,设置为H.265。 日夜切换:关闭夜间自动切换红外模式。 宽动态:关闭宽动态。普通摄像头的宽动态无法到达专业相机的效果,人的走动速度较快时存在运动模糊,应关闭宽动态设置。 摄像头拍摄方向 摄像头拍摄方向要正向行人正反面,略成俯视角度。保证行人上半身轮廓清晰可见。 架设高度:4m左右 监控距离:2-10m 监控宽度:2-5m 俯视角度:左右偏角小于8°;俯仰角10°-20° 光照要求 光照条件要求需要满足以下几项: 行人区域正面光照强度100lux及以上,防止出现过暗或者噪点。 行人左右侧光照强度差不超过一倍,防止产生阴阳脸。 如果现场的光线不满足上述要求,则需要通过强光抑制或补光来优化现场的光照条件。强光抑制可以改善“背光”现象,即通过减弱侧面光照来改善光照条件。补光则可以通过增加额外光源的方式改善光照条件,提高图像的采集效果。 周围环境要求 镜头前方不要有遮挡的障碍物,避免漏检。 不要将摄像头架在房子遮阴的挡板下,会造成光照过暗,人形和安全帽模糊。
  • 运行时配置参数 技能在运行时,需要添加运行时配置。配置完成后,参数会从华为HiLens云侧下发到端侧设备。 配置参数说明 技能相关配置参数说明如表2所示。 表2 运行时配置参数说明 名称 是否必选 参数类型 说明 heartbeat_interval 是 Int 技能心跳消息发送间隔。单位为秒,0表示不发送。技能心跳消息判断技能是否离线。 post_url 是 String 技能消息POST请求的URL地址。心跳和技能的输出发送到指定的URL。 multi_camera 是 Array 一个设备上多路视频的技能参数,其技能参数说明请见表3。 表3 “multi_camera”参数说明 名称 是否必选 参数类型 说明 camera_names 是 Array 摄像头名称。摄像头名称与设备的rtsp流配置的名称对应。可配置多个名称,表示多个摄像头采用同样的配置。 send_image 是 Int 是否发送原始图,默认值为0。 0:表示不发送 1:表示发送 image_compression_ratio 是 Int “jpeg”格式原始图压缩百分比,默认值为90,表示图片压缩比90%,取值范围[1,100]。 use_tracking 是 Int 是否启用跟踪去重。 0:表示不启用 1:表示启用 draw_rectangle 否 Int 是否对技能显示出的不戴安全帽行人画框,默认值为0,即默认不画框。 0:表示不画框 1:表示画框 roi 否 String 检测区域配置。区域的设置由“Polygon”开头,其后依次为区域的坐标(按顺时针排列的x,y坐标)。默认值为“Polygon 0 0 0 0”,表示检测整个画面。 示例 HiLens Kit设备支持多路摄像头接入,如果要为不同的摄像头设置不同的技能配置,或者几个摄像头共用同一技能配置,则可在配置列表中给出相应的配置信息,示例如下: //constructionsite01的两个摄像头pos1和pos2配置不同参数: { "heartbeat_interval": 30, "post_url": "https://abc.company.com/webhook", "multi_camera": [{ "camera_names": ["constructionsite01_pos01"], "send_image": 1, "image_compression_ratio": 90, "use_tracking": 1, "roi": "Polygon 0 0 0 0" }, { "camera_names": ["constructionsite01_pos02"], "send_image": 1, "image_compression_ratio": 80, "use_tracking": 0, "roi": "Polygon 0 0 1920 0 1920 1080 0 1080" }] } //constructionsite02的两个摄像头pos1和pos2配置相同参数: { "heartbeat_interval": 60, "post_url": "https://abc.company.com/standard", "multi_camera": [{ "camera_names": ["constructionsite02_pos01"," constructionsite02_pos02"], "send_image": 1, "image_compression_ratio": 90, "use_tracking": 1, "roi": "Polygon 0 0 0 0" }] }
  • 技能结果上传接口 请求消息 推理结果将以HTTPS POST请求方法推送到应用系统server的指定URL地址。 POST {sendUrl} 其中sendUrl在技能运行时配置中设置。 请求消息头 技能以json形式返回推理结果,因此消息头“Content-Type”类型为“application/json”。消息头其它部分,用户可根据自身的业务需求设定,如鉴权等。 表4 请求消息头参数说明 名称 描述 是否必选 示例 Content-Type 消息体的类型(格式) 是 application/json 公共消息体 HiLens公共消息体包含了技能的公共消息内容,如表5所示。 表5 公共消息体参数说明 名称 类型 说明 msg_type Enum 消息类型,包括“no_helmet_alert”和“heatbeat”两种。 skill_id String 技能ID。 技能心跳消息体 技能心跳的json消息体包含一个时间戳信息: 表6 技能心跳消息体参数说明 名称 类型 说明 time Uint64 心跳时间戳。 公共消息体示例 { "msg_type": "heartbeat", "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c", "time": 1527603463 } 技能消息体 安全帽检测的json消息体如表7所示: 表7 技能消息体参数说明 名称 类型 说明 camera_name String 摄像头名称。 image_id String 摄像头原始图UUID。 time Uint64 检测到未戴安全帽人头时的时间戳。 bounding_box Array 未戴安全帽人头在背景图中的位置信息,其参数说明如表8所示。 image String 原始图BASE64编码结果,如果配置不发送原始图,则为空字符串。 表8 “bounding_box”参数说明 字段 类型 说明 x Int 人头图左上角顶点x坐标值。 y Int 人头图左上角顶点y坐标值。 h Int 人头图高。 w Int 人头图宽。 安全帽检测的消息体示例: { "msg_type": "no_helmet_alert", "camera_name": "constructsite01_pos02", "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c", "image_id": "0DD1BF0A-634B-11E8-8B0B-407D0FAD9218", "time": 1527603463, "bounding_box ": [{ "x": 32, "y": 379, "w": 49, "h": 65 }, { "x": 54, "y": 632, "w": 36, "h": 95 } ], "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”对应,传递除响应消息头之外的内容。
  • 技能结果上传接口 请求消息 推理结果将以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 }] }