一种优化智能视频分析性能的方法、装置和设备制造方法及图纸

技术编号:21146328 阅读:37 留言:0更新日期:2019-05-18 06:46
本发明专利技术涉及一种优化智能视频分析性能的方法、装置和设备,本方法是:①针对离线视频文件的加速,对视频文件进行基准pipeline测试,设定最佳文件切片数目;对视频文件进行切片,将切片任务下发到GPU上;调用GPU对切片文件进行解码,解码结果直接通过显存地址回调给算法,不通过显存‑主存拷贝减少性能损耗;视频分析算法取解码后的显存地址,调用GPU进行算法加速并输出分析结果;②针对实时视频流算法分析的路数优化和扩展,调用GPU对每路实时视频进行解码,解码结果直接通过显存地址回调给算法,算法端设定双缓存,一块用于多路存储解码数据,一块用于传递给算法进行GPU批处理,当批处理完成之后,两块缓存功能切换,达到系统延迟最小的目的。

A Method, Device and Equipment for Optimizing the Performance of Intelligent Video Analysis

【技术实现步骤摘要】
一种优化智能视频分析性能的方法、装置和设备
本专利技术涉及视频图像处理
,具体涉及一种优化智能视频分析性能的方法、装置和设备。
技术介绍
随着“平安城市”、“智慧城市”、“雪亮工程”等大型安防工程和项目的逐渐推进和落地,城市视频监控建设已慢慢进入深入期,在积累了海量视频数据的同时,也早已不满足单纯的“看”视频阶段:面对海量的视频场景,传统的人工肉眼查阅视频在耗费大量的人力物力的同时,往往还显得力不从心,无法适应现实的公安行业的办案需求。在此背景下面,通过智能视频分析算法,比如划线检测、目标追踪、人脸检测等等,将视频中的人、车、物等进行视频结构化,提取里面的目标特征,通过程序的自动化提取代替人眼,并结合大数据等技术手段进行关键字搜索来寻找线索,逐步成为安防行业的主流方式。但是,智能分析算法面临海量视频处理场景时,面临着巨大的性能压力,以现在应用最广泛的1080PH264视频流为例,目前主流的基于x86架构的intelXeon服务器,基于CPU解码通常只能达到约200~300fps的性能,而智能视频分析算法通常是视频流->解码->YUV/RGB数据->算法处理的pipeline,当加上算法环节后,由于图像算法通常极耗CPU,上面的解码性能会更低,具体表现就是,针对视频的两种主要应用场景:离线视频和实时视频流,离线视频的分析速度会不高,实时视频流,能够支撑的并发路数也难上去,通过水平扩展分析节点,增加分析服务器的方式来提高效能的话,成本太高和性价比太低,很难支持大规模视频分析的应用场景。
技术实现思路
本专利技术的目的在于克服现有技术之缺陷,提供了一种优化智能视频分析性能的方法、装置和设备,其大大提高了智能视频分析性能,用以提供视频分析的硬件利用效率。本专利技术是这样实现的:本专利技术提供一种优化智能视频分析性能的方法,采用了如下离线视频分析任务资源调度步骤,包括:11)测试得到每块GPU卡上允许的最大并行处理任务数M;12)将离线视频文件切片成n个子分析任务Ti(1≤i≤n);13)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个子分析任务Ti,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源,则等待;14)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。步骤12)中对于录像时长为T的分析任务,将录像按deltaT为单位切分为T/deltaT个子任务。本专利技术提供一种离线视频分析任务资源调度步骤后还采用了如下离线视频分析任务步骤,包括:15)GPU调度模块获得对应的GPU卡id=j,和子分析任务Ti;16)调用GPU解码模块对子分析任务Ti在与其对应的GPU卡上进行GPU硬解码,解码数据保存在GPU显存L中;17)将GPU解码地址L直接传递给算法分析模块;18)算法分析模块使用GPU卡j对传过来的GPU解码地址L对应的数据进行分析处理,当子分析任务Ti处理完毕后,释放对应GPU卡j上资源。进一步地,实现离线视频分析任务资源调度时,测试得到每块GPU卡的最佳并行处理任务数M具体包括如下步骤:选取基准测试文件;将基准测试文件按M进行切片或者同时加载M个基准文件,用测试分析程序进行M路视频分析,从M=1,2,3,4…开始不断增大M,分别记录M=1,2,3,4…时对应的每路分析帧率fps值;当fps*M最大时,记下此时的M值,作为最佳的单卡GPU任务数;基准测试分析程序实现对多路视频文件的解码以及算法分析功能,并输出每路的分析帧率fps。当fps*M最大时,分析倍速最高,分析步骤如下:(1)假设录像文件时长为T,帧率为FR;(2)定义指标分析加速比=录像时长/分析时间,来衡量分析效率;(3)为分析模型简单起见,假设GPU服务器有N块GPU卡,首先将录像均匀的切割到N块卡上进行分析,每块卡上分到的录像片段时长为:(4)假设对每块卡上时长t录像再进行切分,分片数目为M,每块卡上相当于M路视频流并行分析,每股视频流的分析帧率速度是fps,则每股流分析完需要时间:录像总分析时间可用t1来近似,所以分析加速比N为GPU卡的数目,FR为视频的帧率,均为固定值。可变的只有单卡的切片数目M和每个切片的分析帧率fps,因此可得当两者乘积最大的时候,就是分析倍速最高的时候。本专利技术采用GPU调度模块对各种GPU型号进行探测,自动识别出卡型、数目;一般以H264和H2651080P两种主流的视频源作为测试基准。本专利技术还提供一种优化智能视频分析性能的方法,采用了如下实时视频流分析任务资源调度步骤,包括:21)测试得到每块GPU卡上允许的最大并行处理任务数M;22)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个实时流分析任务K,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源即所有GPU卡的运行任务数C≥P时,则等待;23)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。进一步地,实时视频流分析任务资源调度步骤后还采用了如下实时视频流分析任务步骤:24)GPU调度模块获得对应的GPU卡id=j和分析任务Ti(1<=i<=M);25)调用解码模块对分析任务Ti在对应的GPU卡j上进行GPU硬解码,解码数据保存在GPU显存L中;调用解码模块每解完一帧,就将解码后的数据信息传递给算法模块的数据接收接口。26)算法分析模块针对每块GPU卡均设定至少两个缓存,同时缓存内部设有一个标志位,以及一个解码路数值k,解码路数值k用于保存累积的解码路数,当缓存标志位为false时,表示缓存可写,允许将解码数据保存在可写缓存中;当缓存标志位为true时,表示缓存可读,允许将缓存保存的多路解码数据批量传给算法分析模块进行分析处理,初始化每块GPU卡对应的几个缓存的标志位为false,数据接收模块接受对应GPU卡上的各路解码数据,并启动两个监控线程,一个为缓存写入监控线程,另一个为双缓存读出监控线程;27)每当算法分析模块的数据接收接口接受到一路解码数据时,首先检查几个缓存的标志位,判断是否有可写的缓存,当至少有一个缓存的标志位为false时,表示有可写的缓存,则随机选择一个标志位为false的可写缓存,保存该路的解码数据,该缓存的解码路数值k加1;否则,直接抛弃该路解码数据,不处理直接返回;28)缓存写入监控线程每隔指定时间检查几个缓存的状态,当缓存的解码路数值k大于或等于设定值K时,则认为缓存可读,将缓存标志位置为true,否则,将缓存标志位置为false;同时,缓存读取监控线程每隔指定时间检查几个缓存的状态时,当缓存标志位为true时,认为可读,则将缓存保存的多路解码数据批量传给算法分析模块进行分析处理,处理完毕后,将该缓存的标志位置为false,重新设为可写。针对每本文档来自技高网...

【技术保护点】
1.一种优化智能视频分析性能的方法,其特征在于,采用了如下离线视频分析任务资源调度步骤,包括:11)测试得到每块GPU卡上允许的最大并行处理任务数M;12)将离线视频文件切片成n个子分析任务Ti(1≤i≤n);13)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个子分析任务Ti,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源时,则等待;14)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。

【技术特征摘要】
1.一种优化智能视频分析性能的方法,其特征在于,采用了如下离线视频分析任务资源调度步骤,包括:11)测试得到每块GPU卡上允许的最大并行处理任务数M;12)将离线视频文件切片成n个子分析任务Ti(1≤i≤n);13)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个子分析任务Ti,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源时,则等待;14)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。2.根据权利要求1所述的方法,其特征在于:离线视频分析任务资源调度步骤后还采用了如下离线视频分析任务步骤,包括:15)GPU调度模块获得对应的GPU卡id=j,和子分析任务Ti;16)调用GPU解码模块对子分析任务Ti在与其对应的GPU卡上进行GPU硬解码,解码数据保存在GPU显存L中;17)将GPU解码地址L直接传递给算法分析模块;18)算法分析模块使用GPU卡j对传过来的GPU解码地址L对应的数据进行分析处理,当子分析任务Ti处理完毕后,释放对应GPU卡j上资源。3.根据权利要求1所述的方法,其特征在于:实现离线视频分析任务资源调度时,测试得到每块GPU卡的最佳并行处理任务数M具体包括如下步骤:选取基准测试文件;将基准测试文件按M进行切片或者同时加载M个基准文件,用测试分析程序进行M路视频分析,从M=1,2,3,4…开始不断增大M,分别记录M=1,2,3,4…时对应的每路分析帧率fps值;当fps*M最大时,记下此时的M值,作为最佳的单卡GPU任务数;基准测试分析程序实现对多路视频文件的解码以及算法分析功能,并输出每路的分析帧率fps。4.一种优化智能视频分析性能的方法,其特征在于,采用了如下实时视频流分析任务资源调度步骤,包括:21)测试得到每块GPU卡上允许的最大并行处理任务数M;22)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个实时流分析任务K,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源即所有GPU卡的运行任务数C≥P时,则等待;23)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。5.根据权利要求4所述的方法,其特征在于:实时视频流分析任务资源调度步骤后还采用了如下实时视频流分析任务步骤,包括:24)GPU调度模块获得对应的GPU卡id=j和分析任务Ti(1<=i<=M);25)调用解码模块对分析任务Ti在对应的GPU卡j上进行GPU硬解码...

【专利技术属性】
技术研发人员:谈鸿韬陆辉刘树惠杨波
申请(专利权)人:武汉烽火众智数字技术有限责任公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1