视频信息处理方法、系统和装置与流程

文档序号:12696696阅读:273来源:国知局
视频信息处理方法、系统和装置与流程

本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及视频信息处理方法、系统和装置。



背景技术:

社会的安全保障需求推动着视频监控技术进入了各行各业。目前,金融网点、商业机构、生活小区、企业生产等都引入了大量的视频监控设备来保障生命和资产的安全,这导致传统的人工分析和识别视频内容的方法已经无法满足人们的需求,因此,需要一种有效的视频处理技术来实现对视频的目标识别、行为分析和轨迹分析等。

目前的视频处理技术通常是将视频算法程序嵌入到视频处理应用中,进而通过该应用来实现对视频数据的处理。但是,由于视频算法发展速度很快,这就需要经常更新视频处理应用中的视频算法的程序代码,这造成了人力资源的极大浪费。因此,需要一种能够灵活调用视频算法程序的视频处理方法来降低视频信息处理的成本。



技术实现要素:

本申请的目的在于提出一种改进的视频信息处理方法、系统和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种视频信息处理方法,所述方法包括:接收客户端发送的视频信息,其中,所述视频信息包括视频数据和视频数据处理指令;基于所述视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理所述视频数据的一个标记为未被调用状态的视频分析算法组件,其中,所述视频分析算法组件用于为不同视频数据处理指令提供对应的视频数据处理;基于所确定的标记为未被调用状态的视频分析算法组件,处理所述视频数据,并向所述客户端发 送处理结果。

在一些实施例中,所述多个视频分析算法组件是通过如下步骤获得的:获取多个视频算法库;以及将所述多个视频算法库封装成包括管理接口和业务接口的视频分析算法组件,其中,所述管理接口用于监控和管理所述视频分析算法组件的运行,所述业务接口用于获取视频数据和视频数据处理指令并输出视频数据处理结果。

在一些实施例中,所述方法还包括:构建代理线程,其中所述代理线程用于管理多个所述视频分析算法组件的管理接口,以及采集各所述视频分析算法组件的配置信息和状态信息,所述状态信息包括被调用状态和未被调用状态。

在一些实施例中,所述方法还包括:构建管理线程,其中所述管理线程用于管理至少一个所述代理线程,并获取各所述代理线程采集的所述配置信息和所述状态信息,以及为所述视频数据提供标记为未被调用状态的视频分析算法组件的配置信息。

在一些实施例中,所述基于所述视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理所述视频数据的一个标记为未被调用状态的视频分析算法组件,包括:基于所述管理线程,获取与所述视频数据处理指令对应的视频分析算法组件的配置信息及状态信息;确定是否存在标记为未被调用状态的视频分析算法组件;若是,则确定一个标记为未被调用状态的视频分析算法组件;若否,则将所述视频信息存放入预设的等待队列继续查询,直到确定一个标记为未被调用状态的视频分析算法组件。

在一些实施例中,所述确定一个标记为未被调用状态的视频分析算法组件,包括:将所确定的一个标记为未被调用状态的视频分析算法组件的配置信息和状态信息放入预分配队列;判断预设时间段内所述预分配队列中的视频分析算法组件的状态信息是否发生变化;若是,则将所述视频分析算法组件的配置移出所述预分配队列并将所述状态信息标记为被调用状态;若否,则将所述视频分析算法组件的配置信息移出所述预分配队列并将所述状态信息标记为未被调用状态。

第二方面,本申请提供了一种视频信息处理系统,所述系统包括: 客户端,用于向管理服务器发送视频信息,其中,所述视频信息包括视频数据和视频数据处理指令;所述管理服务器,用于基于各组件服务器的代理线程获取多个视频分析算法组件的配置信息和状态信息,以及根据所述视频数据指令和所述状态信息为所述视频数据分配视频分析算法组件;所述组件服务器,用于存储多个用于处理视频数据的视频分析算法组件和一个用于管理所述视频分析算法组件的代理线程,以及利用所分配的视频分析算法组件处理所述视频数据,并向所述客户端发送处理结果。

第三方面,本申请提供了一种视频信息处理装置,所述装置包括:接收模块,配置用于接收客户端发送的视频信息,其中,所述视频信息包括视频数据和视频数据处理指令;确定模块,配置用于基于所述视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理所述视频数据的一个标记为未被调用状态的视频分析算法组件,其中,所述视频分析算法组件用于为不同视频数据处理指令提供对应的视频数据处理;发送模块,配置用于基于所确定的标记为未被调用状态的视频分析算法组件,处理所述视频数据,并向所述客户端发送处理结果。

在一些实施例中,所述多个视频分析算法组件是通过如下步骤获得的:获取多个视频算法库;以及将所述多个视频算法库封装成包括管理接口和业务接口的视频分析算法组件,其中,所述管理接口用于监控和管理所述视频分析算法组件的运行,所述业务接口用于获取视频数据和视频数据处理指令并输出视频数据处理结果。

在一些实施例中,所述装置还包括:构建代理线程模块,配置用于构建代理线程,其中所述代理线程用于管理多个所述视频分析算法组件的管理接口,以及采集各所述视频分析算法组件的配置信息和状态信息,所述状态信息包括被调用状态和未被调用状态。

在一些实施例中,所述装置还包括:构建管理线程模块,配置用于构建管理线程,其中所述管理线程用于管理至少一个所述代理线程,并获取各所述代理线程采集的所述配置信息和所述状态信息,以及为所述视频数据提供标记为未被调用状态的视频分析算法组件的配置信 息。

在一些实施例中,所述确定模块具体用于:基于所述管理线程,获取与所述视频数据处理指令对应的视频分析算法组件的配置信息及状态信息;确定是否存在标记为未被调用状态的视频分析算法组件;若是,则确定一个标记为未被调用状态的视频分析算法组件;若否,则将所述视频信息存放入预设的等待队列继续查询,直到确定一个标记为未被调用状态的视频分析算法组件。

本申请提供的视频信息处理方法、系统和装置,通过视频数据处理指令从预置的多个视频分析算法组件中确定用于处理所述视频数据的一个标记为未被调用状态的视频分析算法组件,并用所确定的视频分析算法组件处理视频数据,而后将处理结果发送给客户端,这种利用封装的视频分析算法组件直接处理视频数据的方法,不需要将视频算法嵌入应用中,实现了对视频算法的灵活调用。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请的视频信息处理方法的一个实施例的流程图;

图2是根据本申请的视频信息处理方法中,确定视频算法程序的一种实现方式的示意性流程图;

图3是根据本申请的视频信息处理系统的一个实施例示意图;

图4是根据本申请的视频信息处理装置的一个实施例的结构示意图;

图5是适于用来实现本申请实施例的客户端端设备或服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与 有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,其示出了根据本申请的视频信息处理方法的一个实施例的流程100。所述的视频信息处理方法,包括以下步骤:

步骤101,接收客户端发送的视频信息。

在本实施例中,视频信息处理方法运行于其上的电子设备(例如服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行处理视频数据的客户端接收视频信息,其中,上述视频信息包括视频数据和视频数据处理指令。这里,视频数据处理指令是根据用户对视频数据处理的需求来确定的。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。

步骤102,基于视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理视频数据的一个标记为未被调用状态的视频分析算法组件。

在本实施例中,上述电子设备可以预先存储多个视频分析算法组件;之后基于步骤101中得到的视频数据处理指令从上述视频分析算法组件中获取用于处理上述视频数据的视频分析算法组件;而后从中确定一个标记为未被调用状态的视频分析算法组件。其中,上述视频分析算法组件用于为不同视频数据处理指令提供对应的视频数据处理。这里,视频分析算法组件可以是exe文件、elf文件等。

这里,通常是根据用户对视频数据处理的需求来选择不同的视频数据处理指令,进而调用与其对应的视频分析算法组件。例如,用户可以通过调用视频分析算法组件对视频数据进行分析,识别出视频中的各移动目标,进而实现对上述移动目标的视频浓缩、行为分析、轨迹分析、内容分析(例如车牌号分析)等。

在本实施例的一些可选的实现方式中,可以将预先获取的视频算 法库封装成包括管理接口和业务接口的视频分析算法组件,其中,管理接口用于监控和管理视频分析算法组件的运行,业务接口用于获取视频数据和视频数据处理指令并输出视频数据处理结果。

在本实施例的一些可选的实现方式中,可以在每一台视频分析算法组件所在的电子设备(例如服务器)上构建代理线程(例如agent程序),用于管理多个视频分析算法组件的管理接口,以及采集各视频分析算法组件的配置信息和状态信息。这里,状态信息包括被调用状态和未被调用状态。其中,代理线程可以基于Java实现,该代理线程可以支持Linux和Windows等不同平台视频分析算法组件的管理和调用。

在在本实施例的一些可选的实现方式中,上述电子设备可以构建管理线程。其中,管理线程用于管理至少一个上述代理线程,并获取各代理线程采集的配置信息和状态信息,以及为视频数据提供标记为未被调用状态的视频分析算法组件的配置信息。这里,配置信息包括服务器的名称、服务器的编号、服务器的地址、视频分析算法组件的标识信息、视频分析算法组件的类型等。

在本实施例的一些可选的实现方式中,视频信息处理方法运行于其上的电子设备可以首先根据视频数据处理指令确定用于处理与其相对应的视频数据的视频分析算法组件的状态信息,之后从获取的标记为未被调用状态的视频分析算法组件中选取任意一个视频分析算法组件,而后确定上述选取的视频分析算法组件的配置信息等,以便调用该视频分析算法组件处理视频数据。

步骤103,根据所确定的标记为未被调用状态的视频分析算法组件,处理视频数据,并向客户端发送处理结果。

在本实施例中,上述电子设备可以通过上述获取的一个标记为未被调用状态的视频分析算法组件处理上述视频数据,并将处理结果发送给客户端。例如,上述处理结果可以是人脸识别结果,其主要是通过视频分析算法组件在视频图像中找出一些画面的共性,如人脸中必然有两个眼睛,通过找到双目的位置就可以定性人脸的位置及尺寸,进而实现人脸的对比,获取目标人脸,并将结果发送给客户端。

本申请的上述实施例提供的方法,通过视频数据处理指令从预置的多个视频分析算法组件中确定用于处理上述视频数据的未被调用的视频分析算法组件,并用所确定的视频分析算法组件处理视频数据,而后将处理结果发送给客户端,这种利用封装的视频分析算法组件直接处理视频数据的方法,实现了对视频算法的灵活调用。

在一些可选的方案中,如图2所示,步骤102的“基于视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理视频数据的一个标记为未被调用状态的视频分析算法组件”可以通过如下步骤来实现:

步骤201,基于管理线程,获取与视频数据处理指令对应的视频分析算法组件的配置信息及状态信息。

在本实现方式中,上述电子设备(例如服务器)首先根据视频数据处理指令确定视频数据需要的视频分析算法组件的类型。之后上述管理线程确定所需类型的视频分析算法组件的配置信息和状态信息。这里,状态信息包括被调用状态和未被调用状态;配置信息包括服务器的名称、服务器的编号、服务器的地址、视频分析算法组件的标识信息、视频分析算法组件的类型等。

步骤202,确定是否存在标记为未被调用状态的视频分析算法组件。

在本实现方式中,上述电子设备根据上述获取的所需类型的视频分析算法组件的状态信息,判断是否存在标记为未被调用状态的视频分析算法组件。如果存在至少一个标记为未被调用状态的视频分析算法组件,则转到步骤203,如果不存在标记为未被调用状态的视频分析算法组件,则转到步骤204。

步骤203,确定一个标记为未被调用状态的视频分析算法组件。

在本实现方式中,上述电子设备在上述获取的至少一个标记为未被调用状态的视频分析算法组件中,选取任意一个视频分析算法组件,获取其配置信息,而后可以通过上述配置信息对应的视频分析算法组件处理上述视频数据。

步骤204,将视频信息存放入预设的等待队列继续查询,直到确 定一个标记为未被调用状态的视频分析算法组件。

在本实现方式中,上述电子设备可以预先建立等待队列。当不存在与视频处理指令对应的标记为未被调用的视频分析算法组件时,将视频信息存放于上述预先建立的等待队列中继续等待,直到查询到存在至少一个与视频算法指令相对应的标记为未被调用的视频分析算法组件,而后在其中确定一个用于上述视频数据的视频分析算法组件。在一些可选的实现方式中,可以给上述等待队列设置有效时间,当等待队列中的视频信息在有效时间内没有查询到与上述视频算法指令相对应的视频分析算法组件,则反馈任务繁忙提示。

在一些可选的实现方式中,将上述确定的一个标记为未被调用状态的视频分析算法组件的配置信息和状态信息放入预分配队列,之后判断预设时间段内上述预分配队列中的视频分析算法组件的状态信息是否发生变化。若状态信息发生变化,则将视频分析算法组件的配置信息移出预分配队列并将状态信息标记为被调用状态;若状态信息没有发生变化,则将视频分析算法组件的配置信息移出预分配队列并将状态信息标记为未被调用状态。这里,被调用状态包括开始处理视频数据、视频数据处理完成、视频数据处理失败等。在一些可选的实现方式中,代理线程可以通过发送心跳信息的方式,将上述视频分析算法组件的状态信息发送给上述管理线程。

本申请的上述实施例的实现方式提供的方法,通过建立预设的等待队列,使得不存在未被调用的视频分析算法组件的视频信息可以继续等待,直到获取至少一个未被调用的视频分析算法组件。该方法进一步的完善视频信息处理的步骤。

图3示出了可以应用本申请的视频信息处理系统实施例的示意图。如图3所示,视频信息处理系统300可以包括安装有各种通讯客户端应用的客户端301,管理服务器302和组件服务器303、304、305。

在本实施例中,客户端301用于向管理服务器发送视频信息。其中,视频信息包括视频数据和视频数据处理指令。管理服务器302用于基于各组件服务器的代理线程获取多个视频分析算法组件的配置信息和状态信息,以及根据视频数据指令和状态信息为上述视频数据分 配视频分析算法组件。组件服务器303、304、305,用于存储多个用于处理视频数据的视频分析算法组件和一个用于管理视频分析算法组件的代理线程,以及利用所分配的视频分析算法组件处理上述视频数据,并向上述客户端发送处理结果。

在本实施例的一些可选的实现方式中,客户端301还可以根据视频分析算法组件的配置信息从组件服务器303、304或305中获取上述管理服务器302为上述视频数据分配的视频分析算法组件,进而利用上述获取的视频分析算法组件处理上述视频数据。

在本实施例的一些可选的实现方式中,组件服务器303、304、305重新启动时,可以从上述管理服务器302下载视频分析算法组件的配置信息。其中,配置信息包括服务器的名称、服务器的编号、服务器的地址、视频分析算法组件的标识信息、视频分析算法组件的类型等。

在本实施例的一些可选的实现方式中,上述客户端301、管理服务器302和组件服务器303、304、305之间可以通过有线、无线通信链路或者光纤电缆等网络连接方式进行网络通讯。

应该理解,图3中的客户端和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端和服务器。

进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种视频信息处理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图4所示,本实施例所述的视频信息处理装置400包括:接收模块401、确定模块402和发送模块404。其中,接收模块401配置用于接收客户端发送的视频信息,其中,上述视频信息包括视频数据和视频数据处理指令;确定模块402配置用于基于上述视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理上述视频数据的一个标记为未被调用状态的视频分析算法组件,其中,视频分析算法组件用于为不同视频数据处理指令提供对应的视频数据处理;发送模块403配置用于根据所确定标记为未被调用状态的视频分析算法组件,处理上述视频数据,并向上述客户端发送处理结果。

在本实施例中,视频信息处理装置400的接收模块401可以通过 有线连接方式或者无线连接方式从用户利用其进行处理的客户端接收视频信息,其中,上述视频信息包括视频数据和视频数据处理指令。

在本实施例中,上述确定402可以首先预先存储多个视频分析算法组件;之后再根据接收模块401得到的视频数据处理指令从上述视频分析算法组件中获取用于处理上述视频数据的视频分析算法组件;而后从中确定一个标记为未被调用状态的视频分析算法组件。其中,上述视频分析算法组件用于为不同视频数据处理指令提供对应的视频数据处理。这里,可以将预先获取的视频算法库封装成包括管理接口和业务接口的视频分析算法组件,其中,管理接口用于监控和管理视频分析算法组件的运行,业务接口用于获取视频数据和视频数据处理指令并输出视频数据处理结果。

在本实施例的一些可选地实现方式中,上述确定模块402进一步配置用于基于管理线程,获取与上述视频数据处理指令对应的视频分析算法组件的配置信息及状态信息;确定是否存在标记为未被调用状态的视频分析算法组件;若是,则确定一个标记为未被调用状态的视频分析算法组件;若否,则将上述视频信息存放入预设的等待队列继续查询,直到确定一个标记为未被调用状态的视频分析算法组件。

在本实施例中,上述发送模块403可以基于所确定的标记为未被调用状态的视频分析算法组件,处理上述视频数据,并向上述客户端发送处理结果。

在本实施例的一些可选地实现方式中,装置400还包括:构建代理线程模块(未示出),配置用于构建代理线程,其中代理线程用于管理多个视频分析算法组件的管理接口,以及采集各视频分析算法组件的配置信息和状态信息,状态信息包括被调用状态和未被调用状态。

在本实施例的一些可选地实现方式中,装置400还包括:构建管理线程模块(未示出),配置用于构建管理线程,其中管理线程用于管理至少一个上述代理线程,并获取各上述代理线程采集的配置信息和状态信息,以及为上述视频数据提供标记为未被调用状态的视频分析算法组件的配置信息。

本领域技术人员可以理解,上述网页生成装置400还包括一些其 他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图4中未示出。

下面参考图5,其示出了适于用来实现本申请实施例的客户端设备或服务器的计算机系统500的结构示意图。

如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。

以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发 生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、确定模块和发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块还可以被描述为“接收客户端发送的视频信息的模块”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入客户端端设备中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收客户端发送的视频信息,其中,所述视频信息包括视频数据和视频数据处理指令;基于所述视频数据处理指令,在预置的多个视频分析算法组件中确定用于处理所述视频数据的一个标记为未被调用状态的视频分析算法组件,其中,所述视频分析算法组件用于为不同视频数据处理指令提供对应的视频数据处理;基于所确定的标记为未被调用状态的视频分析算法组件,处理所述视频数据,并向所述客户端发送处理结果。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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