CN113037971A - 一种多路视频进行多ai模型并行处理的方法 - Google Patents
一种多路视频进行多ai模型并行处理的方法 Download PDFInfo
- Publication number
- CN113037971A CN113037971A CN202110234779.3A CN202110234779A CN113037971A CN 113037971 A CN113037971 A CN 113037971A CN 202110234779 A CN202110234779 A CN 202110234779A CN 113037971 A CN113037971 A CN 113037971A
- Authority
- CN
- China
- Prior art keywords
- model
- module
- warp
- video
- image
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/268—Signal distribution or switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- 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
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
-
- 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)
- Signal Processing (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种多路视频进行多AI模型并行处理的方法,通过POE路由器与多个摄像头相连,POE路由器与视频服务器相连,视频服务器包括AI管理模块,通过POE路由器接入多路视频数据,每一路视频数据与多模型进行绑定,通过AI管理模块进行AI模型的管理调用,从而达到每一路视频都能进行多模型检测的目的。本发明的有益效果是:本发明能够自动添加摄像头,自动化程度高;通过GPU直接参于数据拉流,提高任务处理效率;通过AI管理模块让AI模型可灵活增加、灵活配置,提高开发效率、便于维护;利用并发的机制把所有资源利用起来,达到硬件资源利用的最大化。
Description
技术领域
本发明涉及视频处理技术领域,尤其涉及一种多路视频进行多AI模型并行处理的方法。
背景技术
现有的视频处理技术,自动化程度低,开发效率低,硬件资源利用无法最大化,并且后期的维护也不方便,给用户带来了极大的烦恼。
发明内容
本发明提供了一种多路视频进行多AI模型并行处理的方法,通过POE路由器与多个摄像头相连,POE路由器与视频服务器相连,视频服务器包括AI管理模块,通过POE路由器接入多路视频数据,每一路视频数据与多模型进行绑定,通过AI管理模块进行AI模型的管理调用,从而达到每一路视频都能进行多模型检测的目的。
作为本发明的进一步改进,采用onvif协议定时检测所有接入到POE路由器的摄像头的信息,采用GetStreamUri命令获取视频信息,获取的视频信息包含onvif协议提供的RTSP地址,根据获取到的视频信息后台自动添加摄像头。
作为本发明的进一步改进,对于不支持或者默认关闭ONVIF协议的摄像头,采取主动扫描内网相同网段的所有IP,按照指定格式尝试通讯,如得到应答则寻找摄像头成功,保存此摄像头信息到视频服务器数据库。
作为本发明的进一步改进,视频服务器还包括GPU,在CPU中申请2块属于DMA的内存池,通过内存映射存储视频数据;CPU触发DMA控制器进行传输,通过PCIE传输到GPU中,GPU收到之后接着进行编码、AI识别处理。
作为本发明的进一步改进,AI管理模块包括外部调用API模块、图像编码模块、图像提取模块、AI通用管理模块、AI识别模块,
外部调用API模块:用于提供给到外部模块使用的API,识别图像的传入、运算结果的输出;
图像编码模块:用于把图像转换为AI通用模型需要的图像格式;
图像提取模块:用于根据AI识别结果,提取对应的图像数据;
AI通用管理模块:用于管理各个AI模型的优先级、运行频率、开关;
AI识别模块:用于实现对接自身模型的调用、后处理,把结果反馈到管理模块中。
作为本发明的进一步改进,AI加速框架采用CUDA的软件设计框架,并且根据warp大小按整数倍速分配block所包含的线程数。
作为本发明的进一步改进,按照warp大小特性整数倍生成子任务,然后把相同计算路径的thread放到同一个warp中。
作为本发明的进一步改进,根据warp的运算内容给SM分配不同数量的warp数量,以达到高效率利用。
作为本发明的进一步改进,计算显卡设备型号对应的性能,匹配好每个SM需要的warp个数,以达到可以满足SM不间断运行的条件。
本发明的有益效果是:本发明能够自动添加摄像头,自动化程度高;通过GPU直接参于数据拉流,提高任务处理效率;通过AI管理模块让AI模型可灵活增加、灵活配置,提高开发效率、便于维护;利用并发的机制把所有资源利用起来,达到硬件资源利用的最大化。
附图说明
图1是本发明的原理框图;
图2是自动添加摄像头的流程图;
图3是GPU直接参于数据拉流的示意图;
图4是AI管理模块的原理框图;
图5是CUDA的软件设计框架示意图;
图6是执行流程图。
具体实施方式
如图1所示,本发明公开了一种多路视频进行多AI模型并行处理的方法,通过POE路由器与多个摄像头相连,POE路由器与视频服务器相连,视频服务器包括AI管理模块(AIManager),通过POE路由器接入多路视频数据,每一路视频数据与多模型进行绑定,通过AI管理模块进行AI模型的管理调用,从而达到每一路视频都能进行多模型检测的目的。
POE路由器还由内网PC端电脑相连,内网PC端电脑与电屏幕电视相连。
本发明能够实现摄像头的自动添加,具体技术方案为:采用onvif协议定时检测所有接入到POE路由器的摄像头的信息;采用GetStreamUri命令获取视频信息,获取的视频信息包含onvif协议提供的RTSP地址;根据获取到的视频信息后台自动添加摄像头。
如图2所示为自动添加摄像头的流程图。
本发明内置了一些市面上常用的摄像头厂家RTSP格式固定拉流方法,尝试自动发现:对于一些不支持或者默认关闭ONVIF协议的摄像头,本发明采取主动扫描内网相同网段的所有IP,按照指定格式尝试通讯,如得到应答则寻找摄像头成功,保存此摄像头信息到视频服务器数据库。目前内置的格式如:
本发明能够实现GPU直接参于数据拉流,具体技术方案为:
一般情况下数据接流会用CPU来做,但本发明用GPU来做,GPU是专业处理图像的模块,处理数据比CPU快好多倍,所以软件设计都会把繁琐的数据交由GPU处理,提高任务处理效率,让出CPU做其他工作。
如图3所示,本发明在CPU申请了2大块属于DMA的内存池,通过内存映射可以存储视频数据。CPU触发DMA控制器进行传输,通过PCIE传输到GPU中,GPU收到之后接着进行编码、AI识别等处理。
本发明的AI管理模块让AI模型可灵活增加、灵活配置。
AI智能算法多种多样,每个时刻不同客户要求的做法以及习惯可能都不一样,并且经常会变更需求,为了提高开发效率、便于维护,本发明设计了AI管理模块,如图4所示,AI管理模块是通用的管理模型框架,框架里面包括外部调用API模块、图像编码模块、图像提取模块、AI通用管理模块、AI识别模块。
外部调用API模块:主要是提供给到外部模块使用的API,识别图像的传入、运算结果的输出。
图像编码模块:主要是把图像转换为AI通用模型需要的图像格式。
图像提取模块:主要是根据AI识别结果,提取对应的图像数据。
AI通用管理模块:用于管理各个AI模型的优先级、运行频率、开关等。
AI识别模块:主要实现对接自身模型的调用、后处理,把结果反馈到管理模块中。
配合AI模型管理***,在管理***配置摄像头与AI模型的关系,管理模块根据此配置关系进行AI模型的调用,模型调整时,只需要在管理***增加、减少模型、或者配置不同摄像头开启关闭对应AI模型调用,即可实现灵活调整,减少***架构修改。
本发明实现了单AI模型的多线程调用,具体技术方案为:要达到硬件资源利用的最大化,就是要减少GPU工作的空闲状态时间,利用并发的机制把所有资源利用起来。
一般情况,AI加速框架会以NVDIA公司的CUDA加速为基础,在这个基础上进行大量运算,如图5所示,CUDA的软件设计框架如此,一个kernel程式会有一个grid,grid底下又有数个block,每个block是一个thread群组,多个thread组成一个线程块block,多个block又组成一个线程网格grid,我们需要合理管理如此多的资源才能最大程度上发挥CUDA的效率。
经过改良,采用并发机制,本发明从以下三个方面来管理CUDA的资源:
1.独特的block线程数分配机制:根据warp大小按整数倍速分配block所包含的线程数。一个warp中的线程必然在同一个block中,如果block所含线程数目不是warp大小的整数倍,那么多出的那些thread所在的warp中,会剩余一些inactive的thread,也就是说,即使凑不够warp整数倍的thread,硬件也会为warp凑足,只不过那些thread是inactive状态,即使这部分thread是inactive的,也会消耗SM资源。所以本发明分配block所含线程数目是warp大小的整数倍。
2.统一warp计算类型的机制:同一个warp中存放相同类型计算的线程thread,所有同一个warp中的thread必须执行相同的指令,那么如果这些线程在遇到控制流语句时,如果进入不同的分支,那么同一时刻除了正在执行的分支之外,其余分支都被阻塞了,十分影响性能。为了获得最好的性能,本发明在程序设计的时候,都会避免同一个warp存在不同的执行路径。
所以本发明设计的思路是,首先按照warp大小特性整数倍生成子任务,然后把相同计算路径的thread放到同一个warp中。
3.优化warp数量机制:根据warp的运算内容给SM(Streaming Multiprocessors)分配不同数量的warp数量,以达到高效率利用。
CUDA采用Single Instruction Multiple Thread(SIMT)的架构来管理和执行thread,这些thread以多个(与GPU型号有关)为单位组成一个单元,称作warp。
CUDA中WARP是最小运算单元,warp可以被分为下面三类:
A)Selected warp
B)Stalled warp
C)Eligible warp
SM(Streaming Multiprocessors)中warp调度器每个运行时钟周期会挑选warp送去执行,一个被选中的warp称为selected warp,没被选中,但是已经做好准备被执行的称为Eligible warp,没准备好要执行的称为Stalled warp。
所以总结warp适合执行需要满足下面两个条件:
A)warp中所有thread对应的CUDA核有空;
B)所有当前指令的参数都准备就绪。
图6是一个简单的执行流程,横坐标为时间,warp0执行完成或者阻塞时,会自动执行其他的warp,当warp0变为Eligible状态时重新执行,执行其他warp的时候由于资源没有准备及时,导致有有一个SM中处于空闲状态(如下图白色框)。
以上情况会导致CUDA资源得不到充分的利用,降低效率,主要原因是每个warp都需要从显存获取数据或者按照CPU分配的算术指令参数准备好运行环境,如果资源不能及时就绪,就会导致SM中有空闲的状态。所以本发明设计的时候会计算显卡设备型号对应的性能,匹配好每个SM需要的warp个数,以达到可以满足SM不间断运行的条件。
利用如下公式可以比较准确地评估用于latency的active warps的数量
Number of Required Warps=Latency×Tbrougbput
指令从开始到结束消耗的时钟周期数称为指令的Latency,throughput(吞吐量)定义为每个SM每个时钟周期的操作数目,本发明把优化方案分为按照warp运行的内容如下两种情况:
一、算术运算
对于算术运算来说,并行性可以表示为用来运算操作的数目。下表显示了两款显卡相关数据,这里是以(a+b*c)作为操作的例子。不同的算数指令,throughput也是不同的。
这里的throughput定义为每个SM每个cycle的操作数目。由于每个warp执行同一种指令,因此每个warp对应32个操作。所以,对于Fermi来说,每个SM需要640/32=20个warp来保持计算资源的充分利用。
二、显存操作
对于显存操作,并行性可以表示为每个时钟周期的字节存取数目,下图是两款显卡的对比参数
有了以上数据,本发明就可以做一些评估计算,以Fermi为例,假设每个thread的任务是将一个float(4个字节)类型的数据从global memory移至SM用来计算,就需要大约579个warp来保持计算资源的充分利用。
综上,本发明能够自动添加摄像头,自动化程度高;通过GPU直接参于数据拉流,提高任务处理效率;通过AI管理模块让AI模型可灵活增加、灵活配置,提高开发效率、便于维护;利用并发的机制把所有资源利用起来,达到硬件资源利用的最大化。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种多路视频进行多AI模型并行处理的方法,其特征在于:通过POE路由器与多个摄像头相连,POE路由器与视频服务器相连,视频服务器包括AI管理模块,通过POE路由器接入多路视频数据,每一路视频数据与多模型进行绑定,通过AI管理模块进行AI模型的管理调用,从而达到每一路视频都能进行多模型检测的目的。
2.根据权利要求1所述的方法,其特征在于:采用onvif协议定时检测所有接入到POE路由器的摄像头的信息,采用GetStreamUri命令获取视频信息,获取的视频信息包含onvif协议提供的RTSP地址,根据获取到的视频信息后台自动添加摄像头。
3.根据权利要求1所述的方法,其特征在于:对于不支持或者默认关闭ONVIF协议的摄像头,采取主动扫描内网相同网段的所有IP,按照指定格式尝试通讯,如得到应答则寻找摄像头成功,保存此摄像头信息到视频服务器数据库。
4.根据权利要求1所述的方法,其特征在于:视频服务器还包括GPU,在CPU中申请2块属于DMA的内存池,通过内存映射存储视频数据;CPU触发DMA控制器进行传输,通过PCIE传输到GPU中,GPU收到之后接着进行编码、AI识别处理。
5.根据权利要求1所述的方法,其特征在于:AI管理模块包括外部调用API模块、图像编码模块、图像提取模块、AI通用管理模块、AI识别模块,外部调用API模块:用于提供给到外部模块使用的API,识别图像的传入、运算结果的输出;
图像编码模块:用于把图像转换为AI通用模型需要的图像格式;
图像提取模块:用于根据AI识别结果,提取对应的图像数据;
AI通用管理模块:用于管理各个AI模型的优先级、运行频率、开关;
AI识别模块:用于实现对接自身模型的调用、后处理,把结果反馈到管理模块中。
6.根据权利要求1所述的方法,其特征在于:AI加速框架采用CUDA的软件设计框架,并且根据warp大小按整数倍速分配block所包含的线程数。
7.根据权利要求6所述的方法,其特征在于:按照warp大小特性整数倍生成子任务,然后把相同计算路径的thread放到同一个warp中。
8.根据权利要求7所述的方法,其特征在于:根据warp的运算内容给SM分配不同数量的warp数量,以达到高效率利用。
9.根据权利要求8所述的方法,其特征在于:计算显卡设备型号对应的性能,匹配好每个SM需要的warp个数,以达到可以满足SM不间断运行的条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110234779.3A CN113037971B (zh) | 2021-03-03 | 2021-03-03 | 一种多路视频进行多ai模型并行处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110234779.3A CN113037971B (zh) | 2021-03-03 | 2021-03-03 | 一种多路视频进行多ai模型并行处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113037971A true CN113037971A (zh) | 2021-06-25 |
CN113037971B CN113037971B (zh) | 2023-03-24 |
Family
ID=76465761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110234779.3A Active CN113037971B (zh) | 2021-03-03 | 2021-03-03 | 一种多路视频进行多ai模型并行处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113037971B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115439787A (zh) * | 2022-09-07 | 2022-12-06 | 长扬科技(北京)股份有限公司 | 粮库的ai视觉检测方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090245268A1 (en) * | 2008-03-31 | 2009-10-01 | Avp Ip Holding Co., Llc | Video Router and Method of Automatic Configuring Thereof |
CN202949504U (zh) * | 2012-11-22 | 2013-05-22 | 深圳市智美达科技有限公司 | PoE无线网络硬盘录像一体机 |
CN205647777U (zh) * | 2016-03-30 | 2016-10-12 | 苏州悦善信息科技有限公司 | 一种企业会议多媒体网络通讯架构 |
CN205881409U (zh) * | 2016-07-21 | 2017-01-11 | 深圳市创品新媒体科技有限公司 | 一种带nvr、poe、路由功能的多功能壁挂广告机 |
US20200099896A1 (en) * | 2010-11-05 | 2020-03-26 | Razberi Technologies, Inc. | System and method for a security system |
-
2021
- 2021-03-03 CN CN202110234779.3A patent/CN113037971B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090245268A1 (en) * | 2008-03-31 | 2009-10-01 | Avp Ip Holding Co., Llc | Video Router and Method of Automatic Configuring Thereof |
US20200099896A1 (en) * | 2010-11-05 | 2020-03-26 | Razberi Technologies, Inc. | System and method for a security system |
CN202949504U (zh) * | 2012-11-22 | 2013-05-22 | 深圳市智美达科技有限公司 | PoE无线网络硬盘录像一体机 |
CN205647777U (zh) * | 2016-03-30 | 2016-10-12 | 苏州悦善信息科技有限公司 | 一种企业会议多媒体网络通讯架构 |
CN205881409U (zh) * | 2016-07-21 | 2017-01-11 | 深圳市创品新媒体科技有限公司 | 一种带nvr、poe、路由功能的多功能壁挂广告机 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115439787A (zh) * | 2022-09-07 | 2022-12-06 | 长扬科技(北京)股份有限公司 | 粮库的ai视觉检测方法、装置、电子设备及存储介质 |
CN115439787B (zh) * | 2022-09-07 | 2023-08-04 | 长扬科技(北京)股份有限公司 | 粮库的ai视觉检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113037971B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A framework for partitioning and execution of data stream applications in mobile cloud computing | |
US10733019B2 (en) | Apparatus and method for data processing | |
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和*** | |
US10754657B1 (en) | Computer vision processing in hardware data paths | |
US20160210721A1 (en) | Graph-based application programming interface architectures with equivalency classes for enhanced image processing parallelism | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
US11941514B2 (en) | Method for execution of computational graph in neural network model and apparatus thereof | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配***和方法 | |
CN114118433A (zh) | 一种设备的配置参数的推荐方法及装置 | |
CN113037971B (zh) | 一种多路视频进行多ai模型并行处理的方法 | |
CN110187970A (zh) | 一种基于Hadoop MapReduce的分布式大数据并行计算方法 | |
CN113342485A (zh) | 任务调度方法、装置、图形处理器、计算机***及存储介质 | |
WO2022160628A1 (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
CN117076133B (zh) | 云游戏平台异构资源分配方法、计算机装置及存储介质 | |
CN113434303A (zh) | 批处理的遥感影像智能处理模型预测性能优化***及方法 | |
CN111443898A (zh) | 基于优先级队列与有限状态机的流程式控制软件设计方法 | |
CN109408230B (zh) | 基于能耗优化的Docker容器部署方法及*** | |
CN116795503A (zh) | 任务调度方法、任务调度装置、图形处理器及电子设备 | |
US20140189298A1 (en) | Configurable ring network | |
CN113923212B (zh) | 一种网络数据包处理方法和装置 | |
US20240045673A1 (en) | Method and system for hybrid pipelined-data flow packet processing | |
US20230111051A1 (en) | Virtualization method, device, board card and computer readable storage medium | |
CN109460254B (zh) | 一种指令处理方法、cpu交互***及采用该***的耗材芯片 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230817 Address after: 518000 room 1004, block B, building 1, Shenzhen International Innovation Valley, dashiyi Road, Xili community, Xili street, Nanshan District, Shenzhen, Guangdong Patentee after: Shenzhen Haoke Zhilian Technology Co.,Ltd. Address before: 518000 1003-1004, block B, building 1, Shenzhen International Innovation Valley, Dali community, Xili street, Nanshan District, Shenzhen City, Guangdong Province Patentee before: Shenzhen Haoke Electronics Co.,Ltd. |