CN105491329B - 一种基于流式计算的大规模监控视频流汇聚方法 - Google Patents

一种基于流式计算的大规模监控视频流汇聚方法 Download PDF

Info

Publication number
CN105491329B
CN105491329B CN201510819354.3A CN201510819354A CN105491329B CN 105491329 B CN105491329 B CN 105491329B CN 201510819354 A CN201510819354 A CN 201510819354A CN 105491329 B CN105491329 B CN 105491329B
Authority
CN
China
Prior art keywords
worker
computing
cpu
sequence
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510819354.3A
Other languages
English (en)
Other versions
CN105491329A (zh
Inventor
阳海华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Junesh Information Technology Co Ltd
Original Assignee
Shanghai Junesh Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Junesh Information Technology Co Ltd filed Critical Shanghai Junesh Information Technology Co Ltd
Priority to CN201510819354.3A priority Critical patent/CN105491329B/zh
Publication of CN105491329A publication Critical patent/CN105491329A/zh
Application granted granted Critical
Publication of CN105491329B publication Critical patent/CN105491329B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

本发明公开了一种基于流式计算的大规模监控视频流汇聚方法,包括四个步骤:步骤一、获取所有摄像头的信息,然后按照重要程度、所需CPU资源、IP地址进行排序;步骤二、获取Worker的信息,然后按CPU计算能力、IP地址进行排序;步骤三、根据计算资源链表来选择合适标识的Worker计算容器作为接收器的启动位置;步骤四、然后对选取的Worker进行计算资源能力估算。本发明充分考虑到了输入数据源的复杂度以及Woker的计算能力,对视频流启动位置进行了合理的计算,保证了数据尽量本地执行,提高了系统的CPU利用率,增强了系统的实时计算能力。它在视频大数据并行实时处理技术领域具有广泛的实用价值和应用前景。

Description

一种基于流式计算的大规模监控视频流汇聚方法
技术领域
本发明涉及计算机处理技术领域,具体是一种基于流式计算的大规模监控视频流汇聚方法。
背景技术
大规模视频源的“汇聚”,即从视频源接收视频流数据,是并行处理的先行步骤。这过程需要解决两个重要的问题。第一,与外界视频源的交互,确保大规模的流式数据能够被稳定地导入到分析系统;第二,保存位置的选择,确保流式数据的保存位置能够满足构建一个良好的分布式集合。一个良好的分布式集合能够给并行处理减少很多不必要的数据传输。
然而集群中视频流的接收位置是随机的,很有可能视频流集中到少数机器中启动。要对视频进行实时的处理,必须要进行大量的网络传输,这违背了大数据处理的本地性,所以实现一个能够根据视频信息以及物理资源信息计算出视频流的最佳启动位置的方法,对于视频流的实时计算具有重要意义。
发明内容
本发明的目的在于提供一种基于流式计算的大规模监控视频流汇聚方法,通过对数据流的位置层面进行负载均衡,能够最有效的提高数据基于本地性的计算。
为实现上述目的,本发明提供如下技术方案:
一种基于流式计算的大规模监控视频流汇聚方法,通过获取视频流相关信息(重要程度、视频复杂度)以及计算节点的计算资源信息,然后对视频流的启动位置进行分配,将不同的视频流分配到适当的位置,从而提高了作业的速度以及节点的资源使用率;该方法包含以下步骤:
步骤一:获取所有摄像头的信息,然后按照重要程度、所需CPU资源、IP地址进行排序,最终形成以递减顺序排序的一个监控视频流分析链;
步骤二:获取Worker的信息,然后按CPU计算能力、IP地址进行排序,最终形成以递减顺序排序的一个计算资源链;
步骤三:从视频流分析链中取出一条记录,然后遍历计算资源链表,选取合适标识的Worker计算容器作为接收器驻留位置;
步骤四:然后对选取的Worker进行计算资源能力估算,看是否满足需求,如果不够则将不能计算的数据给相邻的Worker,如果系统没有计算资源,那么采用丢帧策略或者告知用户需要添加计算资源。
作为本发明进一步的方案:所述的步骤一中,摄像头的信息即为视频信息,其包括IP地址、重要程度、视频清晰度、帧率、分析应用类型、流处理窗口时间、数据块数目、CPU要求等信息;视频信息的描述=(IP地址,重要程度,视频清晰度,帧率,分析应用类型,流处理窗口时间,数据块数目,CPU要求),其中,
IP地址用来标识摄像头的位置信息;
重要程度主要分关键、重要和一般三个等级,重要程度主要用来决定在计算能力不够的情况下丢掉哪些数据;
视频清晰度主要包括1080p、720p、D1等分辨率格式,并且不同的分辨率在相同的CPU中所需要的计算资源不一样;
帧率表示该路监控视频流每秒的帧数,用来估计流处理窗口时间内产生多少数据量;
分析应用类型用来标识计算算法的类型,因为不同的算法所需要的计算能力不一样;
流处理时间窗口用来表示数据流积累多长时间被处理,这对实时性计算的延迟影响较大;
数据块数目表示在流处理时间窗口内平均产生的数据块数目,是由位置选择决策器计算出来的,被用来评估CPU的要求;
CPU要求由位置选择决策器计算产生,CPU要求=等价数据块数/流处理窗口时间。
作为本发明进一步的方案:所述的CPU要求由位置选择决策器计算产生,具体计算步骤为:
1)位置选择决策器根据视频流描述的输入信息,获取每路视频流的视频清晰度和分析应用类型;
2)将得到的信息与基准计算时间表的相应字段匹配,得到基准计算时间;
3)根据得到的基准计算时间计算倍率因子;
4)将数据块数目乘以倍率因子得到等价数据块数目信息,并填充CPU要求字段。
作为本发明进一步的方案:所述的步骤3)中,设定720p的清晰度的倍率因子为1,将某一清晰度的基准计算时间除以720p的清晰度的基准计算时间,得到的比值即为该清晰度的倍率因子。
作为本发明进一步的方案:所述的步骤二中,Worker的信息包括单核CPU处理能力、核数、WorkerID、IP地址、内存;处理能力表示处理器的性能,与CPU的类型和频率有关,采用具体的分析应用类型所需要的处理时间来表示;核数表示该Worker拥有的核个数;WorkerID表示该Worker的身份识别;IP地址表示该Worker所在的物理主机地址;内存表示该Worker持有的内存容量。
作为本发明进一步的方案:一个Worker的总的处理能力表示为:Worker的总处理能力=处理能力×核数。
作为本发明进一步的方案:所述的步骤三中,从视频流分析链中取出一条记录然后遍历计算资源链表,选取合适标识的Worker计算容器作为接收器驻留位置,具体步骤为:在区域Worker内位置,位置选择决策器将依据各自Worker的计算能力合理地将数据块分散开;具体根据Worker的计算能力来确认每一轮Worker认领的数据块数目;将CPU资源量化后,针对计算资源位置和数据接收器及数据块存储位置的匹配关系,提出一种基于最佳适应算法的数据流存储位置选择策略,该策略总是把既能满足要求,又是最小的计算资源核浪费的Worker分配给相应的某路监控视频流;该策略的计算步骤如下:
(1)将等待分析的监控视频流源逐个分组排序,第一排序顺序为重要程度,第二排序顺序为CPU要求,第三排序顺序为IP地址,最终形成以递减顺序排序的一个监控视频流分析链;
(2)将Worker资源也逐个分组排序,第一排序顺序为处理能力,第二排序顺序为IP地址,最终形成以递减顺序排序的一个计算资源链;
(3)初始化接收器下一位置索引为0,记为Indexnext=0,该索引表示接收器可以在下一轮分配中所驻留的Worker;初始化Worker的总数Totalworker=计算资源链表的长度;
(4)从监控视频流分析链取出一条记录,遍历计算资源链表,选取Indexnext标识的Worker计算容器作为接收器驻留位置,并初始化为该路监控视频流分配资源时经过的Worker的个数,记为Step=0;
(5)判断该Worker处理能力是否满足视频监控流的分析要求;
(6)准备处理该Worker,更新Step的值,Step=Step+1;
(7)若该Worker满足要求,则记录该Worker可以在流处理窗口时间内接受该路监控视频流几份数据块,更新Indexnext值,即Indexnext=(Indexnext+Step)%Totalworker,并更新该Worker剩余的可用资源;如果Worker剩余资源为0,则标记该Worker已经没有可用的分配资源,回到步骤(4);否则跳到步骤(8);
(8)若该Worker不满足要求,则记录该Worker可以在流处理窗口时间内接受该路监控视频流几份数据块,计算还需要为该路监控流分配的资源数,标记该Worker已经没有可用的分配资源,并继续从计算资源链表头部开始取出第一个可用于分配的Worker,返回到步骤(5)。
与现有技术相比,本发明的有益效果是:
在解决与外界视频源的交互问题上,面临的问题是如何将大规模的视频监控源导入到分析系统。本发明利用“分而治之”的思想,采用“多点汇聚”的视频监控源导入模式达到“蚂蚁搬大米”的效果,并为每一个视频源的数据导入工作建立一个视频接收器。它负责将视频源导入到分析系统并且可以对视频流进行预处理。在表现形式上,每个接收器就是一个线程,它的运行直到视频智能分析应用结束才停止。多接收器的工作方式能够避免单节点的IO过载问题,使得数据传输分散在集群中不同的区域。
保存位置的选择能够直接影响到并行处理的效率。为解决位置选择问题,本发明采用“局部位置最优”方法。如果每个数据保存的位置在局部表现的是最优,那么它在整体上位置也是最优的。位置最优表现为避免不必要的数据传输以及数据能被及时处理。接收的数据被直接存于内存中,因此,保存位置最优对于不断产生的视频数据尤为重要,否则会因为接收数据的堆积致使内存不足进而导致分析程序奔溃。“局部位置最优”不是通过增加文件副本数量来避免分析时读取数据的IO瓶颈。本发明的出发点是构建一个在分布式集群上的并行集合,从整体上看集合中的数据单元是均衡分布在集群中的机器上。这种做法可以避免在计算时过度依赖某一个节点的数据源。
为了构建一个良好的分布式集合,便于后期并行处理。本发明首先收集集群中的各个工作节点的处理器核数、每个物理机处理器的执行能力、视频监控源的重要程度等信息。再估算每路监控视频流参数数据,也就是获得视频源的信息,然后根据计算资源的数量以及视频信息的需求,最后决定视频流启动的接收位置。
相对于传统模式相比,本发明具有的主要优点是:(1)充分考虑了视频流的重要程度信息以及各个CPU的计算能力,能够很好的适用于异构的分布式架构计算,相对传统的分布式调度方法更加具有普遍适用性,同时在视频流的实时计算方面,在数据源方面进行了负载均衡,这样提高了系统的整体效率。(2)充分考虑到了系统的执行能力,然后在计算能力一定的时候,为了保证能够实时的处理视频流数据,会将权重较低的摄像头进行丢帧的策略,或者告知用户需要添加物理节点来解决上述问题。
附图说明
图1是流式数据的接收过程;
图2是大规模监控视频流汇聚导入的决策框流程;
图3是计算每路监控视频流对CPU的要求的流程;
图4是人脸检测应用在不同处理器上平均每帧的计算时间;
图5是设备环境图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,一种基于流式计算的大规模监控视频流汇聚方法,主要解决以下两个问题:第一,与外界视频源的交互,确保大规模的流式数据能够被稳定地导入到分析系统;第二,保存位置的选择,确保流式数据的保存位置能够满足构建一个良好的分布式集合。
大规模视频流汇聚导入设计归结为数据块的最优分布问题。首要问题是需要解决如何使得数据块在集群中的位置是最优的,保证大多数任务计算所需要的数据块就在本地的Worker内存里,以达到性能的最优。因此,合理解决数据块的最优分布问题将成为制约分析系统的性能的关键所在。
请参阅图1,位置选择决策器以监控视频分析的路数描述文件作输入,并给出接收器及数据块存储位置决策,然后智能视频分析应用依据决策文件启动分析应用。最后优化器通过分析运行日志文件评价本次位置选择决策器产生的方案效果。上述虚线表示在将来实现,引入机器学习的方式建立经验库。本发明通过构造一个位置选择决策器来解决数据块最优分布问题。
为获取监控视频流数据保存位置的最佳选择,从以下三个影响位置选择的因素方面进行考虑:
1)分析应用从每个Worker申请使用的处理器核数。分析应用申请使用的核数越多,考虑到数据计算时的本地性原则,相应可以为该Worker分配更多的数据块。
2)Worker所在物理主机的处理器的强弱,可以将处理器分为强核和弱核。因为构成集群的主机之间存在性能上的差异。例如,有些主机是i7处理器,有些是Xeon处理器等。监控视频分析应用是一项计算耗时、占用CPU的工作。因此接收器位置选择策略就有必要考虑不同Worker的权重,让更强的Worker接收更多的数据块。
3)视频监控源的重要程度。重要交通路口的监控信息量就比小路口上的监控信息量多;大厦出入口的监控信息量就比楼层监控所包含的信息量多。我们考虑此因素的目的是作为可扩展性的一部分。例如,视频分析中的人脸检测技术所需要的计算时间会随着视频帧中出现的人脸数目成正相关。因此,当系统运行时出现计算能力不足,可以通过丢去不重要的监控源的数据来保证系统稳定地运行。
为在集群上构建一个良好的、均衡分布式的数据集,本发明采取如下两个步骤:
步骤一、估算每路监控视频流产生的数据块数。
首先系统会根据要分析的监控视频情况来估计在流处理窗口时间内对CPU要求。首先对每路监控视频流进行抽象,用一个向量来表示视频的信息,如下所示:
视频信息的描述=(IP地址,重要程度,视频清晰度,帧率,分析应用类型,流处理窗口时间,数据块数目,CPU要求),其中,
-IP地址表示监控摄像头的取流地址;
-重要程度划分为3个量级,具体分为关键、重要和一般。重要程度会影响到在出现计算能力不足时丢弃数据块的顺序,以保证系统的稳定运行;如果重要级别一样,系统会随机丢弃数据块,此时可以通过添加新的计算节点来解决这一情况;
-视频清晰度可以分为1080p、720p、D1等分辨率格式,并且不同的分辨率在同用的CPU类型上所需的计算时间是不一样的;在实际操作中,本文将计算时间都等价转换为对720p帧的计算时间;
-帧率表示该路监控视频流每秒的帧数,被用于估算流处理窗口时间内产生的数据块数目;
-分析应用类型是多样的,比如人脸检测、目标追踪、越线检测等,此参数被用于等价转换阶段;
-流处理窗口时间表示数据流积累多长时间被处理,通常设为2000毫秒;
-数据块数目表示在流处理时间窗口内平均产生的数据块数目,是由位置选择决策器计算出来的,被用于评估CPU的要求;
-CPU要求是由位置选择决策器计算产生的,用等价数据块的数目表示,即CPU要求=等价数据块数/流处理窗口时间;
本发明考虑1080p和720p两种分辨率的格式,为便于后续的资源匹配,将处理1080p帧的时间消耗等价转换为处理720p的时间消耗。例如,在人脸检测分析应用时,取平均时间,分析1080p帧的时间消耗是567.9ms,而分析720p帧的时间消耗是349.2ms,则相当于处理一个1080p数据块等价于处理1.6个720p的数据块。上述的基准计算时间是事先经过测量所得,是对每帧处理的平均时间取值,并被记录到基准计算时间表。
请参阅图2,为便于对CPU的申请,需要对视频流分析使用的CPU时间进行量化。即求出上文的CPU要求。具体计算步骤如下:
1)位置选择决策器根据视频流描述的输入信息,获取每路视频流的视频清晰度和分析应用类型;
2)将得到的信息与基准计算时间表的相应字段匹配,得到基准计算时间;
3)根据得到的基准计算时间计算倍率因子;例如,如果是720p的清晰度,此因子就设为1,如果是1080p的清晰度,就将倍率因子设为1080p的基准计算时间除以720p的基准计算时间的比值;
4)将数据块数目乘以倍率因子得到等价数据块数目信息,并填充CPU要求字段。
在计算流处理时间窗口内的等价数据块数目会遇到像1.6个数据块的值,采用向上取整的方式将其处理为2个数据块。那么这种向上取整的方式会引起一定量的浪费。但是这种做法的好处在于简单快速,并且这个问题可由之后的任务调度来弥补。
步骤二、选择接收器及数据块的驻留位置。
这一步需要构建一个区域Worker联盟用于承载接收器启动位置和视频数据块的存储;划分的区域数可以与视频分析路数一一对应。在区域Worker内,位置选择决策器将依据各自Worker的计算能力合理地将数据块分散开;具体根据Worker的计算能力来确认每一轮Worker认领的数据块数目。
在本发明中Worker的性能考虑用基准向量来表示。使用r个基准的向量空间来表示Worker的性能;Worker i 在Worker空间中被表示成一个向量A i =(a i1,a i2,…,a ir ),其中a ij 表示编号为i的Worker在基准j上的评估值。A i 就被称为Worker i 的基准向量,用于评价它自身的综合性能。本发明将用5个维度来描述worker的属性,即Worker=(处理能力,核数,WorkerID,IP地址,内存)。处理能力表示处理器的性能,它直接与CPU的类型和频率有关。本发明中采用具体的分析应用类型所需要的处理时间来表示,即可以查上文提到的基准计算时间表。本发明将CPU核的处理能力量化为能够处理的数据块数目。核数表示该Worker拥有的核个数。WorkerID表示该Worker的身份识别。IP地址表示该Woker所在的物理主机地址。内存表示该Worker持有的内存容量。因此,一个Worker的总的处理能力可表示为:
Worker的总处理能力=处理能力×核数
其中,处理能力是依据分析应用类型从基准计算时间表中查询得到。本发明以720p帧大小的数据在相应分析应用类型下的处理时间来衡量处理能力。
为得到最优的数据块分布,构建一个良好的并行分布式集合,本发明在考虑接收器位置和数据块存储位置选择时,考虑到以下两个原则:
原则一、强者多做原则。流式数据被分割后都只是很小一片数据块,特定的某一个数据块会被其中一个CPU核去处理。而Spark并没有考虑到处理器的性能,将所有CPU核都同等看待。然而不同CPU核的对于同一个应用差别很大,如图3所示。I7处理核与E5处理核对同一个人脸检测应用时所花费的计算时间的差异将近一倍,说明粗粒度的CPU核申请方式对于资源的浪费非常严重。因此,位置选择决策器必须能够依据CPU核的处理能力分配相应的数据块数目,即给处理能力强的Worker分配更多的数据块数,相应的给处理能力弱的Worker分配少一些数据块数目。
原则二、亲和力原则。同一IP地址上的Worker有亲和力的关系,在考虑分配的方案时,如果某一路监控视频流需要多个Worker的资源提供计算资源,则位置选择决策器会优先考虑将同一IP地址上的Worker作为这路监控视频流的存储容器。亲和力关系考虑到数据块准备阶段的传输。数据是需要从接收器驻留的Worker容器内存中传输到远程备份的Worker容器的内存中。而亲和力原则就是能够在数据块的准备阶段的提供网络流量的优化控制。
将CPU资源量化后,针对计算资源位置和数据接收器及数据块存储位置的匹配关系,本发明提出一种基于最佳适应算法的数据流存储位置选择策略。该策略总是把既能满足要求,又是最小的计算资源核浪费的Worker分配给相应的某路监控视频流。算法执行如下:
(1)将等待分析的监控视频流源逐个分组排序,第一排序顺序为重要程度,第二排序顺序为CPU要求,第三排序顺序为IP地址,最终形成以递减顺序排序的一个监控视频流分析链。
(2)将Worker资源也逐个分组排序,第一排序顺序为处理能力,第二排序顺序为IP地址,最终形成以递减顺序排序的一个计算资源链。
(3)初始化接收器下一位置索引为0,记为Indexnext=0,该索引表示接收器可以在下一轮分配中所驻留的Worker;初始化Worker的总数Totalworker=计算资源链表的长度。
(4)从监控视频流分析链取出一条记录,遍历计算资源链表,选取Indexnext标识的Worker计算容器作为接收器驻留位置,并初始化为该路监控视频流分配资源时经过的Worker的个数,记为Step=0。
(5)判断该Worker处理能力是否满足视频监控流的分析要求。
(6)准备处理该Worker,更新Step的值,Step=Step+1。
(7)若该Worker满足要求,则记录该Worker可以在流处理窗口时间内接受该路监控视频流几份数据块,更新Indexnext值,即Indexnext=(Indexnext+Step)%Totalworker,并更新该Worker剩余的可用资源。如果Worker剩余资源为0,则标记该Worker已经没有可用的分配资源,回到步骤(4);否则跳到步骤(8)。
(8)若该Worker不满足要求,则记录该Worker可以在流处理窗口时间内接受该路监控视频流几份数据块,计算还需要为该路监控流分配的资源数,标记该Worker已经没有可用的分配资源,并继续从计算资源链表头部开始取出第一个可用于分配的Worker,返回到步骤(5)。
经过上述两个步骤后,得到一个接收器和数据块的位置分配决策描述文件,即每个监控视频流接收器和一个确定的Worker关联,以及相应的数据块在Worker上的份额。依据这个位置分配决策描述文件,可以构造一个良好的分布式并行数据块集合,为后面的任务处理阶段准备好数据。
请参阅图4,在集群中流处理窗口时间内产生的数据块分布如图所示:图中每个椭圆代表一个Worker区域联盟,可以由一个或多个Worker组成,用于处理一路监控视频流的接收及后续的数据分析工作。在一个Worker区域联盟中,每个Worker都会承担相应的数据块存储。然而只有运行接收器的计算资源容器会保存完整的流处理窗口时间内产生的所有数据块,其余计算容器会依据数据块位置决策描述存储相应份额的数据块。例如,在图4中,我们需要分析一路监控视频流,假定该路监控视频在流处理窗口时间内能够产生约15个数据块。根据位置选择决策器给出的方案,需要4个Worker才能够完成实时处理,并依据每个Worker处理能力的强弱,假设计算容器1、计算容器2、计算容器3和计算容器4的处理能力为3:3:3:6,则运行接收器的计算容器1在接收到一个数据块后会按照这个比例将数据块发送到相应的Worker上。
基于计算能力感知的接收器位置分配规则能够感知节点的处理能力以及Worker之间的亲和性,确保每个Worker区域联盟的数据块分布均衡,便于后续的数据分析。在数据分析前的准备阶段,监控视频流的数据导入扮演着至关重要的作用,而本发明的做法就是在数据准备阶段构造一个良好的并行分布式数据集合,满足快速、实时的分析要求。
请参阅图5,大规模监控视频并行化处理的基本组成结构包括摄像头、交换机、计算服务器集群。集群的架构是典型的Master/Slave架构,Master与Slaves之间通过远程过程调用(RPC)方式交互。Master主要负责接收Slave的心跳信息,并且对计算任务以及接收器的位置信息进行调度。计算节点除了需要计算任务之外,还需要动态的将计算信息以及性能信息发送给Master。
本发明在软件方面需要各个节点事先安装好Linux操作系统,并配置好Java开发工具、OpenCV库、Spark集群等。本发明在环境条件方面,要求各个节点能够通过ssh互相进行访问。本发明所述的方法包括以下步骤:
步骤一:获取所有摄像头的信息,然后按照重要程度、所需CPU资源、IP地址进行排序,最终形成以递减顺序排序的一个监控视频流分析链;
步骤二:获取Worker的信息,然后按CPU计算能力、IP地址进行排序,最终形成以递减顺序排序的一个计算资源链;
步骤三:从视频流分析链中取出一条记录,然后遍历计算资源链表,选取合适标识的Worker计算容器作为接收器驻留位置;
步骤四:然后对选取的Worker进行计算资源能力估算,看是否满足需求,如果不够则将不能计算的数据给相邻的Worker,如果系统没有计算资源,那么采用丢帧策略或者告知用户需要添加计算资源。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (6)

1.一种基于流式计算的大规模监控视频流汇聚方法,其特征在于,包含以下步骤:
步骤一:获取所有摄像头的信息,然后按照重要程度、所需CPU资源、IP地址进行排序,最终形成以递减顺序排序的一个监控视频流分析链;
步骤二:获取Worker的信息,然后按CPU计算能力、IP地址进行排序,最终形成以递减顺序排序的一个计算资源链;
步骤三:从视频流分析链中取出一条记录,然后遍历计算资源链表,选取合适标识的Worker计算容器作为接收器驻留位置;
步骤四:然后对选取的Worker进行计算资源能力估算,看是否满足需求,如果不够则将不能计算的数据给相邻的Worker,如果系统没有计算资源,那么采用丢帧策略或者告知用户需要添加计算资源;
所述的步骤三中,从视频流分析链中取出一条记录然后遍历计算资源链表,选取合适标识的Worker计算容器作为接收器驻留位置,具体步骤为:在区域Worker内位置,位置选择决策器将依据各自Worker的计算能力合理地将数据块分散开;具体根据Worker的计算能力来确认每一轮Worker认领的数据块数目;将CPU资源量化后,针对计算资源位置和数据接收器及数据块存储位置的匹配关系,提出一种基于最佳适应算法的数据流存储位置选择策略,该策略的计算步骤如下:
(1)将等待分析的监控视频流源逐个分组排序,第一排序顺序为重要程度,第二排序顺序为CPU要求,第三排序顺序为IP地址,最终形成以递减顺序排序的一个监控视频流分析链;
(2)将Worker资源也逐个分组排序,第一排序顺序为处理能力,第二排序顺序为IP地址,最终形成以递减顺序排序的一个计算资源链;
(3)初始化接收器下一位置索引为0,记为Indexnext=0,该索引表示接收器在下一轮分配中所驻留的Worker;初始化Worker的总数Totalworker=计算资源链表的长度;
(4)从监控视频流分析链取出一条记录,遍历计算资源链表,选取Indexnext标识的Worker计算容器作为接收器驻留位置,并初始化为该路监控视频流分配资源时经过的Worker的个数,记为Step=0;
(5)判断该Worker处理能力是否满足视频监控流的分析要求;
(6)准备处理该Worker,更新Step的值,Step=Step+1;
(7)若该Worker满足要求,则记录该Worker在流处理窗口时间内接受该路监控视频流几份数据块,更新Indexnext值,即Indexnext=(Indexnext+Step)%Totalworker,并更新该Worker剩余的可用资源;如果Worker剩余资源为0,则标记该Worker已经没有可用的分配资源,回到步骤(4);否则跳到步骤(8);
(8)若该Worker不满足要求,则记录该Worker在流处理窗口时间内接受该路监控视频流几份数据块,计算还需要为该路监控流分配的资源数,标记该Worker已经没有可用的分配资源,并继续从计算资源链表头部开始取出第一个可用于分配的Worker,返回到步骤(5)。
2.根据权利要求1所述的基于流式计算的大规模监控视频流汇聚方法,其特征在于,所述的步骤一中,摄像头的信息包括IP地址、重要程度、视频清晰度、帧率、分析应用类型、流处理窗口时间、数据块数目、CPU要求;IP地址用来标识摄像头的位置信息;重要程度包括关键、重要和一般三个等级;视频清晰度包括1080p、720p、D1分辨率格式;帧率表示该路监控视频流每秒的帧数;分析应用类型用来标识计算算法的类型;流处理时间窗口用来表示数据流积累多长时间被处理;数据块数目表示在流处理时间窗口内平均产生的数据块数目;CPU要求由位置选择决策器计算产生,CPU要求=等价数据块数/流处理窗口时间。
3.根据权利要求2所述的基于流式计算的大规模监控视频流汇聚方法,其特征在于,所述的CPU要求由位置选择决策器计算产生,具体计算步骤为:
1)位置选择决策器根据视频流描述的输入信息,获取每路视频流的视频清晰度和分析应用类型;
2)将得到的信息与基准计算时间表的相应字段匹配,得到基准计算时间;
3)根据得到的基准计算时间计算倍率因子;
4)将数据块数目乘以倍率因子得到等价数据块数目信息,并填充CPU要求字段。
4.根据权利要求3所述的基于流式计算的大规模监控视频流汇聚方法,其特征在于,所述的步骤3)中,设定720p的清晰度的倍率因子为1,将某一清晰度的基准计算时间除以720p的清晰度的基准计算时间,得到的比值即为该清晰度的倍率因子。
5.根据权利要求1所述的基于流式计算的大规模监控视频流汇聚方法,其特征在于,所述的步骤二中,Worker的信息包括单核CPU处理能力、核数、Worker ID、IP地址、内存;处理能力表示处理器的性能,与CPU的类型和频率有关,采用具体的分析应用类型所需要的处理时间来表示;核数表示该Worker拥有的核个数;Worker ID表示该Worker的身份识别;IP地址表示该Worker所在的物理主机地址;内存表示该Worker持有的内存容量。
6.根据权利要求5所述的基于流式计算的大规模监控视频流汇聚方法,其特征在于,一个Worker的总的处理能力表示为:Worker的总处理能力=处理能力×核数。
CN201510819354.3A 2015-11-24 2015-11-24 一种基于流式计算的大规模监控视频流汇聚方法 Active CN105491329B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510819354.3A CN105491329B (zh) 2015-11-24 2015-11-24 一种基于流式计算的大规模监控视频流汇聚方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510819354.3A CN105491329B (zh) 2015-11-24 2015-11-24 一种基于流式计算的大规模监控视频流汇聚方法

Publications (2)

Publication Number Publication Date
CN105491329A CN105491329A (zh) 2016-04-13
CN105491329B true CN105491329B (zh) 2018-09-14

Family

ID=55678006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510819354.3A Active CN105491329B (zh) 2015-11-24 2015-11-24 一种基于流式计算的大规模监控视频流汇聚方法

Country Status (1)

Country Link
CN (1) CN105491329B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223604B2 (en) * 2016-11-06 2019-03-05 Microsoft Technology Licensing, Llc Live video analytics at scale
EP3535974A4 (en) 2016-12-08 2019-09-11 Zhejiang Dahua Technology Co., Ltd METHODS AND SYSTEMS FOR VIDEO SYNOPSIS
CN106982356B (zh) * 2017-04-08 2020-12-22 复旦大学 一种分布式大规模视频流处理系统
CN107172504B (zh) * 2017-05-08 2020-12-22 苏州中科集成电路设计中心有限公司 一种面向流式音视频数据的分布式处理方法及其装置
CN112799826A (zh) * 2019-11-14 2021-05-14 杭州海康威视数字技术股份有限公司 智能分析算法选取方法、装置、系统及电子设备
CN116828148B (zh) * 2023-06-13 2024-03-12 联城科技(河北)股份有限公司 监控视频汇聚共享方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067514A (zh) * 2012-12-29 2013-04-24 深圳先进技术研究院 用于视频监控分析系统的云计算资源优化的方法和系统
CN104618693A (zh) * 2015-02-09 2015-05-13 北京邮电大学 一种基于云计算的监控视频在线处理任务管理方法及系统
CN104751639A (zh) * 2015-03-17 2015-07-01 上海视聪网络信息技术有限公司 基于大数据的视频结构化车牌识别系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840683B2 (en) * 2006-08-31 2010-11-23 Sap Ag Systems and methods of migrating sessions between computer systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067514A (zh) * 2012-12-29 2013-04-24 深圳先进技术研究院 用于视频监控分析系统的云计算资源优化的方法和系统
CN104618693A (zh) * 2015-02-09 2015-05-13 北京邮电大学 一种基于云计算的监控视频在线处理任务管理方法及系统
CN104751639A (zh) * 2015-03-17 2015-07-01 上海视聪网络信息技术有限公司 基于大数据的视频结构化车牌识别系统及方法

Also Published As

Publication number Publication date
CN105491329A (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
CN105491329B (zh) 一种基于流式计算的大规模监控视频流汇聚方法
Islam et al. Context-aware scheduling in Fog computing: A survey, taxonomy, challenges and future directions
Luo et al. Resource scheduling in edge computing: A survey
Chang et al. Agent-based middleware framework using distributed CPS for improving resource utilization in smart city
DE102020208110A1 (de) Verfahren und vorrichtungen zum aggregieren von telemetriedaten in einer edge-umgebung
CN104038540B (zh) 一种应用代理服务器自动选择方法及系统
US11206193B2 (en) Method and system for provisioning resources in cloud computing
Li et al. Adaptive resource allocation based on the billing granularity in edge-cloud architecture
Ashouri et al. Cloud, edge, or both? Towards decision support for designing IoT applications
CN108241722A (zh) 一种数据处理系统、方法及装置
CN108322548A (zh) 一种基于云计算的工业过程数据解析平台
CN104298550A (zh) 一种面向Hadoop的动态调度方法
CN105049485B (zh) 一种面向实时视频处理的负载感知云计算系统
CN109088747A (zh) 云计算系统中资源的管理方法和装置
WO2022048050A1 (zh) 一种大数据信息采集系统及使用方法
Li et al. Human in the loop: distributed deep model for mobile crowdsensing
CN108132840A (zh) 一种分布式系统中的资源调度方法及装置
Rashid et al. Edgestore: Towards an edge-based distributed storage system for emergency response
Subrahmanyam et al. Optimizing horizontal scalability in cloud computing using simulated annealing for Internet of Things
Premkumar et al. Processing capacity‐based decision mechanism edge computing model for IoT applications
CN115169634A (zh) 一种任务分配优化处理方法及装置
CN115460700A (zh) 基于联邦学习的网络资源配置方法、装置、电子设备及介质
Cao et al. Online cost-rejection rate scheduling for resource requests in hybrid clouds
CN111784029A (zh) 一种雾节点资源分配方法
Filip et al. EdgeMQ: Towards a message queuing processing system for cloud-edge computing:(Use cases on water and forest monitoring)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant