CN116886940B - 多路视频推理并发预处理加速方法、系统、介质和设备 - Google Patents
多路视频推理并发预处理加速方法、系统、介质和设备 Download PDFInfo
- Publication number
- CN116886940B CN116886940B CN202311149797.7A CN202311149797A CN116886940B CN 116886940 B CN116886940 B CN 116886940B CN 202311149797 A CN202311149797 A CN 202311149797A CN 116886940 B CN116886940 B CN 116886940B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- file
- dimensional matrix
- data
- 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
- 238000007781 pre-processing Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001133 acceleration Effects 0.000 title claims abstract description 26
- 239000011159 matrix material Substances 0.000 claims description 67
- 238000013507 mapping Methods 0.000 claims description 30
- 230000009466 transformation Effects 0.000 claims description 24
- 230000000739 chaotic effect Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 16
- 239000012634 fragment Substances 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 20
- 230000004044 response Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2181—Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2183—Cache memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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
Abstract
本发明涉及分布式技术领域,公开一种多路视频推理并发预处理加速方法、系统、介质和设备,包括:获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中;将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列;对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理。本发明可以加快视频下载的响应速度、提高视频数据的处理速度,在实现并行下载和并行预处理的同时提高数据处理能力和资源利用率。
Description
技术领域
本发明涉及分布式技术领域,尤其是指一种多路视频推理并发预处理加速方法、系统、介质和设备。
背景技术
信息爆炸时代,人们可以获取的数据成指数倍的增长,各式各样的数据被存储在云服务器中,推动着数据存储技术的飞速发展。分布式文件系统可以服务存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器、虚拟机镜像等,一个对象文件的大小可以任意从几KB到几T不等。
在对被存储在云服务中的大体积视频数据进行处理,例如进行人工智能视频分析目标检测时,在获取视频数据阶段时通常需要先将视频全部下载下来,再进行后续阶段的视频数据预处理和预测。这一过程中的各个操作都是针对整体的视频数据,一阶段的操作完成才能进行下一阶段的操作,就会导致得到预测结果耗费的时间很长。并且,如果在视频数据预处理阶段需要对多个视频文件同时进行操作,此时的资源占用率直线提高,会出现性能下降、线程阻塞,还会出现单个视频数据处理速度减慢的问题。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中的不足,提供一种多路视频推理并发预处理加速方法、系统、介质和设备,可以加快视频下载的响应速度、提高视频数据的处理速度,在实现并行下载和并行预处理的同时提高数据处理能力和资源利用率。
为解决上述技术问题,本发明提供了一种多路视频推理并发预处理加速方法,包括:
获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中;
将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列;
对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理。
在本发明的一个实施例中,所述异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中,包括:
设置视频文件流下载时的大小阈值,每个开启的线程并行异步下载一路视频文件;下载视频文件时,获取当前下载的视频文件的大小,若视频文件的大小不超过所述大小阈值,则直接下载;若视频文件的大小超过所述大小阈值,则按照所述大小阈值对视频文件流进行分片,并将分片后的视频文件顺序下载,按序存储至视频缓冲队列中;
按照所述大小阈值对视频文件流进行分片,包括:将每间隔所述大小阈值距离的视频文件流作为一个分片文件下载,所述大小阈值根据网络带宽状态与数据传输延时状态动态调整或设置为固定值。
在本发明的一个实施例中,所述大小阈值根据网络带宽状态与数据传输延时状态动态调整,具体为:
计算第n个分片文件后的初始大小阈值Sn+1’为:
Sn+1’=,
其中,Sn为第n个分片文件对应的大小阈值,Sn+1’为第n+1个分片文件对应的初始大小阈值,t为视频文件的期望下载时间,e n为第n个分片文件的下载开始时间,b n为第n个分片文件的下载完成时间;
获取下载过去n个分片文件时的数据传输速率,计算下载过去n个分片文件的平均数据传输速率,计算理想状态下的分片文件的大小L=/>×t;
比较初始大小阈值Sn+1’和L的大小,若Sn+1’≥L,则令第n+1个分片文件对应的大小阈值Sn+1=L;若Sn+1’<L,则令第n+1个分片文件对应的大小阈值Sn+1=Sn+1’+ɑ,ɑ为修正值。
在本发明的一个实施例中,所述将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列,包括:
对每个视频缓冲队列,开启线程获取视频缓冲队列中的视频数据,检验视频数据是否可用,将可用的视频数据转换成视频帧并以JSON格式按时序存储得到帧队列;
所述将可用的视频数据转换成视频帧,具体为:
构建视频帧计数器,使用视频帧计数器对视频数据中的每帧标号获取总帧数;
获取视频数据中的每帧的宽和高,创建与宽和高对应的视频帧二维矩阵,视频帧二维矩阵中的元素的二维下标对应像素点的位置,元素值对应像素点的RGB值;
使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,将置乱变换后的视频帧二维矩阵作为所述视频帧。
在本发明的一个实施例中,所述使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,具体为:
计算出所述视频帧二维矩阵中随机的像素点位置的待映射坐标,并在所述视频帧二维矩阵中找到所述待映射坐标对应的元素;
构建控制序列key=[a0,a1,…,ai,…,aN],N为元素值的通道数,ai为控制序列中的第i个元素,从所述控制序列中随机选择一个元素作为混沌映射函数的控制参数;构建随机映射表M=[m0,m1,…,mi,…,m255],mi为随机映射表中的第i个元素,mi∈[0,255];
结合所述待映射坐标对应的元素的每一个颜色通道值和所述控制参数,通过混沌映射函数得到目标坐标,根据目标坐标在所述随机映射表中选择元素作为置乱变换后的所述视频帧二维矩阵中的待映射坐标对应的元素的通道值;
将所述视频帧二维矩阵中的每个元素均经过置乱变换后的矩阵作为置乱变换后的视频帧二维矩阵。
在本发明的一个实例中,所述待映射坐标的计算方法为:
;
;
其中,Pi为一维矩阵P中的第i个元素,一维矩阵P为由顺序序列[0,1,2,...,n],n=h×w随机打乱后的一维矩阵,h、w分别为所述视频帧二维矩阵的长度和宽度;x、y分别为由P矩阵中随机数计算得到的所述待映射坐标的x值、y值,为向下取整操作,%为求余数操作。
在本发明的一个实施例中,结合所述待映射坐标对应的元素的每一个颜色通道值和所述控制参数,通过混沌映射函数得到目标坐标,根据目标坐标在所述随机映射表中选择元素作为置乱变换后的所述视频帧二维矩阵中的待映射坐标对应的元素的通道值,具体为:
结合视频帧二维矩阵中随机的像素点位置的待映射坐标(x,y)对应的元素的通道值Ix,y,i和控制参数μ,通过混沌映射函数计算目标坐标j为:
j=(μ×Ix,y,i(1- Ix,y,i))%256,
其中,%为求余数操作;i为颜色通道,i=1、2、3,分别对应R、G、B三个颜色通道;
根据目标坐标j在所述随机映射表中选择下标为j的元素mj作为视频帧二维矩阵中的原始的待映射坐标(x,y)对应的元素的通道值置乱变换后的元素的通道值。
本发明还提供了一种多路视频推理并发预处理加速系统,包括:
数据获取模块,用于获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中;
帧转换模块,用于将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列;
多任务并行预处理模块,用于对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理。
本发明还提供了一种介质,该计算机程序被处理器执行时实现所述的多路视频推理并发预处理加速方法。
本发明还提供了一种多路视频推理并发预处理加速设备,包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的多路视频推理并发预处理加速方法。
本发明的上述技术方案相比现有技术具有以下优点:
本发明在视频文件下载阶段结合多线程异步下载和分片下载的方式下载视频文件流,加快了视频下载的响应速度,实现了对被存储在云服务器上的多个大体积视频数据的同时操作,可以提高数据处理能力和资源利用率;同时,通过将视频数据转换成视频帧,并通过独立线程的多任务模式同时对多个视频帧进行预处理操作,实现并行处理的同时有效提高了视频数据的处理速度,进一步提高了数据处理能力和资源利用率。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1是本发明的流程图。
图2是本发明的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
参照图1-图2所示,本发明公开了一种多路视频推理并发预处理加速方法,包括以下步骤:
S1:获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中;
S1-1:基于输入的多路视频文件数量开启下载阶段的多线程,对每个视频文件流通过视频下载处理程序形成一个下载通道,每路视频形成相互隔离的通道。
S1-2:设置视频文件流下载时的大小阈值S,S为分片文件的大小、即为每次下载视频流下载大小阈值,可以体现下载视频的响应时延,单位为byte;每个开启的线程并行异步下载一路视频文件。下载视频文件时,获取当前下载的视频文件的大小,若视频文件的大小不超过所述大小阈值S,则直接下载;若视频文件的大小超过所述大小阈值S,则按照所述大小阈值S对视频文件流进行分片,将大视频文件切片分成小视频流片并将分片后的视频文件一片一片顺序下载,按时间序列存储至视频缓冲队列中,设置每一路视频文件对应的频缓冲队列为一个缓冲主题。
按照所述大小阈值对视频文件流进行分片,包括:从视频文件开始位置P0起,将每间隔所述大小阈值距离的视频文件流作为一个分片文件下载,记录下载完成时的位置,下一次从下载完成时位置+1开始下载。分片的计算公式为:Pn+1=Pn+S+1,其中,Pn表示第n个分片文件的结束位置n≥0,S为所述大小阈值,P0=0。所述大小阈值S>0,设置为固定值或根据网络带宽状态与数据传输延时状态动态调整。
本实施例中,大小阈值S是固定值时可以设置为S=100。大小阈值根据网络带宽状态与数据传输延时状态动态调整,具体为:
(1)计算第n个分片文件后的初始大小阈值Sn+1’为:
Sn+1’=,
其中,Sn为第n个分片文件对应的大小阈值,Sn+1’为第n+1个分片文件对应的初始大小阈值,t为视频文件的期望下载时间,e n为第n个分片文件的下载开始时间,b n为第n个分片文件的下载完成时间。公式中为调整系数,当/>>1时,此时需要适当增加大小阈值的值;当/><1时,此时需要适当减小大小阈值的值。本实施例中设置调整系数的最小值,当/><0.5时令/>=0.5。通过该公式自适应动态调整大小阈值,从而自适应动态调整分片文件的大小,可以在数据传输延时状态不好时减少下载请求处理次数,确保流畅的下载体验,提高下载的稳定性和可靠性。
(2)获取下载过去n个分片文件时的数据传输速率R i(i=1,…,n),R i为下载第i个分片文件时的数据传输速率,计算下载过去n个分片文件的平均数据传输速率,计算理想状态下的分片文件的大小L=/>×t;
(3)比较初始大小阈值Sn+1’和L的大小,若Sn+1’≥L,说明动态调整的分片大小大于等于理想状态下的分片大小,此时令第n+1个分片文件对应的大小阈值Sn+1=L;若Sn+1’<L,令第n+1个分片文件对应的大小阈值Sn+1=Sn+1’+ɑ,ɑ为修正值。修正值ɑ的取值为经验值,本实施例中ɑ取值可以为[0,20]。动态调整的分片大小Sn+1在理想状态下的分片大小的范围里,从而使分片文件的大小尽可能地接近传输速率的整数倍,减少下载时间。
S2:将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列。
S2-1:对每个主题的视频缓冲队列,开启线程获取视频缓冲队列中的视频数据,检验视频数据是否可用,若可用执行S2-2,若不可用重新获取视频数据。
S2-2:将可用的视频数据转换成视频帧。
S2-2-1:构建视频帧计数器frame_num,使用视频帧计数器对视频数据中的每帧标号获取总帧数;从视频首帧0标号开始,frame_num=0;每获取一帧视频帧数据后,计数器frame_num自加1。
S2-2-2:获取视频数据中的每帧的宽和高,创建与宽和高对应的视频帧二维矩阵,即对于帧宽h、高w的视频数据、创建一个h×w的二维矩阵来代表该视频数据;视频帧二维矩阵中的元素的二维下标对应像素点的位置,元素值对应像素点的R、G、B通道的通道值。
S2-2-3:使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,将置乱变换后的视频帧二维矩阵作为所述视频帧。
S2-2-3-1:计算出所述视频帧二维矩阵中随机的像素点位置的待映射坐标,并在所述视频帧二维矩阵中找到所述待映射坐标对应的元素;待映射坐标的计算方法为:
;
;
其中,Pi为一维矩阵P中的第i个元素,一维矩阵P为由顺序序列[0,1,2,...,n],n=h×w随机打乱后的一维矩阵,h、w分别为所述视频帧二维矩阵的长度和宽度;x、y分别为由P矩阵中随机数计算得到的所述待映射坐标的x值、y值,为向下取整操作,%为求余数操作。
S2-2-3-2:构建控制序列key=[a0,a1,…,ai,…,aN],N为元素值的通道数,ai为控制序列中的第i个元素,key中每个元素的取值范围根据实际确定,本实施例中为ai∈[3.4,4.5],从所述控制序列中随机选择一个元素作为混沌映射函数的控制参数μ;构建随机映射表M=[m0,m1,…,mi,…,m255],mi为随机映射表中的第i个元素,mi∈[0,255]。
S2-2-3-3:结合所述待映射坐标对应的元素的每一个颜色通道值和所述控制参数,通过混沌映射函数得到目标坐标,根据目标坐标在所述随机映射表中选择元素作为置乱变换后的所述视频帧二维矩阵中的待映射坐标对应的元素的通道值。
S2-2-3-3-1:结合视频帧二维矩阵中随机的像素点位置的待映射坐标(x,y)对应的元素的通道值Ix,y,i和控制参数μ,通过混沌映射函数计算目标坐标j为:
j=(μ×Ix,y,i(1- Ix,y,i))%256,
其中,%为求余数操作,μ∈key;i为颜色通道,i=1、2、3,分别对应R、G、B三个颜色通道。
S2-2-3-3-2:根据目标坐标j在所述随机映射表中选择下标为j的元素mj作为视频帧二维矩阵中的原始待映射坐标(x,y)对应的元素的通道值经过置乱变换后的元素的通道值I’x,y,i,即I’x,y,i=mj。
三个颜色通道的通道值分别进行一轮置乱变换得到新的通道值后,视为视频帧二维矩阵中的待映射坐标(x,y)对应的元素完成了置乱变换。
S2-2-3-4:将所述视频帧二维矩阵中的每个元素均经过置乱变换后的矩阵作为置乱变换后的视频帧二维矩阵Y。
S2-3:以JSON格式按时间序列存储得到帧队列。
以JSON格式存储视频帧时,将Y、帧宽h和高w、以及时间序列放入JSON格式对象中。放入的数据信息不限,本实施例中只列出必须信息,数据帧JSON格式为:
{‘frame_num’:<帧号索引>,’frame’:<帧数据>,’create_time’:’<时间序列>’,’width’:<宽>,’height’:<高>}。
实施例中的数据帧JSON格式示例如下:
{'frame_num':1792,'frame':array([[[210,184,166],[210,184,166],[210,184,166],...,[208,172,135],[208,172,135],[208,172,135]],[[210,184,166],[210,184,166],[210,184,166],...,[208,172,135],[208,172,135],...,[22,13,17],[22,14,16],[22,14,16]]],dtype=uint8),’create_time’:’1689038109’,’width’:640,’height’:480}。
S3:对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理。本实施例中,推理模型可以是目标检测、轨迹规划等预测模型。
得到S2中的帧队列后,对每个主题的帧队列独立开启一个线程,在单线程中开启多任务模式,对同一个主题的帧队列中的视频帧进行分辨率调整、图像归一化、色彩空间转换等数据预处理。从帧队列中获得的帧数据按照设定开启的任务数N,本实施例中N默认取值5、即同时开启5个任务数。对帧队列中的帧数据遵循先进先出原则,同时对5个JSON格式帧数据进行数据预处理。每个任务之间相互独立。当批量完成数据预处理后,按照视频帧的时间序列以及帧索引顺序输入推理模型中,进行后续的目标检测、轨迹预测等推理。
本发明还公开了一种多路视频推理并发预处理加速系统,包括数据获取模块、帧转换模块和多任务并行预处理模块。数据获取模块用于获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中。帧转换模块用于将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列。多任务并行预处理模块用于对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理。
本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的多路视频推理并发预处理加速方法。
本发明还公开了一种多路视频推理并发预处理加速设备,包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的多路视频推理并发预处理加速方法。
在对存储在云服务器上的视频数据进行推理时,现有做法是将原始数据全部下载到本地后,再对视频转换成帧后进行数据预处理。当视频文件很大,带宽资源有限时,占用大量带宽,从整体角度用户感知来说,整个模型推理流程时间被拉长。本发明的目的是为了在有限的处理器资源条件下实现多路视频的并行预处理,从而最大程度提高处理器的利用率、加快模型推理数据预处理的速度,与现有技术相比本发明的优点有:
1、本发明在视频文件下载阶段结合多线程异步下载和分片下载的方式下载视频文件流。对多路视频源开源开启多线程,对视频流文件进行分片下载,以一定速度一定顺序放入到对应主题视频流缓冲队列中,下一个处理节点监听接收到缓冲队列消息后,将视频流转换成视频帧,以JSON格式存储致视频帧缓冲队列中。从而加快了视频下载的响应速度,实现了对被存储在云服务器上的多个大体积视频数据的同时操作,可以提高了数据处理能力和资源利用率。
2、通过将视频数据转换成视频帧,并通过独立线程的多任务模式同时对多个视频帧进行预处理操作。在数据预处理节点监听到视频帧队列消息后单线程多任务批量对视频帧进行分辨率调整,图像归一化,色彩空间转换等数据预处理。从而实现并行处理的同时从整体上有效提高了视频数据的处理速度,进一步提高了数据处理能力和资源利用率,辅助实现数据推理阶段响应时延的最小化。
3、视频帧转换阶段使用置乱变换进行格式转换,并使用JSON格式存储,可以在不给图像数据传输和存取带来延迟的同时提高数据的安全性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (8)
1.一种多路视频推理并发预处理加速方法,其特征在于,包括:
获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中;
将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列;
对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理;
所述将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列,包括:
对每个视频缓冲队列,开启线程获取视频缓冲队列中的视频数据,检验视频数据是否可用,将可用的视频数据转换成视频帧并以JSON格式按时序存储得到帧队列;
所述将可用的视频数据转换成视频帧,具体为:
构建视频帧计数器,使用视频帧计数器对视频数据中的每帧标号获取总帧数;
获取视频数据中的每帧的宽和高,创建与宽和高对应的视频帧二维矩阵,视频帧二维矩阵中的元素的二维下标对应像素点的位置,元素值对应像素点的RGB值;
使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,将置乱变换后的视频帧二维矩阵作为所述视频帧;
所述使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,具体为:
计算出所述视频帧二维矩阵中随机的像素点位置的待映射坐标,并在所述视频帧二维矩阵中找到所述待映射坐标对应的元素;
构建控制序列key=[a0,a1,…,ai,…,aN],N为元素值的通道数,ai为控制序列中的第i个元素,从所述控制序列中随机选择一个元素作为混沌映射函数的控制参数;构建随机映射表M=[m0,m1,…,mi,…,m255],mi为随机映射表中的第i个元素,mi∈[0,255];
结合所述待映射坐标对应的元素的每一个颜色通道值和所述控制参数,通过混沌映射函数得到目标坐标,根据目标坐标在所述随机映射表中选择元素作为置乱变换后的所述视频帧二维矩阵中的待映射坐标对应的元素的通道值;
将所述视频帧二维矩阵中的每个元素均经过置乱变换后的矩阵作为置乱变换后的视频帧二维矩阵。
2.根据权利要求1所述的多路视频推理并发预处理加速方法,其特征在于:所述异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中,包括:
设置视频文件流下载时的大小阈值,每个开启的线程并行异步下载一路视频文件;下载视频文件时,获取当前下载的视频文件的大小,若视频文件的大小不超过所述大小阈值,则直接下载;若视频文件的大小超过所述大小阈值,则按照所述大小阈值对视频文件流进行分片,并将分片后的视频文件顺序下载,按序存储至视频缓冲队列中;
按照所述大小阈值对视频文件流进行分片,包括:将每间隔所述大小阈值距离的视频文件流作为一个分片文件下载,所述大小阈值根据网络带宽状态与数据传输延时状态动态调整或设置为固定值。
3.根据权利要求2所述的多路视频推理并发预处理加速方法,其特征在于:所述大小阈值根据网络带宽状态与数据传输延时状态动态调整,具体为:
计算第n个分片文件后的初始大小阈值Sn+1’为:
其中,Sn为第n个分片文件对应的大小阈值,Sn+1’为第n+1个分片文件对应的初始大小阈值,t为视频文件的期望下载时间,en为第n个分片文件的下载开始时间,bn为第n个分片文件的下载完成时间;
获取下载过去n个分片文件时的数据传输速率,计算下载过去n个分片文件的平均数据传输速率计算理想状态下的分片文件的大小/>
比较初始大小阈值Sn+1’和L的大小,若Sn+1’≥L,则令第n+1个分片文件对应的大小阈值Sn+1=L;若Sn+1’<L,则令第n+1个分片文件对应的大小阈值Sn+1=Sn+1’+ɑ,ɑ为修正值。
4.根据权利要求1所述的多路视频推理并发预处理加速方法,其特征在于:所述待映射坐标的计算方法为:
x=Pi%h,i=1,2,3,...,h×w;
其中,Pi为一维矩阵P中的第i个元素,一维矩阵P为由顺序序列[0,1,2,...,n],n=h×w随机打乱后的一维矩阵,h、w分别为所述视频帧二维矩阵的长度和宽度;x、y分别为由P矩阵中随机数计算得到的所述待映射坐标的x值、y值,为向下取整操作,%为求余数操作。
5.根据权利要求4所述的多路视频推理并发预处理加速方法,其特征在于:结合所述待映射坐标对应的元素的每一个颜色通道值和所述控制参数,通过混沌映射函数得到目标坐标,根据目标坐标在所述随机映射表中选择元素作为置乱变换后的所述视频帧二维矩阵中的待映射坐标对应的元素的通道值,具体为:
结合视频帧二维矩阵中随机的像素点位置的待映射坐标(x,y)对应的元素的通道值Ix,y,i和控制参数μ,通过混沌映射函数计算目标坐标j为:
j=(μ×Ix,y,i(1-Ix,y,i))%256,
其中,%为求余数操作;i为颜色通道,i=1、2、3,分别对应R、G、B三个颜色通道;
根据目标坐标j在所述随机映射表中选择下标为j的元素mj作为视频帧二维矩阵中的原始的待映射坐标(x,y)对应的元素的通道值置乱变换后的元素的通道值。
6.一种多路视频推理并发预处理加速系统,其特征在于,包括:
数据获取模块,用于获取多路视频文件连接并开启异步线程,异步分片下载每路视频文件并将每路视频文件存储至一个视频缓冲队列中;
帧转换模块,用于将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列;
多任务并行预处理模块,用于对每个帧队列独立开启一个线程,在每个线程中开启多任务模式,在多任务模式下对视频帧进行批量化的数据预处理,将预处理后的数据输入推理模型进行推理;
所述将每个视频缓冲队列中的视频数据转换为视频帧,得到帧队列,包括:
对每个视频缓冲队列,开启线程获取视频缓冲队列中的视频数据,检验视频数据是否可用,将可用的视频数据转换成视频帧并以JSON格式按时序存储得到帧队列;
所述将可用的视频数据转换成视频帧,具体为:
构建视频帧计数器,使用视频帧计数器对视频数据中的每帧标号获取总帧数;
获取视频数据中的每帧的宽和高,创建与宽和高对应的视频帧二维矩阵,视频帧二维矩阵中的元素的二维下标对应像素点的位置,元素值对应像素点的RGB值;
使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,将置乱变换后的视频帧二维矩阵作为所述视频帧;
所述使用混沌序列对每帧对应的视频帧二维矩阵进行置乱变换,具体为:
计算出所述视频帧二维矩阵中随机的像素点位置的待映射坐标,并在所述视频帧二维矩阵中找到所述待映射坐标对应的元素;
构建控制序列key=[a0,a1,…,ai,…,aN],N为元素值的通道数,ai为控制序列中的第i个元素,从所述控制序列中随机选择一个元素作为混沌映射函数的控制参数;构建随机映射表M=[m0,m1,…,mi,…,m255],mi为随机映射表中的第i个元素,mi∈[0,255];
结合所述待映射坐标对应的元素的每一个颜色通道值和所述控制参数,通过混沌映射函数得到目标坐标,根据目标坐标在所述随机映射表中选择元素作为置乱变换后的所述视频帧二维矩阵中的待映射坐标对应的元素的通道值;
将所述视频帧二维矩阵中的每个元素均经过置乱变换后的矩阵作为置乱变换后的视频帧二维矩阵。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现如权利要求1-5任一项所述的多路视频推理并发预处理加速方法。
8.一种多路视频推理并发预处理加速设备,其特征在于:包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述的多路视频推理并发预处理加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311149797.7A CN116886940B (zh) | 2023-09-07 | 2023-09-07 | 多路视频推理并发预处理加速方法、系统、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311149797.7A CN116886940B (zh) | 2023-09-07 | 2023-09-07 | 多路视频推理并发预处理加速方法、系统、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116886940A CN116886940A (zh) | 2023-10-13 |
CN116886940B true CN116886940B (zh) | 2023-12-01 |
Family
ID=88272177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311149797.7A Active CN116886940B (zh) | 2023-09-07 | 2023-09-07 | 多路视频推理并发预处理加速方法、系统、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116886940B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600368A (zh) * | 2018-04-25 | 2018-09-28 | 青岛海信电器股份有限公司 | 一种hls网络视频下载优化方法及装置 |
CN110322391A (zh) * | 2019-07-08 | 2019-10-11 | 上海天诚比集科技有限公司 | 基于多线程的视频告警事件分析方法 |
CN111083561A (zh) * | 2019-12-31 | 2020-04-28 | 深圳市商汤科技有限公司 | 视频处理方法、装置、设备和存储介质 |
WO2021136369A1 (zh) * | 2019-12-30 | 2021-07-08 | 威创集团股份有限公司 | 一种分布式跨节点视频同步方法及系统 |
CN113365101A (zh) * | 2020-03-05 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 对视频进行多任务处理的方法及相关设备 |
-
2023
- 2023-09-07 CN CN202311149797.7A patent/CN116886940B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600368A (zh) * | 2018-04-25 | 2018-09-28 | 青岛海信电器股份有限公司 | 一种hls网络视频下载优化方法及装置 |
CN110322391A (zh) * | 2019-07-08 | 2019-10-11 | 上海天诚比集科技有限公司 | 基于多线程的视频告警事件分析方法 |
WO2021136369A1 (zh) * | 2019-12-30 | 2021-07-08 | 威创集团股份有限公司 | 一种分布式跨节点视频同步方法及系统 |
CN111083561A (zh) * | 2019-12-31 | 2020-04-28 | 深圳市商汤科技有限公司 | 视频处理方法、装置、设备和存储介质 |
CN113365101A (zh) * | 2020-03-05 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 对视频进行多任务处理的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116886940A (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108012156B (zh) | 一种视频处理方法及控制平台 | |
KR101468201B1 (ko) | 문서들로부터 토픽들의 병렬 생성 | |
CN110248212B (zh) | 多用户360度视频流服务器端码率自适应传输方法及系统 | |
WO2019183861A1 (zh) | 任务处理方法、设备及机器可读存储介质 | |
US20080022288A1 (en) | Signal Processing Appatatus | |
CN110662238A (zh) | 一种针对边缘网络下突发请求的强化学习调度方法及设备 | |
EP3745734A1 (en) | Multi-media file processing method and device, storage medium and electronic device | |
CN111629212B (zh) | 一种对视频进行转码的方法和装置 | |
US9852520B2 (en) | Implementing reduced video stream bandwidth requirements when remotely rendering complex computer graphics scene | |
CN113472597B (zh) | 分布式卷积神经网络细粒度的参数传输调度方法及装置 | |
CN111739141B (zh) | 一种轻终端3d云渲染方法 | |
CN109493410A (zh) | 一种千兆级像素图像的实时渲染方法 | |
CN112905312A (zh) | 边缘计算环境中基于深度q神经网络的工作流调度方法 | |
CN116886940B (zh) | 多路视频推理并发预处理加速方法、系统、介质和设备 | |
CN110659119B (zh) | 一种图片处理方法、装置及系统 | |
CN115130649A (zh) | 一种面向流水线分布式端云协同推理的深度学习模型划分方法和装置 | |
CN113018845B (zh) | 一种操作指令执行方法、客户端、服务端及存储介质 | |
CN111061911B (zh) | 面向多视频监控数据的目标检测与追踪方法、装置及设备 | |
CN110062130B (zh) | 基于预处理文件结构的千兆级像素视频渲染方法及装置 | |
CN116225653A (zh) | 深度学习多模型部署场景下qos感知的资源分配方法及装置 | |
US7350208B1 (en) | Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource | |
CN111091489A (zh) | 图片优化方法、装置、电子设备及存储介质 | |
EP3651464B1 (en) | Data encoding method and apparatus, terminal device and computer readable storage medium | |
CN105302645B (zh) | 一种任务分发方法及装置 | |
CN113051059B (zh) | 一种多gpu的任务实时调度方法及装置 |
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 |