基于MEC的视频分析架构及该架构下的室内定位系统

文档序号:26057739发布日期:2021-07-27 15:36阅读:155来源:国知局
基于MEC的视频分析架构及该架构下的室内定位系统

本发明涉及基于mec的视频分析架构及该架构下的室内定位系统,属于视频分析技术领域。



背景技术:

视频分析由计算密集型任务组成,如图像处理,计算机视觉和模式识别。基于位置的应用程序和服务需要非常低的延迟来处理视频,因为分析结果通常用于与人类交互视频应用(如虚拟现实和增强现实)以及其他系统(如交通灯)。在多媒体物联网系统的现阶段,大量的物联网摄像机节点与位于少量分布式大型数据中心的应用服务器密切合作。视频数据传输到远程服务器或计算中心进行视频分析。大型分布式数据中心以高度集中的方式为用户提供按需付费服务。这种集中式的云计算架构模式在当前的互联网上取得了巨大的成功。考虑到物联网中摄像机节点生成的视频数据量,集中处理模型将面临物联网应用面临的巨大挑战,即需要较低的响应时间。首先,应用程序主要依靠腾讯、阿里巴巴、谷歌、亚马逊和facebook等应用服务提供商拥有的数据中心来满足计算、存储和网络资源的需求。随着物联网设备和数据的急剧增长,该模型无法将数据从边缘设备传输到远程数据中心。其次,边缘设备通常位于远离数据中心的位置,因此,当边缘设备的数量呈指数增长时,高延迟将是一些端到端通信应用不可避免的问题。

随着信息技术的发展,未来是万物联网的时代,根据思科公司的报告,截止2020年通过物联网技术连接的传感器和设备的数量已增加到500亿。这种连接的传感器和设备不但使智能环境中的位置感知服务成为可能,也有利于建设智能建筑、智能校园、智能交通和智能城市。对于基于位置的物联网应用和服务,全球导航卫星系统(globalnavigationsatellitesystems,gnss),如全球定位系统(globalpositioningsystem,gps)和北斗导航卫星系统(beidounavigationsatellitesystem,bds),已广泛应用于室外环境,且具有极高的定位精度。但室内场景中存在许多障碍,使得gnss信号可能迅速衰减,甚至完全消失,无法满足室内定位的要求。因此,许多室内定位技术,如wi-fi、可见光、超宽带(uwb)和蓝牙,应运而生。但这些方法并不通用,必须提前为每个场景配置额外的设备。在物联网环境下,广泛分布的摄像机节点捕获的大量视频数据提供了丰富的信息。随着图像处理技术和计算机视觉技术的发展,基于视频分析的室内定位技术有巨大的发展前景。



技术实现要素:

本发明旨在针对目前视频分析系统存在的高延迟问题,提供一种基于mec(mobileedgecomputing,移动边缘计算)的视频分析架构,包括:应用层、控制编排层、边缘计算层以及视频采集层;所述视频采集层用于获取视频数据;所述边缘计算层包括各个独立的边缘视频分析单元,所述边缘视频分析单元用于基于视频采集层获取的视频数据提供视频分析;

所述控制编排层包括网络控制器和容器编排器,所述网络控制器用于为所述边缘视频分析单元提供边缘网络环境,所述容器编排器用于为边缘计算层中每个视频分析单元分配资源并监督每个视频分析单元的资源状况;

所述应用层用于根据边缘视频分析单元获得的视频分析结果部署视频分析的应用程序或者提供应用程序接入的接口。

第二方面,本发明提供基于mec的视频分析架构下的室内定位系统,所述视频分析架构采用如第一方面提供的技术方案任意一种可能的实施方式提供的视频分析架构,所述边缘计算层包括各个独立的边缘视频分析单元,所述边缘视频分析单元由视频数据预处理单元、相机标定单元、前景提取单元、特征点提取单元、人脸识别单元及目标定位单元组成;

所述视频数据预处理单元,用于按照分布式流处理对捕获的视频数据进行预处理,获得预处理后的视频画面;

所述相机标定单元,用于对室内平面进行分割并且通过相机标定来获取投影矩阵,获取图像中的像素和空间三维物体的映射关系;

所述前景提取单元,用于对出现在预处理后的视频画面中的运动目标进行前景提取获得目标;

所述特征点提取单元,用于对视频画面中的目标进行特征点提取;

所述人脸识别单元用于基于特征点进行人脸识别确认身份信息;

所述目标定位单元,用于根据目标人物身份信息确定目标人物在室内的具体位置。

本发明所取得的有益技术效果:本发明提出了一种新型视频分析架构。在这种新型的架构中,大量的视频数据不需要通过核心网络上传和远程处理。此外,计算部分或全部发生在边缘计算节点上,减少了链路拥塞和故障的可能性,提高性能并缩短响应时间;将视频分析过程模块化,并使用容器作为其承载实体。同一模块可以在不同的之间共享,改善了资源利用率,也便于边缘集群的统一调度和分配资源。

本发明基于提出的视频分析架构,设计并实现了一个智能室内定位系统。系统中具有厘米级的定位精度的位置信息可以满足物联网中各种基于位置的服务。

附图说明

图1为本发明具体实施例提供的视频分析架构结构示意图;

图2为本发明具体实施例提供的室内定位系统结构示意图;

图3为本发明具体实施例提供的室内定位系统中目标定位单元执行的流程示意图;

图4为本发明具体实施例提供的室内定位系统仿真评估环境示意图。

图5为本发明具体实施例提供的室内定位系统不同测试用例下定位的位置误差距离的cdf;

图6为本发明具体实施例提供的室内定位系统针对不同学生定位的位置误差距离的cdf;

图7为本发明具体实施例提供的室内定位系统在不同分辨率下定位的平均位置距离误差。

具体实施方式

以下结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作步骤,但本发明的保护范围不限于下述的实施例。

实施例1:视频分析架构,如图1所示,包括:应用层、控制编排层、边缘计算层以及视频采集层;所述视频采集层用于获取视频数据;所述边缘计算层包括各个独立的边缘视频分析单元,所述边缘视频分析单元用于基于视频采集层获取的视频数据提供视频分析;

所述控制编排层包括网络控制器和容器编排器,所述网络控制器用于为所述边缘视频分析单元提供边缘网络环境,所述容器编排器用于为边缘计算层中每个视频分析单元分配资源并监督每个视频分析单元的资源状况;

所述应用层用于根据边缘视频分析单元获得的视频分析结果部署视频分析的应用程序或者提供应用程序接入的接口。

图1示出了所提出的架构以及不同功能组件之间的关系,从下到上依次是视频采集层、边缘计算层、控制编排层和应用层。

在视频采集层中,摄像头采集的实时视频流是视频分析系统的重要数据来源。各种型号的摄像机节点以无间断运行的模式持续地收集数据,并将捕获到的视频源数据以流的形式上传到流媒体服务层。通过实时流协议(realtimestreamingprotocol,rtsp)协议来获取不同ip地址的网络摄像头采集的实时视频流,同时将视频流解析为相应的视频帧,提供给系统进行下一步的分析和处理。从全局的角度来看,摄像机节点的密度决定了边缘计算节点的地理分布。因为更多的摄像机节点意味着更多的多媒体视频数据,边缘集群的计算和存储资源应满足视频分析应用的需求。

边缘计算层是由多个边缘视频分析单元(edgevideoanalyticsunits,evaus)组成的集群,每个evau都是可以提供视频分析计算的独立的边缘计算节点。利用容器级别的轻量级虚拟化,以具体的容器实例作为基本运算单元,将evau的计算、网络和存储资源进行抽象,使得服务程序与底层硬件解耦。以此,屏蔽底层基础设施,从而协调高度异构的evau集群,以充当同构计算平台。考虑到功能划分、业务需求及后期维护的需要,可将整个视频分析任务按功能划分为不同子模块,如果包括人脸识别、室内定位等模块。使用google用于自动部署、扩展和管理容器化应用程序的开源系统kubernetes,它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。视频分析的实现借助于docker编排管理技术,docker容器可以使相应的功能子模块之间相互隔离。各功能进程之间不会互相影响,能对计算资源进行合理调度。容器是一种将程序运行所需要的一切打包并隔离的方法。这里“隔离”的意思是容器可以从宿主机分配单独的资源。每个模块都会被构建为一个docker镜像,然后进行部署。由于每个功能模块相对独立,这样就可以实现对每个模块进行透明化镜像打包,便于监控和管理,而且不依赖于环境的改变而变化。

不同的服务请求往往具有部分相同的视频分析任务。因此,可将整个视频分析任务依据功能划分为多个模块,每个模块都有其对应的视频分析功能。当前功能模块的处理结果被转发到下一个功能模块进行后续的分析处理。如此进行功能划分,通用的功能模块在多个应用程序之间共享,从而能够极大地提高资源利用率。为了减少应用程序的响应延迟,根据每个模块消耗的资源和特定的资源调度算法,在适当的时间和适当的evau执行不同的功能模块。此外,还使用不同的命名来统一区分和管理所有视频分析模块。

视频分析任务通常在具有异构功能的视频分析单元(evau)上运行。为了使异构evau能够准确地执行相同的视频分析模块,将容器作为视频分析功能模块的承载实体。由于容器在操作系统级别提供了虚拟化,因此可以避免由不同操作系统和基础结构之间的服务迁移引起的许多问题,如环境配置和兼容性等。视频分析模块运行在docker容器中,同时可以借助平台的容器编排器来对模块的资源监督和任务调度。轻量级边缘计算平台的容器编排功能是通过kubernetes(k8s)实现的,kubernetes是由google开源的自动化容器操作的平台,可以执行的操作包括部署,调度和节点集群间拓展。在视频分析系统使用kubernetes管理容器可以实现自动化容器的部署和复制,提供容器间的负载均衡和容器弹性等。

控制编排层借助轻量级边缘计算平台提供的网络控制和容器编排两个功能模块来实现对视频分析系统的网络和资源监控,从而保证系统可以在边缘平台上顺利运行。其中,网络控制旨在给视频分析提供边缘网络环境,网络控制器可以通过控制虚拟交换机来构建大规模的边缘计算网络。同时容器编排器可以获取节点资源的当前状态和服务部署情况,监督边缘计算层中每个视频分析单元的资源状况,包括cpu,内存等,同时通过资源调度来协调视频分析模块的顺利运行。

视频分析应用层是对视频分析结果的展示和应用,基于各种计算机视觉算法为用户提供多样化的服务。可在此层中部署多样化的视频分析应用程序,例如区域管理,人流统计和安全监控报警等。同时,通过服务交互点,这些应用程序也可以作为开放的restapi提供给第三方。例如,云可以通过远程过程调用(remoteprocedurecall,rpc)控制边缘节点的行为。本实施例所提视频分析方案设计有两个关键,不同于其他现有的解决方案,可以提高视频分析的效率。

利用该实施例提供的视频分析架构实现视频分析的过程主要步骤总结如下:

(1)收集并处理用户请求参数:计算机视觉算法通常包括各种参数,如视频分辨率和视频采样率等。因此对于具体的某个应用程序来说,其对应的服务交互点需要从用户的请求中确定视频分析任务的具体参数。

(2)划分视频分析任务:视频分析任务往往包含一系列图像处理操作,这些都是运行在具体的容器实例之上。应用程序控制器通过sql查询获取某一视频分析任务的配置信息,包括所需的视频分析功能模块组成以及相应的资源消耗。根据所查询到的配置信息,去匹配集群中提供的容器实例,并将结果发送给容器编排器。

(3)分配资源:容器编排器会根据当前边缘集群的可用性(如cpu使用率,内存空间,网络吞吐量和存储使用情况等)为各个容器实例(功能模块)分配资源,并将分配结果以编排文件的形式表示。

(4)启动容器:容器在边缘集群中适当的evau上启动。每个容器实例所占用资源均是根据编排文件中所对应的参数来指定的。此外,管理员可以额外设置边缘集群中每个容器实例的副本数量,以应对evau可能出现的意外事件,从而提高可用性。

(5)获取视频:每个摄像机节点都拥有自己独立的ip地址,其所捕获到的源视频流均按照实时流传输协议在边缘网络上进行传输。流媒体服务器对各种视频流进行统一的管理,并根据需求进行格式转换。

(6)执行视频分析任务:当特定的功能模块获得视频数据后,执行其各自的计算任务。例如,目标跟踪、人脸识别、前景提取等。

实施例2:视频分析架构下的室内定位系统,所述视频分析架构采用如实施例1所述的视频分析架构,所述室内定位系统包括:所述边缘计算层包括各个独立的边缘视频分析单元由视频数据预处理单元、相机标定单元、前景提取单元、特征点提取单元、人脸识别单元及目标定位单元组成;

所述视频数据预处理单元,用于按照分布式流处理对捕获的视频数据进行处理;

所述相机标定单元,用于对室内平面进行分割并且通过相机标定来获取投影矩阵,获取图像中的像素和空间三维物体的映射关系;

所述前景提取单元,用于对出现在视频画面运动目标进行前景提取获得目标;

所述特征点提取单元,用于对视频帧中的目标进行特征点提取;

所述人脸识别单元用于基于特征点进行人脸识别确认身份信息;

所述目标定位单元,用于根据目标人物身份信息确定目标人物在室内的具体位置。

本实施例基于实施例1提供的视频分析架构以及系统在定位方面上的应用需求,提供一种室内定位系统,如图2所示,主要包括基础设施服务(infrastructure-as-a-service,iaas)、定位服务(position-as-a-service,paas)和软件服务(software-as-a-service,saas)三部分。

其中,基础设施服务(iaas)部分主要为整个系统提供必要的计算、网络和存储资源。利用边缘计算层和控制编排层实现基础设施服务,同时借助容器所提供的轻量级虚拟化技术,将整个系统所需的一系列视频分析任务按照功能进行模块划分,以并行化的方式处理所收集到视频数据。

利用视频采集层和边缘计算层实现定位服务,即首先是对视频流的采集,然后通过视频分析(前景提取、人脸识别与目标定位等)实现目标定位。定位服务(paas)为整个系统的核心,室内定位的方案是基于计算机视觉的室内定位,通过对摄像头上传的视频流进行图像处理来对视频帧中目标进行实时定位,因此可以降低外界噪声的干扰并提高定位的精确度。主要包括以下几个部分:视频采集及预处理、相机标定、前景提取、特征点提取、人脸识别和目标定位几部分。

在应用层对视频分析结果的应用,实现软件服务。软件服务(saas)处于整个系统服务堆栈的顶层,为系统提供了各种web服务,如观看视频、获取位置信息,以及一些管理性的操作,以便于用户可以轻松地直接访问。

室内定位系统中目标定位单元执行的流程示意图如图3所示。

本实施例中,视频采集层获取摄像机节点提供的原始视频数据作为输入。不同的场景对位置信息的精确度要求不同。例如,在商场中,需要知道误差距离在5米以内的用户的位置信息来推送广告,在医院中的误差距离减小到1米以监测患者。更高的视频分辨率确实会增加视频数据中的详细信息,这意味着将大大增强定位信息。因此,根据应用请求提供的参数,将原始视频数据转换为满足特定场景下定位精度要求的视频数据。

视频数据采集过程中也不可避免地会产生噪声。因此,在将视频数据传输到下一部分之前,需要采用视频数据预处理单元通过滤波,直方图均衡化等方法处理视频数据。

考虑到边缘设备的资源受限问题,以及物联网中大量摄像机节点产生的海量视频数据,本实施例按照分布式流处理对捕获的视频数据进行处理。动态视频数据到达时不是先存储,而是在内存中处理。由于视频数据不存储,减少了读写磁盘的消耗,从而进一步优化了视频分析。

相机标定单元是为了从二维图像中获取三维尺度信息,我们对室内平面进行分割并且通过相机标定来获取投影矩阵,来进一步获取图像中的像素和空间三维物体的映射关系,从而实现利用像素坐标来解算空间坐标的目的。借助于针孔成像模型可以得到以下像素坐标和空间坐标的映射关系:

式中,s是尺度因子,u和v是像素坐标;x和y是空间坐标;a是相机的内参矩阵,是相机本身固有的参数;r1和r2是旋转参数,t是平移参数,这几个参数为相机的外部参数,表征的是相机坐标系和实际坐标系的关系。通过求解上述方程可以实现对室内平面的相机标定,在相机成像模型的基础上,借助张正友的基于单平面棋盘格的相机标定法来对相机的内外参数进行求解来得到像素坐标和空间坐标的转换关系。

在相机标定后,需要利用前景提取单元对出现在视频画面运动目标进行前景提取来实现对目标人物的定位。常见的前景提取算法包括帧差法、光流法和背景模型法等。在系统的室内定位策略中,本实施例选择帧差法来对视频帧中的运动目标进行前景提取,具体是通过python和opencv实现的。

在完成对运动目标的前景提取后,进而可以完成对目标的特征点提取并获取目标在图像中的像素坐标,同时其像素坐标和空间坐标之间的映射关系可以进一步表示为

式中,zc是人和摄像头的实际距离,dx和dy是像素点的长度和宽度,f为相机的焦距。构成内部矩阵m1的参数f,dx,dy,v0,u0和相机本身有关,是相机内部参数,描述了相机的光学特性;构成矩阵m2的r和t表示从相机坐标系到空间坐标系变换的旋转矩阵和平移矢量,为相机的外部参数;将运动目标检测后的物体的特征像素点坐标代入式(3)可以得到以下关系:

通过相机标定后,相机的内外参数具体值从可以唯一确定。

利用目标定位单元的,预先创建包括不同人的不同角度的人脸图像的数据库。将这些人脸图像作为样本集,通过训练生成相应的人脸模型,为人脸识别提供支持。每个个体身高数据也与人脸图像一起存储在数据库中。

在对视频帧中的目标人物进行特征点提取并基于提取的特征点进行人脸识别确认身份信息后,系统可以从数据库中查找并获取对应人物的身高,并且通过对运动目标的检测可以得到对应人物在图像中的像素大小,然后结合图像中人物和摄像头的像素距离即可以得到室内中人物和摄像头的实际距离,即摄像头的景深。在得到实际距离后,我们通过求解像素坐标和空间坐标之间的映射关系即可以确认目标人物在室内的具体位置。

本发明具体实施例提供的室内定位系统仿真评估环境示意图如图4所示。将实验室中的会议室用作评估环境。会议室地砖尺寸为60cm*60cm。在实验中,部署了三台配置相同的服务器充当视频分析单元(evau)的角色和一个容器编排节点,而且它们可以彼此发现并连接在一起,组成集群。每台服务器的cpu配置为双intelxeone5-2620v3的六核处理器,32gbram,2tb存储和ubuntu14.04lts操作系统。在每个边缘计算节点上安装docker容器引擎,通过容器提供的虚拟化隔离技术可以支持视频分析的模块化。每个模块对应一个具体的docker容器实例,容器内封装了模块所依赖的环境(opencv,ffmpeg)以及相应的代码实现。针对本实施例所提室内定位系统,提出了与三个特定docker容器相对应的三个视频分析模块,包括前景提取、人脸检测与识别、特征点提取和定位。采用hikvisionds-2cd3345f-isip摄像机作为相机节点。相机节点的视频数据采用h.264编码,分辨率为2560*1440,帧速率为30fps。docker容器引擎是创建和管理容器的工具,然后通过容器提供的虚拟化隔离可以实现独立的视频分析模块,保证应用在运行时互不干扰。

容器编排节点实现轻量级边缘计算平台的容器编排功能,具体通过kubernetes(k8s)实现的,kubernetes是由google开源的自动化容器操作的平台,可以执行的操作包括部署,调度和节点集群间拓展。在视频分析系统使用kubernetes管理容器可以实现自动化容器的部署和复制,提供容器间的负载均衡和容器弹性等。

在集群中的所有设备上都部署了kubernetes。将存储像素点模型和数据库的容器编排节点作为kubernetes的主节点,对整个集群的计算、网络和存储资源进行统一调度和管理。此外,主节点负责边缘集群中各个容器的部署、复制和扩展。通过配置文件指定边缘集群中所有容器的行为。每个容器实例的副本数量是我们实验的两倍。当docker进程在evau上启动时,将自动创建一个名为docker0的虚拟网桥,其ip地址被设置为在节点上启动的所有容器的默认网关。

普通的工业相机通常具有较大的光学畸变,这意味着实际场景中的直线无法保持为图像中的直线。本系统采用海康威视(hikvisionds-2cd3345f-is)网络摄像头来进行视频采集。为了准确地获取场景信息,需要对捕获的视频进行失真校正处理。

定位的有效性往往通过定位精度来进行评估,定位精度定义为指定距离内的位置误差的累积百分比。在实验室内选取了37个位置点来对系统的定位精度进行评估。图5显示了摄像机节点校正前后对比的结果。可以看出,校正后的摄像机节点显示出更好的定位精度,并且有接近80%的点的位置误差在20cm的范围内。

在对摄像机节点进行失真校正后,随机选择了实验室内的三名学生,以进一步评估该定位系统。学生甲和学生已在数据库中,其身高为176厘米和165厘米,学生丙不在数据库中。

视频分辨率为2560*1440。图6显示了三个学生的位置误差距离的cdf(cumulativedistributionfunction,cdf)。可以看出,若待定位目标存在于数据库中时,特征点选择方法有近90%的概率将误差保持在20cm范围内。如果数据库中不存在某待定目标,位置误差会增加到30cm。总的来说,该基于视频分析的定位系统可以在90%的定位结果中提供30cm的定位精度。

为了进一步探究影响本系统定位精度的因素,分析并比较了不同分辨率下的定位精度。如图6所示,随着分辨率的降低,平均误差距离均增大,定位精度降低。这主要是因为目标的特征信息被压缩,导致特征检测与识别效果降低。

此外,在低分辨率下,表示人脸的像素点越少,这意味着可以被提取的特征点越少,导致人脸识别效果降低。从图6中还可以看出,当分辨率降低到720*480时,无法正确检测到人脸并进行识别,导致数据库中存在的目标(学生甲和学生乙)的定位结果的平均误差距离突然增大。相反,对于不存在与数据库的待定位目标(学生丙),没有出现平均误差距离陡增的现象。所以可以采用不同的特征点选择策略来提高不同分辨率下的定位精度。

系统的响应时间主要由三部分组成,包括视频数据的传输时间和处理时间,以及处理结果的返回时间。由于不同的应用程序具有不同的响应结果。因此,本部分主要讨论视频数据传输时间和处理时间。

此外,为了最大限度地利用边缘集群中的资源,对系统的资源需求进行了评估。本实验中,每个边缘计算节点有24个逻辑cpu数,kubernetes的主节点负责统一分配集群中所有容器所占用的资源。

图7显示了系统在处理不同分辨率的视频帧所需的计算资源及相应的处理时间。分辨率越高意味着数据量越大,处理时间更长。所以可以采用更先进的计算机视觉算法和有效的资源调度策略来减少系统的响应时间。

本发明首先提出了一种利用边缘计算来处理不同摄像机节点附近视频数据的视频分析架构。此外,为了提高视频分析的效率,对视频分析过程进行了模块化处理,使典型的和通用的功能模块可以在不同的应用之间共享。在此基础上,设计并实现了基于视频分析的室内定位系统,容器作为视频分析功能模块的承载实体。讨论了系统的定位精度和不同分辨率下的处理时间以及计算资源。实验结果表明,该系统能够为物联网中的监控场景提供厘米级定位精度,以满足各种基于位置的服务的需求。另一方面,与传统的云计算模型相比,该系统具有快速响应的特点,可以满足延迟敏感应用的实时性要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1