一种视频流推送方法及装置与流程

文档序号:31970249发布日期:2022-10-29 01:25阅读:233来源:国知局
一种视频流推送方法及装置与流程

1.本技术涉及视频监控技术领域,尤其涉及一种视频流推送方法及装置。


背景技术:

2.目前,同一监控系统内可能部署有多路摄像头,来自摄像头的视频流会被视频处理服务器逐帧处理,之后再由视频处理服务器对视频流进行编码,编码后的视频流被由视频处理服务器发送给前端播放装置进行播放,视频流的推送会占用比较多的资源,对于一些摄像头来说,例如其监控的位置很少发生变化,异常也很少发生的情况下,推送这类摄像头的视频流造成资源浪费。
3.综上,由于监控系统越来越庞大,现有视频流推流方案,计算资源的开销也会越来越大,资源利用率低。


技术实现要素:

4.本技术提供一种视频流推送方法及装置,用以实现在对多路视频流进行监控的场景中,降低计算资源开销。
5.第一方面,本技术实施例提供了一种视频流推送方法,该方法可以由处理服务器实现,该方法包括:获取n路视频流;确定n路视频流中的每路视频流的异常值;根据每路视频流的异常值向视频播放装置以推送完整视频流的方式推送k路视频流,k路视频为n路视频流中的按照异常值从大到小排序,排在前k位的视频流,其中n为大于1的整数,k为大于等于1,且小于n的整数。
6.本技术第一方面提供的方案能够根据各路视频流的异常值智能推送视频流,实现了使用户能够获取发生异常的视频流的同时,节省了推送视频流的服务器的计算资源。
7.在一种可能的实现方式中,根据每路视频流的异常值不向视频播放装置推送除k路视频流之外的n-k路视频流。
8.通过上述设计,由于推送的视频流减少从而在根据各路视频流的异常值智能推送视频流,实现了使用户能够获取发生异常的视频流的同时,节省了处理器用于进行视频编码等的计算开销,提高了处理器的利用率。更进一步地,该减少的处理器的这部分计算资源可以用于执行其他的计算任务,例如,相对于现有视频流编码由cpu执行,模型推理过程的数据预处理等由gpu执行的方式,本技术这部分节省出的用于编码的cpu资源可以用于执行模型推理过程的数据预处理操作,从而减少对gpu的需求,使得gpu可以将更多的算力来执行多路视频流的检测,提高cpu和gpu的利用率,使得相同的硬件配置可以接入更多路的视频流,提高处理服务器的整体性能。
9.在一种可能的实现方式中,对除k路视频流之外的n-k路视频流进行减帧处理后再推送至视频播放装置。
10.通过上述设计,由于降帧处理后需要编码的图像数量减少,从而在根据各路视频流的异常值智能推送视频流,实现了使用户能够获取发生异常的视频流的同时,节省了处
理器用于进行视频编码等的计算开销,提高了处理器的利用率。
11.在一种可能的实现方式中,确定预设时间窗口内n路视频流中的每路视频流的异常值。
12.通过上述设计,以预设时间窗口的长度为粒度来更新需要推送的视频流,避免播放服务器频繁切换监控画面。预设时间窗口越短,则实时性更强,更有利于播放服务器的观看者发现异常,而预设时间窗口越长,由于不需要频繁计算,则处理服务器的计算开销相对较少。
13.在一种可能的实现方式中,确定n路视频流中每路视频流中所包括的预设的告警类型及每种告警类型出现的次数;根据每路视频流中所包括的告警类型出现的次数确定每路视频流的异常值。
14.通过上述设计,可以实现对告警类型的检测识别及统计,提高了智能化的程度。
15.在一种可能的实现方式中,确定n路视频流中每路视频流中所包括的预设的告警类型及每种告警类型出现的次数,获取为每个告警类型设置的权重;
16.根据每路视频流中所包括的每种告警类型出现的次数及权重确定每路视频流的异常值。
17.通过上述设计,用户可以根据每路视频流不同告警类型的重视程度灵活配置告警类型的权重,从而可以根据由此计算出的异常值,智能地挑选出发生异常的可能性更高的视频流。
18.第二方面,本技术实施例还提供了一种视频流推送装置,该视频流推送装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述视频流推送装置的结构中包括获取模块、确定模块、推送模块。这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
19.第三方面,本技术还提供了一种计算装置,所述计算装置包括处理器和存储器,还可以包括通信接口,所述处理器执行所述存储器中的程序指令执行上述第一方面或第一方面任一可能的实现方式提供的方法。该计算设备可以为视频监控系统中的用于处理视频流的处理服务器或控制器等设备。所述存储器与所述处理器耦合,其保存有执行视频流推送过程中必要的程序指令和数据。所述通信接口,用于与其他设备进行通信,如获取n路视频流,或发送k路视频流。
20.第四方面,本技术提供了一种计算装置系统,该计算设备系统包括至少一个计算装置。每个计算装置包括存储器和处理器。至少一个计算装置的处理器用于访问所述存储器中的代码以执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
21.第五方面,本技术提供了一种计算机可读存储介质,所述计算书可读存储介质被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该存储介质中存储了程序。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,hdd)、固态硬盘(solid state drive,ssd)。
22.第六方面,本技术提供了一种计算设备程序产品,所述计算设备程序产品包括计
算机指令,在被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
23.第七方面,本技术还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实现方式中所述的方法。
附图说明
24.图1为本技术实施例提供的一种可能的系统架构示意图;
25.图2a为本技术实施例提供的一种处理服务器的硬件架构示意图;
26.图2b为本技术实施例提供的另一种处理服务器的硬件架构示意图;
27.图3为本技术实施例提供的一种视频流推送方法所对应的流程示意图;
28.图4为本技术实施例提供的一种参数配置界面示意图;
29.图5为本技术实施例提供的另一种参数配置界面示意图;
30.图6为本技术实施例提供的一种检测结果示意图;
31.图7为本技术实施例提供的一种实时的监控画面示意图;
32.图8为本技术实施例提供的一种视频流推送装置的硬件架构示意图。
具体实施方式
33.为解决背景技术中的问题,本技术实施例提供了一种视频流推送方法。该方法中,对于接收到的n路视频流,可以确定每路视频流的异常值,根据异常值智能推送n路中的k路视频流。本技术,能够根据各路视频流的异常值智能推送视频流,实现了使用户能够获取发生异常的视频流的同时,节省了推送视频流的服务器的计算资源。
34.如下结合附图对本技术技术方案进行介绍。
35.参考图1,图1为本技术实施例提供的一种视频监控系统架构的示意图。该系统包括多个摄像头101、处理服务器102、播放服务器103、业务管理系统104。
36.其中,业务管理系统104,用于(1)对每个摄像头101的参数进行配置。每个摄像头101可以被编制各自的设备名称、设备标识、区域名称、坐标(例如经纬度)、通信地址、以及告警参数等参数中的一项或多项。其中,设备标识能够唯一标识一个摄像头,告警参数包括告警类型。举例来说,对于化工、建造等工业园区内的监控区域,告警类型可以包括但不限定于:未戴安全帽、未穿工作服、明火、烟雾、抽烟、打电话、敏感区域入侵、离岗等。示例性地,不同的摄像头101可以被配置不同的告警类型,例如,处于不同区域的摄像头101,由于所监控的区域不同,所需配置的告警类型也可以不同。这里的告警类型仅是举例,在实际应用中可以根据具体场景,区分不同的告警类型,例如,在医院,告警类型还可以包括未佩戴口罩。(2)将每个摄像头的配置参数发送到处理服务器102,应理解的是,摄像头101并不关心这些配置参数,业务管理系统104生成的各摄像头101的配置参数是用于处理服务器102对摄像头101发送的视频流进行分析处理时使用的,下文会对此进行说明。
37.其中,业务管理系统104可以是实体模块也可以是虚拟模块,例如,业务管理系统
104可以是一个应用程序或插件,也可以是一个物理机。更进一步地,业务管理系统104可以独立独属于一个物理机上,也可以集成在该系统中的其他物理机上,例如业务管理系统104集成在播放服务器103上,这样,既可以方便用户查看监控画面,又能够用于对摄像头101进行参数配置,更进一步地,还可以接入视频流,在显示的监控画面上进行更精细的配置,下文会进行介绍。
38.每个摄像头101可以位于不同的区域,分别用于拍摄不同区域的画面。其中,连续的图像变化每秒超过24帧(frame)画面以上时,人眼看上去是平滑连续的视觉效果,这样连续的画面叫做视频。摄像头101可以将拍摄到的连续的一帧帧图像以确定的码率合成为视频流,然后将视频流发送至处理服务器102。
39.处理服务器102,可以是物理机,也可以是虚拟机,例如物理处理服务器包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。处理服务器102,可以用于(1)接入该多个摄像头,以接收每个摄像头发送的视频流。每个视频流由摄像头拍摄的一帧一帧图像组成。应理解的是,摄像头发送的视频流是对拍摄的图像进行编码后生成的。相应的,处理服务器102可以对接收到的视频流进行解码以获取其中的每一帧图像。(2)接收业务管理系统104发送的各摄像头的配置参数,并根据接收到的摄像头的配置参数识别摄像头,以及根据该摄像头的告警参数对该摄像头拍摄的图像进分析、识别,判断该摄像头拍摄的图像中是否存在告警行为。(3)在接收到的多路摄像头发送的视频流中,选择部分视频流进行推流。这里的部分视频流的具体路数与播放服务器103能同时播放的视频监控画面的数量相关。例如,处理服务器102接收到16路视频流,播放服务器103可以同步展示8路视频监控画面,则处理服务器102可以从该16路视频流中选择8路视频流进行推流,推送至播放服务器103。具体的,对于待推送的视频流,处理服务器102还可以用于对该视频流解码后的图像进行再次编码,以生成视频流。
40.在硬件上,参见图2a,处理服务器102至少包括处理器20、处理器21、存储器22和通信接口23。其中,其中,处理器20、处理器21、存储器22和通信接口23可通过总线系统24相连。
41.处理器,用于对数据进行计算或处理,可以是中央处理器(central processing unit,cpu)、可编程门阵列(field programmable gate array,fpga)、图形处理器(graphics processing unit,gpu)、数据计算单元(data processing unit,dpu)、特殊应用集成电路(application specific integrated circuit,asic)、系统级芯片(system on chip,soc)等。其中,处理器20和处理器21可以是相同类型的处理器,也可以是不同类型的处理器。例如,处理器20和处理器21均为cpu。或者,处理器20为cpu,处理器21为gpu等,本技术实施例对此不做限定。
42.不同类型的处理器具有各自不同的性能特点。举例来说,cpu,具有较强的管理能力,可以称为计算机的“大脑”,适用于管理和调度,例如数据读取、文件管理等工作,同时可以兼具各种运算功能,具有通用性,但运算能力相对较弱。gpu,可以是一种专门在个人电脑、工作站、游戏机或一些移动设备(例如平板电脑、智能手机等)上执行图像运算工作的微处理器,擅长浮点运算和并行计算,适用于执行大量数据的复杂运算和几何计算,该特征使得gpu在深度学习这一应用领域中占据主导位置。
43.存储器22,用于存储数据的装置,它可以是内存,也可以是硬盘。内存是指与处理
器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,rom)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random access memory,dram),或者存储级存储器(storage class memory,scm)。与内存不同的是,硬盘读写数据的速度比内存慢,通常用于持久性地存储数据,硬盘类型包括固态硬盘(solid-state drive/solid-state disk,ssd)、机械硬盘(hard disk drive,hdd)等。
44.通信接口23,用于与处理服务器102外部的设备通信。例如,假设处理器20为cpu,处理器21为gpu,在本技术实施例中,cpu可以通过通信接口23接收n路视频流,cpu用于对接收的每一路视频流进行解码,得到一帧帧图像。以及使用本技术实施例提供的视频流推送方法,控制gpu对图像进行检测,确定对该图像的检测结果,例如图像中所包括的告警类型;cpu还可以用于根据各路视频流的多帧图像检测结果确定每路视频流的异常值,并根据异常值从大到小排序,在n路视频流中选择前k路视频流;后续,cpu还用于对排在该k路视频流的图像进行编码,生成视频流,并通过通信接口23将该前k路视频流发送至播放服务器103。
45.需要说明的是,上述图2a所示的架构仅为举例,本技术实施例中的处理服务器102可以包括比图2a更多或更少的模块。例如,可以包括一个处理器,例如cpu,参见图2b,为本技术实施例提供的另一种处理服务器102的硬件架构示意图,图2b所示的硬件架构与图2a所示的硬件架构类似,区别在于图2b所示的硬件架构中只包括1个处理器。又例如,处理服务器102还可以包括多个处理器,例如一个cpu和多个gpu等,本技术实施例对处理服务器102的硬件架构不做限定。在不同的应用场景中,各处理器实现本技术技术方案时所执行的操作可以是不同的,例如,在图2b所示的处理服务器102中,cpu还用于对解码后的图像进行检测识别以及确定检测结果等,本技术实施例对此也不做限定。
46.播放服务器103,用于接收处理服务器102推送的视频流,并对接收到的各路视频流进行展示。播放服务器103可以包括物理机和多个显示装置,每个显示装置可以用于播放一路视频流的监控画面,或者一个显示装置上也可以通过多个窗口的形式展示多路视频流的监控画面,本技术实施例前段播放装置的显示方式不做限定。
47.需要说明的是,(1)上述对摄像头进行配置的参数仅为举例,本技术实施例中业务管理系统104还可以对摄像头的其他参数进行配置,本技术实施例对此不做限定。例如,配置每个告警类型的权重,或者是配置为每个摄像头的视频流所包括的告警类型的权重等等,下文会进行详细说明,此次不做重复说明。(2)图1所示的系统仅为举例,在实际应用中,在不同场景部署的视频监控系统可以拥有比图1更多或更少的设备,本技术实施例对此不做限定。
48.本技术实施例提供的视频流推送方法可以适用于多种监控场景中,例如,工业、建筑、生产线、楼宇等室内、外场景中,示例性地可以部署于如工业园区、企业园区、校园、商城、住宅、公共区域等。本技术实施例对此不做限定。应理解的是,在不同的监控场景中,告警类型可能是相同的,也可以是不完全相同的,或者是完全不同的,例如,前述的在化工园区,告警类型包括未佩戴安全帽、离岗等;在住宅内,告警类型可能包括陌生人入侵、明火等;在医院,告警类型可能包括未佩戴口罩、明火等。
49.下面结合附图3,以本技术实施例提供的视频流推送方法应用于图1所示的系统构
架中为例,对本技术实施例提供的视频流推送方法进行说明。该方法的执行主体可以是图1中的处理服务器102,或者是处理服务器102内的元件例如处理器执行。如图3所示,该方法包括如下流程:
50.步骤301:获取n路视频流,n为正整数。
51.这里的n路视频流可以是处理服务器102接入的所有视频流。
52.步骤302:对获取到的每一路视频流进行识别,计算该视频流的异常值。
53.具体的,对获取到的每一路视频流进行解码,将视频流解码为一帧一帧的图像,在一种可实施的方式中,将每一帧图像输入至目标检测模型中进行检测,确定每一帧图像的检测结果。在另一种可实施的方式中,可以跳帧将解码到的部分帧图像输入至目标检测模型中,该目标检测模型对输入的每一帧图像进行图像识别、分析以得到检测结果。由于摄像头每秒钟拍摄的图像通常在24帧以上,许多图像可能是高度相似的,因此,可以以跳帧的方式选择部分帧图像进行检测,例如,每间隔一秒钟选取一帧图像输入至目标检测模型中,目标检测模型不需要对所有图像进行检测,这样可以节省计算资源,提高资源利用率。
54.这里的目标检测模型可以运行在图2a或2b所示的处理器20(例如cpu)上,也可以运行在图2b所示处理器21(例如gpu)上,在实际应用中,由于gpu擅长复杂计算,通常深度学习运行在gpu上。这种情况下,cpu可以控制gpu运行目标检测模型以对图像进行检测。
55.如下对目标检测模型进行介绍。
56.一、首先对目标检测模型的配置进行介绍:
57.以应用于化工园区为例,如前所述,化工园区内的视频流所包含的告警类型包括但不限于下列中的一项或多项:未戴安全帽、未穿工作服、明火、烟雾、抽烟、打电话、敏感区域入侵、离岗等。其中,每个告警类型对应于目标检测模型所包括的一种算法,业务管理系统104将视频流的配置参数发送至处理服务器102之后,处理服务器根据配置参数中包括的视频流的告警参数,使用目标检测模型的对应算法对该视频流的图像进行检测。
58.参见图4,为本技术实施例提供的一种告警类型参数的配置界面示意图。请结合图1理解,用户登录业务管理系统104之后,输入待配置的设备信息以添加待配置的设备(在本实施例中为摄像头),在算法选择区域选择检测算法,如图4所示,该算法包括安全帽识别、抽烟识别、工作服检测、明火检测、烟雾检测、离岗检测、非法区域入侵检测等算法。其中,图4所示的各算法即为目标检测模型所包括的算法,用户在算法选择区域选中算法,点击确定按键,完成对该路视频流的配置。对应的,业务管理系统104将用户对该路视频流的配置参数发送至处理服务器102。
59.应理解,每一路视频流具有各自的配置参数,不同视频流被配置的告警类型可以是相同的,或不完全相同,或完全不同的。对其他路视频流的告警类型的配置方式可以参见上文的介绍,此处不再赘述。需要说明的是,上述配置界面以及配置方式仅为举例,本技术实施例对此不做限定。
60.二、接下来对目标检测模型的检测过程进行介绍:
61.以一路视频流为例,业务管理系统104将各视频流的配置参数发送至处理服务器102之后,根据配置参数中包括的摄像头的设备名称、通信地址、设备标识等一项或多项参数来区分接收到的多路摄像头输入的视频流,并根据同一视频流的配置参数中包括的告警参数生效目标检测模型中的对应算法,以对该路视频流的图像进行相应算法的检测,也可
以理解为,上述各算法分别为目标检测模型的一个功能,每个功能可以分别单独实现对同一帧图像的检测,并输出各算法的检测结果。
62.下面列举几种检测算法:
63.(1),安全帽识别算法;
64.对于输入的图像,检测图像中的用户是否佩戴安全帽。该安全帽识别算法可以是基于大量的佩戴安全帽和/或未佩戴安全帽的样本图像进行训练后得到的,训练后该安全帽识别算法可以识别出用户是否佩戴安全帽。
65.该算法的输出结果包括但不限于指示字段、坐标和置信度。其中,指示字段用于指示告警类型。坐标可以是目标实例的坐标,在不同的算法中,目标实例可以是不同的,如在安全帽识别算法中,目标实例为用户头部,示例性地,目标实例的坐标可以是能够圈住目标实例(如用户头部)的矩形框的坐标,具体的,可以是该矩形框的两个斜对角处的顶点在该帧图像中的坐标,例如是该矩形框的左上角的坐标和右下角的坐标,或者还可以是左下角的坐标和右上角的坐标。坐标原点可以是该帧图像的某一预设点,例如图像的左上角顶点。也即该矩形框左上角和右下角的坐标是在以该帧图像的左上角顶点为原点的坐标系上的坐标,下文确定坐标的方法不再赘述。置信度,用于表征该算法确定的该图像中目标实例为未佩戴安全帽状态或佩戴安全帽状态的可能性或者说概率。该置信度可以用于进行过滤,例如,置信度表示目标实例为未佩戴安全帽状态的概率,若置信度低于预设阈值,则该检测结果会被当做误检测过滤掉,否则,输出该检测结果。其中,置信度也可以不在检测结果中进行展示。
66.类似的,工作服检测、抽烟识别、烟雾检测、明火检测等算法与上述算法的训练方式以及检测方式相似,此次不再重复说明。
67.(2),非法区域入侵检测算法;
68.以非法区域入侵检测算法为例,非法区域入侵检测需要结合具体的监控画面进行设置,可以由用户定义图像中的敏感区域。举例来说,如图5所示,业务管理系统104接入待配置的视频流,并显示视频监控画面,用户在视频监控画面中勾勒出敏感区域,后续可以通过点击应用或配置按键将敏感区域的配置发送至处理服务器102。非法区域入侵检算法基于用户配置的敏感区域获取图像中敏感区域的坐标。在本技术实施例中,敏感区域可以是规则的如矩形、圆形等,也可以是不规则的如不规则多边形,不论是规则的或不规则的敏感区域,输出的敏感区域的坐标以能够确定该敏感区域的形状为准则,例如,上文的矩形框可以输出矩形框的两个斜对角处顶点的坐标,不规则多边形可以输出该多边形的每个顶点的坐标。
69.应理解,如果摄像头是静止状态,即摄像头的位置以及拍摄角度不变时,可以在确定了一帧图像的敏感区域的坐标后,缓存该敏感区域的坐标的值,并不需要对每一帧图像都进行敏感区域的坐标检测,减少计算开销。
70.本技术实施例中的目标检测模型除包括用户可配置的各算法之外,还可以包括一些常规检测算法,例如对预设对象的检测,示例性地,预设对象可以是人、车等等,图像中存在的每个预设对象为一个目标实例,也即图像中的每个人或车便为一个目标实例,目标检测模式的检测结果还可以包括每个目标实例的坐标,同理,该坐标可以是目标实例外围的矩形框的左上角坐标和右下角坐标等。
71.参见图6,为本技术实施例对一帧图像的检测结果的示意图。图6示出了不同算法对同一帧图像的检测结果,以及同一算法对同一帧图像中的不同目标实例分别计算出的检测结果的多条记录。换言之,同一帧图像中可能存在多种告警类型,以及同一种告警类型也可能存在多个,例如,一帧图像中可能存在多个用户未佩戴安全帽。
72.其中,每一条记录为一个检测结果,例如'person,0.03,167.00,478.00,455.00,819.00'为一个检测结果,这条检测结果可以上前述的常规检测算法确定的,person(人)表征目标实例的类型为人,其后的坐标值为该目标实例的坐标。'clothes,0.03,550.00,609.00,896.00,1068.00'为另一个检测结果,可以是由工作服检测算法确定的,clothes表示告警类型为未穿工作服,其后的坐标值为人躯部位的外围方框的坐标值。head表示告警类型为未穿工作服,等等。
73.与上述安全帽识别算法等算法不同的是,安全帽识别算法、工作服检测算法等算法可以直接输出目标实例是否存在告警行为,而非法区域入侵需要结合非法区域入侵算法的检测结果和目标实例(例如person)的检测结果进行进一步计算来判断是否有人入侵敏感区域。示例性地,处理服务器102基于目标检测模型对图像的多条检测,对目标实例(例如人)的坐标和敏感区域的坐标进行计算,确定两者的重叠面积以及根据目标实例的底部坐标(例如人的脚部区域)确定目标实例与敏感区域的相对位置,从而判断目标实例是否入侵了该敏感区域。类似的,离岗检测基于相似的原理,此处不再赘述。
74.上文介绍了确定图像的检测结果的过程,如下对基于检测结果确定该视频流的异常值的过程进行介绍。
75.在一种实现方式中,处理服务器102可以以预设时间窗口(或称为统计时间窗口)的长度为粒度,分别统计各视频流在同一个预设时间窗口内的异常值,并根据各视频流的异常值进行智能推送。
76.预设时间窗口的长度可以是毫秒级、秒级、分钟级等等,本技术实施例对此不做限定,如下以预设时间窗口的长度为m分钟为例,处理服务器102基于该视频流在该m分钟内的多帧图像的检测结果来计算该m分钟内该视频流的异常值。其中,m为正整数。
77.示例性地,根据该m分钟内的所有检测结果来统计该视频流在该m分钟内所存在的告警类型,以及每种告警类型出现的次数。然后,基于该m分钟内统计到的该视频流所包括告警类型出现的次数和该告警类型的权重计算该视频流的异常值。
78.例如,该视频流在该m分钟内的异常值满足于如下公式:
79.aj=∑(indexi*wi)
80.式中,aj表示视频流j在该m分钟内的异常值;indexi表示告警类型i在该m分钟内出现的次数,wi表示告警类型i的权重。
81.示例性地,仍以应用于化工园区为例,给定一权重系数,如未佩戴安全帽的权重为1,未穿工作服的权重为1,抽烟的权重为1,打电话的权重为1,离岗的权重为3,明火的权重为5,非法区域入侵的权重为5,烟雾的权重为3。上述数值仅为举例,不同告警类型的权重可以结合应用场景进行具体配置,本技术实施例对此不做限定。另外,同一应用场景中,对于不同的视频流所配置的同一告警类型被赋予的权重可以是相同的也可以是不同的,本技术实施例对此不做限定。
82.需要说明的是,上述确定异常值的方式仅为举例,还可以仅根据预设时间窗口内,
告警类型出现的次数确定,例如,统计的该预设时间窗口内所有告警类型出现的次数之和为该视频流的异常值。
83.值得注意的是,视频流在该m分钟内可能存在重复的检测结果,例如,同一个目标实例的同一个告警类型可能会重复出现,如向目标检测模型输入的多帧图像是高度相似的图像时,目标检测模型对该多帧图像的检测结果可能也是相同的,举例来说,该视频流在连续的2分钟内的图像均为同一用户在抽烟。
84.因此,在统计该视频流在该m分钟内的每种告警类型出现的次数时或之前,还可以对重复的检测结果进行过滤。示例性地,在一段连续的预设时长内,对同一个目标实例的同一告警类型仅记录一次。例如,每秒向目标检测模型输入一帧图像,则可以以30秒为一个过滤粒度,即预设时长为30秒,将在30分钟秒出现的同一个目标实例的同一个告警类型进行过滤,该目标实例的该告警类型仅记录一次。举例来说,在首次检测出某目标实例存在抽烟行为之后的连续30秒内,若存在多帧图像的检测结果均指出该目标实例存在抽烟行为,则将该视频流的告警类型抽烟的次数加1。
85.需要说明的是,对于不同的告警类型可以设置不同的预设时长(过滤粒度),本技术实施例对此不做限定。例如,未佩戴安全帽的过滤粒度为30秒,明火的过滤粒度为10秒。
86.如上以一路视频流为例对确定该路视频流的异常值的过程进行了介绍,处理服务器102还会计算其他路视频流在该m分钟内的异常值,对于其他路视频流在该m分钟内的异常值的确定方式前参见前述说明,此处不再赘述。
87.应理解的是,这里以m分钟为一个预设时间窗口,每个预设时间窗口内统计的各告警类型出现的次数并非是累加值,也即在对一个新的预设时间窗口内的告警类型进行统计时,可以将之前统计的结果清零,在该新的预设时间窗口内每种告警类型从零开始计数。
88.作为一种可选的实现方式,本技术实施例提供了一种视频流后处理方法,示例性的,结合上文,根据某一帧图像的检测结果,在识别到该帧图像中目标实例存在告警行为时,可以尝试获取该目标实例的面部区域,提取该用户的面部特征,并将该用户的面部特征与该企业的员工的人脸数据库进行比对,从而确定该目标实例的身份。另外,还可以截取包括该帧图像的一段小视频,例如截取该帧图像的前后5秒的视频,将该视频和该视频的附加信息单独保存下来,其中,附加信息可以包括但不限于告警类型、目标实例的身份信息、时间信息等。
89.作为另一种可选的实现方式,本技术实施例还提供了另一种视频流后处理方法,基于某帧图像的每一条检测结果,还可以在该帧图像中加入告警信息,例如,根据一条检测结果中用于指示告警类型的指示字段、以及其后面的坐标值,在该帧图像中的对应的坐标位置添加显示框(例如方框)和/或用于指示告警类型的文字信息,示例性地,该文字信息可以显示在方框附件,对该帧图像以及加入的告警信息(包括显示框和文字信息)进行合成,并对合成后的图像编码。播放服务器103在接收并播放该视频流时,其监控画面中便可以直接显示该告警信息,从而可以更加醒目、直观地对观看者进行告警提示。
90.参见图7,为播放服务器103所播放的视频画面的示意图,该视频画面可以显示视频流中图像之外,还可以显示告警信息以及其他附加播放信息,附加播放信息,如日期、监控区域信息等。当然,图7仅为示意,本技术实施例中也可以不显示告警信息,或以其他形式进行展示,本技术实施例对此不做限定。
91.步骤303:将各视频流按照异常值从大到小进行排序,以推送完整视频流的方式推送前k路视频流,k为正整数,且k小于n。
92.在一种可实施的方式中,仅推送异常值排在前k路的视频流,其他路视频流(即n-k路视频流)则不进行推送。应理解的是,在本技术实施例中处理服务器102只对推送的视频流进行编码。
93.在另一种可实施的方式中,可以推送异常值排在前k路的视频流,而对于其他路视频流(即n-k路视频流)则可以以降帧的方式进行推送。示例性地,给定处理服务器102获取的各路原始视频流为24每秒传输帧数(frames per second,fps),则降帧后,可以是1fps,或者1分钟传输1帧图像等等,当然,该数值仅为举例,本技术实施例对降帧后的具体帧率值不做限定。通过该设计,由于降帧后的视频流需要编码的图像数量减少,从而节省了处理器的计算开销。
94.对于降帧推送的视频流,播放服务器103中的日期可以按照降帧后的帧率进行跳变,例如,降帧后为1分钟传输1帧图像,则在该1分钟之内,该播放服务器103持续显示该一帧图像,日期也不改变,直到显示下一帧图像。
95.通过上述设计,处理服务器102能够根据各路视频流的异常值智能推送视频流,实现了使用户能够获取发生异常的视频流的同时,节省了处理服务器102的计算资源,提高了处理服务器102处理器的利用率。
96.需要说明的是,步骤301获取多路视频流,对视频流进行解码,以及步骤303对图像进行编码生成视频流并推送等操作可以由cpu执行,而上述步骤302中,目标模型检测可以运行在其他处理器,例如gpu上。通过本技术实施例的设计,可以将更多的cpu算力用于支持更多路视频流以及模型推理过程中的数据预处理上,减少对gpu的需求,充分利用gpu算力,从而令gpu可以同步对多路视频流进行处理,最大限度利用硬件资源。
97.基于与方法实施例同一发明构思,本技术实施例还提供了一种视频流推送装置,该视频流推送装置用于执行上述方法实施例中处理服务器执行的方法。如图8所示,视频流推送装置800包括获取模块801、确定模块802和推送模块803;具体地,在视频流推送装置中,各模块之间通过通信通路建立连接。
98.获取模块801,用于获取n路视频流;具体实现方式请参见图3中的步骤301的描述,此处不再赘述。
99.确定模块802,用于确定n路视频流中的每路视频流的异常值;
100.例如,作为一种可能的实施方式,确定模块802,具体用于确定预设时间窗口内n路视频流中的每路视频流的异常值。作为一种可能的实施方式,确定模块802,具体用于确定n路视频流中每路视频流中所包括的预设的告警类型及每种告警类型出现的次数;根据每路视频流中所包括的告警类型出现的次数确定每路视频流的异常值。作为一种可能的实施方式,确定模块802,具体用于确定n路视频流中每路视频流中所包括的预设的告警类型及每种告警类型出现的次数,获取为每个告警类型设置的权重;根据每路视频流中所包括的每种告警类型出现的次数及权重确定每路视频流的异常值。具体实现方式请参见图3中的步骤302的描述,此处不再赘述。
101.推送模块803,用于根据每路视频流的异常值向视频播放装置以推送完整视频流的方式推送k路视频流,k路视频为n路视频流中的按照异常值从大到小排序,排在前k位的
视频流,其中n为大于1的整数,k为大于等于1,且小于n的整数。
102.例如,作为一种可能的实施方式,推送模块803,还用于根据每路视频流的异常值不向视频播放装置推送除k路视频流之外的n-k路视频流。作为另一种可能的实施方式,推送模块803,还用于对除k路视频流之外的n-k路视频流进行减帧处理后再推送至视频播放装置。具体实现方式请参见图3中的步骤303的描述,此处不再赘述。
103.本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本技术各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
104.该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是个人计算机,手机,或者网络设备等)或处理器(processor)执行本技术各个实施例该方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
105.上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
106.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括计算机程序指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例图3所述的流程或功能。
107.所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd)。
108.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1