本说明书涉及无人驾驶技术领域,尤其涉及一种模型训练以及轨迹规划的方法及装置。
背景技术:
通常,无人设备在运行时,可通过机器学习模型确定控制信息,并基于控制信息对无人设备进行控制。
例如,无人设备可将无人设备当前的状态、环境信息等输入强化学习模型,得到强化学习模型输出的油门控制量、方向盘转角等信息,并控制无人设备按照强化学习模型输出的信息运行。
实际上,上述方式在无人设备的运行中,随着时间的推移不断地基于强化学习模型得到控制信息,而无人设备按照控制信息运行时,运行的轨迹可能在轨迹线曲率等方面不够平滑,导致运行的舒适性和可靠性并不能得到较好的保障,因此,如何较好地控制无人设备的运行,成为亟需解决的问题。
技术实现要素:
本说明书实施例提供一种模型训练以及轨迹规划的方法及装置,以部分地解决现有技术存在的上述问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种模型训练的方法,所述方法包括:
获取无人设备的状态信息作为训练样本;
根据所述训练样本,采用下述方法对位置确定模型以及决策模型进行迭代训练:
针对每次迭代训练,获取上一次迭代训练得到的轨迹置信度,将所述训练样本输入所述位置确定模型,得到由所述位置确定模型根据所述训练样本和获取的轨迹置信度输出的目标位置,所述位置确定模型用于规划所述无人设备的目标位置;
根据所述训练样本以及所述目标位置,通过决策模型得到所述无人设备到达所述目标位置的目标轨迹以及所述目标轨迹的轨迹置信度。
可选地,根据所述训练样本以及所述目标位置,通过决策模型得到所述无人设备到达所述目标位置的目标轨迹以及所述目标轨迹的轨迹置信度,具体包括:
在所述目标位置的邻域内,确定若干个指定位置,由所述目标位置以及各指定位置组成位置集合;
将所述训练样本以及所述位置集合输入所述决策模型,得到由所述决策模型输出的所述无人设备到达所述位置集合中包含的每个位置的待定轨迹以及每个待定轨迹的轨迹置信度;
根据各轨迹置信度,在各待定轨迹中,选择所述目标轨迹。
可选地,所述决策模型包括第一子模型以及第二子模型;
根据所述训练样本以及所述目标位置,通过决策模型得到所述无人设备到达所述目标位置的目标轨迹以及所述目标轨迹的轨迹置信度,具体包括:
将所述训练样本以及所述目标位置输入所述第一子模型,得到所述第一子模型输出的所述目标轨迹;
将所述目标轨迹输入所述第二子模型,由所述第二子模型根据预设的若干个参数,得到所述目标轨迹的轨迹置信度。
可选地,将所述训练样本以及所述目标位置输入所述第一子模型,得到所述第一子模型输出的所述目标轨迹,具体包括:
获取所述无人设备所处环境中各障碍物的信息;
将所述训练样本、各障碍物的信息以及所述目标位置输入所述第一子模型,得到所述第一子模型输出的若干个待定轨迹;
针对每个障碍物,获取该障碍物的历史轨迹,并根据所述历史轨迹以及该障碍物的信息,确定该障碍物的预估轨迹;
根据各待定轨迹以及各障碍物的预估轨迹,在各待定轨迹中,选择所述目标轨迹。
可选地,所述第二子模型的参数包括速度权重、偏移权重;
将所述目标轨迹输入所述第二子模型,由所述第二子模型根据预设的若干个参数,得到所述目标轨迹的轨迹置信度,具体包括:
确定所述目标轨迹的各轨迹点,其中,轨迹点的信息包括轨迹点的位置、轨迹点的速度;
通过所述第二子模型,根据各轨迹点的位置、所述偏移权重、各轨迹点的速度、所述速度权重中的至少一种,确定所述目标轨迹的轨迹置信度。
本说明书提供的一种轨迹规划的方法,所述方法包括:
获取无人设备当前的状态信息;
将所述状态信息输入位置确定模型,得到所述位置确定模型输出的目标位置;
将所述状态信息以及所述目标位置输入决策模型,得到所述决策模型输出的若干个轨迹以及每个轨迹的轨迹置信度;
根据各轨迹的置信度,在各轨迹中,选择指定轨迹,并控制所述无人设备按照所述指定轨迹运行,其中,所述位置确定模型以及所述决策模型预先通过上述内容提供的模型训练的方法进行训练。
本说明书提供的一种模型训练的装置,所述装置包括:
第一获取模块,用于获取无人设备的状态信息作为训练样本;
训练模块,用于根据所述训练样本,采用下述方法对位置确定模型以及决策模型进行迭代训练:
第一输入子模块,用于针对每次迭代训练,获取上一次迭代训练得到的轨迹置信度,将所述训练样本输入所述位置确定模型,得到由所述位置确定模型根据获取的轨迹置信度输出的目标位置,所述位置确定模型用于规划所述无人设备的目标位置;
第二输入子模块,用于根据所述训练样本以及所述目标位置,通过决策模型得到所述无人设备到达所述目标位置的目标轨迹以及所述目标轨迹的轨迹置信度。
本说明书提供的一种轨迹规划的装置,所述装置包括:
第二获取模块,用于获取无人设备当前的状态信息;
确定位置模块,用于将所述状态信息输入位置确定模型,得到所述位置确定模型输出的目标位置;
确定轨迹模块,用于将所述状态信息以及所述目标位置输入决策模型,得到所述决策模型输出的若干个轨迹以及每个轨迹的轨迹置信度;
控制模块,用于根据各轨迹的置信度,在各轨迹中,选择指定轨迹,并控制所述无人设备按照所述指定轨迹运行,其中,所述位置确定模型以及所述决策模型预先通过上述内容提供的模型训练的方法进行训练。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述模型训练以及轨迹规划的方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述模型训练以及轨迹规划的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书可获取无人设备的状态信息作为训练样本,根据训练样本,采用下述方法对位置确定模型以及决策模型进行迭代训练:针对每次迭代训练,获取上一次迭代训练得到的轨迹置信度,将训练样本输入位置确定模型,得到由位置确定模型根据训练样本和获取的轨迹置信度输出的目标位置,位置确定模型用于规划无人设备的目标位置,根据训练样本以及目标位置,通过决策模型得到无人设备到达目标位置的目标轨迹以及目标轨迹的轨迹置信度。
通过上述方法,基于每次目标轨迹的轨迹置信度,位置确定模型可重新确定更好的目标位置,从而基于目标位置由决策模型再次规划目标轨迹,以此来训练位置确定模型以及决策模型,从而基于训练后的位置确定模型确定较好的目标位置,并基于训练后的决策模型确定较好的目标轨迹,控制无人设备按照目标轨迹运行。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书实施例提供的一种模型训练的方法流程图;
图2为本说明书实施例提供的一种模型训练过程中确定的目标位置以及目标轨迹的示意图;
图3为本说明书实施例提供的一种轨迹规划的方法流程图;
图4为本说明书实施例提供的一种模型训练的装置的结构示意图;
图5为本说明书实施例提供的一种轨迹规划的装置的结构示意图;
图6为本说明书实施例提供的用于实现上述模型训练以及轨迹规划的方法的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
无人设备在运行时,可基于无人设备的状态、周围的环境信息等,通过诸如强化学习模型等机器学习模型,得到诸如油门控制量等控制信息,然后,可根据控制信息,控制无人设备的运行。其中,无人设备主要包括无人车、无人机等智能无人驾驶设备,主要用于代替人工配送物品,例如在大型货物仓储中心运输分拣后的货物,或将货物从某一地点运输到另一地点。
在这个过程中,无人设备基于当前时刻的信息,得到当前时刻的控制量,按照当前时刻的控制量运行,在下一时刻,重新按照下一时刻的信息得到下一时刻的控制量,这就使得无人设备并没有规划轨迹,其按照不同时刻的控制信息进行运行的轨迹,可能在舒适性等方面较差。
因此,本说明书提供一种模型训练以及轨迹规划的方法,以部分地解决上述内容存在的问题。
在本说明书中,由位置确定模型确定目标位置,由决策模型确定无人设备从当前位置到达目标位置的目标轨迹以及目标轨迹的轨迹置信度,在模型训练阶段,由位置确定模型基于上一迭代过程得到的目标轨迹的轨迹置信度重新得到较好的目标位置,由决策模型根据目标位置再次规划目标轨迹以及确定目标轨迹的轨迹置信度,依照上述内容不断地迭代对位置确定模型以及决策模型进行训练。当位置确定模型以及决策模型训练完成之后,无人设备可根据无人设备的状态信息、周围的环境信息等,由位置确定模型确定出目标位置,并由决策模型确定出无人设备到达目标位置的目标轨迹,最后,可控制无人设备按照目标轨迹运行。
因此,首先来说明对位置确定模型以及决策模型进行训练的内容。以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的一种模型训练的方法流程图,如图1所示,可首先获取无人设备的状态信息作为训练样本,然后基于训练样本,对位置确定模型以及决策模型进行迭代训练。
首先来说训练样本的确定。
由于在本说明书中,位置确定模型以及决策模型可进行整体训练,也可进行单独训练,因此,当对位置确定模型以及决策模型进行整体训练时,可获取无人设备的状态信息、无人设备所处环境的信息等作为训练样本,其中,无人设备的状态信息可包括无人设备的位置、速度、加速度等信息,无人设备所处环境的信息可包括道路信息、各障碍物的信息等,障碍物可分为诸如车辆、行人等动态障碍物以及诸如道路隔离装置等静态障碍物,障碍物的信息可包括障碍物的位置、速度等信息。这里主要是对位置确定模型以及决策模型进行整体训练的说明,关于对位置确定模型以及决策模型进行单独训练的过程,可参考下述内容。
然后来说根据训练样本,对位置确定模型以及决策模型进行训练的迭代过程。
针对每次迭代训练,首先,可获取上一次迭代训练得到的轨迹置信度,然后,可将训练样本输入位置确定模型,得到由位置确定模型根据训练样本和获取的轨迹置信度输出的目标位置,其中,位置确定模型用于规划无人设备的目标位置。
具体的,位置确定模型以及决策模型可为机器学习模型,位置确定模型可为基于强化学习思想的机器学习模型,也可以为基于模仿学习思想的机器学习模型。而无论哪种模型,位置确定模型的输入信息可包括训练样本、上一次迭代训练得到的轨迹置信度等信息,输出信息为目标位置,也即,通过位置确定模型,可基于无人设备的信息以及周围环境信息等确定出无人设备需要到达的目标位置。
其中,目标位置为无人设备所处环境中的一个位置,例如,无人设备前方位于当前车道的某个位置,又如,无人设备的侧前方位于当前车道的相邻车道的某个位置。目标位置的信息可由二维坐标表示,其坐标系的选择可以是基于以车道线作为坐标轴的坐标系,也可以是诸如通用横墨卡托格网系统(universaltransversemercatorgridsystem,utm)等坐标系。这里需要说明的是,当当前迭代过程为第一次迭代时,由于不存在上一次迭代训练过程,因此,此时可将轨迹置信度进行初始化。
在根据位置确定模型得到目标位置之后,可在目标位置的邻域内,确定若干个指定位置,由目标位置以及各指定位置组成位置集合。其中,位置集合中的每个位置,均可作为无人设备需要到达的位置,即,均可作为规划无人设备的轨迹的依据。
其中,指定位置的数量可以固定的,也可以是不固定的,在目标位置的邻域范围内,可随机确定至少一个指定位置,也可按照一定的规则进行确定指定位置,其规则可包括可在目标位置的邻域范围内,确定位于目标位置预设长度的整数倍的距离处的地点作为指定位置,例如,预设长度可以是0.5米,则可确定位于目标位置前方、后方、左侧、右侧0.5米处的位置作为指定位置,还可确定位于目标位置前方1米处的位置作为指定位置等。当然,其规则还可包括其他方式,关于其他规则的内容,这里不再赘述。
这里需要说明的是,由目标位置确定位置集合的步骤,可以是非必要执行的步骤,即,在本说明书中,若由目标位置得到位置集合,则可将训练样本以及位置集合输入决策模型,而若未由目标位置得到位置集合,则可将训练样本以及目标位置输入决策模型。
最后,根据训练样本以及目标位置,通过决策模型得到无人设备到达目标位置的目标轨迹以及目标轨迹的轨迹置信度。
具体的,在得到位置集合后,首先,可将训练样本以及位置集合输入决策模型,得到由决策模型输出的无人设备到达位置集合中包含的每个位置的待定轨迹以及每个待定轨迹的轨迹置信度。而若未根据目标位置得到位置集合,可将训练样本以及目标位置输入决策模型,得到由决策模型输出的无人设备到达目标位置的若干个待定轨迹以及每个待定轨迹的轨迹置信度。然后,根据各轨迹置信度,在各待定轨迹中,可选择目标轨迹。
进一步地,决策模型还可包括第一子模型以及第二子模型,第一子模型可用于规划无人设备从当前位置到达目标位置集合中各位置的轨迹,第二子模型可用于确定每个轨迹的轨迹置信度。因此,可将训练样本以及目标位置等信息输出第一子模型,得到第一子模型输出的各轨迹,并可将第一子模型输出的轨迹输入第二子模型,由第二子模型根据预设的若干个参数,得到各轨迹的轨迹置信度。
关于第一子模型:可获取无人设备所处环境中各障碍物的信息,将训练样本、各障碍物的信息以及目标位置等信息输入第一子模型,得到第一子模型输出的若干个轨迹,针对每个障碍物,获取该障碍物的历史轨迹,并根据历史轨迹以及该障碍物的信息,确定该障碍物的预估轨迹,根据各待定轨迹以及各障碍物的预估轨迹,在各待定轨迹中,选择目标轨迹。
具体的,通过第一子模型得到若干个轨迹、以及根据障碍物的信息确定障碍物的预估轨迹的内容,可参考现有的技术方案,目前已存在较多由机器学习模型规划轨迹的方案,本说明书不再赘述。
在选择目标轨迹时,可针对各待定轨迹,将该待定轨迹与各障碍物的预估轨迹一一对比,若该待定轨迹与任一障碍物的预估轨迹存在重合,说明无人设备按照该待定轨迹行驶时可能会与障碍物产生碰撞,因此,可将该待定轨迹进行剔除,若该待定轨迹未与任一障碍物的预估轨迹存在重合,说明无人设备按照该待定轨迹行驶时,可能不会与障碍物产生碰撞,因此,可无需剔除该待定轨迹。在各待定轨迹进行筛选剔除之后,在剩下的待定轨迹中,可由第二子模型确定各待定轨迹的轨迹置信度,并基于各待定轨迹的轨迹置信度,确定目标轨迹,或者,在剩下的待定轨迹中,根据预设的规则,选择目标轨迹,其中,预设的规则可包括待定轨迹的轨迹曲率满足预设的曲率限制,待定轨迹中各轨迹点的速度取值在预设的速度区间内等。当然,在本说明书中,还可直接将剩下的待定轨迹均作为目标轨迹。
关于第二子模型:第二子模型的参数可包括速度权重、偏移权重,其中速度权重还可包括行驶速度权重、加速度权重等。在本说明书中,可确定目标轨迹的各轨迹点,其中,轨迹点的信息包括轨迹点的位置、轨迹点的速度(即,行驶速度)、无人设备在轨迹点的加速度等信息,可将目标轨迹输入第二子模型,通过第二子模型,根据各轨迹点的位置、偏移权重、各轨迹点的速度、速度权重中的至少一种,确定目标轨迹的轨迹置信度。
具体的,可将目标轨迹的信息(即,位于目标轨迹上的各轨迹点的信息)输入第二子模型,通过第二子模型,根据各轨迹点的位置、偏移权重、各轨迹点的行驶速度、行驶速度权重、无人设备在各轨迹点的加速度、加速度权重等信息中的一种或多种,确定目标轨迹的轨迹置信度。实际上,第二子模型也可用公式来表示,即可确定各轨迹点的位置与偏移权重的乘积作为第一乘积、各轨迹点的行驶速度与行驶速度权重的乘积作为第二乘积、各无人设备在各轨迹点的加速度与加速度权重的乘积作为第三乘积,可确定第一乘积、第二乘积以及第三乘积中的任一种的加权值作为目标轨迹的轨迹置信度,或者,可确定第一乘积、第二乘积以及第三乘积中的多种的加权和值作为目标轨迹的轨迹置信度。
此外,第二子模型在确定目标轨迹或各待定轨迹的轨迹置信度时,针对各需要确定轨迹置信度的各轨迹,还可将各障碍物的信息输入第二子模型,尤其是将各障碍物的预估轨迹输入第二子模型,由第二子模型基于各障碍物的预估轨迹、预设的各参数(包括上述内容的偏移权重、行驶权重等等)以及该轨迹的信息,确定该轨迹的轨迹置信度。其中,涉及到基于各障碍物的信息确定该轨迹的轨迹置信度时,一般可基于各障碍物的预估轨迹与该轨迹是否有重叠区域来判断该轨迹是否会与各障碍物发生碰撞、以及基于各障碍物的预估轨迹与该轨迹之间的距离是否大于预设的安全距离来判断无人设备按照该轨迹行驶的情况下是否与各障碍物保持较好的安全距离等方面来确定该轨迹的轨迹置信度。
当第二子模型确定的是各待定轨迹的轨迹置信度时,需要根据各待定轨迹的轨迹置信度,在各待定轨迹中,选择目标轨迹,此时,可按照各待定轨迹的估计置信度,对各待定轨迹进行排序,根据排序结果,选择目标轨迹,例如,可选择轨迹置信度最大的待定轨迹作为目标轨迹,或者,在排序靠前的若干个待定轨迹中随机选择。当然,还可预设轨迹置信度阈值,在轨迹置信度大于轨迹置信度阈值的各待定轨迹中,随机选择待定轨迹作为目标轨迹等。
图2为本说明书实施例提供的一种模型训练过程中确定的目标位置以及目标轨迹的示意图,在图2中,车辆a为无人设备,车辆b为障碍物,黑色圆点为目标位置,车辆a与黑色圆点之间的各虚线代表各待定轨迹,其中,根据车辆a、车辆b的信息以及道路信息等,由位置确定模型确定出图2中a情形所示的目标位置,由决策模型根据目标位置等信息,规划出图2中b情形所示的车辆a到目标位置的三个待定轨迹,并确定三个待定轨迹的轨迹置信度,可将三个待定轨迹均作为目标轨迹,将三个待定轨迹的轨迹置信度在下一次迭代训练过程中(即图2中b情形所示)输入位置确定模型,也可根据各待定轨迹的轨迹置信度,在三个待定轨迹中选择目标轨迹,并将目标轨迹的轨迹置信度在下一次迭代训练过程中输入位置确定模型,由于图2中a情形所示的目标位置位于车辆a与车辆b之间,导致图2中b情形所示的目标轨迹的轨迹置信度较低,因此,当将图2中b情形所示的目标轨迹的轨迹置信度输入下一次迭代过程中的位置确定模型后,位置确定模型确定出的目标位置可如图2中c情形所示,然后基于图2中c情形所示的目标位置,由决策模型再次确定目标轨迹以及目标轨迹的置信度,以此类推,对位置确定模型以及决策模型进行迭代训练,直至满足训练条件为止,其中训练条件可包括迭代次数大于预设的迭代次数阈值、目标轨迹的轨迹置信度收敛等。
基于上述内容,本说明书在对位置确定模型以及决策模型进行整体训练时,由于整个过程为将训练样本以及上一迭代过程得到的轨迹置信度输入位置确定模型,由位置确定模型确定目标位置,并将目标位置的信息输入决策模型,由决策模型确定目标轨迹以及目标轨迹的轨迹置信度。因此,对位置确定模型以及决策模型的整体训练,实则采用了强化学习的思想,即,可将上一迭代过程得到的轨迹置信度作为奖励,基于上一迭代过程得到的奖励以及训练样本,位置确定模型输出目标位置(即,可将目标位置作为一种“动作”),决策模型基于目标位置确定目标轨迹(即,可将其看做执行“动作”)、以及目标轨迹的轨迹置信度(即,可将其看做在执行“动作”的情况下,给出的奖励)。然后,以奖励最大化作为训练目标,对位置确定模型以及决策模型进行整体训练,也就是说,目标轨迹越好(例如,目标轨迹越趋近于专家数据),目标轨迹的轨迹置信度越大,奖励越大,在下一次迭代过程中,基于更大的奖励,位置确定模型确定的目标位置更好,决策模型基于更好的目标位置,确定出更好的目标轨迹,得到的目标轨迹的轨迹置信度更大,以此循环,当迭代的次数达到预设的次数阈值或者当奖励趋近于稳定又或者满足其他预设的条件时,可完成对位置确定模型以及决策模型的整体训练。
此外,本说明书也可对位置确定模型以及决策模型进行单独训练。
在对位置确定模型进行单独训练时,可获取训练样本以及训练样本对应的实际位置,其中,训练样本对应的实际位置可为专家数据,并可将训练样本对应的实际位置作为标注信息。然后可将训练样本等信息输入待训练的位置确定模型,得到待训练的位置确定模型输出的目标位置,根据目标位置以及标注信息,对位置确定模型进行有监督训练,即,可确定目标位置与标注信息之间的差异作为损失,以损失最小化为训练目标,对位置确定模型进行训练。
在对决策模型进行单独训练时,同样可参考上述位置确定模型的训练过程,可对决策模型进行有监督训练,即,可获取无人设备的信息以及目标位置的信息作为训练样本,并获取训练样本对应的若干个轨迹作为标注轨迹,获取各标注轨迹的轨迹置信度,其中标注轨迹以及标注轨迹的轨迹置信度均为专家数据,可将训练样本输入决策模型,由决策模型输出若干个待定轨迹以及每个待定轨迹的轨迹置信度,可确定各待定轨迹与标注轨迹的第一差异、以及各待定轨迹的轨迹置信度与标注轨迹的轨迹置信度的第二差异,根据第一差异以及第二差异确定损失,其中,损失与第一差异正相关,损失与第二差异正相关,以损失最小化为训练目标,对决策模型进行有监督训练。
当然,如上所述,决策模型还可分为第一子模型以及第二子模型,其中,第一子模型确定无人设备从当前位置到达目标位置的轨迹的方式可参考现有的技术方案,因此,对第一子模型的训练过程同样可参考现有的技术方案,此处不再赘述。
下面来说对第二子模型的训练。可获取若干个轨迹作为训练样本,并获取每个轨迹实际的轨迹置信度作为标注信息,其中,轨迹的实际的轨迹置信度可由其他技术方案确定,或者由其他模块直接确定,可将训练样本输入第二子模型,得到第二子模型输出的预估轨迹置信度,根据预估轨迹置信度以及标注信息,对第二子模型进行有监督训练,例如,可确定预估轨迹置信度与标注信息之间的差异作为损失,以损失最小化为训练目标,对第二子模型中的各参数进行调整。
基于上述内容,在对位置确定模型以及决策模型完成训练之后,可将位置确定模型以及决策模型应用于无人设备的轨迹规划以及无人设备的控制场景中,因此,本说明书还提供一种轨迹规划的方法,图3为本说明书实施例提供的一种轨迹规划的方法流程图,具体可包括以下步骤:
s200:获取无人设备当前的状态信息。
s202:将所述状态信息输入位置确定模型,得到所述位置确定模型输出的目标位置。
s204:将所述状态信息以及所述目标位置输入决策模型,得到所述决策模型输出的若干个轨迹以及每个轨迹的轨迹置信度。
s206:根据各轨迹的置信度,在各轨迹中,选择指定轨迹,并控制所述无人设备按照所述指定轨迹运行。
在完成对位置确定模型以及决策模型的训练后,可基于位置确定模型确定目标位置,并基于决策模型规划无人设备的轨迹,以使无人设备按照轨迹的轨迹行驶。
具体的,可获取无人设备的当前的状态信息,此外,还可获取无人设备所在的环境信息,将状态信息以及环境信息等输入位置确定模型,通过位置确定模型,得到目标位置,然后,将无人设备的状态信息、环境信息等输入决策模型,通过决策模型得到若干个轨迹以及每个轨迹的轨迹置信度,其中,在本说明书中,决策模型还可包括第一子模型以及第二子模型,将无人设备的状态信息、环境信息等输入第一子模型,得到第一子模型输出的若干个轨迹,将各轨迹输入第二子模型,得到由第二子模型输出的每个轨迹的轨迹置信度。
在得到各轨迹以及各轨迹的轨迹置信度之后,可根据各轨迹的轨迹置信度,对各轨迹进行排序,根据排序结果选择指定轨迹,例如,可在排序结果靠前的若干个轨迹中随机选择轨迹作为指定轨迹,也可直接选择轨迹置信度最大的轨迹作为指定轨迹,又如,可设置轨迹置信度阈值,在轨迹置信度大于轨迹置信度阈值的各轨迹中,随机选择轨迹作为指定轨迹等。
在确定指定轨迹之后,由于指定轨迹可由各轨迹点组成,每个轨迹点的信息可包括轨迹点的位置、轨迹点的行驶速度、无人设备在轨迹点的加速度等信息,因此,可根据指定轨迹的信息(或位于指定轨迹上各轨迹点的信息),控制无人设备按照指定轨迹进行运行。
本说明书提供的上述控制无人设备的方法,具体可应用于使用无人设备进行配送的领域,例如,使用无人设备进行快递、外卖等配送的场景。具体的,在上述的场景中,可使用多个无人设备所构成的无人驾驶车队进行配送。
基于上述内容所述的模型训练的方法,本说明书实施例还对应提供一种模型训练的装置的结构示意图,如图4所示。
图4为本说明书实施例提供的一种模型训练的装置的结构示意图,所述装置包括:
第一获取模块400,用于获取无人设备的状态信息作为训练样本;
训练模块402,用于根据所述训练样本,采用下述方法对位置确定模型以及决策模型进行迭代训练:
第一输入子模块4020,用于针对每次迭代训练,获取上一次迭代训练得到的轨迹置信度,将所述训练样本输入所述位置确定模型,得到由所述位置确定模型根据获取的轨迹置信度输出的目标位置,所述位置确定模型用于规划所述无人设备的目标位置;
第二输入子模块4022,用于根据所述训练样本以及所述目标位置,通过决策模型得到所述无人设备到达所述目标位置的目标轨迹以及所述目标轨迹的轨迹置信度。
可选地,所述第二输入子模块4022具体用于,在所述目标位置的邻域内,确定若干个指定位置,由所述目标位置以及各指定位置组成位置集合;将所述训练样本以及所述位置集合输入所述决策模型,得到由所述决策模型输出的所述无人设备到达所述位置集合中包含的每个位置的待定轨迹以及每个待定轨迹的轨迹置信度;根据各轨迹置信度,在各待定轨迹中,选择所述目标轨迹。
可选地,所述决策模型包括第一子模型以及第二子模型;
所述第二输入子模块4022具体用于,将所述训练样本以及所述目标位置输入所述第一子模型,得到所述第一子模型输出的所述目标轨迹;将所述目标轨迹输入所述第二子模型,由所述第二子模型根据预设的若干个参数,得到所述目标轨迹的轨迹置信度。
可选地,所述第二输入子模块4022具体用于,获取所述无人设备所处环境中各障碍物的信息;将所述训练样本、各障碍物的信息以及所述目标位置输入所述第一子模型,得到所述第一子模型输出的若干个待定轨迹;针对每个障碍物,获取该障碍物的历史轨迹,并根据所述历史轨迹以及该障碍物的信息,确定该障碍物的预估轨迹;根据各待定轨迹以及各障碍物的预估轨迹,在各待定轨迹中,选择所述目标轨迹。
可选地,所述第二子模型的参数包括速度权重、偏移权重;
所述第二输入子模块4022具体用于,确定所述目标轨迹的各轨迹点,其中,轨迹点的信息包括轨迹点的位置、轨迹点的速度;通过所述第二子模型,根据各轨迹点的位置、所述偏移权重、各轨迹点的速度、所述速度权重中的至少一种,确定所述目标轨迹的轨迹置信度。
基于上述内容所述的模型训练的方法,本说明书实施例还对应提供一种轨迹规划的装置的结构示意图,如图5所示。
图5为本说明书实施例提供的一种轨迹规划的装置的结构示意图,所述装置包括:
第二获取模块500,用于获取无人设备当前的状态信息;
确定位置模块502,用于将所述状态信息输入位置确定模型,得到所述位置确定模型输出的目标位置;
确定轨迹模块504,用于将所述状态信息以及所述目标位置输入决策模型,得到所述决策模型输出的若干个轨迹以及每个轨迹的轨迹置信度;
控制模块506,用于根据各轨迹的置信度,在各轨迹中,选择指定轨迹,并控制所述无人设备按照所述指定轨迹运行,其中,所述位置确定模型以及所述决策模型预先通过上述内容提供的模型训练的方法进行训练。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述内容所述的模型训练以及轨迹规划的方法。
基于上述内容所述的模型训练以及轨迹规划的方法,本说明书实施例还提出了图6所示的电子设备的示意结构图。如图6,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述内容所述的模型训练以及轨迹规划的方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。