发明内容
本发明的目的在于提供一种基于云计算的海量实时视频码流智能分析方法及其系统,面向大规模实时视频数据的智能分析引入了分布式计算框架,解决了传统分布式计算框架不能面向海量视频数据码流实时处理的问题,便于性能扩展和有效利用资源,从而可以高效协调各计算资源进行实时分析大规模路数的视频流。
为解决上述技术问题,本发明的实施方式公开了一种基于云计算的海量实时视频码流智能分析方法,方法基于云计算的分布式计算模型进行,该模型包括客户端、主节点和任务节点;
方法包括以下步骤:
客户端为需要进行分析的每个实时视频码流采集器分别生成切片信息,切片信息中包括实时视频码流采集器访问信息和智能分析规则;
客户端将切片信息上传到主节点;
客户端向主节点提交作业;
主节点将作业分解成多个任务,将各任务及与任务相关的切片信息分别指派给多个分布式计算的任务节点;
各任务节点执行被指派的任务,根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流,根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析,并将分析结果即时发送给服务器。
本发明的实施方式还公开了一种基于云计算的海量实时视频码流智能分析系统,系统基于云计算的分布式计算模型,该模型包括客户端、主节点和任务节点;
客户端,用于为需要进行分析的每个实时视频码流采集器分别生成切片信息,切片信息中包括实时视频码流采集器访问信息和智能分析规则,之后将切片信息上传到和将作业提交至主节点;
主节点,用于接收客户端上传的切片信息和提交的作业,并将作业分解成多个任务,以及将各任务及与任务相关的切片信息分别指派给多个分布式计算的任务节点;
任务节点,用于执行主节点中指派的任务,并根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流,根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析,并将分析结果即时发送给服务器。
本发明实施方式与现有技术相比,主要区别及其效果在于:
面向大规模实时视频数据的智能分析引入了分布式计算框架,客户端提交分布式作业任务请求,为了保证任务节点分析的速度不能低于实时时频码流的速度,主节点按照具体分析算法复杂度和任务节点的机器性能分解作业,主动向各任务节点分派任务,任务节点执行任务中的具体任务并根据实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流,以及根据切片信息中的智能分析规则对所获取的实时视频码流进行实时智能分析,并将分析结果即时反馈,解决了传统分布式计算框架不能面向海量视频数据码流实时处理的问题,保证了大规模实时视频智能分析的实时性,并可应用于视频监控领域的实时布控;在后台部署分布式计算集群,集群集成各种图像分析算法,便于性能扩展和有效利用资源,从而可以高效协调各计算资源进行实时分析大规模路数的视频流。
进一步地,通过唯一分配的统一资源定位符采集器访问信息,可以访问为网络摄像机的实时视频码流采集器。
进一步地,在视频监控领域的实时布控应用中,可以根据相关布防和事件关联性,将报警记录中的事件即时发送给报警服务器即时报警;或者在视频监控领域的其他应用中,可将报警记录中的事件即时发送给报警服务器即时报警,以进行相应的视频截取匹配、轨迹跟踪处理、录像显示和追踪等一系列联动操作。
进一步地,在分布式计算模型中使用输入插件获取视频码流,多个任务节点可以协同工作,进一步便于海量视频码实时流智能分析的性能扩展和资源的有效利用,使各计算资源实时分析大规模路数的视频码流可以高效协调进行。
进一步地,在分布式计算模型中使用输入插件获取视频码流和计算插件分析视频码流,可使在后台部署的分布式计算集群中方便集成各种图像分析算法在每个计算插件中,同时进一步增强了系统的可扩展性。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种基于云计算的海量实时视频码流智能分析方法。图1是该基于云计算的海量实时视频码流智能分析方法的流程示意图。该基于云计算的海量实时视频码流智能分析方法基于云计算的分布式计算模型进行,该模型包括客户端、主节点和任务节点。
如图1所示,所述方法包括以下步骤:
在步骤101中,客户端为需要进行分析的每个实时视频码流采集器分别生成切片信息,切片信息中包括实时视频码流采集器访问信息和智能分析规则。
此后进入步骤102,客户端将切片信息上传到主节点。
此后进入步骤103,客户端向主节点提交作业。
此后进入步骤104,主节点将作业分解成多个任务。
此后进入步骤105,将各任务及与任务相关的切片信息分别指派给多个分布式计算的任务节点。
此后进入步骤106,各任务节点执行被指派的任务,根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流。
此后进入步骤107,各任务节点执行被指派的任务,根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析。
此后进入步骤108,各任务节点将分析结果即时发送给服务器,此后结束本流程。
此外,可以理解,在本发明中,通过删减基于云计算的分布式计算模型MapReduce框架中的归并Reduce子框架,保留和使用计算Map子框架,对基于云计算的分布式计算模型MapReduce框架进行了改进,本发明的实现也可以借鉴基于云计算的分布式计算模型MapReduce进行,相关细节和实现方法可以相互参考,如客户端、主节点和任务节点可以分别为HMapReduce框架中的负责提交分布式计算请求的客户端模块HJobClient、负责计算和归并任务的分配和控制的主节点HJobTracker和负责执行某些具体的计算和归并任务的任务节点HTaskTracker。
本发明第二实施方式涉及一种基于云计算的海量实时视频码流智能分析方法。图2是该基于云计算的海量实时视频码流智能分析方法的数据处理流程示意图。
第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:通过唯一分配的统一资源定位符采集器访问信息,可以访问为网络摄像机的实时视频码流采集器。在视频监控领域的实时布控应用中,可以根据相关布防和事件关联性,将报警记录中的事件即时发送给报警服务器即时报警。或者在视频监控领域的其他应用中,可将报警记录中的事件即时发送给报警服务器即时报警,以进行相应的视频截取匹配、轨迹跟踪处理、录像显示和追踪等一系列联动操作。在分布式计算模型中使用输入插件获取视频码流,进一步便于海量视频码流实时智能分析的性能扩展和资源的有效利用,使各计算资源实时分析大规模路数的视频码流可以高效协调进行。在分布式计算模型中使用输入插件获取视频码流和计算插件分析视频码流,可使在后台部署的分布式计算集群中方便集成各种图像分析算法在每个计算插件中,同时进一步增强了系统的可扩展性。具体地说:
采集器为网络摄像机。该采集器访问信息为统一资源定位符。当然,该统一资源定位(Universal Resource Locator,简称“URL”)包含访问该采集器的所有访问信息。
在本发明的其他某些实施方式中,实时视频码流采集器并不局限于网络摄像机(IP Camera,简称“IPC”),还包括数字视频录像机(Digital VideoRecorder,简称“DVR”)或其中的某路通道,或者模拟摄像装置等。
上述将分析结果即时发送给服务器的步骤108,还包括以下子步骤:
将分析结果生成报警记录,该报警记录包括:为采集器分配的唯一编号、匹配时间点所采用的时间戳和事件。
将报警记录即时发送给报警服务器。
此外,可以理解,在本发明的其他某些实施方式中,报警记录还可以根据具体的应用,包含为采集器分配的唯一编号、匹配时间点所采用的时间戳和事件中的一个或若干个,也可以包含除上述三个信息之外的其他信息。
在上述根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流的步骤106之前,还包括以下步骤:
各任务节点加载输入插件,该输入插件用于根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流。
此外,可以理解,在与基于云计算的分布式计算模型MapReduce的相关细节和实现方法相互参考时,输入插件InputPlugin从IPC中获取实时视频码流。
在本发明的其他某些实施方式中,也可以将输入插件固定在任务节点中以直接获取实时视频码流。
在根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析的步骤107之前,还包括以下步骤:
各任务节点加载计算插件,该计算插件根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析。
此外,可以理解,在与分布式计算模型HMapReduce的相关细节和实现方法相互参考时,计算插件MapPlugin进行即时视频图像分析。
在本发明的其他某些实施方式中,也可以将计算插件固定在任务节点中以直接进行即时视频图像分析。
作为本发明的一个优选实施方式,在如图2所示的数据处理过程中,
首先,客户端形成切片信息,一路采集器IPC的相关信息作为一个切片,切片信息包括URL和规则等。URL包含了访问该IPC的所有信息,规则是计算插件中的智能分析算法的一些内容,比如匹配条件、采用的具体分析算法等等。
其次,主节点将客户端提交的作业分解成任务,再将该任务分派至各个任务节点,即切片被调度到多个任务节点上,任务节点实时获取采集器IPC的码流进行实时图像分析运算。
再则,如果分析到匹配条件的对象,则形成报警记录alarm record,该报警记录包括采集器标识(CamerID,IPC的唯一编号)、匹配时间点的采用时间戳TimeStamp、事件Event。
最后,各个任务节点将产生的报警记录alarm record都发给报警服务器alarm server,报警服务器alarm server可以根据CamerID、TimeStamp等信息进行后续的向预定客户端或者服务器发报警、联动录像、联动显示或追踪等联动操作。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Prog rammable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Prog rammable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第三实施方式涉及一种基于云计算的海量实时视频码流智能分析系统。图3是该基于云计算的海量实时视频码流智能分析系统的结构示意图。该基于云计算的海量实时视频码流智能分析系统基于云计算的分布式计算模型,该模型包括客户端、主节点和任务节点。
客户端,用于为需要进行分析的每个实时视频码流采集器分别生成切片信息,切片信息中包括实时视频码流采集器访问信息和智能分析规则,之后将切片信息上传到和将作业提交至主节点。
主节点,用于接收客户端上传的切片信息和提交的作业,并将作业分解成多个任务,以及将各任务及与任务相关的切片信息分别指派给多个分布式计算的任务节点。
任务节点,用于执行主节点中指派的任务,并根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流,根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析,并将分析结果即时发送给服务器。
面向大规模实时视频数据的智能分析引入了分布式计算框架,客户端提交分布式作业任务请求,主节点分解作业分派任务,任务节点执行任务中的具体任务并根据实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流,以及根据切片信息中的智能分析规则对所获取的实时视频码流进行实时智能分析,并将分析结果即时反馈,解决了传统分布式计算框架不能面向海量视频数据码流实时处理的问题,保证了大规模实时视频智能分析的实时性,并可应用于视频监控领域的实时布控。在后台部署分布式计算集群,集群集成各种图像分析算法,便于性能扩展和有效利用资源,从而可以高效协调各计算资源进行实时分析大规模路数的视频流。
此外,可以理解,在本发明中,通过删减基于云计算的分布式计算模型MapReduce框架中的归并Reduce子框架,保留和使用计算Map子框架,对基于云计算的分布式计算模型MapReduce框架进行了改进,本发明的实现也可以借鉴基于云计算的分布式计算模型MapReduce进行,相关细节和实现方法可以相互参考,如客户端、主节点和任务节点可以分别为HMapReduce框架中的负责提交分布式计算请求的客户端模块HJobClient、负责计算和归并任务的分配和控制的主节点HJobTracker和负责执行某些具体的计算和归并任务的任务节点HTaskTracker。
作为本发明的一个优选实施例,如图3所示,系统基于云计算的分布式计算模型,该模型包括客户端、主节点1...k(k为正整数)和任务节点1...m(m为正整数);
客户端,用于为需要进行分析的每个实时视频码流采集器分别生成切片信息,该实时视频码流采集器为实时视频码流采集器1...n中的一个,其中n为正整数,切片信息中包括实时视频码流采集器访问信息和智能分析规则,之后将切片信息上传到和将作业提交至主节点1...k;
主节点1...k,用于接收客户端上传的切片信息和提交的作业,并将作业分解成多个任务,以及将各任务及与任务相关的切片信息分别指派给多个分布式计算的任务节点1...m;
任务节点1...m中的一个或若干个,用于执行被主节点1...k中的一个或若干个指派的任务,并根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流,根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析,并将分析结果即时发送给服务器。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第四实施方式涉及一种基于云计算的海量实时视频码流智能分析系统,图4是该基于云计算的海量实时视频码流智能分析系统的结构示意图。
第四实施方式在第三实施方式的基础上进行了改进,主要改进之处在于:通过唯一分配的统一资源定位符采集器访问信息,可以访问为网络摄像机的实时视频码流采集器。在视频监控领域的实时布控应用中,可以根据相关布防和事件关联性,将报警记录中的事件即时发送给报警服务器即时报警。或者在视频监控领域的其他应用中,可将报警记录中的事件即时发送给报警服务器即时报警,以进行相应的视频截取匹配、轨迹跟踪处理、录像显示和追踪等一系列联动操作。在分布式计算模型中使用输入插件获取视频码流,进一步便于海量视频码流实时智能分析的性能扩展和资源的有效利用,使各计算资源实时分析大规模路数的视频码流可以高效协调进行。在分布式计算模型中使用输入插件获取视频码流和计算插件分析视频码流,可使在后台部署的分布式计算集群中方便集成各种图像分析算法在每个计算插件中,同时进一步便于海量视频码流实时智能分析的性能扩展和资源的有效利用,使各计算资源实时分析大规模路数的视频码流可以高效协调进行。具体地说:
采集器为网络摄像机。该采集器访问信息为统一资源定位符。
此外,可以理解,该统一资源定位(Universal Resource Locator,简称“URL”)包含访问该采集器的所有访问信息。
在本发明的其他某些实施方式中,实时视频码流采集器并不局限于网络摄像机(IP Camera,简称“IPC”),还包括数字视频录像机(Digital VideoRecorder,简称“DVR”)或其中的某路通道,或者模拟摄像装置等。
任务节点还包括以下模块:
生成子模块,用于在任务节点将分析结果即时发送给服务器时,将分析结果生成报警记录,该报警记录包括:为所述采集器分配的唯一编号、匹配时间点所采用的时间戳和事件;
发送子模块,用于将生成子模块生成的报警记录即时发送给报警服务器。
此外,可以理解,在本发明的其他某些实施方式中,报警记录还可以根据具体的应用,包含为采集器分配的唯一编号、匹配时间点所采用的时间戳和事件中的一个或若干个,也可以包含除上述三个信息之外的其他信息。
系统还包括:
输入插件,用于根据任务相关的切片信息中的实时视频码流采集器访问信息从实时视频码流采集器获取实时视频码流;
任务节点,还包括以下子模块:
加载子模块,用于加载输入插件。
此外,可以理解,在与分布式计算模型H mapReduce的相关细节和实现方法相互参考时,输入插件InputPlugin从IPC中获取实时视频码流。
在本发明的其他某些实施方式中,也可以将输入插件固定在任务节点中以直接获取实时视频码流。
系统还包括:
计算插件,用于根据任务相关的切片信息中的智能分析规则对所获取的实时视频码流进行分析;
加载子模块,还用于加载计算插件。
此外,可以理解,在与分布式计算模型HMapReduce的相关细节和实现方法相互参考时,计算插件MapPlugin进行即时视频图像分析。
本发明中,任务节点中的加载子模块加载输入插件和计算插件到任务节点中,分别用于获取和分析视频码流,这与任务节点获取和分析视频码流在层次逻辑上是合理的。
在本发明的其他某些实施方式中,也可以将计算插件以代码的形式固定在任务节点中以直接进行即时视频图像分析。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
需要说明的是,本发明各系统实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元或模块,也可以是一个物理单元或模块的一部分,还可以以多个物理单元或模块的组合实现,这些逻辑单元或模块本身的物理实现方式并不是最重要的,这些逻辑单元或模块所实现的功能的组合是才解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各系统实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元或模块引入,这并不表明上述系统实施方式并不存在其它的单元或模块。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。