CN111897634A - 算子的运行方法及装置、存储介质、电子装置 - Google Patents
算子的运行方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN111897634A CN111897634A CN202010641902.9A CN202010641902A CN111897634A CN 111897634 A CN111897634 A CN 111897634A CN 202010641902 A CN202010641902 A CN 202010641902A CN 111897634 A CN111897634 A CN 111897634A
- Authority
- CN
- China
- Prior art keywords
- target
- operators
- task
- operator
- tasks
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 72
- 238000001514 detection method Methods 0.000 claims description 64
- 230000033001 locomotion Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种算子的运行方法及装置、存储介质、电子装置,上述方法包括:获取目标跟踪算法中待运行的M个算子,M为大于1的整数;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子,即可以根据目标跟踪算法的待运行算子需要,将待运行算子设置在任务管理器中处于空闲状态的任务中,进而通过硬件管理器的芯片核心并行运行处于空闲状态的任务中的待运行算子,采用上述技术方案,解决了相关技术中,算法无法并行处理且算法无法有效部署到芯片核心等问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种算子的运行方法及装置、存储介质、电子装置。
背景技术
随着计算机图形学、人工智能、机器学习、物联网等技术的极大发展,基于网络视频流的周界入侵检测越发成为相关领域的研究热点。基于网络视频流的周界入侵检测,是指在网络摄像机(IP camera,简称IPC)监控的范围内,根据设置的监控条件及报警区域,对进入报警区域目标的运动轨迹及行为进行检测,只要进入区域目标符合前述设置报警条件,就会自动触发IPC的自动报警并进行上报。
在相关技术中,提供了一种利用实时视频流实现报警的方法:首先利用目标检测(Object Detection)捕获视频流中目标,然后使用三帧逐差法获取前景图像及提取每一个运动目标的轮廓进而对每一个目标进行跟踪(Object Tracktion),若目标轨迹及行为符合前述设置的报警规则,则触发报警,该发明能有效实现对感兴趣目标区域的监控及报警。
但相关技术中视频流数据只能经过的算法(例如检测、跟踪等算法)串行连接,无法在多核芯片设备上有效实现并行处理,降低了整个处理框架的吞吐量。由于当前多数芯片具备多个计算核心,该算法无法根据当前所有核的计算负载来将需要进行的算法部署到合适的计算核上,无法最大程度利用芯片计算能力。
针对相关技术中,算法无法并行处理且算法无法有效部署到芯片核心等问题,尚未提出有效的技术方案。
发明内容
本发明实施例提供了一种算子的运行方法及装置、存储介质、电子装置,以至少解决相关技术中算法无法并行处理且算法无法有效部署到芯片核心等题等问题。
本发明实施例提供了一种算子的运行方法,包括:获取目标跟踪算法中待运行的M个算子,M为大于1的整数;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
可选地,获取目标跟踪算法的M个算子,包括:获取目标跟踪算法中待运行的M1个目标检测算子,其中,所述目标检测算子用于从视频数据中检测出目标;获取目标跟踪算法中待运行的M2个目标跟踪算子,其中,所述目标跟踪算子用于对检测出的目标进行跟踪,以得到跟踪结果;获取目标跟踪算法中待运行的告警算子,其中,所述告警算子用于判断所述跟踪结果是否满足告警规则,其中,所述M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子和所述告警算子。
可选地,获取目标跟踪算法的M个算子,包括:获取目标跟踪算法中待运行的M3个运动检测算子,其中,所述运动检测算子用于将静止时间超过预设阈值的目标从检测出的目标中删除,M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子,所述M3个运动检测算子和所述告警算子。
可选地,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,包括:轮询所述任务管理器中所述任务所对应的第一目标标识,其中,在所述第一目标标识为第一值的情况下,第一目标标识对应的任务为空闲状态,在所述第一目标标识为第二值的情况下,第一目标标识对应的任务为忙碌状态;确定第一目标标识为第一值的L个任务;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中。
可选地,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中之后,所述方法还包括:接收控制指令;响应所述控制指令,设置所述任务管理器中的任务在目标时刻对任务中的算子是否进行处理。
可选地,响应所述控制指令,设置所述任务管理器中的任务在目标时刻对任务中的算子是否进行处理,包括:响应所述控制指令,设置所述任务的第二目标标识的值,其中,在所述第二目标标识为第三值的情况下,允许在目标时刻对第二目标标识对应任务中的算子进行处理,在所述第二目标标识为第四值的情况下,在目标时刻对第二目标标识对应任务中的算子不进行处理。
可选地,上述方法还包括:将所述任务管理器与其他P个任务管理器组成集群,以使所述硬件管理器和所述其他P个任务管理器对应的硬件管理器的资源共享。
根据本发明的另一个实施例,还提供了一种算子的运行装置,包括:获取模块,用于获取目标跟踪算法中待运行的M个算子,M为大于1的整数;设置模块,用于将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;调用模块,用于调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
可选地,获取模块,还用于获取目标跟踪算法中待运行的M1个目标检测算子,其中,所述目标检测算子用于从视频数据中检测出目标;获取目标跟踪算法中待运行的M2个目标跟踪算子,其中,所述目标跟踪算子用于对检测出的目标进行跟踪,以得到跟踪结果;获取目标跟踪算法中待运行的告警算子,其中,所述告警算子用于判断所述跟踪结果是否满足告警规则,其中,所述M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子和所述告警算子。
可选地,获取模块,还用于获取目标跟踪算法中待运行的M3个运动检测算子,其中,所述运动检测算子用于将静止时间超过预设阈值的目标从检测出的目标中删除,M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子,所述M3个运动检测算子和所述告警算子。
可选地,设置模块,还用于轮询所述任务管理器中所述任务所对应的第一目标标识,其中,在所述第一目标标识为第一值的情况下,第一目标标识对应的任务为空闲状态,在所述第一目标标识为第二值的情况下,第一目标标识对应的任务为忙碌状态;确定第一目标标识为第一值的L个任务;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中。
可选地,上述装置还包括:接收模块,用于接收控制指令;响应模块,用于响应所述控制指令,设置所述任务管理器中的任务在目标时刻对任务中的算子是否进行处理。
可选地,响应模块,还用于响应所述控制指令,设置所述任务的第二目标标识的值,其中,在所述第二目标标识为第三值的情况下,允许在目标时刻对第二目标标识对应任务中的算子进行处理,在所述第二目标标识为第四值的情况下,在目标时刻对第二目标标识对应任务中的算子不进行处理。
可选地,上述装置还包括:共享模块,用于将所述任务管理器与其他P个任务管理器组成集群,以使所述硬件管理器和所述其他P个任务管理器对应的硬件管理器的资源共享。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,获取目标跟踪算法中待运行的M个算子,M为大于1的整数;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子,即可以将待运行算子设置在任务管理器中处于空闲状态的任务中,进而通过硬件管理器的芯片核心并行运行处于空闲状态的任务中的待运行算子,采用上述技术方案,解决了相关技术中,算法无法并行处理且算法无法有效部署到芯片核心等问题,进而通过算法中算子的并行运行,提高整体框架的实时吞吐率,减少了不必要计算,最大程度利用了硬件芯片的计算能力,降低了后续环节计算量,提高了算法处理效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的一种算子的运行方法的芯片的硬件结构框图;
图2为根据本发明实施例的算子的运行方法的流程图;
图3为根据本发明可选实施例的一种算子的运行方法的流程图示意图;
图4为根据本发明可选实施例的计算资源共享的拓扑图的结构示意图;
图5是根据本发明实施例的算子的运行装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在芯片、计算机终端或者类似的运算装置中执行。以运行在芯片上为例,图1是本发明实施例的一种算子的运行方法的芯片的硬件结构框图。如图1所示,芯片10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述芯片还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述芯片的结构造成限定。例如,芯片还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种算子的运行方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至芯片。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括芯片的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述芯片的一种算子的运行方法,图2为根据本发明实施例的算子的运行方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取目标跟踪算法中待运行的M个算子,M为大于1的整数;
步骤S204,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;
步骤S206,调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
通过本发明,获取目标跟踪算法中待运行的M个算子;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中;调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子,即可以根据目标跟踪算法的待运行算子需要,将待运行算子设置在任务管理器中处于空闲状态的任务中,进而通过硬件管理器的芯片核心并行运行处于空闲状态的任务中的待运行算子,采用上述技术方案,解决了相关技术中,算法无法并行处理且算法无法有效部署到芯片核心等问题,进而通过算法中算子的并行运行,提高整体框架的实时吞吐率,减少了不必要计算,最大程度利用了硬件芯片的计算能力,降低了后续环节计算量,提高了算法处理效率。
上述步骤S202的获取目标跟踪算法的M个算子的方式有多种,在一个可选实施例中,可以通过以下方案实现:获取目标跟踪算法中待运行的M1个目标检测算子,其中,目标检测算子用于从视频数据中检测出目标;获取目标跟踪算法中待运行的M2个目标跟踪算子,其中,目标跟踪算子用于对检测出的目标进行跟踪,以得到跟踪结果;获取目标跟踪算法中待运行的告警算子,其中,告警算子用于判断跟踪结果是否满足告警规则,其中,M个算子包括:M1个目标检测算子,M2个目标跟踪算子和告警算子。
也就是说,给予上述确定M个算子的技术方案,在本发明实施例中,可以将目标跟踪算法中待运行的目标检测算子从视频数据中检测出目标,同时利用目标跟踪算法中待运行的目标跟踪算子对目标进行跟踪,生成目标所对应的跟踪结果,进而由目标跟踪算法中的告警算子根据跟踪结果判断跟踪结果是否满足告警规则,当满足告警规则时触发报警并上报系统,当不满足告警规则时,继续进行对视频数据中目标的检测和跟踪。
可选地,获取目标跟踪算法的M个算子,包括:获取目标跟踪算法中待运行的M3个运动检测算子,其中,运动检测算子用于将静止时间超过预设阈值的目标从检测出的目标中删除,M个算子包括:M1个目标检测算子,M2个目标跟踪算子,M3个运动检测算子和告警算子。
简而言之,为了提高目标跟踪算法的处理效率,还可以根据目标跟踪算法中待运行的运动检测算子,将通过目标检测算子从视频数据中检测出的目标中静止时间超过预设阈值的目标从检测结果中删除,需要说明的是,静止时间的预设阈值是根据对视频数据的检测需求设置的,便于目标跟踪算法更好的根据目标跟踪算子对目标进行跟踪,本发明对此不做过多限定。
可选地,将M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,包括:轮询任务管理器中任务所对应的第一目标标识,其中,在第一目标标识为第一值的情况下,第一目标标识对应的任务为空闲状态,在第一目标标识为第二值的情况下,第一目标标识对应的任务为忙碌状态;确定第一目标标识为第一值的L个任务;将M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中。
也就是说,根据第一目标标识所对应值的情况,可以判断出轮询任务管理器中任务所对应的状态,例如,当第一目标标识为第一值对应任务为空闲状态;当第一目标标识为第二值对应任务为忙碌状态;从而可以根据确定第一目标标识为第一值的多个任务;将算子中的部分或全部算子设置在任务管理器中处于空闲状态的任务中,可选地,第一值为1,第二值为0。
可选地,将M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中之后,上述方法还包括:接收控制指令;响应控制指令,设置任务管理器中的任务在目标时刻对任务中的算子是否进行处理。
即任务管理器在接收到控制指令后,响应控制指令,设置任务管理器中的任务在目标时刻对任务中的算子是否进行处理,目标时刻便是任务处于空闲状态的时刻,进而根据已经完成的设置,执行对任务中的算子的处理。
可选地,响应控制指令,设置任务管理器中的任务在目标时刻对任务中的算子是否进行处理,包括:响应控制指令,设置任务的第二目标标识的值,其中,在第二目标标识为第三值的情况下,允许在目标时刻对第二目标标识对应任务中的算子进行处理,在第二目标标识为第四值的情况下,在目标时刻对第二目标标识对应任务中的算子不进行处理。
也就是说,在响应控制指令,设置任务管理器中的任务在目标时刻对任务中的算子是否进行处理后,可以根据设置任务的第二目标标识的值来进行进一步的处理判断,当第二目标标识为第三值时表明允许在目标时刻对第二目标标识对应任务中的算子进行处理;当出现第二目标标识为第四值的情况,说明在目标时刻对第二目标标识对应任务中的算子不进行处理,可选地,第三值为1,第四值为0。
需要说明的是,上述通过目标标识(包括第一目标标识,或第二目标标识)的值来确定对应的处理方法,是在目标跟踪算法预先配置好的,也可以设置为其他值来确定任务中的算子处理方案,本发明对此不作过多限定。
可选地,上述方法还包括:将任务管理器与其他P个任务管理器组成集群,以使硬件管理器和其他P个任务管理器对应的硬件管理器的资源共享。
例如,如图4所示,设备的三个任务管理器之间互相联结形成集群(设备的数目仅仅是示意性的),各个设备之间的任务管理器之间互相共享当前设备运行状态,当有设备处于空闲状态时可以将其它设备上部分计算任务均衡到该设备上,实现资源的有效利用。同时,如果需要增加集群的运算能力则只需动态增加计算结点设备,易于扩展。
以下结合几个可选实施例对上述一种算子的运行方法流程进行解释说明,但不用于限定本发明实施例的技术方案。
图3为本发明可选实施例的一种算子的运行方法的流程图示意图,如图3所示,包括以下步骤:
步骤S1、外部输入实时视频流(相当于本发明实施例中的视频数据)作为数据输入到目标检测结点,该目标检测可以适用于可见光及红外光输入数据的检测,该结点当中包含n个目标检测算子可以满足处理n路输入的视频数据,该结点从实时视频流中检测出目标{od1,od2,od3,...odα}。
步骤S2、该结点从S1中获取目标检测结果{od1,od2,od3,...odα},根据历史帧数据对S1中检测出目标进行跟踪,同样此处为了应对n路的检测目标结果,该节点包含了n路目标跟踪算子,经过运算后得到跟踪结果{ot1,ot2,ot3,...otβ}。
步骤S3、该结点从S2处获取n路的检测目标{ot1,ot2,ot3,...otβ},通过运动检测算子,再次对目标进行运动检测,对其中长时间不运动的目标进行过滤得到结果{om1,om2,om3,...omχ},该步骤提高了检测精度,减少了不必要计算,降低了后续环节计算量。
步骤S4、对S3过滤后送入的目标{om1,om2,om3,...omχ}根据设定报警规则(相当于本发明实施例中的告警规则),进行判断得到结果{alert1,alert2,alert3,...alertδ},当满足告警规则时同时触发报警并上报系统。
可选的,S4还将根据报警效果对一些运行参数(如,灵敏度,时间间隔,检测数目上限等)进行自适应调整。并且随着设备运行通过深度学习不断完善修正训练模型,从而提高前述的目标检测、目标跟踪,运动检测精度,最终提高系统整体的检测精度。
步骤S5、M1任务管理器,由于S1、S2、S3、S4需要进行的计算并不会直接部署到硬件芯片资源上,而是会先送到一个抽象的M1任务管理器,该任务管理器管理k个任务。第i个任务在时刻t的空闲状态为mi(t),mi(t)的值为1时表示忙碌,0时表示空闲。当S1-S4的算法有新算子任务进入M1时,任务管理器轮询mi(t)状态,若存在空闲的任务单元,则将新进入的算子部署在空闲任务单元上;否则,将待处理算子放入等待队列,等有空闲任务资源时再运行该队列中等待的算子。同时任务管理器控制是否对每一个流经算子的数据进行处理,Si(t)表示第i个任务在时刻t时是否需要进行处理,1表示该算子需要进行处理,0表示跳过该算子的处理且将算子输入数据作为输出结果返回。因此,可以在外部通过实时设置Si(t)来启用/关闭部分算法。灵活启用/关闭算法能够将该套解决方案部署到不同算力的硬件设备上,在算力较弱的硬件设备上可以通过关闭部分算法的手段使得该解决方案仍然可以运行,而无需做额外的代码开发工作。
步骤S6、M2任务管理器为硬件芯片管理器直接管理硬件芯片的计算核,该任务管理器将M1的任务部署到计算核心上。计算核心i在t时刻的负载状态为li(t),其取值范围为0%到100%。任务管理器会根据当前芯片各个核心的计算负载li(t)将新来的任务进行部署到合适的计算核心,若所有核心均处于繁忙状态则新任务进入等待队列,待后续核心计算资源空闲时再对等待队列中任务进行处理。在没有新任务进入且M2上当前运行着一些任务时,M2会根据当前所有计算核负载,均衡各个计算核负载水平,使得每个计算核均处于较为良好的运行状态。当某一硬件芯片核心运行任务失败时,M2硬件芯片管理器会重新将该任务下发到新的空闲硬件计算核上进行该任务,同时上报故障内核计算事件。
由于M1对所有计算任务进行了管理,此处可以对每一个任务的计算状态(耗时、资源占用率,实时运行状态)进行记录,便于外部对整个系统的问题调试及性能调优。
需要说明的是,由于5G技术的引入,物联网技术的成熟,本发明可选实施例还支持一定范围内集群设备的计算资源共享,图4为根据本发明可选实施例的计算资源共享的拓扑图的结构示意图,如4所示,该图中仅绘制了三个设备,应该理解,图4中数目仅仅是示意性的。根据实现需要,本发明可选实施例支持具有任意数目的设备进行范围内集群设备的计算资源共享。图4中三个设备之间互相联结形成集群,各个设备之间的M1任务调度管理器之间互相共享当前设备运行状态,当有设备处于空闲状态时可以将其它设备上部分计算任务均衡到该设备上,实现资源的有效利用。同时,如果需要增加集群的运算能力则只需动态增加计算结点设备,易于扩展。
本发明可选实施例中与现有技术相比,通过算法算子并行运行,增加了框架数据吞吐率;此外,通过增加运动检测环节,提高了检测精度,减少了不必要计算,降低了后续环节计算量;抽象硬件计算资源,提供间接层--任务管理器,能够根据芯片各计算核实时计算负载将新任务部署到最合适的核心运行,有效提高芯片运算能力的利用率。同时,任务管理器提供了外部对算法启用/关闭功能的支持;抽象任务管理器记录了每个部署任务的计算状态,便于外部对整个系统的错误调试及性能分析。
综上,本发明可选实施例所提到的根据目标跟踪算法的待运行算子需要,将待运行算子设置在任务管理器中处于空闲状态的任务中,进而通过硬件管理器的芯片核心并行运行处于空闲状态的任务中的待运行算子的技术方案,解决了算法无法并行处理且算法无法有效部署到芯片核心等问题,进而通过算法中算子的并行运行,提高整体框架的实时吞吐率,减少了不必要计算,最大程度利用了硬件芯片的计算能力,降低了后续环节计算量,提高了算法处理效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种算子的运行装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的算子的运行装置的结构框图,如图4所示,该装置包括:
获取模块50,用于获取目标跟踪算法中待运行的M个算子,M为大于1的整数;
确定模块52,用于将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;
调用模块54,用于调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
通过上述装置,获取目标跟踪算法中待运行的M个算子,M为大于1的整数;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子,即可以根据目标跟踪算法的待运行算子需要,将待运行算子设置在任务管理器中处于空闲状态的任务中,进而通过硬件管理器的芯片核心并行运行处于空闲状态的任务中的待运行算子,采用上述技术方案,解决了相关技术中,算法无法并行处理且算法无法有效部署到芯片核心等问题,进而通过算法中算子的并行运行,提高整体框架的实时吞吐率,减少了不必要计算,最大程度利用了硬件芯片的计算能力,降低了后续环节计算量,提高了算法处理效率。
可选地,获取模块,还用于获取目标跟踪算法中待运行的M1个目标检测算子,其中,所述目标检测算子用于从视频数据中检测出目标;获取目标跟踪算法中待运行的M2个目标跟踪算子,其中,所述目标跟踪算子用于对检测出的目标进行跟踪,以得到跟踪结果;获取目标跟踪算法中待运行的告警算子,其中,所述告警算子用于判断所述跟踪结果是否满足告警规则,其中,所述M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子和所述告警算子。
也就是说,给予上述确定M个算子的技术方案,在本发明实施例中,可以将目标跟踪算法中待运行的目标检测算子从视频数据中检测出目标,同时利用目标跟踪算法中待运行的目标跟踪算子对目标进行跟踪,生成目标所对应的跟踪结果,进而由目标跟踪算法中的告警算子根据跟踪结果判断跟踪结果是否满足告警规则,当满足告警规则时触发报警并上报系统,当不满足告警规则时,继续进行对视频数据中目标的检测和跟踪。
可选地,获取模块,还用于获取目标跟踪算法中待运行的M3个运动检测算子,其中,所述运动检测算子用于将静止时间超过预设阈值的目标从检测出的目标中删除,M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子,所述M3个运动检测算子和所述告警算子。
简而言之,为了提高目标跟踪算法的处理效率,还可以根据目标跟踪算法中待运行的运动检测算子,将通过目标检测算子从视频数据中检测出的目标中静止时间超过预设阈值的目标从检测结果中删除,需要说明的是,静止时间的预设阈值是根据对视频数据的检测需求设置的,便于目标跟踪算法更好的根据目标跟踪算子对目标进行跟踪,本发明对此不做过多限定。
可选地,设置模块,还用于轮询所述任务管理器中所述任务所对应的第一目标标识,其中,在所述第一目标标识为第一值的情况下,第一目标标识对应的任务为空闲状态,在所述第一目标标识为第二值的情况下,第一目标标识对应的任务为忙碌状态;确定第一目标标识为第一值的L个任务;将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中。
也就是说,根据第一目标标识所对应值的情况,可以判断出轮询任务管理器中任务所对应的状态,例如,当第一目标标识为第一值对应任务为空闲状态;当第一目标标识为第二值对应任务为忙碌状态;从而可以根据确定第一目标标识为第一值的多个任务;将算子中的部分或全部算子设置在任务管理器中处于空闲状态的任务中,可选地,第一值为1,第二值为0。
可选地,上述装置还包括:接收模块,用于接收控制指令;响应模块,用于响应所述控制指令,设置所述任务管理器中的任务在目标时刻对任务中的算子是否进行处理。
为了提高将子中的部分或全部算子设置在任务管理器中处于空闲状态的任务中的效率,任务管理器在接收到控制指令后,响应控制指令,设置任务管理器中的任务在目标时刻对任务中的算子是否进行处理,目标时刻便是任务处于空闲状态的时刻,进而根据已经完成的设置,执行对任务中的算子的处理。
可选地,响应模块,还用于响应所述控制指令,设置所述任务的第二目标标识的值,其中,在所述第二目标标识为第三值的情况下,允许在目标时刻对第二目标标识对应任务中的算子进行处理,在所述第二目标标识为第四值的情况下,在目标时刻对第二目标标识对应任务中的算子不进行处理。
也就是说,在响应控制指令,设置任务管理器中的任务在目标时刻对任务中的算子是否进行处理后,可以根据设置任务的第二目标标识的值来进行进一步的处理判断,当第二目标标识为第三值时表明允许在目标时刻对第二目标标识对应任务中的算子进行处理;当出现第二目标标识为第四值的情况,说明在目标时刻对第二目标标识对应任务中的算子不进行处理,可选地,第三值为1,第四值为0。
需要说明的是,上述通过目标标识(包括第一目标标识,或第二目标标识)的值来确定对应的处理方法,是在目标跟踪算法预先配置好的,也可以设置为其他值来确定任务中的算子处理方案,本发明对此不作过多限定。
可选地,上述装置还包括:共享模块,用于将所述任务管理器与其他P个任务管理器组成集群,以使所述硬件管理器和所述其他P个任务管理器对应的硬件管理器的资源共享。
例如,如图4所示,设备的三个任务管理器之间互相联结形成集群(设备的数目仅仅是示意性的),各个设备之间的任务管理器之间互相共享当前设备运行状态,当有设备处于空闲状态时可以将其它设备上部分计算任务均衡到该设备上,实现资源的有效利用。同时,如果需要增加集群的运算能力则只需动态增加计算结点设备,易于扩展。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取目标跟踪算法中待运行的M个算子,M为大于1的整数;
S2,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;
S3,调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取目标跟踪算法中待运行的M个算子,M为大于1的整数;
S2,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;
S3,调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种算子的运行方法,其特征在于,包括:
获取目标跟踪算法中待运行的M个算子,M为大于1的整数;
将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;
调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
2.根据权利要求1所述的方法,其特征在于,获取目标跟踪算法的M个算子,包括:
获取目标跟踪算法中待运行的M1个目标检测算子,其中,所述目标检测算子用于从视频数据中检测出目标;
获取目标跟踪算法中待运行的M2个目标跟踪算子,其中,所述目标跟踪算子用于对检测出的目标进行跟踪,以得到跟踪结果;
获取目标跟踪算法中待运行的告警算子,其中,所述告警算子用于判断所述跟踪结果是否满足告警规则,其中,所述M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子和所述告警算子。
3.根据权利要求2所述的方法,其特征在于,获取目标跟踪算法的M个算子,包括:
获取目标跟踪算法中待运行的M3个运动检测算子,其中,所述运动检测算子用于将静止时间超过预设阈值的目标从检测出的目标中删除,M个算子包括:所述M1个目标检测算子,所述M2个目标跟踪算子,所述M3个运动检测算子和所述告警算子。
4.根据权利要求1所述的方法,其特征在于,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,包括:
轮询所述任务管理器中所述任务所对应的第一目标标识,其中,在所述第一目标标识为第一值的情况下,第一目标标识对应的任务为空闲状态,在所述第一目标标识为第二值的情况下,第一目标标识对应的任务为忙碌状态;
确定第一目标标识为第一值的L个任务;
将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中。
5.根据权利要求1所述的方法,其特征在于,将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中之后,所述方法还包括:
接收控制指令;
响应所述控制指令,设置所述任务管理器中的任务在目标时刻对任务中的算子是否进行处理。
6.根据权利要求5所述的方法,其特征在于,响应所述控制指令,设置所述任务管理器中的任务在目标时刻对任务中的算子是否进行处理,包括:
响应所述控制指令,设置所述任务的第二目标标识的值,其中,在所述第二目标标识为第三值的情况下,允许在目标时刻对第二目标标识对应任务中的算子进行处理,在所述第二目标标识为第四值的情况下,在目标时刻对第二目标标识对应任务中的算子不进行处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述任务管理器与其他P个任务管理器组成集群,以使所述硬件管理器和所述其他P个任务管理器对应的硬件管理器的资源共享。
8.一种算子的运行装置,其特征在于,包括:
获取模块,用于获取目标跟踪算法中待运行的M个算子,M为大于1的整数;
设置模块,用于将所述M个算子中的部分或全部算子设置在任务管理器中处于空闲状态的L个任务中,其中,L为大于1的整数;
调用模块,用于调用所述空闲状态的L个任务,以通过硬件管理器的L个芯片核心并行运行所述部分或全部算子。
9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010641902.9A CN111897634A (zh) | 2020-07-06 | 2020-07-06 | 算子的运行方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010641902.9A CN111897634A (zh) | 2020-07-06 | 2020-07-06 | 算子的运行方法及装置、存储介质、电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111897634A true CN111897634A (zh) | 2020-11-06 |
Family
ID=73193009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010641902.9A Pending CN111897634A (zh) | 2020-07-06 | 2020-07-06 | 算子的运行方法及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897634A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631754A (zh) * | 2020-12-29 | 2021-04-09 | 浙江大华技术股份有限公司 | 数据处理方法、装置、存储介质及电子装置 |
CN113032611A (zh) * | 2021-03-12 | 2021-06-25 | 浙江大华技术股份有限公司 | 数据处理方法、目标追踪方法以及相关装置 |
WO2023178766A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京邮电大学 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117168A1 (en) * | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
CN104134222A (zh) * | 2014-07-09 | 2014-11-05 | 郑州大学 | 基于多特征融合的车流监控图像检测和跟踪系统及方法 |
CN107563310A (zh) * | 2017-08-16 | 2018-01-09 | 电子科技大学 | 一种违章变道检测方法 |
CN108363615A (zh) * | 2017-09-18 | 2018-08-03 | 清华大学无锡应用技术研究院 | 用于可重构处理系统的任务分配方法和系统 |
CN108805901A (zh) * | 2018-05-04 | 2018-11-13 | 北京航空航天大学 | 一种基于多核dsp的视觉目标快速检测跟踪并行计算及融合方法 |
CN109769115A (zh) * | 2019-01-04 | 2019-05-17 | 武汉烽火众智数字技术有限责任公司 | 一种优化智能视频分析性能的方法、装置和设备 |
CN109857549A (zh) * | 2019-01-04 | 2019-06-07 | 平安科技(深圳)有限公司 | 基于负载均衡的图像数据处理方法、系统、设备及介质 |
-
2020
- 2020-07-06 CN CN202010641902.9A patent/CN111897634A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117168A1 (en) * | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
CN104134222A (zh) * | 2014-07-09 | 2014-11-05 | 郑州大学 | 基于多特征融合的车流监控图像检测和跟踪系统及方法 |
CN107563310A (zh) * | 2017-08-16 | 2018-01-09 | 电子科技大学 | 一种违章变道检测方法 |
CN108363615A (zh) * | 2017-09-18 | 2018-08-03 | 清华大学无锡应用技术研究院 | 用于可重构处理系统的任务分配方法和系统 |
CN108805901A (zh) * | 2018-05-04 | 2018-11-13 | 北京航空航天大学 | 一种基于多核dsp的视觉目标快速检测跟踪并行计算及融合方法 |
CN109769115A (zh) * | 2019-01-04 | 2019-05-17 | 武汉烽火众智数字技术有限责任公司 | 一种优化智能视频分析性能的方法、装置和设备 |
CN109857549A (zh) * | 2019-01-04 | 2019-06-07 | 平安科技(深圳)有限公司 | 基于负载均衡的图像数据处理方法、系统、设备及介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631754A (zh) * | 2020-12-29 | 2021-04-09 | 浙江大华技术股份有限公司 | 数据处理方法、装置、存储介质及电子装置 |
CN113032611A (zh) * | 2021-03-12 | 2021-06-25 | 浙江大华技术股份有限公司 | 数据处理方法、目标追踪方法以及相关装置 |
WO2023178766A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京邮电大学 | 基于Flink引擎计算节点动态扩展的任务评价方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897634A (zh) | 算子的运行方法及装置、存储介质、电子装置 | |
KR102339239B1 (ko) | 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법 | |
US11558253B2 (en) | Data processing method and apparatus, and computing node for updating container images | |
EP3549312B1 (en) | A master node, a local node and respective methods performed thereby for predicting one or more metrics associated with a communication network | |
CN107479951B (zh) | 进程管控方法、装置、存储介质及电子设备 | |
WO2022045700A1 (en) | Method and apparatus for autoscaling containers in a cloud-native core network | |
CN113159145B (zh) | 一种特征工程编排方法及装置 | |
CN109981405B (zh) | 节点管理方法、装置及计算机可读存储介质 | |
CN115393781A (zh) | 视频监控数据的处理方法及装置 | |
CN111737075A (zh) | 执行顺序的确定方法及装置、存储介质、电子装置 | |
CN111294563B (zh) | 视频监控方法及装置、存储介质、电子装置 | |
CN106209412B (zh) | 资源监控系统与其方法 | |
CN111367828A (zh) | 内存压缩方法、装置、终端及存储介质 | |
WO2017140710A1 (en) | Detection of malware in communications | |
CN110913172B (zh) | 一种视频分析设备的管理方法及装置 | |
CN118170538A (zh) | 任务处理方法、物联网系统及计算机程序产品 | |
JP2022132078A (ja) | 機械学習モデル更新方法、コンピュータプログラムおよび管理装置 | |
CN112035311B (zh) | 一种程序逻辑监控方法及装置 | |
CN114253728B (zh) | 基于网页生态的异构多节点协同分布式神经网络部署系统 | |
Rexha et al. | Data collection and utilization framework for edge AI applications | |
CN110658769B (zh) | 一种机组监控系统及方法 | |
CN102238022A (zh) | 一种网络管理系统及数据采集方法 | |
CN112383686B (zh) | 视频处理方法、装置、存储介质及电子装置 | |
US12015564B2 (en) | Network management method and network entity | |
CN110851265B (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 |