基于目标检测模型的自适应实时学习任务调度方法

未命名 07-22 阅读:139 评论:0


1.本发明属于深度学习技术领域,具体涉及一种在资源受限的边缘平台上进行混合实时深度学习任务调度技术,特别是一种基于目标检测模型的自适应实时学习任务调度方法。


背景技术:

2.近年来,深度学习(dl)越来越多地被网络边缘的实时应用采用,例如自动驾驶,其中资源受限的边缘平台需要同时执行一组实时混合深度学习(dl)任务。这些任务在实时要求、模型准确性水平和资源需求方面存在很大差异。例如,(半)自动驾驶汽车必须满足紧迫的期限、低期限错过率和道路碰撞检测的高精确度,同时尽力处理其他任务,如司机语音控制的语音识别,语音识别业务的延时要求可适当放宽,通过设计并部署学习任务调度算法满足任务需求。由于深度神经网络模型的巨大计算工作量、不同任务的不同性能要求,以及现有dl框架缺乏实时支持,这种应用范例带来了重大挑战。
3.部分现有技术中,如只采用模型压缩、神经结构搜索已经被提出来用于在资源有限的边缘平台上及时地执行单一的dl任务。然而,与单个dl任务的执行不同,混合dl任务会导致资源争夺,这就会导致不可预测的响应时间。此外,目前的dl框架,如pytorch、tensorflow并没有很好地支持灵活的、基于优先级的实时调度;传统的实时调度方法将每个任务视为一个“黑盒子”,没有利用dl任务的独特特征。大多数主流的dnn模型表现出明显的可压缩性,而不同的dnn模型在模型精度和延迟之间的权衡是高度多样化的;边缘平台上的混合dl任务的实时性能高度依赖于任务调度策略,而仅仅基于优先级的调度不能有效地支持混合dl任务;充分利用dl任务的独特计算特性(如大量的cpu工作负荷和低的gpu利用率)对于提高边缘平台上多个dl任务的实时性能至关重要。


技术实现要素:

4.本发明旨在提供一种基于目标检测模型的自适应实时学习任务调度方法,对深度学习模型进行轻量化操作,在边缘系统的计算资源上实现自适应调度实时深度学习任务,满足任务的延时要求同时提高资源利用率。
5.技术方案:一种基于目标检测模型的自适应实时学习任务调度方法,包括如下步骤:
6.(1)目标检测模型的参数设置以及信息采集
7.包括确定需要检测的物体类别、调整输入图像/视频的大小和比例、部署网络模型、调整网络结构和超参数、调整训练策略和参数;信息采集包括采集设备信息、获取任务信息,并将该信息反馈给任务调度器;
8.(2)构建目标检测轻量化模型
9.包括针对实时边缘系统构建该目标检测轻量化模型的目标评价函数,并基于不同剪枝率的权值的评价分数构建分数矩阵;
10.模型轻量化的约束条件中,包括对分类数据流分支中的归一化指数函数层沿着纵向方向对剪枝候选权值进行评估,在分数矩阵中优先匹配最大公平的权值,还包括在自适应多实例细化分支中的分数矩阵中采用遗传算法选择当前符合系统利用率的最优解;
11.(3)设计自适应的实时调度方案
12.包括建立实时系统任务模型,定义实时系统任务逐层调度优化问题并且求解,得到实时系统任务逐层调度方案;
13.所述的自适应的实时调度方案中,允许dnn的每一层自由选择运行在cpu或gpu上以提高多任务的并行性和调度的灵活性;当初始化dnn任务时,调度程序为dnn的每一层分别生成生成适合在cpu和gpu上运行的代码和数据,并将每一层的元数据预加载到cpu和gpu内存中。
14.对于步骤(1),包括目标检测模型的设置和基本信息的采集,具体步骤如下:
15.(1.1)目标检测模型的设置
16.包括确定需要检测的物体类别,调整输入图像的大小和比例;还包括将输入图像的大小放大,以保证物体在图像中的尺寸与实际尺寸接近;最后确定网络结构和超参数。
17.(1.2)基本信息的采集:
18.采集设备信息:获取设备的计算资源情况,包括cpu、gpu和内存,并将这些信息反馈给任务调度器。获取任务信息:获取当前需要执行的任务信息,包括任务的优先级、紧急程度、预计执行时间等,并将这些信息反馈给任务调度器。
19.进一步的,步骤(2)中所述的目标评价函数如下:
[0020][0021][0022][0023]
在该优化模型中,通过准确率p、召回率r、平均进度均值map,以及帧率fps对模型进行定量评价检测效果。其中,tp表示图像正样本中被正确预测为正样本的数量,fn表示图像正样本被预测为负样本的数量,fp表示图像负样本被错误预测为正样本的数量,fps是衡量模型检测速度性能的指标。
[0024]
进一步的,步骤(2)所述的模型轻量化的约束条件具体考虑如下:
[0025]
xc∈rc×
|r|
表示的是第r个候选权值属于第c类的可能性;而检测数据流分支沿着候选区从队列中的候选权值文件进行打分选择,得到弱约束条件的新分数矩阵,其中xd∈rc×
|r|
表示第c类中第r个候选区域对图像被归类为第c类的贡献;其中c表示类别数,|r|表示候选区域个数;
[0026]
多实例检测分支分别从两个不同的维度评判候选区域的分类,保证实时任务调度算法的执行有效性;
[0027]
具体的得分矩阵公式定义如下所示:
[0028][0029][0030]
其中[σ
det
(xc)]
ij
表示第j个候选区域的第i类标签的预测,[σ
det
(xd)]
ij
表示第i类的第j个候选的权值;通过元素级乘积xr=σ
class
(xc)σ
det
(xd)得到每个候选区域的置信分数,根据图像级类别标签选出对应类别中置信分数最高的候选区域作为伪真值标签,用于监督后续训练;最后,对每个类别的候选区域求和y={y1,y2,...,yc},由得到图像级分类分数,并使用oicr中的多类交叉熵损失函数来训练实例分类器,表达式如下公式所示:
[0031][0032]
其中,yc∈[0,1]表示图像中是否包含第c类的任何实例。
[0033]
进一步的,所述方法包括通过损失函数提高复杂道路场景模型对于目标的检测率,且结合oicr中的多类交叉熵来计算目标框的定位损失,所述损失函数定义为:
[0034]
qfl(σ)=-|y-σ|
β
((1-y)lg(1-σ)+y lg(σ))
[0035]
其中σ表示预测,yc∈[0,1]表示图像中是否包含第c类的任何实例,|y-σ|
β
(β≥0)为缩放因子,表示距离绝对值的幂次函数,超参数β用于控制降权的速率;多实例目标检测中,候选框的重叠程度增加,当原始模型的分类损失函数进行nms后处理时,则全部的约束函数如下:
[0036][0037][0038][0039]
qfl(σ)=-|y-σ|
β
((1-y)lg(1-σ)+ylg(σ))。
[0040]
具体的,该方法在在自适应多实例细化分支中的分数矩阵中采用遗传算法选择当前符合系统利用率的最优解的过程表述如下:
[0041]
对原始的分数矩阵score[i]由小到大排序,依次编号为1,2,3
……
n,计算适应度score[i.fitness=a(1-a)
index-1
,其中a取值范围是剪枝比例,取值范围在(0,1),取index是第i个个体的排序序号;
[0042]
建立选择数组mfintness[popsize],循环统计从第1个个体到第i个个体适应度值
之和占所有个体适应度值总和的比例mfitness[i],以mfitness[i]作为选择依据
[0043][0044]
其中popsize为分数矩阵的分数个数,
[0045]
并循环产生随机数rp,当rp《mfitness[i]时,对应的个体复制到下一代中,直到生成y个中间群体,其中y《100;最终对新生成的子代群体进行评估保留精英个体,映射到score[i]中完成对局部最优分数的选择;
[0046]
如此使得每一次决策不仅需要实例化分支在分数矩阵中进行权衡,也需要到有效的监督策略对后续细化分支的训练保证当前是最优权值;
[0047]
在一次决策中,一个多实例细化分支被组合成一个可行的解决方案,遍历满足约束条件的候选权值分数矩阵,并选择代价最小的可行方案,在系统受限的情况下选择相对最优解。
[0048]
所述方法中,步骤(3)对于实时系统任务模型的建立包括如下过程:
[0049]
考虑一个cpu/gpu组成的实时系统,配置为两个集群和πg和πc,其中πc包含mc个相同的cpu核心,πc包含一个cpu核心和一个gpu设备,πc中的专用cpu核心用于与gpu相关的cpu操作,防止产生不必要的延迟;
[0050]
实时系统中的每个推理任务对应一个dnn,在实时系统中同时存在多个dnn推理任务,用τ表示所有推理任务,每个任务τi∈τ可用四元组(ti,di,ri,vi,ni)表示,五个元素分别表示任务τi的到达周期、截止期限、到达时间、dnn层的集合以及所包含的层数;
[0051]
每个dnn层τ
ij
∈vi用四元组表示,其中表示τ
ij
如果运行在cpu集群上的最坏情况执行时间,表示从gpu转移到cpu执行的时间开销,表示τ
ij
如果运行在gpu集群上的最坏情况执行时间,表示从cpu转移到gpu执行的时间开销;
[0052]
每个集群一次可执行一层,由于dnn推理任务存在执行顺序依赖关系,每个推理任务除第一层τ
i1
外,其他所有层τ
ij
只有在前一层τ
ij-1
执行完成后才能开始执行;由于实时dnn推理任务会产生无限的作业序列,每个作业对应dnn的一次执行,作业到达间隔为周期ti,并且需要在到达后的相对截止日期di内完成所有ni层的执行;
[0053]
所有任务周期的最小公倍数为超周期hp。
[0054]
更进一步的,步骤(3)所述的实时系统任务逐层调度优化问题定义如下:
[0055]
定义决策变量ρ
ij
∈{0,1},i=1,

,m,j=1,

ni表示dnn推理任务i的第j层τ
ij
分配至cpu(ρ
ij
=1)还是gpu(ρ
ij
=0),φ
ij
表示τ
ij
第一次作业到达后的开始执行时间,根据周期性定义则后续作业的开始执行时间为τ
ij
+nti;
[0056]
优化目标为最小化所有任务的完成时间:
[0057][0058]
调度约束则保证了调度方案的可行性:
[0059][0060]
表明任务开始执行时间必须在任务到达之后,在下次到达之前;
[0061][0062][0063]
表明每一层开始执行时间需大于等于上一层完成时间加cpu/gpu转换时间;
[0064][0065]
表明任务完成时间必须满足截止时间要求;
[0066][0067]

ij
=ρ
kl
)∧(φ
ij
+ati≥φ
kl
+btk+c
kl
∨φ
kl
+btk≥φ
ij
+ati+c
ij
)∨(ρ
ij
≠ρ
kl
)
[0068]
上式表明资源约束,即cpu和gpu集群同一时刻只能分别执行一个任务的一层,不同任务的不同层在cpu或gpu集群上所有周期的执行时间均不能有重叠。
[0069]
更进一步的,将实时系统任务逐层调度优化问题视为混合整数规划问题,求解该问题即可得到实时系统任务逐层调度方案,所述的实时系统任务逐层调度问题求解是基于贪心随机自适应搜索算法进行求解,在由约束条件定义的解空间中引导式搜索目标函数取的最小值的最优解。
[0070]
进而是初始解通过贪心算法生成,初始调度方案将任务按到达时间排序,进而按层从前到后的顺序依次调度;
[0071]
针对第一个任务的第一层,比较其在cpu集群和gpu集群上的执行时间,将该层分配至执行时间短的集群,在到达后直接执行;
[0072]
在该层执行期间,将该任务后续层由于顺序依赖关系无法执行,则用下个已经到达任务的第一层分配至另一个集群以填充算力;
[0073]
每当一层执行完毕后,比较下一层继续在当前集群或转移至另一集群的完成时间,选择执行时间短的进行分配,若选择继续在当前集群则可立刻开始执行,若选择转移至另一集群则需等待另一集群空出再开始执行,且安排已到达未执行的最早任务的第一层在当前集群中立刻开始执行,按此方法直到超周期内所有任务的所有作业均分配完毕,获得初始解;
[0074]
从初始解出发,在解空间中搜索更优的解,通过这两步骤的不断迭代寻找并更新当前最优解;
[0075]
每次迭代包含构造和搜索2个阶段,构造阶段每次通过贪心随机算法生成1个新的初始可行解,通过变换第一个任务第一层的开始执行时间获得不同的初始解;搜索阶段采用爬山算法对该初始解进行邻域搜索并持续优化,得到局部最优解,若新的局部最优解比当前最优解代价函数更小,则更新当前最优解;
[0076]
多次迭代,构造与搜索交替执行,直到满足终止条件时返回当前最优解。
[0077]
有益效果:与现有技术相比,本发明实质性的特点和显著的进步在本发明对实时边缘系统的目标检测从准确率、召回率、平均进度均值以及帧率进行定量的评价,据此还通过构造一个分数矩阵进行剪枝,包括结合损失函数对复杂场景下的目标检测问题进行处理,最后以实现综合性最优的一个学习任务实时调度方案。另外,本发明还构造了一个基于优先级的简单调度器,为每个dl任务使用独立的线程,并采用优先级队列来控制其执行,展示了基于优先级的调度策略对混合dl任务实时性能的影响。最后,本发明所述方法能够支
持灵活的优先级分配,可以分离gpu/cpu子任务,从而有效地利用cpu/gpu资源;还包括启用多个dnn推理的gpu打包,可以增加gpu空间利用率。
附图说明
[0078]
图1是实施例中对于实时边缘系统深度学习任务调度算法的设计流程图;
[0079]
图2是实施例中实现的实时边缘系统深度学习任务调度算法的工作示意图。
具体实施方式
[0080]
下面结合附图及具体实施方式对本发明做进一步的介绍。
[0081]
本发明所提供的是一种基于目标检测模型的自适应实时任务调度方法,主要应用于计算机视觉技术领域,涉及目标检测、模型压缩和调度算法等方面。本发明所述方法中,先完成目标检测模型的设置以及基本信息采集,然后对目标检测模型进行约束并进行约束下的轻量化,最后对自适应的实时任务调度进行约束并进行约束后的设计与求解。通过该方法,模型的轻量化使之满足在资源受限的场景中实时运行的需求,通过实时检测设备的计算资源和任务负载,以及任务的优先级和紧急程度,自适应地调整任务的执行顺序和时间片分配,从而保证在边缘系统上能够实时完成任务调度工作。
[0082]
结合图1,本发明所提供的一种基于目标检测模型的自适应实时学习任务调度方法,包括以下步骤:
[0083]
步骤s1,完成目标检测模型的设置以及基本信息采集
[0084]
步骤与(s1)是确定需要检测的物体类别、调整输入图像/视频的大小和比例(例如1280x720或更高,以保证物体在图像中的尺寸与实际尺寸相符)、部署网络模型、调整网络结构和超参数、调整训练策略和参数。采集设备信息、获取任务信息,并将这些信息反馈给任务调度器。
[0085]
具体的,步骤s101,完成目标检测模型的设置
[0086]
目标检测模型主要包括三个部分:特征提取器、特征融合器和检测头。
[0087]
首先在输入端,采用mosaic数据增强功能和自动计算锚框功能。对于自适应图片缩放功能,设定为对原始图像自适应的添加最少的黑边,防止因填充较多造成信息冗余,影响推理速度。
[0088]
特征提取器采用cspdarknet53的结构,增强cnn的学习能力,使得在轻量化的同时保持准确性,同时间降低计算瓶颈和内存成本。
[0089]
特征融合器采用了fpn+pan的结构,分别进行自顶向下传达强语义特征和自底向上传达强定位特征,从不同的主干层对不同的检测层进行参数聚合。同时在网络中间加入了借鉴cspnet设计的csp2结构进行多尺度特征融合,提升模型的感受野和语义信息。
[0090]
检测头采用ciou_loss作为目标框回归函数,在diou_loss的基础上增加了一个影响因子,进而可以考虑到预测框和目标框的长宽比。公式如下:
[0091][0092]
其中v是衡量长宽比一致性的参数,可以定义为:
[0093][0094]
故ciou_loss可以考虑到三个重要几何因素:检测框和目标框重叠面积、边界框中心点距离,边长宽比。同时也可以解决边界框不重合时的问题。之后采用加权nms(non-maximumsuppression)的方式进行后处理,得到最终的检测结果。
[0095]
步骤s102,完成基本信息的采集:
[0096]
采集设备信息:获取设备的计算资源情况,如cpu、gpu、内存等,并将这些信息反馈给任务调度器。
[0097]
获取任务信息:获取当前需要执行的任务信息,包括任务的优先级、紧急程度、预计执行时间等,并将这些信息反馈给任务调度器。
[0098]
步骤s2,建立并求解目标检测轻量化模型
[0099]
实现这部分的核心思想是去掉卷积神经网络中的冗余参数、冗余通道来实现网络的轻量化,从而提高网络的运行速度和效率。主要包括两方面的工作。
[0100]
首先是根据每个卷积核的重要性对其进行裁剪,而不是简单地对整个通道进行裁剪。基于当前模型参数,计算每个卷积核的重要性,并选择一个全局阈值或者说是比例。通过比较每个卷积核的重要性和全局阈值来决定是否将其保留在模型中。这种方法可以确保每个卷积核的重要性得到适当的考虑,并减少不必要的压缩,从而获得更高的准确性和更少的计算量。
[0101]
其次,进行迭代训练过程,使用反向传播算法求解得到最优解,逐步精炼每个卷积核的重要性,进一步提高轻量化效果。每次迭代中,都根据重要性对网络中的每个通道进行排序,然后根据预设的比例去掉一定数量的通道,同时将剩余通道的比例进行重新分配,使得网络整体的参数量减少,但保持原有的网络结构和性能。此外,"保持主干结构",即对于一些特定的层,如第一个卷积层和最后一个全连接层,不进行压缩,保留其所有通道。这种可以保持网络的主干结构不变,从而避免了过度压缩导致的性能下降。
[0102]
进一步的,建立并设计自适应的模型轻量化算法如下:
[0103]
对于施行的系统资源有限的边缘系统,检测精度和检测速度都是需要考虑的重要指标,为获得高速高精度的检测结果,得到了边缘系统的检测情况分析约束条件,建立处于约束条件下的目标检测优化模型,并对优化模型进行求解。
[0104]
步骤s201,分析自适应的模型轻量化算法的设计目标:
[0105]
在系统资源受限的边缘系统,检测精度和检测速度都是极为重要的参考,因此在庞大的神经网络中,如果能牺牲可忽略不计的精度换取来足够好的检测速度,是在系统资源受限情况下的最优解。
[0106]
因此在该算法设计中,需要考虑资源受限的边缘系统,高效合理的任务调度检测算法设计思路由以下三个部分组成:首先对于步骤s2中剪枝出来的权值与当前系统资源进行适配评分,其次是在形成分数矩阵后,通过损失函数综合分数矩阵形成最大公平性的权值匹配,最终在多实例目标检测神经网络中寻找到局部最优解,综上所述:
[0107]
[0108][0109][0110]
准确率(p)和召回率(r)的计算公式如上,tp表示图像正样本中被正确预测为正样本的数量,fn表示图像正样本被预测为负样本的数量,fp表示图像负样本被错误预测为正样本的数量。fps是衡量模型检测速度性能的指标,表示模型每秒钟能处理图像的数量,值越大网络模型处理图像的速度越快,本国发明通过fps来评模型实时性性能,通过对不同剪枝权值文件的p值预测,形成了一个无约束的分数矩阵initialscore[i]。
[0111]
步骤s202,分析自适应的模型轻量化算法的约束条件:
[0112]
在s201中,本发明形成了一个无约束条件的分数矩阵,在本步骤中,将算法下设计的约束条件进行分析。本步骤中的约束条件主要在多实例目标检测的复杂条件以及损失函数下的最大公平性,结合分数矩阵的内容进行合理选择。
[0113]
从多实例目标检测的复杂条件方面考虑。
[0114]
多实例检测分支包含分类数据流分支和检测数据流分支,每个分支由一个全连接层和一个归一化指数函数层组成。其中,分类数据流分支中的归一化指数函数层沿着纵向方向对s2中剪枝候选权值进行评估,在分数矩阵中优先选择最大公平的权值,从而进一步实现自适应的任务调度。
[0115]
xc0∈rc×
|r|
表示的是第r个候选权值属于第c类的可能性;而检测数据流分支沿着候选区从队列中的候选权值文件进行打分选择,得到若约束条件的新分数矩阵xd∈rc×
|r|
表示第c类中第r个候选区域对图像被归类为第c类的贡献;其中c表示类别数,|r|表示候选区域个数。多实例检测分支分别从两个不同的维度评判候选区域的分类,保证实时任务调度算法的执行有效性。具体的得分矩阵公式定义如下公式所示:
[0116][0117][0118]
其中[σ
det
(xc)]
ij
表示第j个候选区域的第i类标签的预测,[σ
det
(xd)]
ij
表示第i类的第j个候选的权值。通过元素级乘积xr=σ
class
(xc)σ
det
(xd)得到每个候选区域的置信分数,根据图像级类别标签选出对应类别中置信分数最高的候选区域作为伪真值标签,用于监督后续训练。最后,对每个类别的候选区域求和y={y1,y2,...,yc},由得到图像级分类分数,并进行实例分类器,表达式如下公式所示:
[0119][0120]
其中,yc∈[0,1]表示图像中是否包含第c类的任何实例。
[0121]
进一步的说,从损失函数的条件方面考虑,本发明的构造和实施过程如下:
[0122]
复杂道路场景模型能更好的检测出目标并进行定位,损失函数的作用是不可或缺的,损失函数主要由三部分组成:定位损失、置信度损失和分类损失,公式描述如下:
[0123]
loss=localization
loss
+confidence
loss
+classification
loss
[0124]
在不同的检测场景中定位损失函数有着不同的功效,为了提高复杂道路场景中多实例的检测效果,结合oicr中的多类交叉熵来计算目标框的定位损失,损失函数定义为:
[0125]
qfl(σ)=-|y-σ|
β
((1-y)lg(1-σ)+y lg(σ))
[0126]
其中σ表示预测,y为0~1的质量标签,|y-σ|
β
(β≥0)为缩放因子,表示距离绝对值的幂次函数,超参数β用于控制降权的速率,在这里取β=2为最优,本次实验也取β=2。多实例目标检测中,候选框的重叠程度增加,当原始模型的分类损失函数进行nms后处理时,更容易抑制错误,虽然降低了一部分定位精度,但loss函数的引入能在一定程度上弥补之前模型的不足,在边缘系统上提升一定检测速度却不失精度。
[0127]
则由上述可知,全部的约束函数如下:
[0128][0129][0130][0131]
qfl(σ)=-|y-σ|
β
((1-y)lg(1-σ)+y lg(σ))
[0132]
通过以上的约束条件,我们得到了最终的分数矩阵score[i]。
[0133]
步骤s203,自适应的模型轻量化算法设计方案:
[0134]
对上述分析在上述分析的优化模型中,每一次决策需要确定的内容包括,当前分数矩阵与系统资源最佳匹配的权值文件,以及最大公平度的选择算法从而适应多实例细化分支,解决边缘系统深度学习中存在的局部最优问题,也就是在自适应多实例细化分支中的分数矩阵中选择当前符合系统利用率的最优解,每一次决策不仅需要实例化分支在分数矩阵中进行权衡,也需要到有效的监督策略对后续细化分支的训练保证当前是最优权值。
[0135]
在一次决策中,一个多实例细化分支被组合成一个可行的解决方案,采用遗传算法在候选权值分数矩阵中选择适应匹配度最好的的可行方案。
[0136]
设定适应匹配度函数:首先对原始的分数矩阵score[i]由小到大排序,依次编号为1,2,3
……
n,计算适应度score[i].fitness=a(1-a)
index-1
,其中a取值范围是剪枝比,取值范围在(0,1),取index是第i个个体的排序序号
[0137]
建立选择数组mfintness[size],循环统计从第1个个体到第i个个体适应度值之和占所有个体适应度值总和的比例mfitness[i],以mfitness[i]作为选择依据
[0138][0139]
其中size为分数矩阵的分数个数,
[0140]
循环产生随机数rp,当rp<mfitness[i]时,对应的个体复制到下一代中,直到生成y个中间群体,其中y<100。
[0141]
对交叉算子以交叉概率pc生成一点交叉的交叉位point,并随机不重复地从中间群体中选择两个个体,对交叉位后的基因进行交叉运算,直到中间群体中所有个体都被选择过。
[0142]
对变异算子使每个体循环每一个基因位,产生随机数op,当op<pm时,对该位基因进行变异运算,随机产生一个类号(不大于总类号)赋值给该位,生成子代群体。其中pm为变异概率,一般在0.001~0.1之间,若变异概率过大,会破坏许多优良品种,也可能无法得到最优解。
[0143]
最后对新生成的子代群体进行评估保留精英个体,若新生成的子代群体中的最优个体评估值低于总的最优个体的评估值(相互之间距离越近,评估值越小),则用当前最好的个体替换总的最好的个体,否则用总的最好个体替换当前最差个体。若已经达到最大迭代次数。则退出循环,否则生成下一代群体继续运行。将总的最优个体的染色体(即i)解码,返回给各个物体的类别号,通过i映射到score[i]中完成对局部最优分数的选择,由此完成在系统受限的情况下选择相对最优解。
[0144]
步骤s3建立并设计自适应的实时调度算法。
[0145]
步骤s301,建立实时系统任务模型:将轻量化后的深度神经网络dnn部署到由cpu和gpu组成的实时系统中运行。而不同的部署方法也会导致不同的执行时间。当前的机器学习框架采用任务级资源分配模型,将整个dnn任务的所有层静态地分配到单个预定义资源(即cpu或gpu)上,这样的任务级资源分配模型限制了优化任务完成时间的机会。本发明设计的自适应实时调度算法放松该限制,允许dnn的每一层自由选择运行在cpu或gpu上以提高多任务的并行性和调度的灵活性。当初始化dnn任务时,调度程序为dnn的每一层分别生成生成适合在cpu和gpu上运行的代码和数据,并将每一层的元数据(例如权值向量)预加载到cpu和gpu内存中。
[0146]
考虑一个cpu/gpu组成的实时系统,配置为两个集群和πg和πc,其中πc包含mc个相同的cpu核心,πg包含一个cpu核心和一个gpu设备。πg中的专用cpu核心用于与gpu相关的cpu操作,防止产生不必要的延迟。
[0147]
实时系统中的每个推理任务对应一个dnn,在实时系统中同时存在多个dnn推理任务,用τ表示所有推理任务,每个任务τi∈τ可用四元组(ti,di,ri,vi,ni)表示,五个元素分别表示任务τi的到达周期、截止期限、到达时间、dnn层的集合以及所包含的层数。每个dnn层τ
ij
∈vi可进一步用四元组表示,其中表示τ
ij
如果运行在cpu集群上的最坏情况执行时间,表示从gpu转移到cpu执行的时间开销,表示τ
ij
如果运行在gpu集群上的最坏情况执行时间,表示从cpu转移到gpu执行的时间开销。每个集群一次可执行一层。由于dnn推理任务存在执行顺序依赖关系,每个推理任务除第一层τ
i1
外,其他所有层τ
ij
只有在前一层τ
ij-1
执行完成后才能开始执行。由于实时dnn推理任务会产生无限的作业序列,每个作业对应dnn的一次执行,作业到达间隔为周期ti,并且需要在到达后的相对截止日期di内完成所有ni层的执行。所有任务周期的最小公倍数为超周期hp。
[0148]
步骤s302,建立实时系统任务逐层调度优化问题:
[0149]
由于不同dnn不同层在℃pu和gpu上的执行时间和转换开销各不相同,不同任务不同层在cpu和gpu集群上的分布以及执行顺序对影响很大。通过合理的任务调度能够很大程度地降低所有任务的执行时间,提高目标检测的实时性。
[0150]
定义决策变量ρ
ij
∈{0,1},i=1,

,m,j=1,

ni表示dnn推理任务i的第j层τ
ij
分配至cpu(ρ
ij
=1)还是gpu(ρ
ij
=0),φ
ij
表示τ
ij
第一次作业到达后的开始执行时间,根据周期性定义则后续作业的开始执行时间为τ
ij
+nti。优化目标为最小化所有任务的完成时间:
[0151][0152]
调度约束则保证了调度方案的可行性:
[0153][0154]
表明任务开始执行时间必须在任务到达之后,在下次到达之前;
[0155][0156][0157]
表明每一层开始执行时间需大于等于上一层完成时间加cpu/gpu转换时间;
[0158][0159]
表明任务完成时间必须满足截止时间要求;
[0160][0161]

ij
=ρ
kl
)∧(φ
ij
+ati≥φ
kl
+btk+c
kl
∨φ
kl
+btk≥φ
ij
+ati+c
ij
)∨(ρ
ij
≠ρ
kl
)
[0162]
表明资源约束,即cpu和gpu集群同一时刻只能分别执行一个任务的一层,不同任务的不同层在cpu或gpu集群上所有周期的执行时间均不能有重叠。
[0163]
步骤s303,实时系统任务逐层调度问题求解:
[0164]
上述步骤所定义的优化问题为混合整数规划问题,求解该问题即可得到实时系统任务逐层调度方案。本发明设计基于贪心随机自适应搜索算法的求解方法,在由约束条件定义的解空间中引导式搜索目标函数取的最小值的最优解,与禁忌搜索的区别在于初始解生成和邻域搜索算法不同。
[0165]
初始解通过贪心算法生成,初始调度方案将任务按到达时间排序,进而按层从前到后的顺序依次调度。针对第一个任务的第一层,比较其在cpu集群和gpu集群上的执行时间,将该层分配至执行时间短的集群,在到达后直接执行。在该层执行期间,将该任务后续层由于顺序依赖关系无法执行,则用下个已经到达任务的第一层分配至另一个集群以填充算力。每当一层执行完毕后,比较下一层继续在当前集群或转移至另一集群的完成时间,选择执行时间短的进行分配,若选择继续在当前集群则可立刻开始执行,若选择转移至另一集群则需等待另一集群空出再开始执行,且安排已到达未执行的最早任务的第一层在当前集群中立刻开始执行,按此方法直到超周期内所有任务的所有作业均分配完毕,获得初始解。从初始解出发,在解空间中搜索更优的解,通过这两步骤的不断迭代寻找并更新当前最优解。每次迭代包含构造和搜索2个阶段.构造阶段每次通过贪心随机算法生成1个新的初始可行解(通过变换第一个任务第一层的开始执行时间获得不同的初始解);搜索阶段采用爬山算法对该初始解进行邻域搜索并持续优化,得到局部最优解,若新的局部最优解比当
前最优解代价函数更小,则更新当前最优解;多次迭代,构造与搜索交替执行,直到满足终止条件时返回当前最优解。

技术特征:
1.一种基于目标检测模型的自适应实时学习任务调度方法,其特征在于,包括如下步骤:(1)目标检测模型的参数设置以及信息采集包括确定需要检测的物体类别、调整输入图像/视频的大小和比例、部署网络模型、调整网络结构和超参数、调整训练策略和参数;信息采集包括采集设备信息、获取任务信息,并将该信息反馈给任务调度器;(2)构建目标检测轻量化模型包括针对实时边缘系统构建目标检测轻量化模型的目标评价函数,并基于不同剪枝率的权值的评价分数构建分数矩阵;模型轻量化的约束条件中,包括对分类数据流分支中的归一化指数函数层沿着纵向方向对剪枝候选权值进行评估,在分数矩阵中优先匹配最大公平的权值,还包括在自适应多实例细化分支中的分数矩阵中采用遗传算法选择当前符合系统利用率的最优解;(3)设计自适应的实时调度方案包括建立实时系统任务模型,定义实时系统任务逐层调度优化问题并且求解,得到实时系统任务逐层调度方案;所述的自适应的实时调度方案中,允许dnn的每一层自由选择运行在cpu或gpu上以提高多任务的并行性和调度的灵活性;当初始化dnn任务时,调度程序为dnn的每一层分别生成生成适合在cpu和gpu上运行的代码和数据,并将每一层的元数据预加载到cpu和gpu内存中。2.根据权利要求1所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,步骤(2)中所述的目标评价函数如下:在于,步骤(2)中所述的目标评价函数如下:在于,步骤(2)中所述的目标评价函数如下:在该优化模型中,通过准确率p、召回率r、平均进度均值map,以及帧率fps对模型进行定量评价检测效果;其中,tp表示图像正样本中被正确预测为正样本的数量,fn表示图像正样本被预测为负样本的数量,fp表示图像负样本被错误预测为正样本的数量,fps是衡量模型检测速度性能的指标。3.根据权利要求1所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,步骤(2)所述的模型轻量化的约束条件具体考虑如下:xc∈r
c
×
|r|
表示的是第r个候选权值属于第c类的可能性;而检测数据流分支沿着候选区从队列中的候选权值文件进行打分选择,得到弱约束条件的新分数矩阵,其中x
d
∈r
c
×
|r|
表示第c类中第r个候选区域对图像被归类为第c类的贡献;其中c表示类别数,|r|表示候选区域个数;多实例检测分支分别从两个不同的维度评判候选区域的分类,保证实时任务调度算法的执行有效性;
得分矩阵公式定义如下所示:得分矩阵公式定义如下所示:其中[σ
det
(x
c
)]
ij
表示第j个候选区域的第i类标签的预测,[σ
det
(x
d
)]
ij
表示第i类的第j个候选的权值;通过元素级乘积x
r
=σ
class
(x
c

det
(x
d
)得到每个候选区域的置信分数,根据图像级类别标签选出对应类别中置信分数最高的候选区域作为伪真值标签,用于监督后续训练;最后,对每个类别的候选区域求和y={y1,y2,...,y
c
},由得到图像级分类分数,并使用oicr中的多类交叉熵损失函数来训练实例分类器,表达式如下公式所示:其中,y
c
∈[0,1]表示图像中是否包含第c类的任何实例。4.根据权利要求1或3所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,所述方法包括通过损失函数提高复杂道路场景模型对于目标的检测率,且结合oicr中的多类交叉熵来计算目标框的定位损失,所述损失函数定义为:qfl(σ)=-|y-σ|
β
((1-y)lg(1-σ)+ylg(σ))其中σ表示预测,y
c
∈[0,1]表示图像中是否包含第c类的任何实例,|y-σ|
β
(β≥0)为缩放因子,表示距离绝对值的幂次函数,超参数β用于控制降权的速率;多实例目标检测中,候选框的重叠程度增加,当原始模型的分类损失函数进行nms后处理时,则全部的约束函数如下:下:下:qfl(σ)=-|y-σ|
β
((1-y)lg(1-σ)+ylg(σ))。5.根据权利要求1所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,该方法在在自适应多实例细化分支中的分数矩阵中采用遗传算法选择当前符合系统利用率的最优解的过程表述如下:对原始的分数矩阵score[i]由小到大排序,依次编号为1,2,3
……
n,计算适应度score[i].fitness=a(1-a)
index-1
,其中a取值范围是剪枝比例,取值范围在(0,1),取index是第i
个个体的排序序号;建立选择数组mfitness[popsize],循环统计从第1个个体到第i个个体适应度值之和占所有个体适应度值总和的比例mfitness[i],以mfitness[i]作为选择依据其中popsize为分数矩阵的分数个数,并循环产生随机数rp,当rp<mfitness[i]时,对应的个体复制到下一代中,直到生成y个中间群体,其中y<100;最终对新生成的子代群体进行评估保留精英个体,映射到score[i]中完成对局部最优分数的选择;如此使得每一次决策不仅需要实例化分支在分数矩阵中进行权衡,也需要到有效的监督策略对后续细化分支的训练保证当前是最优权值;在一次决策中,一个多实例细化分支被组合成一个可行的解决方案,遍历满足约束条件的候选权值分数矩阵,并选择代价最小的可行方案,在系统受限的情况下选择相对最优解。6.根据权利要求1所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,步骤(3)对于实时系统任务模型的建立包括如下过程:考虑一个cpu/gpu组成的实时系统,配置为两个集群和π
g
和π
c
,其中π
c
包含m
c
个相同的cpu核心,π
g
包含一个cpu核心和一个gpu设备,π
g
中的专用cpu核心用于与gpu相关的cpu操作,防止产生不必要的延迟;实时系统中的每个推理任务对应一个dnn,在实时系统中同时存在多个dnn推理任务,用τ表示所有推理任务,每个任务τ
i
∈τ可用四元组(t
i
,d
i
,r
i
,v
i
,n
i
)表示,五个元素分别表示任务τ
i
的到达周期、截止期限、到达时间、dnn层的集合以及所包含的层数;每个dnn层τ
ij
∈v
i
用四元组表示,其中表示τ
ij
如果运行在cpu集群上的最坏情况执行时间,表示从gpu转移到cpu执行的时间开销,表示τ
ij
如果运行在gpu集群上的最坏情况执行时间,表示从cpu转移到gpu执行的时间开销;每个集群一次可执行一层,由于dnn推理任务存在执行顺序依赖关系,每个推理任务除第一层τ
i1
外,其他所有层τ
ij
只有在前一层τ
ij-1
执行完成后才能开始执行;由于实时dnn推理任务会产生无限的作业序列,每个作业对应dnn的一次执行,作业到达间隔为周期t
i
,并且需要在到达后的相对截止日期d
i
内完成所有n
i
层的执行;所有任务周期的最小公倍数为超周期hp。7.根据权利要求1所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,步骤(3)所述的实时系统任务逐层调度优化问题定义如下:定义决策变量ρ
ij
∈{0,1},i=1,

,m,j=1,

n
i
表示dnn推理任务i的第j层τ
ij
分配至cpu(ρ
ij
=1)还是gpu(ρ
ij
=0),φ
ij
表示τ
ij
第一次作业到达后的开始执行时间,根据周期性定义则后续作业的开始执行时间为τ
ij
+nt
i
;优化目标为最小化所有任务的完成时间:
调度约束则保证了调度方案的可行性:表明任务开始执行时间必须在任务到达之后,在下次到达之前;表明任务开始执行时间必须在任务到达之后,在下次到达之前;表明每一层开始执行时间需大于等于上一层完成时间加cpu/gpu转换时间;表明任务完成时间必须满足截止时间要求;表明任务完成时间必须满足截止时间要求;上式表明资源约束,即cpu和gpu集群同一时刻只能分别执行一个任务的一层,不同任务的不同层在cpu或gpu集群上所有周期的执行时间均不能有重叠。8.根据权利要求7所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,将实时系统任务逐层调度优化问题视为混合整数规划问题,求解该问题即可得到实时系统任务逐层调度方案,所述的实时系统任务逐层调度问题求解是基于贪心随机自适应搜索算法进行求解,在由约束条件定义的解空间中引导式搜索目标函数取的最小值的最优解。9.根据权利要求8所述的基于目标检测模型的自适应实时学习任务调度方法,其特征在于,初始解通过贪心算法生成,初始调度方案将任务按到达时间排序,进而按层从前到后的顺序依次调度;针对第一个任务的第一层,比较其在cpu集群和gpu集群上的执行时间,将该层分配至执行时间短的集群,在到达后直接执行;在该层执行期间,将该任务后续层由于顺序依赖关系无法执行,则用下个已经到达任务的第一层分配至另一个集群以填充算力;每当一层执行完毕后,比较下一层继续在当前集群或转移至另一集群的完成时间,选择执行时间短的进行分配,若选择继续在当前集群则可立刻开始执行,若选择转移至另一集群则需等待另一集群空出再开始执行,且安排已到达未执行的最早任务的第一层在当前集群中立刻开始执行,按此方法直到超周期内所有任务的所有作业均分配完毕,获得初始解;从初始解出发,在解空间中搜索更优的解,通过不断迭代寻找并更新当前最优解;每次迭代包含构造和搜索2个阶段,构造阶段每次通过贪心随机算法生成1个新的初始可行解,通过变换第一个任务第一层的开始执行时间获得不同的初始解;搜索阶段采用爬
山算法对该初始解进行邻域搜索并持续优化,得到局部最优解,若新的局部最优解比当前最优解代价函数更小,则更新当前最优解;执行一次及以上的迭代,构造与搜索交替执行,直到满足终止条件时返回当前最优解。

技术总结
本发明公开了一种基于目标检测模型的自适应实时学习任务调度方法,属于计算机视觉领域。该方法先完成目标检测模型的设置以及基本信息采集,然后对目标检测模型进行约束并进行约束下的轻量化,最后对自适应的实时任务调度进行约束并进行约束后的设计与求解。通过本发明,模型的轻量化使之满足在资源受限的场景中实时运行的需求,通过实时检测设备的计算资源和任务负载,以及任务的优先级和紧急程度,自适应地调整任务的执行顺序和时间片分配,从而保证在边缘系统上能够实时完成任务调度工作。保证在边缘系统上能够实时完成任务调度工作。保证在边缘系统上能够实时完成任务调度工作。


技术研发人员:张彤 梁一博 李姝瑶 王佳静 董婕 张佳虹
受保护的技术使用者:南京航空航天大学
技术研发日:2023.04.25
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐