有效
一种基于资源受限机器人深度学习推理的任务分配方法
丁博、刘惠、王怀民、怀智博、史佩昌、初宁、骆杰、贾宏达、巩旭东、耿铭阳
中国人民解放军国防科技大学
摘要
本发明公开了一种基于资源受限机器人深度学习推理的任务分配方法,目的是实现多机器人系统对机器人工程任务的任务分配。技术方案是搭建任务分配系统,构建层预测模型并存储在机器人上;任务机器人采集环境数据,模型解释模块提取模型层类型和相关参数配置,资源消耗估计子模块根据层预测模型估算每个机器人上的深度学习模型每个层的延迟;资源可用子模块查询任务分配系统资源状态;决策模块确定最佳任务分配方案,根据最佳任务分配方案对机器人节点进行工程任务的分配;机器人节点根据最佳任务分配方案进行工程任务的执行。采用本发明可以根据任务分配系统资源状态协调异构机器人之间的工程任务分配,优化工程任务的执行时间。
1.一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于包括以下步骤:第一步,构建多机器人节点组成的任务分配系统,任务分配系统由各种异构的机器人节点构成,异构的机器人节点是具有不同计算能力和不同资源的计算设备,异构机器人节点通过WIFI互连;机器人节点按照功能的不同分为任务机器人节点、协作机器人节点;任务机器人节点是指基于深度学习的机器人工程任务的发起者,任务机器人节点采集环境数据;协作机器人节点是指机器人环境中的其余机器人,负责支援任务机器人,与任务机器人协作完成工程任务;基于深度学习的机器人工程任务由开发人员在机器人执行任务之前封装定义存储在机器人中,机器人工程任务中使用的深度学习模型的模型文件和权重文件存储在机器人中,模型文件封装了深度学习模型的模型结构和模型参数,权重文件封装了深度学习模型训练得到的权重参数信息;任务机器人节点上除了装有操作系统Ubuntu外,还装有感知数据采集模块、模型解释模块、系统配置模块、决策模块、数据传输模块、深度学习推理模块;协作机器人节点上除了装有操作系统Ubuntu外,还装有数据传输模块、深度学习推理模块;任务机器人节点上安装的深度学习推理模块命名为第一深度学习推理模块,任务机器人节点上安装的数据传输模块命名为第一数据传输模块;协作机器人节点上安装的深度学习推理模块命名为第二深度学习推理模块,协作机器人节点上安装的数据传输模块命名为第二数据传输模块;第一深度学习推理模块和第一深度学习推理模块均装有深度学习框架Caffe;感知数据采集模块与第一深度学习推理模块相连,通过机器人传感器采集机器人周边的环境数据,将采集的环境数据传送到第一深度学习推理模块;第一深度学习推理模块与感知数据采集模块、模型解释模块、决策模块、第一数据传输模块相连,从感知数据采集模块接收环境数据,将任务开始的消息发送给模型解释模块,从决策模块接收最佳的任务分配方案、目标深度学习模型的结构、参数、模型规范、层输出数据大小,利用已经装载的深度学习框架Caffe匹配模型结构参数信息,加载任务机器人节点的分区深度学习模型,基于分区深度学习模型对环境数据进行工程任务执行,得到工程任务执行中间结果,并将工程任务执行中间结果发送给第一数据传输模块;第一数据传输模块与第一深度学习推理模块、协作机器人节点的第二数据传输模块相连,从第一深度学习推理模块接收工程任务执行中间结果,将工程任务执行中间结果发送到第二数据传输模块;第二数据传输模块与第一数据传输模块、第二深度学习推理模块相连,第二数据传输模块接收工程任务执行中间结果,将工程任务执行中间结果发送给第二深度学习推理模块;第二深度学习推理模块与第二数据传输模块和任务机器人中的决策模块相连,第二深度学习推理模块从决策模块接收最佳任务分配方案、目标深度学习模型的结构、参数、模型规范、层输出数据大小,利用已经装载的深度学习框架Caffe匹配模型结构、参数,加载协作机器人的分区深度学习模型,从第二数据传输模块接收工程任务执行中间结果,利用协作机器人的分区深度学习模型继续执行工程任务,得到工程任务执行结果;所述层输出数据大小是指经过深度学习模型层执行输出的数据的大小;模型解释模块与第一深度学习推理模块、决策模块、系统配置模块相连,主要功能是提取深度学习模型的模型结构和参数;模型解释模块从第一深度学习推理模块接收任务开始的消息,提取机器人工程任务中使用的深度学习模型即目标深度学习模型,从目标深度学习模型中提取目标深度学习模型的结构和参数信息,将提取的目标深度学习模型结构、参数、模型规范、层输出数据大小发送到系统配置模块和决策模块;系统配置模块与模型解释模块、决策模块相连,系统配置模块是展现任务分配系统资源状态的模块,由资源消耗估计子模块、资源可用子模块组成;资源消耗估计子模块与模型解释模块、决策模块相连,资源消耗估计子模块接收从模型解释模块接收的模型结构、参数、模型规范、层输出数据大小,加载层预测模型预测出机器人工程任务可能分配计划在各机器人节点上的预计资源消耗,将预测出的资源消耗预测值发送到决策模块;资源可用子模块与决策模块相连;资源可用子模块在深度学习任务执行之前从操作系统中收集任务分配系统资源状态,将任务分配系统资源状态发送给决策模块;决策模块与模型解释模块、系统配置模块、第一深度学习推理模块、第二深度学习推理模块相连;决策模块从模型解释模块接收目标深度学习模型的模型结构、参数、模型规范、层输出数据大小,从资源消耗估计子模块接收资源消耗预测值,从资源可用子模块接收任务分配系统资源状态,根据目标深度学习模型的模型结构、参数、模型规范、层输出数据大小、资源消耗预测值、任务分配系统资源状态确定候选任务分配计划集合,并从候选任务分配计划集合中选择最佳任务分配方案,将最佳任务分配方案和目标深度学习模型的模型结构、参数、模型规范、层输出数据大小发送给第一深度学习推理模块、第二深度学习推理模块;第二步,为每个机器人节点构建基于深度学习的任务中的对深度学习模型延迟进行预测的预测模型,即为每个深度学习模型层类型构建预测模型,使得任务分配系统中的每种类型机器人节点都存储深度学习模型所有层类型的深度学习层预测模型;第三步,启动任务分配系统,任务机器人节点的资源可用子模块检测任务分配系统的资源状态,将检测得到的任务分配系统资源状态发送给决策模块;初始化时间变量t=任务机器人节点的系统时间;第四步,任务机器人节点的感知数据采集模块利用任务机器人的传感器采集环境数据,感知数据模块判断采集的环境数据的大小是否达到存贮阈值C,C为正整数,单位为M,若未达到,转第四步;若达到,将采集的环境数据发送到任务机器人节点的第一深度学习推理模块,转第五步;若感知数据模块收到开发人员发出的“已完成整个环境的工程任务执行”的指令,则转第十二步;第五步,任务机器人节点的第一深度学习推理模块接收感知数据采集模块传来的环境数据,第一深度学习推理模块将任务开始消息发送给任务机器人节点的模型解释模块;第六步,模型解释模块从第一深度学习推理模块接收任务开始的消息,提取机器人工程任务中使用的深度学习模型,从深度学习模型文件和权重文件中提取目标深度学习模型的结构、参数、模型规范,将提取的目标深度学习模型结构、参数、模型规范、层输出数据大小发送到任务机器人节点的系统配置模块的资源消耗估计子模块和决策模块;第七步,任务机器人节点的资源消耗估计子模块从模型解释模块接收目标深度学习模型结构、参数、模型规范、层输出数据大小,调用在各机器人节点上存储的深度学习层预测模型估计在各个机器人节点上执行目标深度学习模型每个层在每个机器人节点上的资源消耗预测值,并将资源消耗预测值发送给决策模块,所述资源消耗预测值为(深度学习模型层,机器人节点IP地址,执行时间估计值,内存的占用量)这样的四元组;第八步,任务机器人节点的资源可用子模块检测任务分配系统的相关信息,若检测出任务分配系统中的任意机器人节点发生变化,则转到第四步;若资源可用子模块未检测出任务分配系统中的机器人节点发生变化,则资源可用子模块读取任务机器人节点的系统时间,令为t2,判定t2-t是否大于等于阈值T,T为正整数,单位为分钟,若t2-t大于等于阈值T,资源可用子模块将检测出的任务分配系统资源状态发送给决策模块,转第九步;若t2-t小于阈值T,直接转第九步;第九步,任务机器人节点的决策模块从模型解释模块接收目标深度学习模型结构、参数、模型规范、层输出数据大小,从资源消耗估计子模块接收资源消耗预测值,从资源可用子模块接收任务分配系统资源状态,根据目标深度学习模型结构选择一系列的候选任务分配计划,然后结合资源消耗预测值和任务分配系统资源状态生成最佳任务分配方案,将最佳任务分配方案发送给各机器人节点的深度学习推理模块,具体方法是:9.1决策模块从资源消耗估计子模块接收资源消耗预测值,从资源可用子模块接收任务分配系统资源状态;9.2决策模块从模型解释模块接收目标深度学习模型结构、参数、模型规范、层输出数据大小,将目标深度学习模型的模型结构每个层分界处作为候选分区点,按照深度学习模型层的顺序加入到候选分区点序列中,得到候选分区点序列D={d 1 ,d 2 ,…,d d },d为候选分区点的个数,d<目标深度学习模型的层数为N;9.3决策模块为任务机器人节点和每个协作机器人节点根据候选分区点生成候选分区计划,结合任务分配系统资源状态缩减候选分区计划,生成候选任务分配计划,方法是:9.3.1候选分区点将目标深度学习模型分成子模型即分区深度学习模型,令任务分配系统中机器人节点的集合 P为任务分配系统中机器人节点的总数,P为正整数,IP p 为第p台机器人节点的IP地址,1≤p≤P;决策模块从候选分区点序列D中随机选择候选分区点组成的集合,要求选择候选分区点组成的集合中的元素数量d1小于机器人数量P,候选分区点组成的集合中元素的顺序和候选分区点序列D的顺序一致,得到候选分区点组成的集合的集合DD,DD中的元素为候选分区点组成的集合;9.3.2决策模块根据DD将目标深度学习模型划分成P个分区,构成B个候选分区计划,这B个候选分区计划用候选分区计划集合β={β 1 ,…,β b ,…,β B }表示,β b 为第b个候选分区计划,即按DD中第b个候选分区点组成的集合对目标深度学习模型进行分区得到的目标深度学习模型分区集合,B为候选分区计划总数,B为正整数,1≤b≤B;9.3.3决策模块根据β,结合任务分配系统资源状态,根据分配准则生成将β中的候选分区计划分配给 的候选任务分配计划集合E,E={E 1 ,E 2 ,…,E e ,…,E ∈ },ε为候选任务分配计划总数,ε为正整数,1≤e≤ε;E e 为第e候选任务分配计划,内容为β中的候选分区计划中的分区与机器人节点IP地址的对应关系;所述分配准则是:β中所有目标深度学习模型分区集合中的第一个分区分配给任务机器人节点;9.3.4决策模块将E中满足以下2个条件之一的候选分区计划删除,得到缩减后的候选任务分配计划集合E1={E 1 ,…,E i ,…,E θ },θ为E1中候选分区计划总数,θ为正整数,1≤θ≤ε,E i 为E1中第i个候选分区计划,1≤i≤θ;条件1,候选任务分区计划E i 分配给机器人节点的分区的计算量大于机器人节点负载限制;条件2,候选任务分区计划E i 分配给机器人节点的分区的内存占用量大于机器人节点可用内存;9.4决策模块检测E1中E 1 ,…,E i ,…,E θ 中除最后一个分区之外的所有分区输出数据大小,根据从资源可用子模块接收的任务分配系统资源状态中的无线网络带宽得到数据传输速率,计算这些分区输出数据的传输延迟,即传输延迟=数据大小/数据传输速率;9.5决策模块计算E1中每个候选任务分配计划的资源消耗预测值,得到E 1 ,…,E i ,…,E θ 的资源消耗预测值序列Y,Y={Y 1 ,…,Y i ,…,Y θ },Y i 为Y中第i个候选分区计划E i 的资源消耗预测值;9.6决策模块对Y中的资源消耗预测值进行比较,选择具有最少资源消耗预测值的候选任务分配计划作为最佳任务分配方案,将最佳任务分配方案中交给任务机器人节点执行的分区命名为任务机器人节点的分区深度学习模型,将交给协作机器人节点执行的分区命名为协作机器人节点的分区深度学习模型;9.7决策模块将最佳任务分配方案和从模型解释模块接收的目标深度学习模型的模型结构、参数、模型规范、层输出数据大小发送给任务机器人节点的第一深度学习推理模块和协作机器人节点的第二深度学习推理模块;第十步,任务机器人节点的第一深度学习推理模块和协作机器人节点的第二深度学习推理模块接收决策模块发送的最佳任务分配方案、目标深度学习模型的模型结构、参数、模型规范、层输出数据大小;任务机器人节点根据最佳任务分配方案得到任务机器人节点的分区深度学习模型,协作机器人节点根据最佳任务分配方案得到协作机器人节点的分区深度学习模型;任务机器人节点的第一深度学习推理模块基于任务机器人节点的分区深度学习模型对感知数据采集模块发送来的环境数据执行工程任务,得到该分区深度学习模型输出的工程任务执行中间结果,将工程任务执行中间结果发送给第一数据传输模块;第一数据传输模块将工程任务执行中间结果发送到协作机器人节点的第二数据传输模块;第二深度学习推理模块从第二数据传输模块接收工程任务执行中间结果,根据协作机器人节点的分区深度学习模型继续执行工程任务,得到工程任务执行结果;第十一步,至此,一个任务分配的过程完毕;转第八步;第十二步,工程任务执行结束。
2.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于所述资源可用子模块收集的任务分配系统资源状态包括机器人节点连接状态,CPU频率和任务分配系统的各机器人节点的处理器负载,可用内存,网络带宽、机器人节点的信号强度变化和负载的动态变化。
3.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第二步所述为每个深度学习模型层类型构建预测模型,得到深度学习层预测模型的方法是:2.1为每种机器人根据各种深度学习层类型的可配置参数确定深度学习模型层预测模型变量;2.2改变深度学习模型层的可配置参数,并测量每个配置组合在任务分配系统中的每种机器人节点的延迟,得到所有层类型的深度学习层预测模型变量与延迟的对应数据,方法是:2.2.1从任务分配系统中选择一种类型的机器人;2.2.2在深度学习模型所有层类型中选择一个层类型;2.2.3令循环次数k=1,设置层类型对应的可配置参数,得到一个配置组合;2.2.4,测量第k次配置组合在机器人节点的延迟,将可配置参数组合成预测模型变量进行存储,得到第k组深度学习层预测模型变量,和延迟的对应数据,将第k组对应数据存贮到第k个二元组中,二元组的形式为(深度学习层预测模型变量,延迟);2.2.5令k=k+1,判定k是否小于等于阈值K,K为正整数,若小于,改变层的可配置参数,得到第k个配置组合,转2.2.4;若k大于K,转2.2.6;2.2.6判定层类型是否都已收集到K组二元组,若还有层类型未做,改变层类型,转2.2.2,若所有层类型都已收集到K组二元组,转2.2.7;2.2.7判定任务分配系统中的每种类型机器人节点都收集到了所有层类型的K组二元组,若还有不同类型机器人节点未做,改变机器人节点类型,转2.2.1,若任务分配系统中的每种类型机器人节点都收集到了层类型的K组二元组,转2.3;2.3在每种类型的机器人上为每种深度学习层类型建立一个预测模型;2.3.1从任务分配系统中选择一种类型的机器人;2.3.2在深度学习模型所有层类型中选择一个层类型;2.3.3利用K组二元组,使用对数或线性函数作为线性回归函数进行建模,为每种层建立预测模型,得到深度学习层预测模型,并存储在机器人上;2.3.4判定层类型是否都建立了深度学习层类型,若还有层类型未做,改变层类型,转2.3.2,若所有层类型都已建立了深度学习层预测模型,转2.3.5;2.3.5判定任务分配系统中的每种类型机器人节点是否都存储了所有层类型的深度学习层预测模型,若还有不同类型机器人节点未存储,改变机器人节点类型,转2.3.1,若任务分配系统中的每种类型机器人节点都存储了所有层类型的深度学习层预测模型,结束。
4.如权利要求2所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于2.1步为每种机器人根据各种深度学习层类型的可配置参数确定深度学习模型层预测模型变量的方法是:卷积层、局部层和池化层使用输入特征映射中的特征数量和应用于每个像素的计算量作为预测模型变量,输入特征映射中的特征数量=输入特征图尺寸×输入图像通道数,应用于每个像素的计算量=(滤波器大小÷层的步幅) 2 ×滤波器数量;输入特征图尺寸、滤波器的数量、滤波器的大小、层的步幅均为卷积层、局部层、池化层的可配置参数;全连接层、Softmax层和argmax层使用输入神经元的数量和输出神经元的数量作为预测模型变量,输入神经元数量和输出神经元数量为全连接层、Softmax层和argmax层的可配置参数;激活层和规范化层的使用输入神经元的数量作为预测模型变量,输入神经元数量为激活层和规范化层的可配置参数。
5.如权利要求2所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于2.2.5步所述K设置为1000。
6.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第四步所述存贮阈值C设置为32M或64M。
7.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第七步所述资源消耗估计子模块估计在各个机器人节点上执行目标深度学习模型每个层在每个机器人节点上的资源消耗预测值的方法是:7.1资源消耗估计子模块根据模型解释模块发送的目标深度学习模型的结构、参数、模型规范,记目标深度学习模型的层数为N;资源消耗估计子模块从目标深度学习模型的结构和参数得出目标深度学习模型层的层类型,初始化层计数变量n=0;7.2提取出目标深度学习模型第n层的层类型和层参数,根据目标深度学习模型层的层类型加载深度学习层预测模型,根据提取出的层参数作为深度学习模型层预测模型的输入,深度学习层预测模型进行预测,即根据目标深度学习模型层的参数,将其作为变量输入到层预测模型,根据层预测模型的线性方程计算得到目标深度学习模型层的输出值,得出深度学习模型层在每个机器人节点上的资源消耗预测值,资源消耗预测值为(深度学习模型层,机器人节点IP地址,执行时间估计值,内存的占用量)这样的四元组;7.3资源消耗子模块判断层计数变量n是否达到目标深度学习的层数N,若未达到,n=n+1,转7.2,若达到,得到所有层的资源消耗预测值发送给决策模块,结束。
8.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第八步所述任意机器人节点发生变化指机器人节点动态加入或机器人节点动态退出或机器人节点损坏或机器人节点宕机。
9.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第八步所述阈值T设置为5分钟。
10.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第9.5步所述决策模块计算E1中每个候选任务分配计划的资源消耗预测值的方法是:将第七步得到的目标深度学习模型层的资源消耗预测值按照E1中E 1 ,…,E i ,…,E θ 中的分区按层分别进行相加,得到E 1 ,…,E i ,…,E θ 的资源消耗预测值序列Y,Y={Y 1 ,…,Y i ,…,Y θ },Y i 为Y中第i个候选分区计划E i 的资源消耗预测值。
11.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于第十步所述任务机器人节点的第一深度学习推理模块和协作机器人节点的第二深度学习推理模块执行工程任务的方法是:10.1任务机器人的第一深度学习推理模块和协作机器人的第二深度学习推理模块从决策模块接收最佳任务分配方案、目标深度学习模型的模型结构、参数、模型规范、层输出数据大小;10.2任务机器人的第一深度学习推理模块按照最佳任务分配方案得到任务机器人节点的分区深度学习模型,第一深度学习推理模块结合接收的目标深度学习模型信息在任务机器人生成任务机器人分区深度学习模型的模型文件和权重文件;同时协作机器人的第二深度学习推理模块按照最佳任务分配方案得到协作机器人节点的分区深度学习模型,第二深度学习推理模块在协作机器人生成协作机器人分区的深度学习模型的模型文件和权重文件;10.3任务机器人节点利用任务机器人的分区深度学习模型的模型文件和权重文件对从感知数据采集模块接收的环境数据进行工程任务执行,即将环境数据作为输入,输入到分区深度学习模型对环境数据进行工程任务的执行,按照深度学习模型层顺序逐层进行数据处理,得到工程任务执行中间结果,将工程任务执行中间结果发送给第一数据传输模块;10.4第一数据传输模块将工程任务执行中间结果发送给协作机器人的第二数据传输模块;10.5第二数据传输模块接收工程任务执行中间结果,将工程任务执行中间结果发送给第二深度学习模型推理模块;协作机器人的第二深度学习模型推理模块利用协作机器人的分区深度学习模型的模型文件和权重文件继续执行工程任务,即按照分区深度学习模型层顺序逐层对工程任务执行中间结果进行数据处理,得到工程任务执行结果。
12.如权利要求1所述的一种基于资源受限机器人深度学习推理的任务分配方法,其特征在于所述操作系统Ubuntu指14.04及以上版本。



