-
部署算法服务 进入“我的算法服务”,单击目标算法服务“操作”列的“部署”,进入“部署算法”页面。 参考表1填写相关参数。 表1 部署算法参数说明 参数名称 参数说明 路数 本次部署预计需要支持的最大路数。后台会自动申请、创建足够多的算法资源支撑作业的运行。 资源池规格 选择本次部署所使用的资源池,部署前需要在运维中心创建资源池。 服务启动参数 本次部署传入的参数信息,不同的算法服务启动参数不同,参数的功能请咨询算法开发者。
-
查看分析结果 服务输出JSON数据流到DIS指定的通道,包括告警结构化数据和图片数据。从DIS获取数据请参见从DIS获取数据指南。 算法输出的JSON结果示例如下,表示识别出视频中在指定区域有人入侵。 {
"event_type":196609,
"task_id":"a52a4de502664128a92ee914f54e5b9d",
"stream_id":"00167440000000000101#1f1934154a774374a278ec3d32dbd468",
"message_id":"C8F67CE2-9C2A-11EB-BBF6-0242AC110002",
"timestamp":1618299313,
"image_base64":"/9j/4AAQSkZJRgA...",
"data":{
"event_set":[
{
"bounding_box":{
"x":853,
"y":450,
"w":101,
"h":161
},
"detection_id":"C8B3D3A6-9C2A-11EB-BBF6-0242AC110002",
"category":0,
"start_position":"in",
"end_position":"in"
}
]
}
} 表1 JSON结果字段解释 字段 说明 task_id 表示作业ID。 image_base64 以base64编码形式输出图片数据。 data data中的内容表示算法作业运行输出的识别结果。 bounding_box 告警输出对象的矩形框。 x:矩形框左上角横坐标 y:矩形框左上角纵坐标 w:矩形框宽度 h:矩形框高度 detection_id 告警目标对应的ID。 category 告警目标的类型: 0:人 1:车 2:其他 start_position 表示入侵开始位置: 如果是过线入侵,则是入侵开始所在线一侧的名字。 如果是区域入侵,则是“in”或者“out”。 in:表示入侵开始在区域里面。 out:表示入侵开始在区域外面。 end_position 表示入侵结束位置: 如果是过线入侵,则是入侵结束所在线一侧的名字。 如果是区域入侵,则是“in”或者“out”。 in:表示入侵结束在区域里面。 out:表示入侵结束在区域外面。 父主题: 使用云上入侵检测算法
-
使用流程 图1 云上算法使用流程 表1 云上算法使用流程 流程 说明 详细指导 购买算法 根据业务需求选择购买使用不同的算法包,算法包包含了若干算法,创建作业前,要先购买算法包。 购买算法包 接入IVM视频 表示直接从IVM拉取实时视频流推流地址获取视频数据。 接入IVM视频数据 开通DIS通道 云上入侵检测算法作业的输出类型设置为DIS时,在创建作业前需确保DIS通道已开通成功。 开通DIS通道 新增视频源 创建需要进行处理分析的视频源。创建作业前,要先创建视频源。 新增视频源 创建分析作业 创建入侵检测算法作业,需要设置相应的算法参数、配置输入数据的来源和输出数据的类型。 创建分析作业 查看分析结果 您可以根据设置的输出数据类型,采用对应的方式获取作业分析结果。 查看分析结果
-
查看分析结果 作业运行成功后,VIAS服务使用post请求将作业的运行结果,包括告警结构化数据和图片数据,以JSON数据流的形式输出到用户指定的Webhook URL。 例如运行Webhook Service中的示例脚本,将接收到的Webhook消息写在与脚本同目录的post.txt文件中。 算法输出的JSON结果示例如下,表示识别出视频中在指定区域有人入侵。 {
"event_type":196609,
"task_id":"a52a4de502664128a92ee914f54e5b9d",
"stream_id":"00167440000000000101#1f1934154a774374a278ec3d32dbd468",
"message_id":"C8F67CE2-9C2A-11EB-BBF6-0242AC110002",
"timestamp":1618299313,
"image_base64":"/9j/4AAQSkZJRgA...",
"data":{
"event_set":[
{
"bounding_box":{
"x":853,
"y":450,
"w":101,
"h":161
},
"detection_id":"C8B3D3A6-9C2A-11EB-BBF6-0242AC110002",
"category":0,
"start_position":"in",
"end_position":"in"
}
]
}
} 表1 JSON结果字段解释 字段 说明 task_id 表示作业ID。 image_base64 以base64编码形式输出图片数据。 data data中的内容表示算法作业运行输出的识别结果。 bounding_box 告警输出对象的矩形框。 x:矩形框左上角横坐标 y:矩形框左上角纵坐标 w:矩形框宽度 h:矩形框高度 detection_id 告警目标对应的ID。 category 告警目标的类型: 0:人 1:车 2:其他 start_position 表示入侵开始位置: 如果是过线入侵,则是入侵开始所在线一侧的名字。 如果是区域入侵,则是“in”或者“out”。 in:表示入侵开始在区域里面。 out:表示入侵开始在区域外面。 end_position 表示入侵结束位置: 如果是过线入侵,则是入侵结束所在线一侧的名字。 如果是区域入侵,则是“in”或者“out”。 in:表示入侵结束在区域里面。 out:表示入侵结束在区域外面。 父主题: 使用边缘入侵检测算法
-
创建边缘资源池 登录视频智能分析服务,在运维中心页面左侧导航栏中选择“边缘资源池”。 在“边缘资源池”页面,单击“创建边缘资源池”,参考表1配置相关参数。 表1 创建边缘运行池参数说明 字段 是否必填 类型 示例 参数说明 资源池名称 是 String edge-pool-001 只能由英文字母(a~z)、数字(0~9)、中划线(-)组成,长度范围为[4,32]。 描述 否 String - 输入长度范围为0到255个字符。 边缘节点 是 string edge-node-001 通过下拉框进行选择,来源于IEF平台纳管的边缘节点。 配置完成后,单击“提交”。系统自动跳转至边缘资源池列表页面。可在“边缘资源池”页面查看创建的边缘资源池信息。
-
运行Webhook Service 视频智能分析的算法服务支持的输出类型为Webhook。在创建作业前您需确保Webhook Service已运行成功。 下面以一个简单的python脚本作为示例,展示如何启动Webhook Service并保存接收的数据。 准备一台本地的Linux服务器,确保Linux服务器和边缘节点服务器网络通畅,并已安装python环境。 使用ifconfig命令在Linux服务器上查询服务器IP地址。 修改示例脚本第18行,填入服务器IP地址。 图1 示例脚本 import json
from wsgiref.simple_server import make_server
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'application/json')])
request_body = environ["wsgi.input"].read(int(environ.get("CONTENT_LENGTH", 0)))
f=open('./post.txt','a')
f.write(request_body)
f.write("\n")
f.close()
return ("200 success\n")
if __name__ == "__main__":
port = 6006
httpd = make_server("10.10.10.1", port, application)
print "serving http on port {0}...".format(str(port))
httpd.serve_forever() 脚本中的端口6006可以根据用户实际需要修改。 创建作业时,算法输出Webhook URL设置为:http://${IP}:${port}。例如:http://10.10.10.1:6006。 执行脚本,启动Webhook Service。 图2 执行脚本成功 父主题: 使用边缘入侵检测算法
-
Step1 在边缘节点服务器上安装Docker 视频智能分析的算法作业是以容器应用的方式下发到边缘节点运行的,因此需要在边缘节点服务器上安装Docker并检查Docker状态。 根据边缘节点服务器的操作系统,安装对应版本的Docker。Docker版本建议使用19.03.11及以上。Docker安装完成后,可以执行“docker -v”命令检查Docker是否安装正常,如果过回显如下则说明安装正常。 # docker -v
Docker version 19.03.11, build 48a66213fee Docker安装完成后,请将Docker进程配置为开机启动,避免系统重启后Docker进程未启动引起的系统异常。
-
环境准备 在开始使用之前,需要先确保完成下列的环境准备工作。
注册华为账号 并开通华为云 准备边缘节点服务器 边缘节点服务器要求有一定的计算能力,推荐的服务器详细配置请参见服务器约束与推荐。此处以x86+GP Tnt004类型服务器,CentOS 7.x版的操作系统为例。 准备RTSP流地址 在使用视频智能分析服务前,需要先接入视频数据,才能用算法作业对接视频进行分析,获取结果。本文接入的视频数据以CAMERA为例,来自用户本地实时视频流。提前准备好RTSP协议的URL地址,并确保正常可调用。 网络准备 使用边缘算法对网络的要求主要有以下方面: 边缘节点服务器与华为云网络连通 视频智能分析算法作业会从华为云下发到边缘节点运行,请确保边缘节点服务器与华为云之间网络连通并稳定。 边缘节点服务器与用户自定义的流媒体服务器网络连通 为确保分析作业能够稳定获取视频流,需要保证边缘节点服务器与用户自定义的流媒体服务器之间的网络连通,并且确保网络稳定及带宽足够。 目前1路视频流的码流大约4Mbps,则10路视频流实时分析,需要保证40Mbps的网络带宽。无法保证带宽,会出现丢包,视频花屏的现象,影响服务分析的结果。 边缘节点服务器与Webhook服务器网络连通 输出结果传到Webhook服务器时,请确保边缘节点服务器与Webhook所在服务器之间网络连通并稳定。 父主题: 使用边缘入侵检测算法
-
使用流程 表1 边缘算法使用流程 流程 说明 详细指导 环境准备 在使用视频智能分析服务前,需要注册华为账号并开通华为云,准备边缘节点服务器、准备RTSP流地址、准备网络等。 环境准备 注册边缘节点并纳管 视频智能分析服务的作业会通过智能边缘平台IEF下发到边缘节点服务器中运行。所以需要将边缘节点服务器注册并纳管到IEF。 注册边缘节点并纳管 注册终端设备 视频智能分析服务的视频源需要通过IEF将视频流接入进服务器,所以需要将终端设备注册到IEF。 在IEF上注册终端设备 运行Webhook Service 作业的输出类型设置为Webhook时,在创建作业前需确保Webhook Service已运行成功。 运行Webhook Service 创建边缘资源池 边缘资源池是一组处理服务作业的边缘节点。在创建服务作业前,要求先创建边缘资源池。 创建边缘资源池 购买算法包并部署到边缘池 边缘算法在使用前需进行部署,当算法的部署状态为“运行中”时,才能创建作业。 购买算法包并部署算法服务 新增视频源 创建需要进行处理分析的视频源。创建分析作业前,要先新增视频源。 新增视频源 创建分析作业 创建入侵检测算法作业,需要设置相应的算法参数、配置输入数据的来源和输出数据的类型。 创建分析作业 查看分析结果 作业运行成功后,可以在设置的输出路径中查看作业分析结果。 查看分析结果
-
云上算法视觉能力包 云上算法视觉能力包适用场景:视频流数据需要上传到华为云,在华为云上进行算法分析。 当前提供的云上算法视觉能力包有云上人脸检测算法包、云上专业类算法包和云上通用类算法包,每个算法包中包含的算法服务如下面表格所示。 表5 视觉能力包列表-云上人脸检测算法包 序号 包含的算法服务 说明 1 云上人脸提取 该服务可分析华为云上的VIS视频流,检测视频中的人脸信息与位置。 表6 视觉能力包列表-云上专业类算法包 序号 包含的算法服务 说明 1 云上城管事件-占道经营检测 该服务可分析华为云上的视频流。提供了占道经营检测功能,该服务在检测区域内,对出店经营、无照游商等占道经营行为进行检测、告警。当检测到告警行为时,会上报告警信息。 2 云上排队状态分析 该服务可分析华为云上的VIS视频流,提供排队状态分析功能。通过视频检测到有出队事件时,会上报告警信息。 3 云上共享单车检测 该服务可分析华为云上的VIS视频流。提供了共享单车的检测功能。根据用户配置进行共享单车检测,当有共享单车停放在违规区域,会上报事件信息。 4 云上打架检测 该服务可分析华为云上的VIS视频流,对视频中的打架行为进行检测并告警,输出告警原图。 5 云上个体事件行为检测 该服务可分析华为云上的VIS视频流,检测到用户设置的区域中有人吸烟、有人打手机等动作时,该服务会上报告警。 6 云上疑似活物检测 该服务可分析华为云上的VIS视频流,通过视频检测到厨房中有老鼠、蟑螂、猫和狗等小型疑似活物时,会上报告警信息。 7 云上个体动作检测 该服务可分析华为云上的VIS视频流,检测到用户设置的区域中有人出现翻越、摔倒、挥手或者弯腰等动作时,该服务会上报告警事件。 8 云上高密度人群统计 该服务可分析华为云上的VIS视频流,对实时视频流,每隔一段时间采样一帧视频画面。当视频帧中出现的人数大于告警阈值时,会定期上报告警信息。 适用人群密度大的场景,例如视频画面出现几十人甚至上百人。 9 云上烟火检测 该服务可分析华为云上的VIS视频流。提供了烟和火检测功能。当出现烟或者火时,会上报告警信息。 表7 视觉能力包列表-云上通用类算法包 序号 包含的算法服务 说明 1 云上工服工帽检测 该服务可分析华为云上的VIS视频流,提供工服和工帽的检测功能。根据用户配置进行工服工帽检测,通过视频检测到有人未穿工服或未戴工帽,会上报事件信息。 2 云上城管事件-垃圾检测 该服务可分析华为云上的VIS视频流,提供垃圾检测功能。该服务对生活垃圾(包括塑料袋、剩菜残羹等)进行检测,在检测到静止的生活垃圾时,会上报告警信息。适用于固定的摄像头场景。 3 云上遗留物检测 该服务可分析华为云上的VIS视频流,提供遗留物检测功能。当检测到视频中有遗留物时,会上报告警信息。 4 云上消防通道占用 该服务可分析华为云上的VIS视频流,提供消防通道占用检测功能。通过视频检测到有堆物或车辆占用消防通道行为时,会上报告警。 5 云上垃圾桶异常检测 该服务可分析华为云上的VIS视频流,主要用于明厨亮灶工程中,垃圾桶盖必须是合上的,当检测到视频中的垃圾桶盖打开时,会上报告警信息。 6 云上戴口罩检测 该服务可分析华为云上的VIS视频流,提供未戴口罩检测功能。通过视频检测到用户设置的区域中有未戴口罩人员进入,则上报告警。 7 云上人流量统计 该服务可分析华为云上的VIS视频流,提供人流量统计功能,可检测视频中穿过自定义线与区域的人流量,以及视频帧中的热点分布信息。 8 云上入侵检测 该服务可分析华为云上的VIS视频流,提供区域入侵、过线入侵功能。通过视频检测到有人或车触发入侵,会上报告警。 9 云上关键岗位检测 该服务可分析华为云上的VIS视频流,当通过视频检测到用户设置的区域中人数小于用户指定的数量,并持续超过告警时间阈值时,该服务会上报告警。 10 云上交通视频车辆 该服务可分析华为云上的VIS视频流,能输出视频里的车辆信息,包括车牌信息和车辆检测区域信息。
-
边缘算法视觉能力包 边缘算法视觉能力包适用场景:算法模型下发到边缘节点的客户设备中,在客户设备中执行算法分析任务,视频流数据不需要提供到华为云上。 当前提供的边缘算法视觉能力包有边缘交通智能分析算法包、边缘专业类算法包、边缘通用类算法包和边缘人脸检测算法包,每个算法包中包含的算法服务如下面表格所示。 表1 视觉能力包列表-边缘交通智能分析算法包 序号 包含的算法服务 说明 1 边缘拥堵检测 该服务提供了道路拥堵指数统计功能。给定统计时间间隔,定时输出拥堵指数,告警拥堵事件。 2 边缘异常停车检测 该服务提供了异常停车事件监测、告警功能。通过视频检测到用户指定的检测区域内有车辆停车时间超过阈值时,上报异常停车事件。 3 边缘交通流量 该服务提供了过线车流量统计功能。给定流量统计的输出间隔,得到车流量信息。 4 边缘高速流量统计及事件检测 对于给定的高速视频,该服务提供了流量监测、车速监测、违停事件检测及拥堵检测等功能。 表2 视觉能力包列表-边缘专业类算法包 序号 包含的算法服务 说明 1 边缘城市垃圾桶满溢检测 该服务可分析边缘摄像头输出的RTSP视频流。提供了城市街道场景下垃圾桶满溢检测功能。当检测到垃圾桶处于满溢状态时,会上报告警信息。 2 边缘城管事件-占道经营检测 该服务提供了占道经营检测功能。在目标检测区域内,对出店经营、无照游商等占道经营行为进行检测、告警。当检测到告警行为时,会上报告警信息。 3 边缘城管事件-垃圾检测 该服务可分析边缘摄像头输出的RTSP视频流。提供了垃圾检测功能。该服务对生活垃圾(包括塑料袋、剩菜残羹等)进行检测,在检测到静止的生活垃圾时,会上报告警信息。适用于固定的摄像头场景。 4 边缘个体事件行为检测 通过视频检测到用户设置的区域中有人吸烟、有人打手机等动作,该服务会上报告警。 5 边缘个体动作检测 通过视频检测到用户设置的区域中有人出现翻越、摔倒、挥手或者弯腰等动作,该服务会上报告警事件。 6 边缘排队状态分析 该服务提供了排队状态分析功能。通过视频检测到有出队事件时,会上报告警信息。 7 边缘高密度人群统计 该服务对视频中的高密度人群总数进行统计,定期上报告警。 8 边缘共享单车检测 该服务提供了共享单车的检测功能。根据用户配置进行共享单车检测,当检测到视频中有共享单车停放在违规区域,会上报事件信息。 9 边缘垃圾桶异常检测 该服务主要用于明厨亮灶工程中,垃圾桶盖必须是合上的,当检测到视频中的垃圾桶盖打开时,会上报告警信息。 10 边缘烟火检测 该服务提供了烟火检测功能。当检测到视频中出现烟或者火时,会上报告警信息。 11 边缘打架检测 该服务对视频中的打架行为进行检测并告警,输出告警原图。 12 边缘疑似活物检测 该服务主要用于明厨亮灶工程中,通过视频检测到厨房中有老鼠、蟑螂、猫和狗等小型疑似活物时,会上报告警信息。 表3 视觉能力包列表-边缘通用类算法包 序号 包含的算法服务 说明 1 边缘非机动车检测 该服务可分析边缘摄像头输出的RTSP视频流。提供了非机动车(包括自行车、电瓶车)的检测功能。根据用户配置进行非机动车检测,当有非机动车停放在违规区域,会上报违停事件信息;当有非机动车入侵禁止区域,则上报非机动车入侵事件信息。 2 边缘人流量统计 该服务提供了人流量统计功能,可检测视频中穿过自定义线与区域的人流量,以及视频帧中的热点分布信息。 3 边缘入侵检测 该服务提供了区域入侵、过线入侵检测功能。通过视频检测到有人或车触发入侵,会上报告警。 4 边缘关键岗位检测 当通过视频检测到用户设置的区域中人数小于用户指定的数量,并持续超过告警时间阈值时,该服务会上报告警。 5 边缘视频车辆 该服务对于给定的视频,能输出视频里的车辆信息,包括车牌信息和车辆检测区域信息。 6 边缘遗留物检测 该服务提供了遗留物检测功能。当检测到视频中有遗留物时,会上报告警信息。 7 边缘戴口罩检测 该服务提供了未戴口罩检测功能。通过视频检测到用户设置的区域中有未戴口罩人员进入,则上报告警。 8 边缘消防通道占用 该服务提供了消防通道占用检测功能。通过视频检测到有堆物或车辆占用消防通道行为时,会上报告警。 9 边缘工服工帽检测 该服务提供了工服和工帽的检测功能。根据用户配置进行工服工帽检测,通过视频检测到有人未穿工服或未戴工帽,会上报事件信息。 表4 视觉能力包列表-边缘人脸检测算法包 序号 包含的算法服务 说明 1 边缘人脸提取 该服务可以检测视频中的人脸信息与位置。
-
VIAS权限 VIAS部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问VIAS时,需要先切换至授权区域。 如表1所示,包括了VIAS的所有系统角色。 表1 VIAS系统策略 策略名称 描述 策略类型 依赖关系 VIAS Full Access 所有权限 系统策略 无 表2列出了VIAS常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 VIAS操作与系统策略关系 Action Action说明 VIAS Full Access dataIngestionService:subscribe
数据接入服务 (DIS)的信息写入、读取以及查询权限 √ dataIngestionService:subscribe 为其子用户开通数据接入服务(DIS)的信息写入、读取以及查询权限 √ objectStorageService:subscribe
对象存储服务 (OBS)的信息读取权限 √ objectStorageService:subscribe 为其子用户开通对象存储服务(OBS)的信息读取权限 √ intelligentEdgeFabric:subscribe 智能边缘平台(IEF)的查询、创建、删除权限 √ intelligentEdgeFabric:subscribe 为其子用户开通智能边缘平台(IEF)的查询、创建、删除权限 √ modelArts:subscribe AI平台(ModelArts)的查询、创建、删除权限 √ modelArts:subscribe 为其子用户开通AI平台(ModelArts)的查询、创建、删除权限 √
-
REST服务脚本示例 以下是用python编写的服务端脚本,其中host为rest请求地址,data为该后端服务返回的数据结构,其中request_channel_id能够唯一标识该视频源,url为真实的视频源流地址。 按照实际需求修改host和data后,启动脚本后,可以正常访问host配置的url,得到预期的返回结构体; 在视频源创建时,URL填写rest请求的服务端地址,rtsp地址相对位置根据response的数据结构填写,在上述示例中,返回的数据结构体中,视频流源地址的路径是data/url。
-
背景信息 视频智能分析服务使用RESTful的基本方式是,算法容器通过rest请求访问用户提供的服务器地址,获取response并解析得到视频源的流地址,进而接入视频源进行分析。使用RESTful接入前,如果是云上模式,必须保证云上的RESTful的地址需要华为云的服务器可以访问;如果是边缘模式,则边缘的RESTful的地址需要用户自己的边缘服务器能访问。 假如客户提供的GET方法的RESTful请求地址为http//:10.10.10.1:6006/task 对应的响应为 {
"data": {
"rtspurl": "rtsp://10.10.10.1/test.sdp"
}
} URL:客户提供的rest请求地址,参照上述示例应填写为http//:10.10.10.1:6006/task。 rtsp地址相对位置:返回body体中edgerestful流地址的相对路径,参照上述示例应填写为data/rtspurl。 图1 新增RESTful视频源URL填写示例
-
事件规则 事件规则,即展示事件的规则。 在事件中心页面,事件列表上方单击“事件规则”。 图1 事件列表 进入“事件规则”页面,可开启人工审核或事件重复聚合。 图2 事件规则 人工审核。如果开启,所有的事件都不会通过订阅的方式推送给用户,只有通过审核之后才会推送,如果关闭,则默认将所有的事件推送给用户。 事件重复聚合。开启事件重复聚合之后,需要设置事件聚合的时间(取值范围:1-1440)。即在这段时间产生的所有事件,都会聚合展示(将第一个事件作为主事件展示在事件列表里面,其余的事件作为从事件,展示在事件详情页),如果关闭此开关则将接下来所有的事件作为主事件展示在事件列表。 单击“确认”。 父主题: 事件中心