CN113422935B - 视频流处理方法、装置及系统 - Google Patents
视频流处理方法、装置及系统 Download PDFInfo
- Publication number
- CN113422935B CN113422935B CN202110760780.XA CN202110760780A CN113422935B CN 113422935 B CN113422935 B CN 113422935B CN 202110760780 A CN202110760780 A CN 202110760780A CN 113422935 B CN113422935 B CN 113422935B
- Authority
- CN
- China
- Prior art keywords
- video stream
- algorithm
- image frame
- processed
- algorithm model
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Closed-Circuit Television Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提出了一种视频流处理方法、装置及系统,其中所述方法包括:响应于至少一个算法模型对待处理视频流的处理请求,获取所述待处理视频流;根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合,其中,所述预设规则基于所述算法模型的算法类型得到。本申请可用于根据多个算法模型所需内容从摄像头采集的待处理视频流中获取对应的图像帧,解决了由多个算法模型都需要从摄像头/监控平台接入一路视频流读取图像信息所引起的计算负荷、流量负荷大的问题,实现了降低多种算法同时读取网络视频流所需的带宽以及按需装载、节约显存计算资源的技术效果。
Description
技术领域
本申请涉及视频流算法处理技术领域,特别是涉及视频流处理方法、装置及系统。
背景技术
2000年以来,人工智能技术在很多领域得到了充分的使用,在图像分析领域,利用人工智能技术来对图像内容进行分析,提取信息,替代人工重复劳动,特别是在公共安全/城市管理领域,通过接入监控摄像头的数据,让人工智能算法来理解视频流内容,可以辅助实现城市管理过程的数字化智能化。
现有算法部署场景通常是从视频监控平台引出视频流或者直播流,然后交给图像算法来分析。通常一个摄像头的视频流需要交给多种人工智能算法分析。如针对车辆的算法/针对非机动车的算法/针对行人的算法等算法模型都可能需要读取同一个摄像头的图像。如果每个算法都需要从摄像头/监控平台接入一路视频流读取图像信息,第一个问题是:既会给摄像头网络输出/视频监控平台增加计算负荷,又会给接入网络带来流量负荷(每种算法都要单独占用一路视频流的带宽)。
第二个问题是:视频监控的FPS(每秒钟的传输的图像帧数量)通常会大于算法所需要的数量。比如一般的监控摄像头的fps是25-30,而计算人流量的算法只需要5fps左右,这种情况,直接将视频流发送给算法会浪费其中的20-25fps的数据。
第三个问题是:为了将每一种视频流分析算法开放给业务系统(需要分析视频流算法的具体业务系统)使用,每种算法模型都需要单独开发一个程序接口(API)来方便程序调用,一旦算法数量增多,会出现对接的接口数量多,算法接口实现的技术错综复杂,各类算法接口地址不一致(网络端口)的各类情况,不利于接口的管理。
第四个问题是:每种算法都需要一定的GPU资源,由于事先并不知道那些算法需要被利用,只能事先启动所有的算法等待被调用,这样就占用了GPU计算资源,系统只能按照最大的需求配置硬件,配置所有算法总和大小的显存(GPU)。
第五个问题是:远程监控的带宽到集中部署的服务侧带宽有限的情况下,只能将算法部署到远端,但部署到远端后给管理算法带来了困难,无法和接口集成在一起。
综上,针对相关技术中各个算法模型直接从摄像头获取对应图像帧带来的上述问题,目前尚未得到有效的解决方案。
发明内容
本申请实施例提供了一种视频流处理方法、装置及系统,可用于根据多个算法模型所需内容从摄像头采集的视频流中获取对应的图像帧,解决了由多个算法模型都需要从摄像头/监控平台接入一路视频流读取图像信息所引起的计算负荷、流量负荷大的问题,实现了降低多种算法同时读取网络视频流所需的带宽以及按需装载、节约显存计算资源的技术效果。
第一方面,本申请实施例提供了一种视频流处理方法,所述方法包括:响应于至少一个算法模型对待处理视频流的处理请求,获取所述待处理视频流;根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合,其中,所述预设规则基于所述算法模型的算法类型得到。
本实施例用于解决目前的算法模型主动读取视频流信息带来的计算负荷、流量负荷大、需要多个接口的问题,通过轮询待处理视频流,实现了在多种算法模型都需获取同一路待处理视频流中数据的情况下,能够只接入一路视频流且只对一路视频流进行一次轮询,就能获取到对应于每一个算法模型所需的图像帧集合的有益效果,因此降低了带宽,也提高了图像帧集合的获取效率。
此外,本实施例还用于解决视频流直接发送给算法模型带来的图像帧数据浪费的问题,通过对视频流进行轮询,只抓取算法模型所需要的多张图像帧得到图像帧集合,相比于直接将视频流发送给算法模型,本实施例不会造成数据浪费。
在其中一个可行实施例中,所述待处理视频流通过一路或多路摄像头采集得到。
在本实施例中,可以对一路或者多路待处理视频流进行处理,当对多路视频流进行轮询时,只需要接入多路待处理视频流且对没路视频流进行一次轮询即可,提高了对多路待处理视频流进行处理的处理效率。
在其中一个可行实施例中,根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合包括:获取所述算法模型的算法类型,确定所述算法类型对应的图像帧序列;轮询所述待处理视频流的每一图像帧,判断是否与所述图像帧序列相匹配,若是,抓取所述图像帧,并确定所述图像帧集合包括所述图像帧。
在本实施例中每一任务对应一路摄像头采集的待处理视频流,任务通过轮询视频流中的每一图像帧并与多个算法模型的需求相比较,判断是否为某一算法模型所需的图像帧,若是则抓取该图像帧,若否,则跳过该图像帧。
本实施例中的预设规则来自于算法模型中的算法类型,也就是说,在算法模型还未加载时,就能够基于算法模型的算法类型对视频流进行处理。与算法模型都事先被启动,通过调用算法模型来获得其中的预设规则相比,减少了算法模型一直启动占用的GPU资源。
在其中一个可行实施例中,在“得到每一所述算法模型对应的图像帧集合”之后,所述方法包括:将所述图像帧集合发送给对应的所述算法模型。
在其中一个可行实施例中,在“得到每一所述算法模型对应的图像帧集合”之后,所述方法包括:将每一所述图像帧集合进行序列化后写入队列,并生成序列化后的所述图像帧集合的图像帧编号,向对应的所述算法模型发送包含所述图像帧编号的通知消息,所述通知消息用于通知所述算法模型获取与所述图像帧编码对应的所述图像帧集合。
在本实施例中,序列化图像帧集合并写入队列一方面可以重复利用,另外一方面在算法模型无法满足快速处理上述图像帧集合的速率的情况下,可以缓冲来不及处理的数据。
在其中一个可行实施例中,所述方法还包括:对多路摄像头采集的多个视频流地址进行录入,通过访问多个所述视频流地址实现对多路摄像头采集的待处理视频流的接入。
在本实施例中通过录入视频流地址可以实现同时对多个视频流的接入。
在其中一个可行实施例中,所述方法还包括:获取每一所述算法模型;或者根据每一所述算法类型动态组装得到对应的所述算法模型,并装载预先训练完成的算法权重参数实现对所述算法模型的动态装载;根据每一所述算法模型中的分析方法调用对应的图像帧集合。
在本实施例中算法模型并非始终都装载启动的,而是通过算法类型动态组装,并由算法权重参数实现动态装载启动才开始相应地对图像帧集合进行推理计算,从而实现了不需要在一开始就占用显存、有效利用计算资源的有益效果。
在其中一个可行实施例中,当包括多路所述待处理视频流时,并行处理多路所述待处理视频流,根据所述算法模型的预设规则轮询每一所述待处理视频流,得到每一所述算法模型对应的图像帧集合。
在本实施例中,当包括多路所述待处理视频流时,能对多路视频流进行并行处理,每一任务对应一路摄像头采集的视频流。并行处理任务可减少单个任务的等待时间,且多核情况下可充分利用CPU/GPU资源、发挥多处理器的强大性能、提升任务总体的处理速度。
第二方面,本申请实施例提供了一种视频流处理装置,包括:获取单元,用于响应于至少一个算法模型对待处理视频流的处理请求,获取所述待处理视频流;
处理单元,用于根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合,其中,所述预设规则基于所述算法模型的算法类型得到。
第三方面,本申请实施例提供了一种视频流处理系统,包括:对外接口模块,用于对一路/多路摄像头采集的一个/多个视频流地址进行录入,通过访问一个/多个所述视频流地址实现对一路/多路摄像头采集的待处理视频流的接入和/或用于获取至少一个算法模型和/或用于获取至少一个算法类型,根据每一算法类型确定其对应的算法模型的预设规则;以及,第二方面所述的视频流处理装置。
第四方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行第一方面所述的视频流处理方法。
第五方面,本申请实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行第一方面所述的视频流处理方法。
本申请实施例的主要贡献和创新点如下:
本申请实施例通过接收多个算法模型需分析的内容,轮询待处理视频流的每一图像帧,得到符合多个算法模型需分析的内容的图像帧集合,这样设计不再需要为每一个算法模型都引入一路待处理视频流,因此减少了计算负荷、流量负荷。并且采用统一的对外接口,多个算法模型通过一个对外接口实现对内交互,对外接口响应外部多个算法对某一路待处理视频流的需求,改进了以往针对每种算法模型单独编写的对外分析接口,因此便于对接口进行管理。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的视频流处理方法的流程图;
图2根据本申请实施例的分布式部署算法节点的示意图;
图3是根据本申请实施例的视频流处理装置的结构框图;
图4是根据本申请实施例的视频流处理系统的系统架构图;
图5是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
本申请实施例提供了一种视频流处理方法,参考图1,所述方法包括以下步骤S101至S102:
步骤S101,响应于至少一个算法模型对待处理视频流的处理请求,获取所述待处理视频流。
在本步骤中,可以设置对外接口实现响应外部的至少一个算法模型处理待处理视频流的需求,该需求可以是对某一路摄像头采集的视频流采用一种或多种算法进行分析。通过设置对外接口将以往算法模型主动读取待处理视频流的方式改为转换为只引出一路视频流进行处理,算法模型只接收其所需要分析的内容。这样不仅可以降低多种算法模型同时读取待处理一路待处理视频流所需的带宽,也无需针对每个算法模型开发单独的分析接口,减少了接口数量。
在其中一个实施例中,所述方法还包括:对一路/多路摄像头采集的一个/多个视频流地址进行录入,通过访问一个/多个所述视频流地址实现对一路/多路摄像头采集的待处理视频流的接入。
在本实施例中,通过摄像头采集的视频流地址来统一接入一路或多路视频流,在接收到至少一个算法模型的处理请求之后,获取其传入的摄像头的视频流地址,通过视频流地址能够接入其对应的待处理视频流,从而得到每路摄像头采集的待处理视频流需要哪几种算法模型来分析的信息。
示例性的,以对外接口采用Http RESTful API为例,当RESTful接口被调用后,获得传入的摄像头采集的视频流地址streamurl1,根据视频流地址streamurl1接入一路待处理视频流,该待处理视频流中包含有至少一个算法模型所需推理的图像帧集合。
在步骤S101中,设置对外接口,当对外接口被调用后,获取其传入的视频流地址,通过视频流地址能够接入其对应的一路待处理视频流,解决了设置多个分析接口供外部算法模型调用造成的接口数太多,不便于管理以及计算负荷大、流量负荷大的问题。
步骤S102,根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合,其中,所述预设规则基于所述算法模型的算法类型得到。
在本步骤中,当多个算法模型所需对同一路视频流进行处理,只需对引入的一路视频流的每一图像帧做一次轮询处理即可。与现有技术的区别在于,相关技术中算法模型通过其对应的分析接口获取一路视频流,当多个算法模型需同时访问同一个视频流时,就需要引入多路视频流,造成了流量浪费。并且每个算法模型获取到的通常是按频率或顺序抽取若干图像帧,而算法模型获取的却是视频流中的所有图像帧,因此需要流转的帧数量太大。而本步骤中只需引入一路视频流,减少摄像头网络、接入网络的流量负荷;同时发送给算法模型的是其所需的若干图像帧,因此所需流转的帧数量也大大减少;此外,本步骤通过并行处理多个算法模型所需的图像帧,大大减少了图像帧的获取时间,提高了视频流处理效率。
在其中一个实施例中,所述待处理视频流通过一路或多路摄像头采集得到。
在本实施例中,待处理视频流可以来自于一路或者多路摄像头,并且能通过访问摄像头采集的待处理视频流地址进行接入。
进一步地,当包括多路所述待处理视频流时,并行处理多路所述待处理视频流,根据所述算法模型的预设规则轮询每一所述待处理视频流,得到每一所述算法模型对应的图像帧集合。
在本实施例中,采用在操作系统多进程运行的形式以并行处理多路摄像头采集的视频流,在单独的每个进程中,一个任务负责轮询一个带处理视频流的图像帧(frame),通过多个任务在不同进程中同时轮询处理的方式减少了单个任务的等待时间,提升任务总体的处理速度。
在其中一个实施例中,根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合包括:获取所述算法模型的算法类型,确定所述算法类型对应的图像帧序列;轮询所述待处理视频流的每一图像帧,判断是否与所述图像帧序列相匹配,若是,抓取所述图像帧,并确定所述图像帧集合包括所述图像帧。
在本实施例中,预设规则指的是一个计时周期内一个算法模型所需分析的图像数量、顺序等,预设规则可以直接在一个文件(通过类定义属性或者写入配置文件),或者任意一种数据库中记录。
图像帧序列指的是由预设规则得出的每种算法模型需要采集的图像帧序号,例如,车辆检测模型需获取待处理视频流中的1,3,5,7,9,11帧。
图像帧集合指的是与图像帧序列相匹配的图像帧的集合,例如,从待处理视频流中获取到的低1,3,5,7,9,11帧图像帧组成的集合。
当对外接口被调用后,找到摄像头采集的待处理视频流所需要被哪几种算法模型分析,并读取对应的配置文件或类定义属性或数据库中的预设规则,根据预设规则判断算法模型是否需要所读取图像帧。
在本实施例中,可以通过逐帧读取,或者间隔几帧读取的方式进行轮询,其中,采用逐帧读取图像帧并与多个算法模型的需求相比较的方式能满足每种算法模型所需的按照图像帧的频率或顺序抽取图像帧的要求,保证多个算法模型最后得到的图像帧集合的内容正确且完整。
在本实施例中,所抓取到的图像帧可以直接发送给对应的算法模型,也可以先存储在视频存储模块M3中,当轮询结束或者该算法模型所需视频流处理完成,发送给对应的算法模型。
在其中一个实施例中,在“得到每一所述算法模型对应的图像帧集合”之后,所述方法包括:将所述图像帧集合发送给对应的所述算法模型。
在另一实施例中,还可以向所述至少一个算法模型发送所述待处理视频流中的所述请求内容已获取完毕的通知消息。
在本实施例中,任务根据多个算法模型所需内容从待处理视频流中获取对应的图像帧集合,且每组图像帧集合对应于一个算法模型所需内容,分别向每个算法模型发送与其对应的图像帧集合。或者,可以采用MQ消息队列或者websocket来实现通知机制,向每个算法模型发送通知消息,用于告知每个算法模型其所需内容已获取完毕,由算法模型来获取其对应的图像帧集合。
在其中一个实施例中,在“得到每一所述算法模型对应的图像帧集合”之后,所述方法包括:将每一所述图像帧集合进行序列化后写入队列,并生成序列化后的所述图像帧集合的图像帧编号,向对应的所述算法模型发送包含所述图像帧编号的通知消息,所述通知消息用于通知所述算法模型获取与所述图像帧编码对应的所述图像帧集合。
在本实施例中,通过将图像帧集合序列化后写入队列,一方面可以重复利用,另外一方面在算法模型无法快速满足处理上述图像帧集合的速率的情况下,可以缓冲来不及处理的数据。
示例性的,在一个单独进程中的task1每获取一个图像帧,解码转为Protobuf格式,存入队列frameList1,当轮询结束,为队列frameList1生成一个唯一的编号frameNid,并将队列frameList1存入视频存储模块M3中。
预设规则来自于算法模型中的算法类型,算法类型与摄像头的流地址streamurl1一起被restful接口调用。也就是说,在本实施例中并非事先启动模型,通过调用算法模型来获得其中的预设规则,而是在算法模型还未加载时,就能够基于算法模型的算法类型对视频流进行处理。通过本实施例能够减少了算法模型一直启动占用的GPU资源。
示例性地,在restful接口被调用之后,除获得传入的摄像头的流地址streamurl1,还获取到算法类型analyzetype1,将此信息记录下来,获取到几种算法类型analyzetype1,就相应地读取对应的配置文件或类定义属性或数据库中的预设规则,以此可以知道每个摄像头流地址对应有多少种算法类型,也就是得到一个摄像头采集的数据需要由多少种算法来分析。与现有技术的区别之处在于,每种算法都需要一定的GPU资源,由于事先并不知道那些算法需要被利用,需事先启动所有的算法等待被调用,导致占用了GPU计算资源,而通过算法类型获取到算法模型对应的预设规则不需要预先启动算法模型,就能够对各路视频流中的图像帧进行获取,因此节约了显存计算资源。
进一步地,还可以通过算法模型按需装载来节约显存计算资源,具体地,所述方法包括:根据每一所述算法类型动态组装得到对应的所述算法模型,并装载预先训练完成的算法权重参数实现对所述算法模型的动态装载;根据每一所述算法模型中的分析方法调用对应的图像帧集合。
在本实施例中,可以事先定义好算法的模型结构,在restful接口被调用之后,通过获取到的算法类型analyzetype1可以知道该路视频流的数据需要被哪几个算法模型使用。运行时根据传入的算法类型analyzetype动态组装出每一类的算法模型并装载预先训练好的算法权重参数来实现对算法实例的动态装载。
当然,也可以通过调用预先加载的算法模型,直接以算法模型的分析方法调用对应的图像帧集合,关于算法模型的调用方法属于本领域常规技术手段,且不是本申请实施例的重点,本申请在此不作累赘叙述。
此外,还可以在算法类中定义好一个远程调用的计算接口,以便在远程部署也能采用相同的方案计算;所有的算法都可以通过统一的计算方法来实现对图像帧的计算;将此算法打包为单独docker容器后运行,仍可通过统一的对外端口对数据进行计算。
在得到所述多路视频流中的多个图像帧集合之后,系统动态装在启动算法模型,并对图像帧集合进行相应地推理计算。通过不在一开始就启动算法模型占用显存的方式,有效利用了计算资源。
如图2所示,本实施例实现分布式部署,算法可以分布在不同的机器上,且将算法的容器docker部署在近用户的端点,可以节约集中部署侧与用户侧的带宽,只需要算法传回来计算结果,而不需要将视频流传输到中心节点。在本实施例中分布式处理有利于有效利用各类硬件设备,降低系统负荷,提高系统负载能力。此外,把分布式到远端的算法集成到部署的框架中,实现统一的对外API,其中算法计算节点的部署位置对算法调用者来说是无感的,在算法改变部署地点的情况下仍然保持同一个对外服务调用的地址,使得算法部署更加简单。
综上,本方案提供了一种视频流处理方法,通过统一接入多路摄像头采集的待处理视频流,轮询待处理视频流中的每个图像帧,将算法模型所需要的图像帧集合发给相应的算法模型,与现有的算法模型直接访问摄像头的视频流相比,能够只接入一路视频流,减少了读取视频流的带宽;并通过一次轮询获取得到每个算法模型所需的图像帧集合,并且设置多进程对接入的多个摄像头的调待处理视频流进行并发处理,进一步减少了任务处理时间。此外,算法模型可以只在需要进行推理的时候进行动态加载,减少了其占用GPU的时间;算法模型能够实现分布式部署,并实现统一对外API,即使改变部署地点,仍保持同一个对外服务调用的地址。
实施例二
基于相同的构思,参考图3,本申请还提出了一种视频流处理装置,包括:
获取单元301,用于响应于至少一个算法模型对待处理视频流的处理请求,获取所述待处理视频流;
处理单元302,用于根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合,其中,所述预设规则基于所述算法模型的算法类型得到。
实施例三
基于相同的构思,参考图4,本申请还提出了一种视频流处理系统,包括:
对外接口模块M1,用于对一路/多路摄像头采集的一个/多个视频流地址进行录入,通过访问一个/多个所述视频流地址实现对一路/多路摄像头采集的视频流的接入和/或用于获取至少一个算法模型和/或用于获取至少一个算法类型,根据每一算法类型确定其对应的算法模型的预设规则;
以及,获取单元301、处理单元302。
其中,处理单元302包括任务管理模块M2,用于当包括多路所述待处理视频流时,并行处理多路所述待处理视频流,根据所述算法模型的预设规则轮询每一所述待处理视频流,得到每一所述算法模型对应的图像帧集合。
在其中一个实施例中,再次参考图4,所述系统还包括:
视频存储模块M3,用于存储所述图像帧集合;
消息分派模块M4,用于向所述至少一个算法模型发送所述待处理视频流中的请求内容已获取完毕的通知消息。
在其中一个实施例中,再次参考图4,所述系统还包括:
总线模块M5,用于分配消息给负责处理消息的消息分派模块M4。
结果处理模块M6,用于将消息分派模块M4发出的通知消息发送给接口模块M1。
下面通过具体实例对上述模块进行说明:
接口管理模块M1将定义一个对外的Restful接口,接口的参数是摄像头的视频流地址,准备分析的算法类型等等,每个算法类型名称对应一种具体算法实现。
某一种算法的采样频度定义可以定义为图像帧的采集周期和本周期内的采集数据帧序号,比如每隔X秒采集,并且采集周期内的第Fx帧,第Fy帧,第Fn帧,此信息记录为interval1=(x, (Fx,Fy,Fn));
在restful接口被调用之后,获得传入的摄像头的流地址streamurl1和算法类型analyzetype1,将此信息记录下来,以此可以知道每个摄像头流地址对应有多少种算法类型(也就是一个摄像头的数据需要多少种算法来分析);
其中参数视频流地址streamurl1将分配给一个任务task1,并将task1放入单独的操作系统进程中执行, task1将开始读取视频流的每一帧图像;单独进程执行可以保证任务task1和任务task2之间是独立运行,不受干扰;
任务task1通过视频流地址streamurl1持续读取数据信息,将每一帧数据读取后封装为一个frame类型,这个frame代表某一张图片信息;
任务task1开始后,将初始时间标记记录为timestamp0,记录信息为streamurl1(analyzetype),并开始对每个frame做编号,初始为NO1。
在收到接下来的每一个frameN后,任务task1增加frame编号计数No为No2=No1+1,并获得当前的时间标记timestamp1,如果timestamp1-timestamp0 > interval1的x,算法analyzetype1则触发了读取数据的条件开始读取接下来的frameN,如果No2为interval1的定义的需要处理的帧顺序号码(Fx,Fy,Fn)之一,则表明需要读取该frameN,任务task1拉取此帧图像,并将视频数据解码转为Protobuf格式,存入队列frameList1,如果No2=Max(Fx,Fy,Fn),则生成一个唯一的编号frameNid,同时将frameList1存入视频存储模块M3;之后将M( frameNid,analyzetype)信息,发送到消息总线M5中;
消息总线模块M5分配消息给负责处理消息的消息分派模块M4,M4读取到此条消息后,从消息M中分离出analyzetype和frameNid,并根据frameNid从视频存储模块M3中提取并反序列化Protobuf为图像frameN,现在消息分派模块M4获得了analyzetype以及frameN;
消息分派模块M4需要根据analyzetype找到具体算法定义,并动态组装出analyzetype的算法实例A,将frameN传给算法实例A的分析方法processMethod;这里的组装的含义可以是在本地或者远程实现预先定义好的算法处理逻辑函数的叠加;
算法实例A的processMethod是处理图像帧的主要外部调用方法,需要根据算法A具体的逻辑来处理frameN:算法A可能会等待下一个frame一起处理或者直接输出frameN的分析结果;
算法实例A的分析结果同样打包为消息写入消息总线模块M5;
最终,消息分配模块M5读取到处理结果消息,将算法的分析结果返回给restful的调用方。
实施例四
本实施例还提供了一种电子装置,参考图5,包括存储器504和处理器502,该存储器504中存储有计算机程序,该处理器502被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器502可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器504可以包括用于数据或指令的大容量存储器504。举例来说而非限制,存储器504可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器504可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器504可在数据处理装置的内部或外部。在特定实施例中,存储器504是非易失性(Non-Volatile)存储器。在特定实施例中,存储器504包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器504(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器504可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器502所执行的可能的计算机程序指令。
处理器502通过读取并执行存储器504中存储的计算机程序指令,以实现上述实施例中的任意一种视频流处理方法。
可选地,上述电子装置还可以包括传输设备506以及输入输出设备508,其中,该传输设备506和上述处理器502连接,该输入输出设备508和上述处理器502连接。
传输设备506可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备506可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备508用于输入或输出信息。在本实施例中,输入的信息可以是处理请求、待处理视频流、图像帧等,输出的信息可以是通知消息、图像帧集合等。
可选地,在本实施例中,上述处理器502可以被设置为通过计算机程序执行以下步骤:
S101、响应于至少一个算法模型对待处理视频流的处理请求,获取所述待处理视频流;
S102、根据每一所述算法模型的预设规则轮询所述待处理视频流,得到每一所述算法模型对应的图像帧集合,其中,所述预设规则基于所述算法模型的算法类型得到。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例一,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的视频流处理方法。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种视频流处理方法,其特征在于,所述方法包括:
设置对外接口响应于至少两个算法模型对待处理视频流的处理请求,获取所述待处理视频流,该待处理视频流中包含有至少两个算法模型所需处理的图像帧集合;
获取所述算法模型的算法类型,确定所述算法类型对应的图像帧序列;
根据所述算法模型的预设规则轮询每一所述待处理视频流中的图像帧,判断所述待处理视频流中的图像帧是否与所述算法类型对应的图像帧序列相匹配,若是,抓取所述待处理视频流中的图像帧,得到每一所述算法模型对应的图像帧集合,并确定所述图像帧集合包括抓取的所述图像帧,将所述图像帧集合发送给对应的所述算法模型,其中,所述预设规则基于所述算法模型的算法类型得到。
2.根据权利要求1所述的视频流处理方法,其特征在于,所述待处理视频流通过一路或多路摄像头采集得到。
3.根据权利要求1所述的视频流处理方法,其特征在于,在“得到每一所述算法模型对应的图像帧集合”之后,所述方法包括:
将每一所述图像帧集合进行序列化后写入队列,并生成序列化后的所述图像帧集合的图像帧编号,向对应的所述算法模型发送包含所述图像帧编号的通知消息,所述通知消息用于通知所述算法模型获取与所述图像帧编号 对应的所述图像帧集合。
4.根据权利要求2所述的视频流处理方法,其特征在于,所述方法还包括:
对一路/多路摄像头采集的一个/多个视频流地址进行录入,通过访问一个/多个所述视频流地址实现对一路/多路摄像头采集的待处理视频流的接入。
5.根据权利要求1所述的视频流处理方法,其特征在于,所述方法还包括:
获取每一所述算法模型;或者根据每一所述算法类型动态组装得到对应的所述算法模型,并装载预先训练完成的算法权重参数实现对所述算法模型的动态装载;
根据每一所述算法模型中的分析方法调用对应的图像帧集合。
6.根据权利要求1所述的视频流处理方法,其特征在于,当包括多路所述待处理视频流时,并行处理多路所述待处理视频流,根据所述算法模型的预设规则轮询每一所述待处理视频流,得到每一所述算法模型对应的图像帧集合。
7.一种视频流处理装置,其特征在于,包括:
获取单元,用于设置对外接口响应于至少两个算法模型对待处理视频流的处理请求,获取所述待处理视频流,该待处理视频流中包含有至少两个算法模型所需处理 的图像帧集合;
处理单元,用于获取所述算法模型的算法类型,确定所述算法类型对应的图像帧序列;
根据所述算法模型的预设规则轮询每一所述待处理视频流中的图像帧,判断所述待处理视频流中的图像帧是否与所述算法类型对应的图像帧序列相匹配,若是,抓取所述待处理视频流中的图像帧,得到每一所述算法模型对应的图像帧集合,并确定所述图像帧集合包括抓取的所述图像帧,将所述图像帧集合发送给对应的所述算法模型,其中,所述预设规则基于所述算法模型的算法类型得到。
8.一种视频流处理系统,其特征在于,包括:
对外接口模块,用于对摄像头采集的一个/多个视频流地址进行录入,通过访问一个/多个所述视频流地址实现对一路/多路摄像头采集的待处理视频流的接入;
以及,权利要求7所述的视频流处理装置。
9.根据权利要求8所述的视频流处理系统,其特征在于,所述系统还包括:
视频存储模块,用于存储所述图像帧集合。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6任一所述的视频流处理方法。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为由处理器运行时执行权利要求1至6任一所述的视频流处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110760780.XA CN113422935B (zh) | 2021-07-06 | 2021-07-06 | 视频流处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110760780.XA CN113422935B (zh) | 2021-07-06 | 2021-07-06 | 视频流处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422935A CN113422935A (zh) | 2021-09-21 |
CN113422935B true CN113422935B (zh) | 2022-09-30 |
Family
ID=77720312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110760780.XA Active CN113422935B (zh) | 2021-07-06 | 2021-07-06 | 视频流处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422935B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114531603B (zh) * | 2022-02-10 | 2024-03-22 | 广联达科技股份有限公司 | 一种视频流的图像处理方法、系统及电子设备 |
CN115641497B (zh) * | 2022-12-23 | 2023-03-03 | 中电信数字城市科技有限公司 | 多路视频处理系统及方法 |
CN118870039A (zh) * | 2024-07-22 | 2024-10-29 | 朗坤智慧科技股份有限公司 | 一种基于视频流智能分析场景下取帧优化方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070030343A1 (en) * | 2005-08-06 | 2007-02-08 | Rohde Mitchell M | Interactive, video-based content for theaters |
US8224380B2 (en) * | 2009-07-08 | 2012-07-17 | V.R. Technology Co., Ltd. | Structure of an apparatus for sharing video input/output modules among handheld devices |
US8433670B2 (en) * | 2011-03-03 | 2013-04-30 | Xerox Corporation | System and method for recommending items in multi-relational environments |
CN102811343B (zh) * | 2011-06-03 | 2015-04-29 | 南京理工大学 | 一种基于行为识别的智能视频监控系统 |
CN106534789A (zh) * | 2016-11-22 | 2017-03-22 | 深圳全景威视科技有限公司 | 一种一体化智慧型安防视频监控系统 |
CN111767915A (zh) * | 2019-04-02 | 2020-10-13 | 顺丰科技有限公司 | 车牌检测方法、装置、设备及存储介质 |
CN110390262B (zh) * | 2019-06-14 | 2023-06-30 | 平安科技(深圳)有限公司 | 视频分析方法、装置、服务器及存储介质 |
CN112312040B (zh) * | 2019-07-30 | 2023-10-20 | 西安诺瓦星云科技股份有限公司 | 视频处理器和显示系统 |
CN111935487B (zh) * | 2020-08-12 | 2022-08-12 | 北京广慧金通教育科技有限公司 | 一种基于视频流检测的图像压缩方法及系统 |
CN112001351A (zh) * | 2020-09-01 | 2020-11-27 | 城云科技(中国)有限公司 | 多个视频流处理方法、系统、计算机设备和存储介质 |
CN112711676B (zh) * | 2020-12-25 | 2024-02-27 | 上海众源网络有限公司 | 一种视频召回方法、装置、电子设备及存储介质 |
-
2021
- 2021-07-06 CN CN202110760780.XA patent/CN113422935B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113422935A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113422935B (zh) | 视频流处理方法、装置及系统 | |
US12003743B2 (en) | Video stream decoding method and apparatus, terminal device, and storage medium | |
CN109857549B (zh) | 基于负载均衡的图像数据处理方法、系统、设备及介质 | |
WO2020052322A1 (zh) | 数据处理的方法、装置和计算节点 | |
CN110719332B (zh) | 数据传输方法、装置、系统、计算机设备和存储介质 | |
JP7100154B2 (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
CN111224806A (zh) | 一种资源分配方法及服务器 | |
CN111431813B (zh) | 访问限流方法、设备及存储介质 | |
CN112463293B (zh) | 边缘场景下基于容器的可扩展分布式双队列动态分配方法 | |
US20230275976A1 (en) | Data processing method and apparatus, and computer-readable storage medium | |
CN115729683A (zh) | 任务处理方法、装置、系统、计算机设备和存储介质 | |
CN112953993A (zh) | 资源调度方法、设备、网络系统及存储介质 | |
CN112131423B (zh) | 图片获取方法、装置及系统 | |
CN112835766A (zh) | 应用监控方法及装置 | |
CN110446118B (zh) | 视频资源预处理方法及装置、视频资源下载方法及装置 | |
WO2025001292A1 (zh) | 云应用的算力调度和云应用的文件处理方法及云计算平台 | |
CN113992493A (zh) | 视频处理方法、系统、设备及存储介质 | |
CN116244231A (zh) | 一种数据传输方法、装置、系统、电子设备及存储介质 | |
CN116264592A (zh) | 虚拟桌面性能探测方法、装置、设备及存储介质 | |
CN116708501A (zh) | 一种信息处理系统、方法、装置和产品 | |
CN117082477A (zh) | 任务处理方法和装置、系统、存储介质及电子设备 | |
CN112422613B (zh) | 数据处理方法、数据处理平台和计算机可读存储介质 | |
CN115002229B (zh) | 边缘云网络系统、调度方法、设备、系统及存储介质 | |
CN118377365B (zh) | 基于核间通信的数据处理方法、装置、芯片及电子设备 | |
CN117376300B (zh) | 一种消息全渠道发送方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |