大规模数据并发环境下的视频监控方法及系统与流程

文档序号:12497585阅读:893来源:国知局
大规模数据并发环境下的视频监控方法及系统与流程

本发明涉及视频数据处理技术领域,特别涉及大规模数据并发环境下的视频监控方法及系统。



背景技术:

近20多年来,视频监控系统经历了从第一代百分之百的模拟系统(VCR),到第二代部分数字化的系统(DVR/NVR),再到第三代完全数字化的系统(网络摄像机和视频服务器)三个阶段的发展演变。在这一过程中,视频监控系统与设备虽然在功能和性能上得到了极大的提高,但是仍然受到了一些固有因素的限制,其中既包含人类作为监控者自身在生理上的弱点,也包含视频监控系统配置和以及视频监控设备在功能和性能上的局限性。这些限制因素使各类视频监控系统均或多或少的存在报警精确度差、误报和漏报现象多、报警响应时间长、录像数据分析困难等缺陷,从而导致整个系统在安全性和实用性的降低。传统的识别系统主要是分为三种:基于视觉技术的识别系统、基于传感器的识别系统、基于特殊硬件设备的识别系统。基于视觉技术的识别系统主要受到有无光照和光照强度的限制;基于传感器的识别系统需要部署或者携带传感器,造价大,而且不方便;基于特殊硬件设备的识别系统需要部署特殊硬件,很难得到推广。基于WiFi设备无关的识别系统克服了传统的系统的限制,只需要部署一个现有的商业WiFi设备作为AP,以及一台WiFi接收设备。现在的WiFi设备到处可见,包括手机、智能电视、路由器等等家用设备,都可以作为系统的一部分,为系统的推广提供了可能性。

城市轨道交通视频监控系统是行车组织和客运组织重要的辅助设备,对此,研究了不少的视频监控系统或解决方案,当前摄像头厂商提供的例程往往采用直连模式,即将播放屏幕和摄像头进行关联,直接播放视频。但是这种方式极易造成信息流的冗余。



技术实现要素:

为了应对大规模数据并发环境下对视频监控性能影响的问题,本发明根据订阅/分发模式形成的视频分发矩阵及基于动态测量的负载均衡技术,从而解决了大规模数据并发环境下视频监控系统的实现。

大规模数据并发环境下的视频监控方法,包括以下步骤:第一步、订阅流程;

S11、客户端向所有服务器发布订阅消息;

S12、各服务器将订阅消息和相关参数发给负载测量器;

S13、负载测量器将所述订阅消息和所述相关参数转发给负载均衡器,由所述负载均衡器

计算负载情况,决定本次接受订阅的是哪一个服务器;

S14、负载均衡器把该决定发给调度发放器,所述调度发放弃决定发给指定的服务器;

S15、所述指定的服务器在全局信息中添加客户端,并向工控机发送登录并激活摄像头的

消息;

S16、所述工控机收到摄像头的视频信息,保存到实时数据库中;

第二步、视频发布流程;

S21、工控机登录所述摄像头并接收视频数据,将视频数据转发给所述指定的服务器;

S22、所述指定的服务器根据全局信息的客户端订阅情况,把视频数据拷贝成n份,分别转发给n个客户端。

所述相关参数包括CPU利用率、内存大小及利用率、磁盘I/O速度和网络吞吐量。

本发明还提供一种大规模数据并发环境下的视频监控系统,包括视频采集单元,其中又包括工控机和至少一个摄像头,所述摄像头用于拍摄视频,所述工控机用于采集视频数据,转发数据到服务器;监控中心,包括依次相连的服务器、负载测量器、负载均衡器、调度发放器,所述负载测量器获取服务器的相关参数,并连同客户端的订阅消息转发给所述负载均衡器;所述负载均衡器计算负载情况,决定本次接受订阅的是哪一个服务器;所述调度发放器决定发给指定的服务器;监控中心还包括实时数据库,负责保存视频分发矩阵,以便各个服务器获得相同的视频分发矩阵;客户端,用于向所述服务器发送请求和订阅消息,接收视频数据。

负载均衡技术在多台服务器工作的条件下,根据服务器的性能和负载等因素,提出了一种基于动态测量的负载均衡技术,负载均衡技术可以有效地降低响应时间,提高系统吞吐量,并均衡服务器的负载,取得了良好的效果。本发明中工控机参与转发,进一步减轻服务器的负载。服务器之间互为备份,减少单点故障的发生,提供更高的可靠性。

附图说明

图1为本发明实施例大规模数据并发环境下的车站视频监控系统拓扑图;

图2为实施例大规模数据并发环境下的车站视频监控方法中订阅/取消订阅算法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,为了保证整个系统的高性能运行,系统部署多台服务器,可以形成从视频摄像头到客户端的多条路径。基于此,对数据的传输进行了负载均衡的研究。负载均衡是网络中用来在多个网络链路或者服务器之间划分负载的一项技术。

首先,需将原有的二级订阅模型修改为三级订阅模型,即服务器接收客户端的订阅后并不是自己进行摄像头的登录,而是把这个任务传递给摄像头所在的车站工控机,由工控机进行摄像头的登录和数据的采集,转发给某个服务器,再由服务器分发给客户端。

负载均衡架构主要包括:负载控制器(包括测量器、均衡器、调度规则发放器等)、若干服务器、车站端的工控机以及客户端。

多台服务器和工控机相连,并且作为负载均衡的实际执行者进行视频数据的分发,多台服务器一起提供相同的服务,可以在增加计算能力的同时减少单点故障的发生,提供更高的可靠性,同时获得最小的时延和最大的吞吐量。在大规模数据并发环境下的视频监控系统,视频分发矩阵是一个非常关键的部分,需要在不同服务器之间进行不断的同步,以防止视频的漏发和重发。如果仅有一个服务器,一方面服务器任务本身比较重,另一方面,对主、副服务器的选择也需要进行考虑,为此,本发明采用了实时性非常高的实时数据库来保存视频分发矩阵,一方面减少了服务器的负载,另一方面可以极大地提高同步的效率。实时数据库的存在,可以方便多个服务器及时地同步信息,包括订阅信息,任一台服务器都可以接受客户端的订阅,并同步到其他服务器上。

负载测量器收集网络及服务器的状态,周期性的向负载均衡器报告,其中网络状态主要指请求的规模,服务器状态指从服务器获得其运行的状态。负载均衡器维护着服务器的地址列表以及分发规则,基于负载测量进行计算生成调度规则,并通过调度发放器发给每个车站工控机。每条调度规则以摄像头为处理粒度,用于指明具体的转发方向。

车站工控机基于调度规则,在多个服务器之间划分视频流向,将视频数据发给规定的服务器,由后者进行视频分发。

视频采用错时发送,将实时视频数据和历史视频数据进行错时发送,避免对网络负载造成较大影响。

视频数据规划采用了订阅/分发模型,形成视频分发矩阵,该矩阵保存了视频流与客户端对应的数据结构,订阅/分发模型定义了一种一对多的依赖关系,基于中介让多个订阅者同时监听某一个实时视频对象。如图2所示,当视频对象产生新数据,中介会通知所有订阅者对象接收新的视频数据,系统中,由服务器承担中介的角色,对客户端的订阅请求进行监听,实时更改订阅信息。订阅/分发模型所做的工作其实是解耦合,通过订阅/分发模型可以将这视频产生者和视频消费者封装在独立的对象中,它们可以各自独立地改变和复用。这样,通过中介的一次中转,使得长距离视频数据的传输只需要一个副本,可以大大降低视频数据的冗余度,降低网络带宽的负载。

系统保存了所有视频摄像头的信息(gc_DataLIst),作为全局信息,提供服务。其中包括了相关的订阅者信息,以及对应的摄像头信息。图1中,如果要登录摄像头,需要将一个回调函数注册给指定的摄像头,一旦登录完成,摄像头便利用此函数向系统返回摄像头/视频,系统收到数据后才能进行相关的处理。

void CALLBACK PsDataCallBack(LONG lRealHandle,DWORD dwDataType,BYTE*pPacketBuffer,DWORD nPacketSize,void*pUser)

由于摄像头对于播放视频来说至关重要,不能丢失,因此把摄像头事先保存在内存数据库中,客户端用户在订阅前需要先获得摄像头,放置在播放屏幕中。而视频本身数据,丢掉若干帧,影响不大,所以可以采用效率高的UDP协议。考虑到不同子系统(如环控、电力子系统等)和本子系统是独立的,以及实现的简单性,没有采用RTP协议。

服务器端在处理完毕视频订阅(包括相应的登录过程)后,就可以接收到摄像头发送的视频数据,并根据视频分发矩阵,将视频逐个发给每一个订阅者。

负载均衡重要的内容是确定调度的依据,将调度的依据规划为权值,服务器的处理能力是动态变化的,使用固定的权值并不能最优化的分配负载,本实施例基于如下参数计算服务器的处理能力:CPU频率、内存大小、网络的吞吐量、磁盘的I/O速度。可以将服务器的处理能力用下面的等式来表示,

C(s)=r1C(CPU)+r2C(mem)+r3C(band)+r4C(disk)

其中参数r表示权值的相关系数,并且有

具有高端配置的服务器也可能会因为负载较高而导致处理能力降低,所以负载是必须考虑的,还要考虑CPU的利用率、内存的利用率、磁盘的I/O速度和带宽接入速率。但是,这些信息并不能直接的反应服务器的负载,而且每一部分对服务器的负载都有一定的影响,所以需要一个函数将这些指标转化成能表示服务器负载的形式:

L(s)=w1L(CPU)+w2L(mem)+w3L(band)+w4L(disk)

L(CPU)表示CPU的使用率,L(mem)表示内存的使用率,L(band)表示带宽使用率,L(disk)表示磁盘I/O的使用情况,这些值都可以通过相关接口进行测量得到,wi(i=1、2、3、4)是各个因素所占权值,w1+w2+w3+w4=1。

服务器当前处理能力的计算公式,

CC(s)=C(s)*(1-L(s)/C(s))

其中CC(s)表示服务器当前能够处理客户端请求的能力。在为每个服务器计算出当前处理能力之后,使用下面的公式来计算服务器当前的权值,

这里的权值是一个动态变化的数值,表示服务器处理能力在服务器群中的比例。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。

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