CN116503778A - 视频数据处理的方法、装置、电子设备及介质 - Google Patents
视频数据处理的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN116503778A CN116503778A CN202310449762.9A CN202310449762A CN116503778A CN 116503778 A CN116503778 A CN 116503778A CN 202310449762 A CN202310449762 A CN 202310449762A CN 116503778 A CN116503778 A CN 116503778A
- Authority
- CN
- China
- Prior art keywords
- frame
- target
- processing
- frame extraction
- sequence
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims abstract description 246
- 238000000605 extraction Methods 0.000 claims abstract description 176
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 17
- 238000012805 post-processing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 4
- 238000009877 rendering Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 21
- 238000004364 calculation method Methods 0.000 abstract description 11
- 238000013473 artificial intelligence Methods 0.000 description 78
- 238000010586 diagram Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000008093 supporting effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/32—Normalisation of the pattern dimensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/87—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using selection of the recognition techniques, e.g. of a classifier in a multiple classifier system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/96—Management of image or video recognition tasks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种视频数据处理的方法、装置、电子设备及介质,该方法包括:获取视频数据的待处理任务列表;针对待处理任务列表中同一个候选视频数据对应的一种或多种目标启用任务,确定目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数;基于初级抽帧参数,对候选视频数据进行初级抽帧处理,并基于次级抽帧参数,对初级抽帧处理的结果进行次级抽帧处理,得到目标帧序列并进行缓存;调用与目标启用任务适配的目标AI算法,对目标帧序列进行图像处理,得到AI处理结果;将AI处理结果与缓存的目标帧序列进行匹配,得到视频处理结果。该方法能有效节约处理高并发视频流的算力和内存耗用,提升数据传输效率。
Description
技术领域
本公开涉及人工智能(AI)技术领域,尤其涉及一种视频数据处理的方法、装置、电子设备及介质。
背景技术
基于机器学习的AI算法广泛应用至图像类的机器视觉(CV)以及文本类的自然语言处理(NLP)等领域,可实现较为精确的分类、目标识别、目标追踪等的解决方案。
随着数据传输速率的提升,高清(HD)、4k超高清(Ultra-HD,可达4096像素×2160像素的分辨率)等视频资源越来越普遍,单个视频帧或图像的原始尺寸最高可达几Mb到几十Mb(兆比特)级别。在面对高并发的视频数据处理场景时,目前的视频流的数据处理方案或处理框架对于硬件资源、存储空间以及计算能力(简称算力)的要求都相当高,而且处理逻辑复杂且可移植性较差。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种视频数据处理的方法、装置、电子设备及介质。
第一方面,本公开的实施例提供了一种视频数据处理的方法。上述方法包括:获取视频数据的待处理任务列表;针对上述待处理任务列表中同一个候选视频数据对应的一种或多种目标启用任务,确定上述目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数;基于上述初级抽帧参数,对上述候选视频数据进行初级抽帧处理,并基于上述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到上述目标启用任务各自对应的目标帧序列并进行缓存;调用与上述目标启用任务适配的目标AI算法,对上述目标帧序列进行图像处理,得到AI处理结果;将上述AI处理结果与缓存的上述目标帧序列进行匹配,得到视频处理结果。
根据本公开的实施例,调用与上述目标启用任务适配的目标AI算法,对上述目标帧序列进行图像处理,得到AI处理结果,包括:对上述目标帧序列中的各个目标帧进行尺寸压缩转换,得到包括转换帧的转换帧序列;上述转换帧的图像分辨率最低等于对应的目标AI算法在训练阶段的输入帧的分辨率;根据上述转换帧的帧名称信息或帧地址信息,生成算法调用请求,上述算法调用请求携带有以下信息:上述目标AI算法的标识,以引用或指针形式传输的转换数据帧;接收来自上述目标AI算法反馈的时序处理结果;对上述时序处理结果进行处理,得到AI处理结果。
根据本公开的实施例,将上述AI处理结果与缓存的上述目标帧序列进行匹配,得到视频处理结果,包括:将上述AI处理结果进行尺寸恢复转换处理,得到与上述目标帧的分辨率一致的校准AI处理结果,上述校准AI处理结果为上述视频处理结果。
根据本公开的实施例,上述算法调用请求为并发式请求,上述目标帧序列中的目标帧添加有本地时间戳;对上述时序处理结果进行处理,得到AI处理结果,包括:针对上述时序处理结果中针对同一个目标启用任务的候选时序处理结果,缓存处于滑动时间窗口内的有效结果,丢弃处于上述滑动时间窗口外的超时结果;上述滑动时间窗口的窗口时长为预设值;基于缓存的上述有效结果对应的转换帧的本地时间戳,对上述有效结果进行重新排序;输出重新排序后最早时刻的有效结果;随着滑动时间窗口的滑动实时输出的上述有效结果构成上述AI处理结果。
根据本公开的实施例,上述预设抽帧参数包括预设抽帧率,上述初级抽帧参数包括初级抽帧率,上述次级抽帧参数包括次级抽帧率;基于上述初级抽帧参数,对上述候选视频数据进行初级抽帧处理,并基于上述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到上述目标启用任务各自对应的目标帧序列,包括:获取上述候选视频数据的原始帧率,并对原始视频帧进行编号;根据上述原始帧率和上述初级抽帧率,计算得到针对上述候选视频数据的第一抽帧索引号;基于上述第一抽帧索引号在上述原始视频帧进行抽取,得到初级帧序列;对上述初级帧序列中的各个初级帧进行编号;根据上述初级抽帧率和上述次级抽帧率,计算得到针对上述初级帧序列的第二抽帧索引号;基于上述第二抽帧索引号在上述初级帧序列进行抽取,得到次级帧序列;对上述初级帧序列和上述次级帧序列添加本地时间戳,得到时间校准后的目标帧序列。
根据本公开的实施例,计算得到上述第一抽帧索引号和上述第二抽帧索引号的算法包括:ceil(被抽取对象帧率/目标对象帧率×抽帧序号),其中,当上述被抽取对象帧率为原始帧率时,对应的上述目标对象帧率为初级抽帧率;当上述被抽取对象帧率为初级抽帧率时,对应的上述目标对象帧率为次级抽帧率。
根据本公开的实施例,在获取视频数据的待处理任务列表之后,还包括:获取计算资源的可用时段和算力分布状态,上述计算资源包括:中央处理器和图像处理器;根据上述可用时段和算力分布状态,在上述待处理任务列表中确定与实时算力匹配的启用任务和对应的任务处理时段;在预定义的拉流设备列表中确定与上述启用任务对应的视频来源设备;在上述任务处理时段开始后,从上述视频来源设备获取上述启用任务对应的视频数据。
根据本公开的实施例,将上述目标帧序列缓存至消息队列;在上述计算资源包括多个图像处理器的情况下,执行以下操作中的至少一种:同一个目标启用任务对应的目标帧序列中各个目标帧根据本地时间戳的先后进行同一种目标AI算法的并发调用;多种目标启用任务对应的各个目标帧序列进行各自对应的目标AI算法的并发调用且不同AI算法的调用进程相互独立。
根据本公开的实施例,上述方法还包括以下至少一项:
对上述视频处理结果进行渲染,生成结果预览界面;
将上述视频处理结果推送给后处理模块,基于上述后处理模块对上述视频处理结果进行定制化处理。
第二方面,本公开的实施例提供了一种视频数据处理的装置。上述装置包括:任务列表获取模块、任务调度模块、抽帧模块、算法调用模块和视频处理结果生成模块。上述任务列表获取模块用于获取视频数据的待处理任务列表。上述任务调度模块用于针对所述待处理任务列表中同一个候选视频数据对应的一种或多种目标启用任务,确定所述目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数。上述抽帧模块用于基于所述初级抽帧参数,对所述候选视频数据进行初级抽帧处理,并基于所述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到所述目标启用任务各自对应的目标帧序列并进行缓存。上述算法调用模块用于调用与所述目标启用任务适配的目标AI算法,对所述目标帧序列进行图像处理,得到AI处理结果。上述视频处理结果生成模块用于将所述AI处理结果与缓存的所述目标帧序列进行匹配,得到视频处理结果。
第三方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的视频数据处理的方法。
第四方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的视频数据处理的方法。
本公开实施例提供的一些技术方案至少具有如下优点的部分或全部:
通过将针对同一个候选视频数据的目标启用任务进行抽帧的分层级聚合处理,基于各个目标启用任务各自的预设抽帧参数中的最大值作为初级抽帧参数并对候选视频数据进行初级抽帧处理,进一步对初级抽帧处理得到的结果基于次级抽帧参数进行次级抽帧处理,通过这种分层级抽帧的处理方式,避免对同一个候选视频数据(也可以描述为同一路视频流)打开三次并独立进行抽帧三次,并单独以各自的提取速率提取三次视频帧的操作,能够有效节约处理高并发视频流的算力和内存耗用;同时,通过缓存目标帧序列,并在调用目标AI算法时返回AI处理结果,将AI结果与缓存的目标帧序列进行匹配后得到视频处理结果,无需在调用算法的过程中返回图像或图像序列,避免大尺寸图像对输入输出(IO)传输速率的影响和传输带宽的占用,有效提升数据传输效率和处理时效。
本公开实施例提供的一些技术方案至少具有如下优点的部分或全部:
由于目标帧的分辨率较高,比如一帧高清或超高清的图片大致占用2M~16M内存,通过对目标帧序列中的各个目标帧进行尺寸压缩转换,并基于转换帧序列进行目标AI算法的调用,上述转换帧的图像分辨率最低等于对应的目标AI算法在训练阶段的输入帧的分辨率,能够在保证AI算法的推理正确性和计算精度不受影响的前提下提升IO传输速率以及推理速度;同时,在调用时将转换帧以引用或指针形式传输,有效提升IO传输速率,能够避免内存拷贝导致的传输速率慢以及推理结果处理时效差等问题。
本公开实施例提供的一些技术方案至少具有如下优点的部分或全部:
在针对多个任务并发式调用AI算法的情况下,考虑到不同图像处理器(GPU)的工作负载差异以及不同图片包含的检测目标数不同都会影响AI算法返回结果的时间,可能出现后帧结果先于前帧结果返回,因此本公开的实施例中通过对时序处理结果中针对同一个目标启用任务的候选时序处理结果,缓存处于滑动时间窗口内的有效结果,丢弃处于上述滑动时间窗口外的超时结果,并基于有效结果对应的转换帧的本地时间戳进行重新排序并输出当前窗口内排序时间最早的有效结果,能够确保输出结果是按照目标帧的时间顺序进行排序的AI处理结果并且能够提升处理时效。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了适用于本公开实施例的视频数据处理的方法和装置的系统架构;
图2示意性地示出了根据本公开一实施例的视频数据处理的方法的流程图;
图3示意性地示出了根据本公开实施例的操作S220和S230的详细实施流程图;
图4示意性地示出了根据本公开实施例的操作S230的详细实施过程图;
图5示意性地示出了根据本公开实施例的操作S240和S250的详细实施过程图;
图6示意性地示出了根据本公开实施例的操作S540的详细实施过程图;
图7示意性地示出了根据本公开另一实施例的视频数据处理的方法的流程图;
图8示意性地示出了根据本公开一实施例的视频数据处理的装置的结构框图;
图9示意性地示出了根据本公开实施例的视频数据处理的装置进行端到端的数据处理过程图;以及
图10示意性地示出了本公开实施例提供的电子设备的结构框图。
具体实施方式
在研发过程中发现:在面对高并发的视频数据处理场景时,目前的视频流的数据处理方案或处理框架对于硬件资源、存储空间以及计算能力的要求都相当高,而且处理逻辑复杂且可移植性较差。
例如,针对视频数据处理时,目前应用广泛的实时视频流分析软件(例如一种视频流分析软件Deep Stream)依赖于特定种类的AI推理卡(例如为英伟达NVIDIA系列推理卡),对于国产的推理卡的支持效果较差。这类视频流分析软件基于开源的媒体框架(例如为流媒体框架GStreamer,是一种实现采集、编码、解码、渲染和滤镜等一条龙的媒体解决方案的媒体框架)进行定制,调用步骤繁琐,一个简单的拉流配置就需要几十行代码组合,定制化难度、维护成本都较高。此外,还发现:目前开源或供应商的算法大多提供gRPC(是一种方便地支持流式通信的高性能、开源和通用远程过程调用框架)或HTTP(超文本传输协议)基本调用接口,并没有兼容DeepStream,移植成本高。
有鉴于此,本公开的实施例一种视频数据处理的方法、装置、电子设备及介质,通过将针对同一个候选视频数据的目标启用任务进行抽帧的分层级聚合处理,有效节约处理高并发视频流的算力和内存耗用,同时,通过缓存目标帧序列,并在调用目标AI算法时返回AI处理结果,将AI结果与缓存的目标帧序列进行匹配后得到视频处理结果,无需在调用算法的过程中返回图像或图像序列,避免大尺寸图像对输入输出(IO)传输速率的影响和传输带宽的占用,有效提升数据传输效率和处理时效。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1示意性地示出了适用于本公开实施例的视频数据处理的方法和装置的系统架构。
参照图1所示,适用于本公开实施例的视频数据处理的方法和装置的系统架构100包括:终端设备101、102、103,网络104和服务器105。网络104是用于在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有图像捕获装置、图片或视频播放类应用等。还可以安装有其他通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是支持图片或视频拍摄的各种电子设备,例如电子设备包括但不限于摄像机、智能手机、平板电脑、笔记本电脑、台式计算机、无人驾驶汽车等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103所拍摄的图像或视频进行数据处理提供服务支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的图像或视频处理请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的视频数据处理的方法一般可以由服务器105或具有一定运算能力的终端设备执行。相应地,本公开实施例所提供的视频数据处理的装置一般可以设置于服务器105中或上述具有一定运算能力的终端设备中。本公开实施例所提供的视频数据处理的方法也可以由不同于服务器105且能够与终端设备101、102、103或服务器105中的至少一种进行通信的服务器或服务器集群执行。相应地,本公开实施例所提供的视频数据处理的装置也可以设置于不同于服务器105且能够与终端设备101、102、103或服务器105中的至少一种进行通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本公开的第一个示例性实施例提供了一种视频数据处理的方法。
图2示意性地示出了根据本公开一实施例的视频数据处理的方法的流程图。
参照图2所示,本公开实施例提供的视频数据处理的方法,包括以下操作:S210、S220、S230、S240和S250。操作S210~S250由服务器来执行,可以是应用服务器或者云服务器等。
在操作S210,获取视频数据的待处理任务列表。
在一些应用场景中,终端设备以视频流的形式向服务器实时上传待处理的视频数据以及对应的处理任务,并对应发起处理请求。视频流中携带有视频帧、对视频帧说明的时间戳信息、传输所需信息等。由于视频的来源可能不同,上述待处理任务列表中各个视频流的时间戳信息可能具有差异。
在一实施例中,获取待处理任务列表的过程为:服务器根据上述处理请求生成视频数据的待处理任务列表。在一个待处理任务列表中,可以存在来自一个或多个设备来源的视频数据,针对每个视频数据,可以存在一个或多个待处理任务。
待处理任务列表中的任务可以包括但不限于是:目标识别、目标定位、目标追踪等。例如,具体包括:人脸识别、人体识别、车辆识别、目标车辆定位、目标车辆追踪、人体动作跟踪等。
示例性地,上述待处理任务列表L1包括:{视频数据Dev1-人脸识别任务AIgo11(启用状态)-人体识别任务AIgo12(启用状态)-车辆识别任务AIgo13(启用状态);视频数据Dev2-人脸识别任务AIgo21(启用状态)-车辆识别任务AIgo22(启用状态)-车辆追踪任务AIgo23(启用状态);视频数据Dev3-人脸识别任务AIgo31(未启用状态)-人体识别任务AIgo32(未启用状态)-车辆识别任务AIgo33(未启用状态);视频数据Dev4-人脸识别任务AIgo41(未启用状态);……}。
括号中的状态用于说明该任务处于启用状态或未启用状态,服务器对处于启用状态的任务(描述为启用任务)在处理时效内进行处理。
在操作S220,针对上述待处理任务列表中同一个候选视频数据对应的一种或多种目标启用任务,确定上述目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数。
针对待处理任务列表中的各个任务,存在针对同一个候选视频数据的多个待处理任务,将确定要启动相关计算资源进行处理的待处理任务描述为启用任务。
图3示意性地示出了根据本公开实施例的操作S220和S230的详细实施流程图。
参照图3所示,以待处理任务列表L1为例,同一个候选视频数据Dev1具有多种目标启用任务,分别为包括目标启用任务A~C。目标启用任务A:针对候选视频数据Dev1执行人脸识别任务AIgo11;目标启用任务B:针对候选视频数据Dev1执行人体识别任务AIgo12;目标启用任务C:针对候选视频数据Dev1执行车辆识别任务AIgo13。
根据本公开的实施例,上述预设抽帧参数包括预设抽帧率,上述初级抽帧参数包括初级抽帧率,上述次级抽帧参数包括次级抽帧率。人脸识别任务AIgo11、人体识别任务AIgo12和车辆识别任务AIgo13各自的预设抽帧参数分别对应包括:5FPS(FPS为帧速率的单位,表示画面每秒传输帧数)、7FPS、3FPS。
参照图3所示,在操作S220中,将候选视频数据Dev1的多种目标启用任务各自的预设抽帧参数中的最大值7FPS确定初级抽帧参数310,将剩余的预设抽帧率5FPS和3FPS确定为次级抽帧参数320。
在操作S230,基于上述初级抽帧参数,对上述候选视频数据进行初级抽帧处理,并基于上述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到上述目标启用任务各自对应的目标帧序列并进行缓存。
参照图3所示,操作S230包括两个层级的子操作S230a和S230b。在子操作S230a,基于初级抽帧参数310(7FPS)对候选视频数据Dev1进行初级抽帧处理,得到初级抽帧结果,参照图3中以下划线表示的帧序号对应的帧序列所示,在该实施例中候选视频数据的原始帧率为25FPS。在子操作S230b,基于次级抽帧参数320(5FPS和3FPS)对初级抽帧结果进行次级抽帧处理,得到次级抽帧结果,参照图3中以下划线表示的帧序号对应的帧序列所示。初级抽帧结果和次级抽帧结果构成目标启用任务各自对应的目标帧序列。
通过将针对同一个候选视频数据的目标启用任务进行抽帧的分层级聚合处理,基于各个目标启用任务各自的预设抽帧参数中的最大值作为初级抽帧参数并对候选视频数据进行初级抽帧处理,进一步对初级抽帧处理得到的结果基于次级抽帧参数进行次级抽帧处理,通过这种分层级抽帧的处理方式,避免对同一个候选视频数据(也可以描述为同一路视频流)打开三次并独立进行抽帧三次,并单独以各自的提取速率提取三次视频帧的操作,能够有效节约处理高并发视频流的算力和内存耗用。
根据本公开的一种实施例,可以将上述目标帧序列缓存至消息队列中。上述消息队列可以是基于内存、共享内存进行构建。在其他实施例中,也可以将目标帧序列缓存至其他存储空间中。
消息队列的特点包括:(a)消息队列中的消息是有类型的;(b)消息队列中的消息是有格式的;(c)消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取;(d)消息队列允许一个或多个进程向它写入或者读取消息;(f)与无名管道、命名管道一样,从消息队列中读出消息,消息队列中对应的数据都会被删除;(g)每个消息队列都有消息队列标识符,消息队列的标识符在整个系统中是唯一的;(h)只有内核重启或人工删除消息队列时,该消息队列才会被删除,若不人工删除消息队列,消息队列会一直存在于系统中;(i)消息队列可以独立于进程存在,可以无阻塞收发,可以选择性地接收消息。
在操作S240,调用与上述目标启用任务适配的目标AI算法,对上述目标帧序列进行图像处理,得到AI处理结果。
通过在操作S130中缓存目标帧序列,在操作S140中调用目标AI算法时返回AI处理结果,并在后续的操作S150中将AI结果与缓存的目标帧序列进行匹配后得到视频处理结果,无需在调用算法的过程中返回图像或图像序列,避免大尺寸图像对输入输出(IO)传输速率的影响和传输带宽的占用,有效提升数据传输效率和处理时效。
在操作S250,将上述AI处理结果与缓存的上述目标帧序列进行匹配,得到视频处理结果。
基于上述操作S210~S250,通过将针对同一个候选视频数据的目标启用任务进行抽帧的分层级聚合处理,基于各个目标启用任务各自的预设抽帧参数中的最大值作为初级抽帧参数并对候选视频数据进行初级抽帧处理,进一步对初级抽帧处理得到的结果基于次级抽帧参数进行次级抽帧处理,通过这种分层级抽帧的处理方式,避免对同一个候选视频数据(也可以描述为同一路视频流)打开三次并独立进行抽帧三次,并单独以各自的提取速率提取三次视频帧的操作,能够有效节约处理高并发视频流的算力和内存耗用;同时,通过缓存目标帧序列,并在调用目标AI算法时返回AI处理结果,将AI结果与缓存的目标帧序列进行匹配后得到视频处理结果,无需在调用算法的过程中返回图像或图像序列,避免大尺寸图像对输入输出(IO)传输速率的影响和传输带宽的占用,有效提升数据传输效率和处理时效。
下面结合图3和图4来详细介绍操作S230的一种实施过程。
图4示意性地示出了根据本公开实施例的操作S230的详细实施过程图。
根据本公开的实施例,参照图3和图4所示,上述操作S230中,基于上述初级抽帧参数,对上述候选视频数据进行初级抽帧处理,并基于上述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到上述目标启用任务各自对应的目标帧序列,包括以下操作:S410、S420、S430、S440、S450、S460和S470。
在操作S410,获取上述候选视频数据的原始帧率,并对原始视频帧进行编号。
例如,在一实施例中,参照图3所示,以候选视频数据中的原始视频帧的帧序号来示例原始视频帧,以原始帧率为25FPS作为示例。
在操作S420,根据上述原始帧率和上述初级抽帧率,计算得到针对上述候选视频数据的第一抽帧索引号。
在一实施例中,根据原始帧率25FPS和初级抽帧率7FPS,计算得到针对上述候选视频数据Dev1的第一抽帧索引号为:4、8、11、15、18、22和25。
根据本公开的实施例,计算得到上述第一抽帧索引号和上述第二抽帧索引号的算法包括:ceil(被抽取对象帧率/目标对象帧率×抽帧序号),其中,当上述被抽取对象帧率为原始帧率时,对应的上述目标对象帧率为初级抽帧率;当上述被抽取对象帧率为初级抽帧率时,对应的上述目标对象帧率为次级抽帧率。
例如,进行均匀抽帧,第一抽帧索引号的计算公式为:ceil(原始帧率÷(也可以表示为“/”,后续采用“/”示意)初级抽帧率×抽帧序号),代入具体值计算过程分别为:ceil(25/7×1)=4;ceil(25/7×2)=8;ceil(25/7×3)=11;ceil(25/7×4)=15;ceil(25/7×5)=18;ceil(25/7×6)=22;ceil(25/7×7)=25。
在操作S430,基于上述第一抽帧索引号在上述原始视频帧进行抽取,得到初级帧序列。
参照图3和图4所示,得到的初级帧序列中各帧对应于候选视频数据的帧序号分别为4、8、11、15、18、22和25。
在操作S440,对上述初级帧序列中的各个初级帧进行编号。
参照图4所示,对初级帧序列中各个初级帧依序进行编号,在候选视频数据中对应于帧序号为4、8、11、15、18、22和25的各个帧分别对应在初级帧序列中的新编号为1~7。
在操作S450,根据上述初级抽帧率和上述次级抽帧率,计算得到针对上述初级帧序列的第二抽帧索引号。
在一实施例中,进行均匀抽帧,第二抽帧索引号的计算公式为:ceil(初级抽帧率/次级抽帧率×抽帧序号)。
针对次级抽帧率为5FPS,第二抽帧索引号分别为:ceil(7/5×1)=2;ceil(7/5×2)=3;ceil(7/5×3)=5;ceil(7/5×4)=6;ceil(7/5×5)=7。针对次级抽帧率为3FPS,第二抽帧索引号分别为:ceil(7/3×1)=3;ceil(7/3×2)=5;ceil(7/3×3)=7。参照图4所示,第二抽帧索引号在各个帧序号下以下划线示意。
在操作S460,基于上述第二抽帧索引号在上述初级帧序列进行抽取,得到次级帧序列。
在操作S470,对上述初级帧序列和上述次级帧序列添加本地时间戳,得到时间校准后的目标帧序列。
参照图3所示,得到的与目标启用任务A对应的目标帧序列对应的帧序号分别为:4、8、11、15、18、22和25;与目标启用任务B对应的目标帧序列对应的帧序号(相对于原始视频帧而言的序号)分别为:8、11、18、22和25;与目标启用任务C对应的目标帧序列对应的帧序号(相对于原始视频帧而言的序号)分别为:11、18和25。
图5示意性地示出了根据本公开实施例的操作S240和S250的详细实施过程图。
根据本公开的实施例,参照图5所示,上述操作S240中,调用与上述目标启用任务适配的目标AI算法,对上述目标帧序列进行图像处理,得到AI处理结果,包括以下操作:S510、S520、S530和S540。
在操作S510,对上述目标帧序列中的各个目标帧进行尺寸压缩转换,得到包括转换帧的转换帧序列;上述转换帧的图像分辨率最低等于对应的目标AI算法在训练阶段的输入帧的分辨率。
例如,各个目标AI算法在训练阶段的输入帧的分辨率为1080P(宽度(沿着显示界面的左右方向)和高度(沿着显示界面的上下方向)两个方向上的分辨率对应为1920×1080),进行尺寸压缩统一转换,得到的转换帧的分辨率为1080P,参照图5所示,以较密集的点填充来示意分辨率较高的目标帧501,以较为稀疏的点填充来示意尺寸压缩转换后的转换帧502。
在操作S520,根据上述转换帧的帧名称信息或帧地址信息,生成算法调用请求,上述算法调用请求携带有以下信息:上述目标AI算法的标识,以引用或指针形式传输的转换数据帧。
参照图5所示,根据本公开的实施例,上述算法调用请求为并发式请求,上述目标帧序列中的目标帧添加有本地时间戳;在上述计算资源包括多个图像处理器的情况下,执行以下调用操作中的至少一种:同一个目标启用任务对应的目标帧序列中各个目标帧根据本地时间戳的先后进行同一种目标AI算法的并发调用;多种目标启用任务对应的各个目标帧序列进行各自对应的目标AI算法的并发调用且不同AI算法的调用进程相互独立。在一实施例中,参照图5所示,任务C的转换帧序列502中依时序排列的三个转换帧同时对目标AI算法:算法A(例如为车辆识别算法)进行并发调用,以箭头的对齐示意时间线的同时到达。在一实施例中,参照图5所示,任务B的转换帧序列502中依时序排列的第4帧数据和任务C的转换帧序列502中依时序排列的三个转换帧分别独立对各自的算法进行并行调用。针对任务B,可以根据本地时间戳的先后依序对目标AI算法:算法C(例如为人体识别算法)进行先后调用或并行调用,取决于具体的GPU算力,在图5中以任务B对应的转换帧依序先后调用对应的算法C作为示例。
在高并发数据处理场景下,不同AI算法的调用进程相互独立,即针对同一个候选视频数据的各个目标启用任务之间是相互独立、互不影响的,如果其中一个目标启用任务由于处理量高并发而卡顿或出问题,不影响其他目标启用任务的算法排序处理过程。
在操作S530,接收来自上述目标AI算法反馈的时序处理结果。
参照图5所示,以虚线框示意执行主体,例如为服务器。该服务器接收目标AI算法反馈的时序处理结果。该服务器可以基于算法调用模块来执行上述操作S240。由于算法所依赖的软硬件环境和工作流引擎所依赖的软硬件环境截然不同,因此将算法调用模块与算法服务(Algorithm)本身进行解耦,提升可移植性。
在操作S540,对上述时序处理结果进行处理,得到AI处理结果。
基于上述操作S510~S540,由于目标帧的分辨率较高,比如一帧高清或超高清的图片大致占用2M~16M内存,通过对目标帧序列中的各个目标帧进行尺寸压缩转换,并基于转换帧序列进行目标AI算法的调用,上述转换帧的图像分辨率最低等于对应的目标AI算法在训练阶段的输入帧的分辨率,能够在保证AI算法的推理正确性和计算精度不受影响的前提下提升IO传输速率以及推理速度;同时,在调用时将转换帧以引用或指针形式传输,有效提升IO传输速率,能够避免内存拷贝导致的传输速率慢以及推理结果处理时效差等问题。
根据本公开的实施例,参照图5所示,上述操作S250中,将上述AI处理结果与缓存的上述目标帧序列进行匹配,得到视频处理结果,包括操作S550。
在操作S550,将上述AI处理结果进行尺寸恢复转换处理,得到与上述目标帧的分辨率一致的校准AI处理结果,上述校准AI处理结果为上述视频处理结果。
基于上述操作S550,将分辨率转换后转换帧调用目标AI算法得到的AI处理结果进行尺寸恢复转换,得到与目标帧的分辨率一致的校准AI处理结果,确保最终结果的正确性以及与原始视频帧的匹配性。
图6示意性地示出了根据本公开实施例的操作S540的详细实施过程图。
根据本公开的实施例,参照图6所示,上述操作S540中,对上述时序处理结果进行处理,得到AI处理结果,包括以下操作:S610、S620和S630。
在操作S610,针对上述时序处理结果中针对同一个目标启用任务的候选时序处理结果,缓存处于滑动时间窗口内的有效结果,丢弃处于上述滑动时间窗口外的超时结果。上述滑动时间窗口的窗口时长为预设值,例如预设值N的取值范围为1s<N≤10s,这里以5s(5秒)进行示例。
在操作S620,基于缓存的上述有效结果对应的转换帧的本地时间戳,对上述有效结果进行重新排序。
在操作S630,输出重新排序后最早时刻的有效结果;随着滑动时间窗口的滑动实时输出的上述有效结果构成上述AI处理结果。
基于上述操作S610~S630,在针对多个任务并发式调用AI算法的情况下,考虑到不同图像处理器(GPU)的工作负载差异以及不同图片包含的检测目标数不同都会影响AI算法返回结果的时间,可能出现后帧结果先于前帧结果返回,因此本公开的实施例中通过对时序处理结果中针对同一个目标启用任务的候选时序处理结果,缓存处于滑动时间窗口内的有效结果,丢弃处于上述滑动时间窗口外的超时结果,并基于有效结果对应的转换帧的本地时间戳进行重新排序并输出当前窗口内排序时间最早的有效结果,能够确保输出结果是按照目标帧的时间顺序进行排序的AI处理结果并且能够提升处理时效。
图7示意性地示出了根据本公开另一实施例的视频数据处理的方法的流程图。
在一些实施例中,本公开实施例提供的视频数据处理的方法除了包括上述操作S210~S250之外,还包括进行算力调度的操作,算力调度包括以下操作:S710、S720、S730和S740,为了简化示意,在图7中仅示意操作S710~S740,操作S710~S740在操作S210之后执行,操作S740在操作S230之前执行。
在操作S710,获取计算资源的可用时段和算力分布状态,上述计算资源包括:中央处理器和图像处理器。
在操作S720,根据上述可用时段和算力分布状态,在上述待处理任务列表中确定与实时算力匹配的启用任务和对应的任务处理时段。
在操作S730,在预定义的拉流设备列表中确定与上述启用任务对应的视频来源设备。
在操作S740,在上述任务处理时段开始后,从上述视频来源设备获取上述启用任务对应的视频数据。
上述操作S710~S740可以由服务器中的任务调度模块来执行。由于视频解码与AI算法都是高度消耗CPU与GPU算力的应用,基于上述操作S710~S740,能够根据计算资源的可用时段和算力分布状态来动态调度待处理任务中的启用任务和任务处理时段,使得处理任务和对应的算力适配,实现计算资源的合理分配。
在上述各个实施例的基础上,本公开实施例提供的视频数据处理的方法还包括以下至少一项:
对上述视频处理结果进行渲染,生成结果预览界面;
将上述视频处理结果推送给后处理模块,基于上述后处理模块对上述视频处理结果进行定制化处理。
本公开的第二个示例性实施例提供了一种视频数据处理的装置。
图8示意性地示出了根据本公开一实施例的视频数据处理的装置的结构框图。图9示意性地示出了根据本公开实施例的视频数据处理的装置进行端到端的数据处理过程图。
参照图8和图9所示,本公开实施例提供的视频数据处理的装置800包括:任务列表获取模块801、任务调度模块802、抽帧模块803、算法调用模块804和视频处理结果生成模块805。
上述任务列表获取模块801用于获取视频数据的待处理任务列表。
上述任务调度模块802用于针对上述待处理任务列表中同一个候选视频数据对应的一种或多种目标启用任务,确定上述目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数。
上述抽帧模块803用于基于上述初级抽帧参数,对上述候选视频数据进行初级抽帧处理,并基于上述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到上述目标启用任务各自对应的目标帧序列并进行缓存。
上述算法调用模块804用于调用与上述目标启用任务适配的目标AI算法,对上述目标帧序列进行图像处理,得到AI处理结果。
上述视频处理结果生成模块805用于将上述AI处理结果与缓存的上述目标帧序列进行匹配,得到视频处理结果。
根据本公开的实施例,上述任务调度模块802还用于:获取计算资源的可用时段和算力分布状态,上述计算资源包括:中央处理器和图像处理器;根据上述可用时段和算力分布状态,在上述待处理任务列表中确定与实时算力匹配的启用任务和对应的任务处理时段;在预定义的拉流设备列表中确定与上述启用任务对应的视频来源设备;在上述任务处理时段开始后,从上述视频来源设备获取上述启用任务对应的视频数据。
例如,基于上述任务调度模块,可以实现白天运行一类算法、夜间运行另一类算法。
根据本公开的实施例,上述装置800还可以包括以下模块中的至少一种:算法结果预览模块、后处理模块。
参照图9中虚线框示意的操作步骤,上述算法结果预览模块用于对上述视频处理结果进行渲染,生成结果预览界面。通常将算法返回的边界框的坐标或属性字段绘制到原始视频帧上,通常以网络套接字(Websocket)的网络传输形式推送给浏览器进行预览。
上述算法调用模块804将上述视频处理结果推送给后处理模块,基于上述后处理模块对上述视频处理结果进行定制化处理。
其中,定制化处理包括:目标追踪、人员聚类、报警去重、特征库对比等。通过将原始视频帧以及对应的算法推理结果推送给其他业务系统(例如终端上的各种应用软件),支持上层系统按需进行定制。
在一实施例中,基于编程语言Golang(由谷歌开发的高性能编程语言)进行相应功能模块的程序编写,Golang原生支持内存管道(channel),并且Golang语言编译的二进制对操作系统本地动态链接库无依赖,跨平台编译移植成本低。对于Java、C++等其他语言,可以基于先进先出队列实现本公开实施例提供的方法或装置中的功能模块。
上述装置800所包含的功能模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。装置800所包含的功能模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,装置800所包含的功能模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本公开的第三个示例性实施例提供了一种电子设备。
图10示意性示出了本公开实施例提供的电子设备的结构框图。
参照图10所示,本公开实施例提供的电子设备1000包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001、通信接口1002和存储器1003通过通信总线1004完成相互间的通信;存储器1003,用于存放计算机程序;处理器1001,用于执行存储器上所存放的程序时,实现如上所述的视频数据处理的方法。
本公开的第四个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的视频数据处理的方法。
该计算机可读存储介质可以是上述实施例中描述的设备或装置中所包含的;也可以是单独存在,而未装配入该设备或装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种视频数据处理的方法,其特征在于,包括:
获取视频数据的待处理任务列表;
针对所述待处理任务列表中同一个候选视频数据对应的一种或多种目标启用任务,确定所述目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数;
基于所述初级抽帧参数,对所述候选视频数据进行初级抽帧处理,并基于所述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到所述目标启用任务各自对应的目标帧序列并进行缓存;
调用与所述目标启用任务适配的目标AI算法,对所述目标帧序列进行图像处理,得到AI处理结果;
将所述AI处理结果与缓存的所述目标帧序列进行匹配,得到视频处理结果。
2.根据权利要求1所述的方法,其特征在于,调用与所述目标启用任务适配的目标AI算法,对所述目标帧序列进行图像处理,得到AI处理结果,包括:
对所述目标帧序列中的各个目标帧进行尺寸压缩转换,得到包括转换帧的转换帧序列;所述转换帧的图像分辨率最低等于对应的目标AI算法在训练阶段的输入帧的分辨率;
根据所述转换帧的帧名称信息或帧地址信息,生成算法调用请求,所述算法调用请求携带有以下信息:所述目标AI算法的标识,以引用或指针形式传输的转换数据帧;
接收来自所述目标AI算法反馈的时序处理结果;
对所述时序处理结果进行处理,得到AI处理结果。
3.根据权利要求2所述的方法,其特征在于,将所述AI处理结果与缓存的所述目标帧序列进行匹配,得到视频处理结果,包括:
将所述AI处理结果进行尺寸恢复转换处理,得到与所述目标帧的分辨率一致的校准AI处理结果,所述校准AI处理结果为所述视频处理结果。
4.根据权利要求2所述的方法,其特征在于,所述算法调用请求为针对一种或多种目标启用任务的并发式请求,所述目标帧序列中的目标帧添加有本地时间戳;
对所述时序处理结果进行处理,得到AI处理结果,包括:
针对所述时序处理结果中针对同一个目标启用任务的候选时序处理结果,缓存处于滑动时间窗口内的有效结果,丢弃处于所述滑动时间窗口外的超时结果;所述滑动时间窗口的窗口时长为预设值;
基于缓存的所述有效结果对应的转换帧的本地时间戳,对所述有效结果进行重新排序;
输出重新排序后最早时刻的有效结果;随着滑动时间窗口的滑动实时输出的所述有效结果构成所述AI处理结果。
5.根据权利要求1所述的方法,其特征在于,所述预设抽帧参数包括预设抽帧率,所述初级抽帧参数包括初级抽帧率,所述次级抽帧参数包括次级抽帧率;
基于所述初级抽帧参数,对所述候选视频数据进行初级抽帧处理,并基于所述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到所述目标启用任务各自对应的目标帧序列,包括:
获取所述候选视频数据的原始帧率,并对原始视频帧进行编号;
根据所述原始帧率和所述初级抽帧率,计算得到针对所述候选视频数据的第一抽帧索引号;
基于所述第一抽帧索引号在所述原始视频帧进行抽取,得到初级帧序列;
对所述初级帧序列中的各个初级帧进行编号;
根据所述初级抽帧率和所述次级抽帧率,计算得到针对所述初级帧序列的第二抽帧索引号;
基于所述第二抽帧索引号在所述初级帧序列进行抽取,得到次级帧序列;
对所述初级帧序列和所述次级帧序列添加本地时间戳,得到时间校准后的目标帧序列。
6.根据权利要求5所述的方法,其特征在于,计算得到所述第一抽帧索引号和所述第二抽帧索引号的算法包括:
ceil(被抽取对象帧率/目标对象帧率×抽帧序号),
其中,当所述被抽取对象帧率为原始帧率时,对应的所述目标对象帧率为初级抽帧率;当所述被抽取对象帧率为初级抽帧率时,对应的所述目标对象帧率为次级抽帧率,ceil()表示返回大于或者等于括号中表达式的最小整数。
7.根据权利要求1所述的方法,其特征在于,在获取视频数据的待处理任务列表之后,还包括:
获取计算资源的可用时段和算力分布状态,所述计算资源包括:中央处理器和图像处理器;
根据所述可用时段和算力分布状态,在所述待处理任务列表中确定与实时算力匹配的启用任务和对应的任务处理时段;
在预定义的拉流设备列表中确定与所述启用任务对应的视频来源设备;
在所述任务处理时段开始后,从所述视频来源设备获取所述启用任务对应的视频数据。
8.根据权利要求7所述的方法,其特征在于,将所述目标帧序列缓存至消息队列;
在所述计算资源包括多个图像处理器的情况下,执行以下操作中的至少一种:
同一个目标启用任务对应的目标帧序列中各个目标帧根据本地时间戳的先后进行同一种目标AI算法的并发调用;
多种目标启用任务对应的各个目标帧序列进行各自对应的目标AI算法的并发调用且不同AI算法的调用进程相互独立。
9.根据权利要求1-8中任一项所述的方法,其特征在于,还包括以下至少一项:
对所述视频处理结果进行渲染,生成结果预览界面;
将所述视频处理结果推送给后处理模块,基于所述后处理模块对所述视频处理结果进行定制化处理。
10.一种视频数据处理的装置,其特征在于,包括:
任务列表获取模块,用于获取视频数据的待处理任务列表;
任务调度模块,用于针对所述视频数据中同一个候选视频数据对应的一种或多种目标启用任务,确定所述目标启用任务各自的预设抽帧参数中的最大值为初级抽帧参数以及其余预设抽帧参数为次级抽帧参数;
抽帧模块,用于基于所述初级抽帧参数,对所述候选视频数据进行初级抽帧处理,并基于所述次级抽帧参数,对初级抽帧处理得到的结果进行次级抽帧处理,得到所述目标启用任务各自对应的目标帧序列并进行缓存;
算法调用模块,用于调用与所述目标启用任务适配的目标AI算法,对所述目标帧序列进行图像处理,得到AI处理结果;
视频处理结果生成模块,用于将所述AI处理结果与缓存的所述目标帧序列进行匹配,得到视频处理结果。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310449762.9A CN116503778A (zh) | 2023-04-24 | 2023-04-24 | 视频数据处理的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310449762.9A CN116503778A (zh) | 2023-04-24 | 2023-04-24 | 视频数据处理的方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116503778A true CN116503778A (zh) | 2023-07-28 |
Family
ID=87316065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310449762.9A Pending CN116503778A (zh) | 2023-04-24 | 2023-04-24 | 视频数据处理的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116503778A (zh) |
-
2023
- 2023-04-24 CN CN202310449762.9A patent/CN116503778A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836533B2 (en) | Automated reconfiguration of real time data stream processing | |
CN112449750A (zh) | 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统 | |
CN106453572B (zh) | 基于云服务器同步图像的方法及系统 | |
CN110866040B (zh) | 用户画像生成方法、装置和系统 | |
CN111935663B (zh) | 传感器数据流的处理方法、装置、介质及电子设备 | |
WO2021119230A1 (en) | Intelligent conversion of internet domain names to vector embeddings | |
CN112463293A (zh) | 边缘场景下基于容器的可扩展分布式双队列动态分配方法 | |
WO2021164560A1 (zh) | 一种多核芯片及其调度方法 | |
CN114051120A (zh) | 视频告警方法、装置、存储介质及电子设备 | |
CN115729683A (zh) | 任务处理方法、装置、系统、计算机设备和存储介质 | |
CN114650361A (zh) | 拍摄模式确定方法、装置、电子设备和存储介质 | |
CN113392676A (zh) | 一种多目标追踪的行为识别方法和装置 | |
CN115378937B (zh) | 任务的分布式并发方法、装置、设备和可读存储介质 | |
CN113362090A (zh) | 一种用户行为数据处理方法和装置 | |
CN116503778A (zh) | 视频数据处理的方法、装置、电子设备及介质 | |
CN113992493A (zh) | 视频处理方法、系统、设备及存储介质 | |
US20200169615A1 (en) | Controlling content delivery | |
US11647153B1 (en) | Computer-implemented method, device, and computer program product | |
CN111258670B (zh) | 组件数据的管理方法、装置、电子设备和存储介质 | |
US11863369B2 (en) | Network control method and data processing system | |
CN117527805A (zh) | 一种基于服务器集群的多模态数据接入优化方法及系统 | |
CN112203113B (zh) | 视频流结构化方法、装置、电子设备和计算机可读介质 | |
EP4073978B1 (en) | Intelligent conversion of internet domain names to vector embeddings | |
CN113780614A (zh) | 一种风险识别方法和装置 | |
CN115767179A (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 |