CN118046372A - 用于确定对象的放置方案的方法、装置和计算机可读存储介质 - Google Patents
用于确定对象的放置方案的方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN118046372A CN118046372A CN202211356790.8A CN202211356790A CN118046372A CN 118046372 A CN118046372 A CN 118046372A CN 202211356790 A CN202211356790 A CN 202211356790A CN 118046372 A CN118046372 A CN 118046372A
- Authority
- CN
- China
- Prior art keywords
- placement
- information
- container
- sample
- initial
- 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 57
- 230000002787 reinforcement Effects 0.000 claims abstract description 26
- 230000009471 action Effects 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 29
- 238000012549 training Methods 0.000 claims description 28
- 238000013527 convolutional neural network Methods 0.000 claims description 20
- 230000009466 transformation Effects 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000008447 perception Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007786 learning performance Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本公开内容提供了用于确定对象的放置方案的方法、装置和计算机可读存储介质。该方法可以包括:获取对象信息和容器状态信息;基于对象信息和容器状态信息,采用深度强化学习算法确定初始放置信息,初始放置信息用于表示当前对象的一组初始放置方案;基于容器状态信息,采用与深度强化学习算法不同的另一算法确定可行放置信息,可行放置信息用于表示当前对象的一组可行放置方案;基于初始放置信息和可行放置信息,确定当前对象的最终放置方案,其中,最终放置方案是一组初始放置方案与一组可行放置方案之间共有的放置方案。
Description
技术领域
本公开内容涉及机器人技术领域,并且具体地,涉及用于确定对象的放置方案的方法、装置和计算机可读存储介质。
背景技术
近年来,随着机器人技术的研究不断深入,机器人(例如,机械臂)在码垛(例如,码放箱子)、集装箱装载等方面的应用也快速发展,由此极大地节省了人力成本,而且提高了操作效率。目前,码垛或装箱场景通常包括离线场景和在线场景。在离线场景中,要放置的各个对象的尺寸是提前已知的,因此通常可以统一规划各个对象的放置。而对于在线场景来说,要放置的各个对象的尺寸并不能提前知道,而通常需要按照对象的到达顺序随到随装。无论何种场景下,都需要有效且合理地规划或者优化对象的放置。
发明内容
考虑到上述需求,本公开内容的实施例提供了用于确定对象的放置方案的方法、装置和计算机可读存储介质。
一方面,本公开内容的实施例提供了一种用于确定对象的放置方案的方法,包括:获取对象信息和容器状态信息,其中,所述对象信息用于表示待放置到容器中的当前对象的尺寸,所述容器状态信息用于表示所述容器中的对象放置状态;基于所述对象信息和所述容器状态信息,采用深度强化学习(Deep Reinforcement Learning,DRL)算法确定初始放置信息,其中,所述初始放置信息用于表示所述当前对象的一组初始放置方案,每个初始放置方案包括所述当前对象的相应初始放置位置和相应初始放置姿态;基于所述容器状态信息,采用与所述DRL不同的另一算法确定可行放置信息,其中,所述可行放置信息用于表示所述当前对象的一组可行放置方案,每个可行放置方案包括所述当前对象的相应可行放置位置和相应可行放置姿态;基于所述初始放置信息和所述可行放置信息,确定所述当前对象的最终放置方案,其中,所述最终放置方案是所述一组初始放置方案与所述一组可行放置方案之间共有的放置方案。
另一方面,本公开内容的实施例提供了一种所述DRL算法的训练方法,包括:获得多组样本数据,其中,每组样本数据包括样本对象信息、样本容器状态信息以及样本可行放置信息,其中,所述样本对象信息包括样本对象的尺寸,所述样本容器状态信息用于表示在所述样本对象要被放置在所述容器中之前所述容器中的对象放置状态,所述样本可行放置信息用于表示所述样本对象在所述容器的一组可行放置方案,所述样本可行放置信息是采用所述另一算法得到的;基于所述多组样本数据对初始DRL算法进行训练,以获得训练好的DRL算法。
在一些实施例中,基于所述多组样本数据对初始DRL算法进行训练,包括:针对每组样本数据,进行以下操作:基于该组样本数据中的样本对象信息和样本容器状态信息,采用初始DRL算法确定动作分数信息,其中,所述动作分数信息包括一组基本放置方案以及每个基本放置方案的分数;基于该组样本数据中的样本可行放置信息和每个基本放置方案的分数,确定每个基本放置方案对应的概率,其中:如果该基本放置方案在该样本可行放置信息中是可行放置方案,则该基本放置方案对应的概率为对该基本放置方案的分数进行归一化得到的值;如果该基本放置方案在该样本可行放置信息中不是可行放置方案,则该基本放置方案对应的概率被设置为预定值;在一组指定放置方案中选择样本最终放置方案,其中,所述一组指定放置方案包括所述一组基本放置方案中的概率不等于所述预定值的放置方案;在针对所述多组样本数据分别得到相应的样本最终放置方案之后,对所述多组样本数据分别对应的样本最终放置方案进行整体评估,并基于评估结果来调整所述初始DRL算法的参数,以获得所述训练好的DRL算法。
可见,在这样的实施例中,由于在一组基本放置方案中的概率不等于预定值的放置方案中选择样本最终放置方案,因此无效动作(即不可行的放置方案)将不会被选择(或称为采样)。这样,采用DRL算法的网络架构(这样的网络架构也可以被称为DRL智能体)将能够学习从有效动作(即可行放置方案中)进行选择,从而使得网格架构在探索和利用之间进行平衡并且在训练过程中能够更加快速地收敛。
另一方面,本公开内容的实施例提供了一种用于确定对象的放置方案的装置,包括:获取单元,被配置为获取对象信息和容器状态信息,其中,所述对象信息用于表示待放置到容器中的当前对象的尺寸,所述容器状态信息用于表示所述容器中的对象放置状态;第一确定单元,被配置为基于所述对象信息和所述容器状态信息,采用DRL算法确定初始放置信息,其中,所述初始放置信息用于表示所述当前对象的一组初始放置方案,每个初始放置方案包括所述当前对象的相应初始放置位置和相应初始放置姿态;第二确定单元,被配置为基于所述容器状态信息,采用与所述DRL算法不同的另一算法确定可行放置信息,其中,所述可行放置信息用于表示所述当前对象的一组可行放置方案,每个可行放置方案包括所述当前对象的相应可行放置位置和相应可行放置姿态;第三确定单元,被配置为基于所述初始放置信息和所述可行放置信息,确定所述当前对象的最终放置方案,其中,所述最终放置方案是所述一组初始放置方案与所述一组可行放置方案之间共有的放置方案。
另一方面,本公开内容的实施例提供了一种用于确定对象的放置方案的装置,包括:至少一个处理器;与所述至少一个处理器进行通信的存储器,其上存储有可执行代码,所述可执行代码在被所述至少一个处理器执行时使得所述至少一个处理器执行上述方法。
另一方面,本公开内容的实施例提供了一种计算机可读存储介质,其存储有可执行代码,所述可执行代码在被执行时使得计算机执行上述方法。
附图说明
通过结合附图对本公开内容的实施例的更详细的描述,本公开内容的实施例的上述以及其它目的、特征和优势将变得更加明显,其中,在各个附图中,相同的附图标记通常代表相同的元素。
图1A和图1B示出了可以应用本公开内容的实施例的示例性场景的示意图。
图2是根据一些实施例的用于确定对象的放置方案的方法的示意性流程图。
图3是根据一些实施例的可以实现本公开内容的实施例的网络架构的示意图。
图4示出了高度图和两个梯度图的一个示例。
图5是根据一些实施例的用于确定对象的放置方案的系统的示意性框图。
图6是根据一些实施例的用于确定对象的放置方案的装置的示意性框图。
图7是根据一些实施例的DRL算法的训练方法的示意性流程图。
具体实施方式
现在将参考各实施例讨论本文描述的主题。应当理解的是,讨论这些实施例仅是为了使得本领域技术人员能够更好地理解并且实现本文描述的主题,并非对在权利要求书中所阐述的保护范围、适用性或者示例进行限制。可以在不脱离权利要求书的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个实施例可以根据需要,省略、替换或者添加各种过程或组件。
如本文中使用的,术语“包括”及其变型可以表示开放的术语,其含义可以是“包括但不限于”。术语“基于”可以表示“至少部分地基于”。术语“一个实施例”、“一实施例”、“一些实施例”等可以表示“至少一个实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。
随着机器人技术的快速发展,已经在装箱或码垛等方面的应用越来越普遍。在装箱任务中,通常包括离线场景和在线场景。在离线场景中,在各个对象(例如,箱子、盒子等)被装箱之前,这些对象的信息(比如,尺寸信息)是已知的,因此通常可以确定统一的装箱策略。而对于在线场景来说,并不能提前知道待放置的对象的信息,而是每当一个对象到达时,实时决定如何放置该对象,例如,按照对象到达顺序随到随装。无论在哪种场景中,都需要有效且合理地规划对象的放置。
在传统上,通常依赖于人为设定的规则来确定对象的放置策略或方案。然而,由于实际应用环境相对复杂,所以人为设定的规则难以达到良好的码放效果。鉴于此,一些研究已经尝试将机器学习技术应用于装箱任务中。DRL技术是一种将深度学习的感知能力和强化学习的决策能力相结合的机器学习技术,为复杂系统的感知决策问题提供了解决思路。因此,期望能够将DRL技术应用于码垛或装箱领域,以便为装箱任务提供良好的解决方案。
对此,本公开内容的实施例提供了一种确定对象的放置方案的技术方案。在本公开内容的实施例中,采用DRL算法来确定对象的初始放置方案,并且结合不同于DRL算法的另一算法来提供可行放置方案,然后将两者相结合来确定对象的最终放置方案,能够更加高效且合理地规划对象的放置。本公开内容的实施例可以应用于离线场景,也可以应用于在线场景,本文对此不作限制。下面将结合具体实施例来描述本公开内容的技术方案。
另外,在本公开内容的实施例中采用的DRL算法可以包括各种适用的DRL算法,例如,A2C(Advantage Actor-Critic)算法、A3C(Asynchronous Advantage Actor-Critic)算法、近似策略优化(Proximal Policy Optimization,PPO)算法等等。
首先,为了便于理解,图1A和图1B示出了可以应用本公开内容的实施例的示例性场景的示意图。
在图1A的场景中,各个箱子随着传送带102A到达。机器人104A可以利用其机械臂抓取到达其位置处的箱子,然后将箱子放置到托盘106A上。如果各个箱子的信息并不是提前已知的,而是在每个箱子到达时决策如何在托盘106A上放置该箱子,那么图1A的示例性场景可以属于在线装箱场景。如果各个箱子的信息是已知的,并且各个箱子的放置已经提前规划好,那么图1A的示例性场景可以属于离线装箱场景。
另外,图1A的场景中还可以包括两个相机。例如,如图1A所示,可以分别设置有两个相机108A和110A。相机108A和110A可以是3D深度相机或者其它合适的相机,或者可以是能够进行图像采集的各种适用的传感器或设备等等,本文对此不作限定。
相机108A可以被设置为能够采集机器人104A当前从传送带上抓取的对象的图像数据。比如,相机108A可以安装在机械臂的操作区域上方或者其它合适的位置。通过相机108A采集的图像数据,可以确定机器人104A当前抓取的对象的尺寸或者其它相关信息。
另外,相机110A可以被设置为能够采集托盘106A的图像数据。比如,相机110A可以安装在托盘106A的上方或者其它合适的位置。通过相机110A采集的图像数据,可以确定托盘106A上的状态,比如对象放置状态。关于这些数据如何应用于本公开内容的实施例中,下文还将结合其它实施例进行详细描述。
图1B示出了另一种示例性场景。在图1B的场景中,示出了抓取容器102B和码放容器106B。在抓取容器102B中随机地堆放着一个或多个箱子。机器人104B的任务是从抓取容器102B中抓取箱子,然后放置到码放容器106B中。
同样,在图1B的场景中,可以设置有两个相机108B和110B。相机108B和110B可以是3D深度相机或者其它合适的相机。本文对此不作限定。相机108B可以被设置为能够采集机器人104B当前抓取的箱子的图像数据。例如,相机108B可以被安装在机器人104B的操作区域中。通过相机108B采集的图像数据,可以确定机器人104B当前抓取的箱子的尺寸或其它相关信息。在一些实现方式中,还可以针对抓取容器102B设置一个相机,其可以采集与抓取容器102B相关的图像数据。利用与抓取容器102B相关的图像数据,可以确定抓取容器102B的状态。基于该状态,可以选择机器人104B要抓取的箱子。在本文的实施例中,由于不涉及抓取容器102B的具体信息,因此在图1B中并未示出该相机。
相机110B可以被设置为能够采集码放容器106B的图像数据。例如,相机110B可以被安装在码放容器106B上方。通过相机110B采集的图像数据,可以确定码放容器106B的内部状态,比如对象放置状态。同样,关于这些数据如何应用于本公开内容的实施例中,下文还将结合其它实施例进行详细描述。
此外,上面提到的各种相机可以是3D深度相机或者其它适用的相机,也可以是能够采集图像数据的各种适用的传感器或设备等等,本文对此不作限定。
类似于图1A,图1B的场景可以是离线场景,也可以是在线场景。此外,应当明白,图1A和图1B仅提供了两种示例性场景。本公开内容的实施例可以应用于各种需要码放对象的场景中,本文对此不作限定。
图2是根据一些实施例的用于确定对象的放置方案的方法的示意性流程图。例如,图2的方法200可以由机器人(比如图1A中的机器人104A或者图1B中的机器人104B)的控制装置来执行。
在步骤202中,可以获取对象信息和容器状态信息。
对象信息可以包括待放置到容器中的当前对象的尺寸。容器状态信息可以用于表示容器的当前状态,例如容器中的对象放置状态。
在步骤204中,可以基于对象信息和容器状态信息,采用DRL算法确定初始放置信息。
初始放置信息可以用于表示当前对象在容器中的一组初始放置方案,每个初始放置方案可以包括当前对象的相应初始放置位置和在该初始放置位置的相应初始放置姿态。
在步骤206中,可以基于容器状态信息,采用与DRL算法不同的另一算法确定可行放置信息。
可行放置信息可以用于表示当前对象在容器中的一组可行放置方案。类似于初始放置方案,每个可行放置方案可以包括当前对象的相应可行放置位置和在该可行放置位置的相应可行放置姿态。
在步骤208中,可以基于初始放置信息和可行放置信息,确定当前对象的最终放置方案。
最终放置方案可以是一组初始放置方案与一组可行放置方案之间共有的放置方案。
概括而言,在本公开内容的实施例中,可以基于对象信息和容器状态信息,采用DRL算法确定当前对象的一组初始放置方案。另外,可以基于容器状态信息,采用与DRL不同的另一算法确定当前对象的一组可行放置方案。然后,可以在初始放置方案与可行放置方案之间共有的放置方案中选择最终放置方案。
通常,由于装箱时的一些不确定性因素(例如,机器人操作误差、相机感知误差等),机器人可能无法严格地将对象按照预期放置方案进行放置,这就可能导致对象的实际放置与预期放置之间存在一些偏差。这样的偏差可能引发一些问题,例如,对象放置得不太紧密,导致空间利用率低;由于前一对象的放置偏差,导致在放置下一对象时两个对象之间发生碰撞;对象放置不稳定等等。因此,在本公开内容的实施例中,不仅可以获取当前对象的对象信息,还可以获取容器状态信息。基于容器状态信息表示的容器的当前状态,实际上可以将先前对象的放置误差考虑在内,从而能够更加合理地规划当前对象的放置,由此减轻或者消除上述由于偏差引发的一些问题。
另外,DRL算法通常在大的动作空间中可能在输出准确度或精度方面以及DRL算法在训练时的收敛速度方面等等有所限制,因此为了更加合理且高效地规划当前对象的放置,在本公开内容的实施例中,采用与DRL算法不同的另一算法来得到一组可行放置方案,然后与DRL算法得到的初始放置方案进行合并处理,能够进一步优化当前对象的最终放置方案。
在一些实施例中,对象信息可以是基于相机针对当前对象采集的图像数据来得到的。例如,在图1A的场景中,可以通过相机108A采集当前对象的图像数据,进而得到当前对象的对象信息。在图1B的场景中,可以通过相机108B采集当前对象的图像数据,从而得到当前对象的对象信息。
容器状态信息可以是基于相机针对容器采集的图像数据来得到的。应当理解,本文中提到的容器可以包括能够码放对象的各种形式的物体,比如托盘(例如,图1A中所示的托盘106A)、集装箱、其它长方体容器(例如,图1B中所示的容器106B)等等。例如,在图1A的场景中,可以通过相机110A采集的图像数据,得到托盘106A的容器状态信息。在图1B的场景中,可以通过相机110B采集的图像数据,得到容器106B的容器状态信息。
在本文的实施例中,所提到的放置方案可以包括放置位置和放置姿态。例如,对于长方体对象来说,对象的放置姿态可以包括横放(例如,较长的一侧平行于水平面,较短的一侧垂直于水平面)、竖放(例如,较短的一侧平行于水平面,较长的一侧垂直于水平面)等。横放和竖放之间可以通过将对象旋转90度来转换。因此,一个放置位置加上一种放置姿态,可以形成一个放置方案。通常,当前对象被机器人抓取时,可以处于一种放置姿态。因此,当前对象的另一种放置姿态可以通过从当前所处的放置姿态旋转得到。另外,当前对象所处的放置姿态也可以通过相机针对当前对象采集的图像数据来得到。
在一些实施例中,在步骤204中,可以采用DRL算法来得到初始放置信息。具体而言,可以基于容器状态信息,确定容器特征信息。容器特征信息可以包括容器中的对象高度状态以及高度变化。可见,通过这样的处理,容器特征信息可以包括多方面的特征,从而有助于提升DRL算法的处理性能。
另外,可以基于对象信息,确定对象特征信息。对象特征信息和容器特征信息在二维空间中可以具有相同的维度。这样,在后续处理过程中,可以更好地将对象特征信息和容器特征信息进行融合,从而提升DRL算法的处理性能。
然后,可以基于对象特征信息和容器特征信息,采用DRL算法确定初始放置信息。
在一些实施例中,容器状态信息可以包括容器的高度图。容器的高度图可以具有类似于2维图像的格式。高度图可以对应于容器的底面并且可以包括多个网格。高度图中包括的多个网格各自与容器的底面的多个区域相对应。也就是说,容器的底面可以被划分为多个区域,每个区域可以通过高度图中的一个网格来表示。每个网格可以具有相应的高度值。每个网格的高度值可以用于表示该网格所对应的区域被占用的总高度。例如,如果某个网格对应的区域未被任何对象占用,则该网格的高度值可以为0或者表示该网格对应的区域未被占用的其它值。如果某个网格对应的区域被单个对象占用,则该网格的高度值可以用于表示该对象的高度。如果某个网格对应的区域处在纵向方向上堆叠放置了多个对象,那么该网格的高度值可以用于表示这些堆叠的对象的总高度。应当理解,网格的高度值可以是对象的实际高度,也可以是将对象的实际高度进行某种处理得到的值,本文对此不作限定。
进一步而言,为了提取更多特征信息,可以基于高度图,确定第一梯度图和第二梯度图。第一梯度图可以用于表示多个网格的高度值沿着容器的长度方向的变化,第二梯度图可以用于表示多个网格的高度值沿着容器的宽度方向的变化。在这种情况下,容器特征信息可以包括高度图、第一梯度图和第二梯度图。
第一梯度图和第二梯度图可以在二维空间中与高度图具有相同的维度,这样便于后续进行处理。例如,假设容器的长度为L,宽度为W,那么高度图在二维空间中的维度可以是L×W。第一梯度图和第二梯度图在二维空间中的维度也可以是L×W。那么,容器特征信息可以具有三个通道,一个通道是高度图,一个通道是第一梯度图,而另一通道是第二梯度图。在这种情况下,如果将通道作为另一维度,那么可以认为容器特征信息在三维空间中具有3×L×W的维度。在这种情况下,对象特征信息可以在二维空间中与高度图、第一梯度图和第二梯度图具有相同的二维维度,但是在三维空间中可以具有不同数量的通道(相比于容器特征信息而言)。
通常,从人类思维角度来说,可能倾向于优先将箱子放置在高度较低的位置处。例如,在容器为空并且进行对象放置的情况下,可能倾向于优先铺满容器的底面。因此,将高度图、第一梯度图和第二梯度图都作为容器特征信息,可以使得算法执行的结果更加符合人类思维,这样也使得对象放置更加合理化。
关于对象特征信息,可以通过多种方式来得到。例如,对象信息可以包括当前对象的长度、宽度和高度。在一种实现方式中,可以将对象信息进行维度变换,得到对象特征信息。可以采用各种适用的方式来将对象信息进行维度变换,比如线性变换和矩阵乘法等,本文对此不作限定。
在另一种实现方式中,可以将对象信息进行维度变换(例如,采用线性变换和矩阵乘法),然后采用卷积神经网络(Convolutional Neural Network,CNN)对维度变换的结果进行处理,得到对象特征信息。
无论上面哪种方式得到对象特征信息,对象特征信息的维度可以与容器特征信息在二维空间中的维度是相同的。这样,可以易于将对象特征信息和容器特征信息进行融合,从而便于后续处理。另外,在第二种实现方式中,利用CNN将维度变换的结果进一步处理,这样得到的对象特征信息可以具有多个通道。这可以在对象特征信息中包括更多的有效特征,从而有利于DRL算法的性能提升。关于对象特征信息的通道数量的具体取值,可以根据实际应用场景或者经验等来设定。例如,在一种实现方式中,对象特征信息的通道数量可以是2。结合前述示例,假设容器特征信息在三维空间中的维度表示为3×L×W。那么,在经过CNN处理之后得到的对象特征信息在三维空间中的维度可以表示为2×L×W。
在一些实施例中,可以采用CNN将对象特征信息和容器特征信息进行处理,得到针对DRL算法的输入信息。然后,可以采用DRL算法对输入信息进行处理,确定初始放置信息。通过CNN将对象特征信息和容器特征信息进行处理,能够进一步提取更多特征,从而有助于提升DRL算法的处理性能。
上面描述了与步骤204相关的一些实施例。下面进一步描述与步骤206相关的一些实施例。
在一些实施例中,在步骤206中,可以基于容器状态信息,采用与DRL算法不同的另一算法确定一组潜在放置方案。本文中所提到的与DRL算法不同的另一算法可以包括能够基于容器状态信息来得到放置方案的各种适用的算法,例如,角点(Corner Point,CP)算法、极值点(Extreme Point,EP)算法、最大剩余空间(Empty Maximal Space,EMS)算法、内部角点(Internal Corner Point,ICP)等等。本文对此不作限定。
在得到一组潜在放置方案之后,还可以进一步基于预定放置约束,确定该组潜在放置方案中的一组可行放置方案。例如,预定放置约束可以包括容器边界约束、非重叠约束、静态稳定性约束等等。可见,通过预定放置约束,可以从一组潜在放置方案中滤除掉一些可能无效的放置方案。
在一些实施例中,可行放置信息可以与容器特征信息在二维空间中具有相同的维度,但是可能具有不同的通道数量。例如,可行放置信息在三维空间中的维度可以表示为2×L×W,这可以表示可行放置信息具有两个通道的图,每个通道的图在二维空间中的维度是L×W。此处,一个通道可以对应于一种放置姿态,而另一通道可以对应于另一放置姿态。比如,如前所述,长方体对象通常具有两种放置姿态,即横放姿态和竖放姿态。那么,可行放置信息的两个通道可以分别对应于横放姿态和竖放姿态。在一些具体实现中,可行放置信息也可以称为候选图。当然,可以理解的是,在不同的场景下,对象可能具有更多放置姿态,比如三个或三个以上的放置姿态。相应地,在这种情况下,可行放置信息可以包括三个或三个以上的通道。本文对此不作限定。
通常,虽然采用DRL算法已经得到一组初始放置方案,但是考虑到DRL算法在大的动作空间中(例如,当容器较大时)可能精度和准确度有所下降,所以结合通过与DRL算法不同的另一算法得到的一组可行放置方案,能够使得当前对象的最终放置方案更加合理化。
另外,DRL算法输出的结果通常可以包括概率。例如,采用DRL算法得到的初始放置信息可以包括一组初始放置方案以及每个初始放置方案对应的概率。在一种实现方式中,初始放置信息可以包括两个通道的图,每个通道对应于一种放置姿态。每个通道的图可以表示初始放置位置以及相应的概率。例如,在一种实现方式中,每个通道的图可以具有多个网格,每个网格可以对应于相应的初始放置位置。另外,每个网格可以具有一个值,该值可以表示该网格对应的初始放置位置的概率。因此,进一步结合每个通道对应的放置姿态,总体上来说,初始放置信息可以包括一组初始放置方案以及每个初始放置方案对应的概率。
在这种情况下,在步骤208中,可以基于初始放置信息和可行放置信息,确定优选放置信息。优选放置信息可以包括一组优选放置方案以及每个优选放置方案对应的概率。一组优选放置方案可以是一组初始放置方案与一组可行放置方案之间共有的放置方案。每个优选放置方案对应的概率可以是基于相应的初始放置方案对应的概率获得的。可以理解的是,由于每个优选放置方案是一组初始放置方案与一组可行放置方案之间共有的放置方案,因此,每个优选放置方案对应的概率是对应初始放置方案的概率。然后,可以从一组优选放置方案中选择具有最高概率的放置方案作为最终放置方案。
可以采用各种适用的方式对初始放置信息和可行放置信息进行处理来得到优选放置信息。例如,在初始放置信息和可行放置信息都具有两个通道的图的情况下,可以将两个通道的图分别相乘,仍然得到两个通道的图,即本文中称为优选放置信息。例如,对于长方体对象而言,其通常具有两种放置姿态,即横放姿态和竖放姿态。相应地,初始放置信息可以包括对应于横放姿态的图和对应于竖放姿态的图。同样,可行放置信息可以包括对应于横放姿态的图和对应于竖放姿态的图。然后可以将初始放置信息中的对应于横放姿态的图与可行放置信息中的对应于横放姿态的图相乘,得到对应于横放姿态的相乘结果,同样也具有图的格式。另外可以将初始放置信息中的对应于竖放姿态的图与可行放置信息中的对应于竖放姿态的图相乘,得到对应于竖放姿态的相乘结果,同样也具有图的格式。这样,优选方式信息可以包括对应于横放姿态的相乘结果和对应于竖放姿态的相乘结果,也就是分别对应于横放姿态和竖放姿态的两个图。当然,可以理解的是,在不同的场景下,对象可能具有更多放置姿态,比如三个或三个以上的放置姿态。相应地,在这种情况下,初始放置信息、可行放置信息以及优选放置信息可以包括三个或三个以上的通道。
可见,通过DRL算法得到的结果与另一算法得到的结果相结合,能够更加合理地规划当前对象的最终放置。
另外,可以理解的是,DRL算法在实际使用之前,可以对其进行训练。DRL算法的训练可以是基于多组样本数据来完成。每组样本数据可以包括样本对象信息、样本容器状态信息以及样本可行放置信息。样本对象信息可以用于表示样本对象的尺寸。样本容器状态信息可以用于表示该样本对象要被放置在容器中之前容器中的对象放置状态。样本可行放置信息可以是通过上述与DRL算法不同的另一算法得到的,其可以表示该样本对象在容器中的一组可行放置方案。
通常,DRL算法在大的动作空间中可能收敛变慢或者难以收敛,而且精度也降低,从而导致DRL算法在码垛或装箱领域的应用有所限制。例如,当容器较大时,待放置的对象的可选放置方案也随之增多。在这种情况下,如果简单地利用样本对象信息和样本容器状态信息对DRL算法进行训练,那么DRL算法可能变得难以收敛或者收敛变慢,而且学习效果可能也不太理想。因此,在本公开内容的实施例中,在对DRL算法进行训练时,可以进一步利用与DRL算法不同的另一算法得到的样本可行放置信息来减小DRL算法的动作空间,比如去除一些不可行的放置方案,从而促进DRL算法在训练过程中加速收敛,并且能够降低DRL算法的处理复杂度,由此能够有效地提升DRL算法的学习性能。
为了更加清楚理解本公开内容的实施例,下面将结合具体示例进行描述。应当理解,以下示例并不限制本公开内容的技术方案的范围。
图3是根据一些实施例的可以实现本公开内容的实施例的网络架构的示意图。
如图3所示,网络架构300可以包括多个模块,例如,容器编码器301、对象编码器302、状态CNN 303、DRL模块304、候选图模块305、最终方案确定模块306。应当理解,此处示出的模块仅是为了帮助理解本公开内容的实施例,在不同的实现方式中,可以按照不同的方式划分功能模块,或者可以包括其它功能模块,本文对此不作限定。在一些实现方式中,网络架构300也可以被称为DRL智能体(agent)。
一般来说,网络架构300可以接收两个输入,即容器状态信息和对象信息。另外,网络架构300可以提供输出,即当前对象的最终放置方案。
在图3的示例中,容器状态信息可以被表示为高度图360。例如,通过相机对容器采集的图像数据,可以确定容器的高度图360。例如,假设容器的长度是L,宽度是W,高度是H,则容器的空间可以表示为L×W×H。可以定义容器的坐标系,容器底面的一个顶点可以作为坐标原点o,容器的长度方向可以是x轴方向,宽度方向可以是y轴方向,高度方向可以是z轴方向。高度图360是二维的,对应于容器的底面。因此,高度图360在二维空间中的维度可以表示是L×W。具体来说,高度图360可以定义为Hc∈ZL×W,其中,Hc表示高度图。
在高度图中,每个网格(i,j)可以具有高度值Hc,(i,j)∈[0,H],其表示该网格对应的区域当前被占用的总高度,例如,如果该网格没有被对象占用,则高度值可以是0或者表示未被占用的其它值;如果该网格对应的区域被一个对象占用,则高度值可以表示该对象的高度;如果该网格对应的区域被多个沿着z轴方向堆叠放置的对象占用,则高度值可以表示这多个堆叠放置的对象的总高度。
容器编码器301可以接收高度图360。如前所述,在本公开内容的实施例中,除了关注容器中的高度的绝对值以外,还考虑了高度的变化。从人类思维角度来说,在容器中码放对象时,可能倾向于优先将对象放置在高度较低的位置,而这样的放置也更加合理。因此,为了网络架构300能够更接近人类思维运作,所以容器编码器301可以进一步基于高度图360确定两个梯度图。第一梯度图可以表示多个网格的高度值沿着x轴方向的变化,第二梯度图可以表示多个网格的高度值沿着y轴方向的变化。
为了便于理解,下面结合示例来描述高度图和两个梯度图。图4示出了高度图和两个梯度图的一个示例。
在图4的示例中,假设高度图360包括16个网格,每个网格具有相应的高度值。另外假设左上角的点为坐标原点o,从左到右的方向为x轴的正方向,从上到下的方向为y轴的正方向。
可以基于高度图360,确定第一梯度图420。在第一梯度图420中,每个网格的值可以表示从左到右的网格之间的高度值之差,具体可以是将相邻的后一网格的高度值减去前一网格的高度值所得的高度值之差作为第一梯度图420中的前一网格的梯度值。例如,网格410具有高度值1,网格411具有高度值2,网格410的高度值1加上1将得到网格411的高度值2。因此,第一梯度图420中的网格421具有梯度值+1。其它网格中的梯度值也是类似得到的,不再详细描述。另外,第一梯度图420中的最后一列的网格的值均为0。这是因为最后一列已经在容器边界处,沿着x轴再往右将超出容器边界,因此全部赋予值0。
类似地,可以基于高度图360,确定第二梯度图440。在第二梯度图440中,每个网格的值可以表示从上到下的网格之间的高度值之差,具体可以是将相邻的下一网格的高度值减去上一网格的高度值所得的高度值之差作为第一梯度图420中的上一网格的梯度值。例如,网格410具有高度值1,网格412具有高度值10,网格410的高度值加上9将得到网格412的高度值10。因此,第二梯度图440中的网格441具有梯度值+9。其它网格的梯度值也是类似得到的,不再详细描述。另外,第二梯度图440中的最后一行的网格的梯度值均为0,这是因为最后一行已经在容器边界处,沿着y轴再往下将超出容器边界,因此全部赋予值0。
可见,通过两个梯度图,可以反映出容器中的高度变化状况,从而为后续处理提供更多的特征信息。
返回到图3,容器编码器301可以基于高度图360,得到第一梯度图和第二梯度图,比如图4中的第一梯度图420和第二梯度图440。高度图360、第一梯度图和第二梯度图可以形成容器特征信息362。这也可以理解为,容器特征信息362包括3个通道,每个通道的图在二维空间中的维度均为L×W。因此,容器特征信息362在三维空间中可以具有维度3×L×W。
对象编码器302可以接收对象信息370,并且将对象信息370编码为对象特征信息。对象信息370可以表示当前对象的尺寸,因此其可以被定义为sb,t=(lt,wt,ht)T∈Z3,其中,sb,t可以表示对象信息,(lt,wt,ht)可以表示当前对象的尺寸。
对象编码器302可以采用各种适用的方式来将对象信息370进行编码。例如,在图3的示例中,对象编码器302可以利用两个线性层312和322(用于进行线性变换)以及矩阵乘法将对象信息370进行维度变换,这样可以得到维度变换结果372。维度变换结果372在二维空间中可以与容器特征信息362中的每个通道的图具有相同的维度,但是就三维空间来说,维度变换结果372可以具有单个通道。例如,维度变换结果372在三维空间中可以具有维度1×L×W。在一些实现方式中,维度变换结果372可以直接作为对象特征信息。
而在一些实现方式中,为了进一步提取更多特征,对象编码器302可以利用CNN332对维度变换结果372进一步处理,得到对象特征信息374。例如,CNN 332可以将维度变换结果372的通道数量增加到2,那么对象特征信息374在三维空间中可以具有维度2×L×W。也就是说,对象特征信息374可以包括两个通道,每个通道的图在二维空间中具有维度L×W。
然后,可以将容器特征信息362和对象特征信息374进行通道扩展合并(如在图3中,通过“+”示出该操作),之后将通道扩展合并的结果输入到状态CNN 303中进行处理,以便提取更加丰富的特征信息。根据具体实现需求等因素,状态CNN 303可以具有各种适当的参数。例如,状态CNN303可以具有5层,卷积核大小可以为3×3,填充(padding)可以为1,步长(stride)可以为1,可以采用ReLU激活函数等等。此处仅是举例说明,本文对此不作限定。
为了便于描述,可以将状态CNN 303的处理结果称为DRL算法的输入信息。该输入信息可以被输入到DRL模块304中。DRL模块304可以采用各种适用的DRL算法,例如,A2C算法。DRL模块304可以对输入信息进行处理,得到当前对象的初始放置信息380。
初始放置信息380可以具有2个通道,每个通道的图可以在二维空间中具有维度L×W。另外,每个通道可以对应于当前对象的一种放置姿态。每个通道的图可以表示初始放置位置以及相应的概率。因此,总体上而言,初始放置信息380可以表示一组初始放置方案以及每个初始放置方案对应的概率。
另外,候选图模块305可以基于高度图360,确定候选图364。候选图模块305可以采用与DRL算法不同的另一算法,比如能够基于高度图确定可行放置方案的各种适用的算法,例如,前述CP、EP、EMS、ICP等算法。
具体而言,候选图模块305可以采用该另一算法,确定一组潜在放置方案,然后可以基于一些预定放置约束,滤除掉其中的无效或不可行放置方案,从而得到一组可行放置方案,即候选图364。候选图364同样可以具有2个通道,每个通道的图可以在二维空间中具有维度L×W。每个通道可以对应于当前对象的一种放置姿态,每个通道的图可以表示相应的可行放置位置。例如,可以在候选图中通过0来表示不可行放置位置,通过1来表示可行放置位置。
然后,可以将候选图364与初始放置信息380相乘,得到优先放置信息382。优选放置信息382可以包括一组优选放置方案,其是一组可行放置方案与一组初始放置方案之间共有的放置方案。另外,优选放置信息382可以包括每个优选放置方案对应的概率,概率是可以从初始放置信息380中得到的,例如,每个优选放置方案对应的概率可以等于相应初始放置方案的概率。可以理解的是,按照前面的示例,优选放置信息382也可以具有两个通道,其分别对应于当前对象的两种放置姿态。每个通道的图可以表示优选放置位置以及相应的概率。例如,在一种实现方式中,对于优选放置信息382来说,每个通道的图可以包括多个网格,每个网格可以对应于相应的优选放置位置。另外,每个网格可以具有一个值,该值可以表示该网格对应的优选放置位置的概率。因此,进一步结合通道对应的放置姿态来说,优选放置信息382可以包括一组优选放置方案以及每个优选放置方案对应的概率。
然后,最终方案确定模块306可以从一组优选放置方案中选择具有最高概率的优选放置方案作为最终放置方案384。
网络架构300的操作可以随着对象的不断放置而实时进行。因此,每当放置一个对象之后,网络架构300可以基于当前的容器状态信息以及待放置的下一个对象的对象信息,确定该下一对象的最终放置方案。这样,即使前一个对象的放置存在一定的误差,也将能够在确定下一对象的最终放置方案时及时地考虑在内,从而更加合理地规划对象的放置。
另外,网络架构300在实际应用之前,可以进行训练。在网络架构300的训练过程中,实际上主要是对DRL模块304中的DRL算法进行训练。例如,可以基于多组样本数据来对DRL模块304进行训练。多组样本数据可以包括样本对象信息、样本高度图以及样本候选图。样本对象信息可以用于表示样本对象的尺寸。样本高度图可以用于表示在样本对象要被放置在容器中之前容器的高度状态。样本候选图可以用于表示样本对象在容器的一组可行放置方案。
在一种实现方式中,DRL模块304可以采用A2C算法,可以另外结合广义优势估计器(Generalized Advantage Estimator,GAE)来进行训练。当然,在其它实现方式中,DRL模块304还可以采用其它适用的DRL算法,结合其它的估计器等进行训练,本文对此不作限定。
此处需要强调的是,在对DRL模块304的训练过程中,可以结合样本候选图来减小DRL模块304的动作空间,从而加快DRL模块304的收敛速度。例如,在训练过程中,DRL模块304中的DRL算法可以在行动者(actor)的最后softmax层之前输出各个动作的非归一化分数{li}i∈{1,…,L×W×O}。“动作”是在DRL算法中的通用术语,结合本文的应用场景来说,每个动作可以代表一个放置方案。
然后,基于样本候选图,通过softmax层对各个动作的非归一化分数{li}i∈{1,…,L×W×O}进行归一化,从而产生动作概率分布,此处表示为π(st)(st可以表示对象信息和容器状态信息的组合)。在π(st)中,无效动作(即根据样本候选图确定的无效或不可行放置方案)的概率可以被设置为0。具体而言,在对各个动作的非归一化分数进行归一化时,如果某个动作代表的放置方案在样本候选图中是不可行的放置方案,也就是说明该动作是无效动作,那么可以将该动作的分数的归一化结果设置为0;如果某个动作代表的放置方案在样本候选图中是可行的放置方案,则将该动作对应的分数归一化为相应的概率。然后,网络架构300(例如,最终方案确定模块306)可以在大于0的概率范围内在π(st)中进行随机采样,这样,无效动作将不会被采样。由此,网络架构300可以学习从有效动作列表中选择动作(即,从有效或可行放置方案中选择放置方案)。可见,通过结合样本候选图,能够有效地减小DRL算法的动作空间。那么,通过基于多组样本数据进行这样的训练过程,能够高效地完成DRL算法的训练,也就是整个网络架构300的训练。
另外,从上述描述可以理解的是,网络架构300在训练过程中以及在实际使用过程中可以通过不同的方式来选择最终输出结果。例如,在训练过程中,网络架构300可以在概率大于0的放置方案当中随机选择一个放置方案作为网络架构300的输出结果。而在实际使用过程中,网络架构300可以选择具有最高概率的放置方案作为网络架构300的输出结果。当然,网络架构300在训练过程中以及在实际使用过程中采用的采样方式可以根据实际需求、经验等等各种因素来决定。
此外,可以明白的是,在上面的示例中,将无效动作的概率设置为0以及从概率大于0的范围内进行采样,这些仅仅是举例说明,本文对于无效动作的概率设置以及进行采样的概率范围并不限定。这可以根据实际应用需求、场景、经验等各种因素来决定。
可见,通过样本候选图,将能够有效地加速DRL模块304中的DRL算法的收敛速度,提升其学习性能。
图5是根据一些实施例的用于确定对象的放置方案的系统的示意性框图。
如图5所示,系统500可以包括获取单元502、第一确定单元504、第二确定单元506和第三确定单元508。
获取单元502可以获取对象信息和容器状态信息。对象信息可以用于表示待放置到容器中的当前对象的尺寸,容器状态信息可以用于表示容器中的对象放置状态。
第一确定单元504可以基于对象信息和容器状态信息,采用DRL算法确定初始放置信息。初始放置信息可以用于表示当前对象的一组初始放置方案,每个初始放置方案包括当前对象的相应初始放置位置和相应初始放置姿态。
第二确定单元506可以基于容器状态信息,采用与DRL算法不同的另一算法确定可行放置信息。可行放置信息可以用于表示当前对象的一组可行放置方案,每个可行放置方案包括当前对象的相应可行放置位置和相应可行放置姿态。
第三确定单元508可以基于初始放置信息和可行放置信息,确定当前对象的最终放置方案。最终放置方案可以是一组初始放置方案与一组可行放置方案之间共有的放置方案。
结合参考图3,在一些实施例中,系统500可以包括:容器编码器(301)、对象编码器(302)、状态CNN(303)、DRL模块(304)、候选图模块(305)和最终方案确定模块(306);所述容器编码器(301)用于:基于所述容器状态信息,确定容器特征信息,其中,所述容器特征信息用于表示所述容器中的对象高度状况以及高度变化;所述对象编码器(302)用于:基于所述对象信息,确定对象特征信息,其中,所述对象特征信息和所述容器特征信息在二维空间中具有相同的维度;所述状态CNN(303)用于:对将所述容器特征信息和所述对象特征信息进行通道扩展合并后的结果进行处理;所述第一确定单元包括所述DRL模块(304),所述DRL模块(304)用于采用所述DRL算法对所述状态CNN(303)的处理结果进行处理,以确定所述初始放置信息;所述第二确定单元包括所述候选图模块(305),所述候选图模块(305)用于基于所述容器状态信息,采用与所述DRL算法不同的另一算法确定所述可行放置信息;所述第三确定单元包括所述最终方案确定模块(306),所述最终方案确定模块(306)用于从所述一组可行放置方案与所述一组初始放置方案之间共有的放置方案中选择优选放置方案作为所述最终放置方案。
在一些实施例中,所述对象编码器(302)包括:第一线性层(312)和第二线性层(322),用于将对象信息进行线性变换;CNN(332),用于对经所述线性变换和矩阵乘法将对象信息进行维度变换后的结果进行处理,得到所述对象特征信息。
系统500的各个单元可以执行上面关于方法实施例描述的具体过程,因此,为了描述的简洁,此处不再赘述系统500的各个单元的具体操作和功能。系统500还可以包括处理器、和与至少一个处理器进行通信的存储器,其上存储有可执行代码,可执行代码在被至少一个处理器执行时使得至少一个处理器执行上述系统500中包括的各单元、各模块、各编码器、和各CNN所执行的操作。
图6是根据一些实施例的用于确定对象的放置方案的装置的示意性框图。
如图6所示,装置600可以包括处理器602、存储器604、输入接口606以及输出接口608,这些模块可以通过总线610耦合在一起。然而,应当理解,图6仅是举例说明,而并非对本公开内容的范围进行限制。例如,在不同的应用场景中,装置600可能包括更多或更少的模块,本文对此不作限定。
存储器604可以用于存储与装置600的功能或操作相关的各种数据(比如本文提到的对象信息、容器状态信息、各种放置方案等等)、可执行指令或可执行代码等。例如,存储器604可以包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器、硬盘等等。
处理器602可以用于执行或实现装置600的各种功能或操作,例如本文描述的确定对象的放置方案的各种操作。例如,处理器602可以执行存储在存储器604中的可执行代码或指令,从而实现关于本公开内容的各个实施例所描述的各种过程。处理器602可以包括各种适用的处理器,例如,通用处理器(比如中央处理单元(Central Processing Unit,CPU))、专用处理器(比如数字信号处理器、图形处理单元、专用集成电路等等)。
输入接口606可以接收各种形式的数据等,例如,与本文的过程相关的一些数据,比如对象信息和容器状态信息。在一些实现方式中,输入接口606还可以基于各种有线或无线通信标准进行相应的通信。
输出接口608可以输出各种形式的数据或消息或信息等。例如,输出接口608可以输出本文描述的最终放置方案等,以便控制机器人基于最终放置方案将当前对象放置到容器中。在一些实现方式中,输出接口608可以基于各种适用的有线或无线通信标准进行相应的通信。
本公开内容的实施例还提供了一种计算机可读存储介质。计算机可读存储介质可以存储有可执行代码,可执行代码在被计算机执行时使得计算机实现上面关于解码设备描述的具体过程。
例如,计算机可读存储介质可以包括但不限于RAM、ROM、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、静态随机存取存储器(Static Random Access Memory,SRAM)、硬盘、闪存等等。
图7是根据一些实施例的DRL算法的训练方法的示意性流程图。
在方法700中,在步骤702处,可以获得多组样本数据。每组样本数据包括样本对象信息、样本容器状态信息以及样本可行放置信息。样本对象信息可以包括样本对象的尺寸。样本容器状态信息可以用于表示在样本对象要被放置在容器中之前容器中的对象放置状态。样本可行放置信息可以用于表示样本对象在容器的一组可行放置方案。样本可行放置信息可以是采用前述与DRL算法不同的另一算法得到的。
在步骤704处,可以基于多组样本数据对初始DRL算法进行训练,以获得训练好的DRL算法。这样的训练好的DRL算法可以在上述各个实施例中使用。
在一些实施例中,具体训练过程可以如下进行。
首先,可以针对每组样本数据进行以下操作。
可以基于该组样本数据中的样本对象信息和样本容器状态信息,采用初始DRL算法确定动作分数信息。动作分数信息可以包括一组基本放置方案以及每个基本放置方案的分数。
可以基于该组样本数据中的样本可行放置信息和每个基本放置方案的分数,确定每个基本放置方案对应的概率。如果该基本放置方案在该样本可行放置信息中是可行放置方案,则该基本放置方案对应的概率可以为对该基本放置方案的分数进行归一化得到的值;如果该基本放置方案在该样本可行放置信息中不是可行放置方案,则该基本放置方案对应的概率可以被设置为预定值。
可以在一组指定放置方案中选择样本最终放置方案,其中,该组指定放置方案包括该组基本放置方案中的概率不等于预定值的放置方案。例如,可以在一组指定放置方案中随机地选择样本最终放置方案。
例如,样本可行放置信息可以是前述样本候选图,上述预定值可以为0。相应地,一组指定放置方案可以包括一组基本放置方案中的概率大于0的放置方案。
然后,在针对多组样本数据都得到相应的样本最终放置方案之后,可以对多组样本数据分别对应的样本最终放置方案进行整体评估,然后可以基于评估结果来调整初始DRL算法的参数,以获得训练好的DRL算法。可以基于多种适用的指标来对多组样本数据分别对应的样本最终放置方案进行评估。
比如,每组样本数据可以分别对应于一个样本对象。这些样本对象可以是在一次装箱任务中按照一定顺序依次放置在容器中的。在这种情况下,可以基于容器的空间利用率来评估这些样本最终放置方案的优劣。基于这样的评估结果,可以调整初始DRL算法的参数。
当然,以上整个过程可以进行一次或多次,直到达到目标评估结果为止。目标评估结果可以根据实际业务需求、应用场景、经验等各种因素来确定。评估过程可以根据奖励方程的数值结合策略梯度算法等来调整DRL算法的参数。DRL的网络可以包括行动部分(也称为actor(行动者))和评估部分(也称为critic(评论者))。例如,在图3的示例中,DRL模块304可以包括行动者和评论者。构建DRL网络可以包括确定DRL网络的状态、动作和回报等。
在训练过程中,行动部分可以用于确定上述一组基本放置方案,评估部分可以用于对上述样本最终放置方案的优劣进行评估。在一些实现方式中,评估部分还可以结合其它适用的估计工具来评估上述样本最终放置方案的优劣,这可以进一步提升评估结果的准确性和可靠性等。例如,这样的估计工具可以包括GAE、动作价值函数(Action ValueFunction)、时序差分残差(Temporal Difference Residual)等等各种适用的工具,本文对此不作限定。
而在实际应用过程中,由于DRL算法已经被训练好,因此可以不包括评估部分,而行动部分可以用于确定上述一组初始放置方案。
鉴于前面已经结合各个实施例对DRL算法的训练过程进行了描述,此处不再赘述。具体训练过程的细节可以参见上面的描述。
上文对本公开内容的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际需求来省略某些步骤或单元。在上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,有些单元可能分别由多个物理实体实现,或者可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开内容的实施例的可选实施方式,但是,本公开内容的实施例并不限于上述实施方式中的具体细节,在本公开内容的实施例的技术构思范围内,可以对本公开内容的实施例的技术方案进行多种变型,这些变型均属于本公开内容的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (17)
1.一种用于确定对象的放置方案的方法,包括:
获取对象信息和容器状态信息,其中,所述对象信息包括待放置到容器中的当前对象的尺寸,所述容器状态信息用于表示所述容器中的对象放置状态;
基于所述对象信息和所述容器状态信息,采用深度强化学习算法确定初始放置信息,其中,所述初始放置信息用于表示所述当前对象的一组初始放置方案,每个初始放置方案包括所述当前对象的相应初始放置位置和相应初始放置姿态;
基于所述容器状态信息,采用与所述深度强化学习算法不同的另一算法确定可行放置信息,其中,所述可行放置信息用于表示所述当前对象的一组可行放置方案,每个可行放置方案包括所述当前对象的相应可行放置位置和相应可行放置姿态;
基于所述初始放置信息和所述可行放置信息,确定所述当前对象的最终放置方案,其中,所述最终放置方案是所述一组初始放置方案与所述一组可行放置方案之间共有的放置方案。
2.根据权利要求1所述的方法,其中,基于所述对象信息和所述容器状态信息,采用深度强化学习算法确定初始放置信息,包括:
基于所述容器状态信息,确定容器特征信息,其中,所述容器特征信息用于表示所述容器中的对象高度状况以及高度变化;
基于所述对象信息,确定对象特征信息,其中,所述对象特征信息和所述容器特征信息在二维空间中具有相同的维度;
基于所述对象特征信息和所述容器特征信息,采用所述深度强化学习算法确定所述初始放置信息。
3.根据权利要求2所述的方法,其中,所述容器状态信息包括所述容器的高度图,其中,所述高度图包括与所述容器的底面上的多个区域对应的多个网格,每个网络具有相应的高度值,每个网格的高度值用于表示该网格所对应的区域被占用的总高度;
基于所述容器状态信息,确定容器特征信息,包括:
基于所述高度图,确定第一梯度图和第二梯度图,其中,所述第一梯度图用于表示所述多个网格的高度值沿着所述容器的长度方向的变化,所述第二梯度图用于表示所述多个网格的高度值沿着所述容器的宽度方向的变化,所述容器特征信息包括所述高度图、所述第一梯度图和所述第二梯度图。
4.根据权利要求2所述的方法,其中,所述对象信息包括所述当前对象的长度、宽度和高度;
基于所述对象信息,确定对象特征信息,包括:
将所述对象信息进行维度变换,得到所述对象特征信息;或者
将所述对象信息进行维度变换,并且采用卷积神经网络对维度变换的结果进行处理,得到所述对象特征信息。
5.根据权利要求4所述的方法,其中,将所述对象信息进行维度变换,包括:
采用线性变换和矩阵乘法对所述对象信息进行维度变换。
6.根据权利要求2所述的方法,其中,基于所述对象特征信息和所述容器特征信息,采用所述深度强化学习算法确定所述初始放置信息,包括:
采用卷积神经网络对所述对象特征信息和所述容器特征信息进行处理,得到输入信息;
采用所述深度强化学习算法对所述输入信息进行处理,确定所述初始放置信息。
7.根据权利要求1所述的方法,其中,基于所述容器状态信息,采用所述另一算法确定所述可行放置信息,包括:
基于所述容器状态信息,采用所述另一算法确定一组潜在放置方案;
基于预定放置约束,确定所述一组潜在放置方案中的一组可行放置方案。
8.根据权利要求1所述的方法,其中,所述初始放置信息包括一组初始放置方案以及每个初始放置方案对应的概率;
基于所述初始放置信息和所述可行放置信息,确定所述最终放置方案,包括:
基于所述初始放置信息和所述可行放置信息,确定优选放置信息,其中,所述优选放置信息包括一组优选放置方案以及每个优选放置方案对应的概率,每个优选放置方案对应的概率是基于相应的初始放置方案对应的概率获得的,所述一组优选放置方案包括所述一组初始放置方案与所述一组可行放置方案之间共有的放置方案;
从所述一组优选放置方案中选择具有最高概率的放置方案作为所述最终放置方案。
9.根据权利要求1所述的方法,其中,所述深度强化学习算法是基于多组样本数据来训练的,其中,每组样本数据包括样本对象信息、样本容器状态信息以及样本可行放置信息,其中,所述样本对象信息包括样本对象的尺寸,所述样本容器状态信息用于表示在所述样本对象要被放置在所述容器中之前所述容器中的对象放置状态,所述样本可行放置信息用于表示所述样本对象在所述容器的一组可行放置方案,所述样本可行放置信息是采用所述另一算法得到的。
10.根据权利要求1所述的方法,其中,所述另一算法包括以下各项中的至少一项:角点算法、极值点算法、最大剩余空间算法、内部角点算法。
11.一种根据权利要求1至10中任一项所述的方法中采用的深度强化学习算法的训练方法,包括:
获得多组样本数据,其中,每组样本数据包括样本对象信息、样本容器状态信息以及样本可行放置信息,其中,所述样本对象信息包括样本对象的尺寸,所述样本容器状态信息用于表示在所述样本对象要被放置在所述容器中之前所述容器中的对象放置状态,所述样本可行放置信息用于表示所述样本对象在所述容器的一组可行放置方案,所述样本可行放置信息是采用所述另一算法得到的;
基于所述多组样本数据对初始深度强化学习算法进行训练,以获得训练好的深度强化学习算法。
12.根据权利要求11所述的训练方法,其中,基于所述多组样本数据对初始深度强化学习算法进行训练,包括:
针对每组样本数据,进行以下操作:
基于该组样本数据中的样本对象信息和样本容器状态信息,采用初始深度强化学习算法确定动作分数信息,其中,所述动作分数信息包括一组基本放置方案以及每个基本放置方案的分数;
基于该组样本数据中的样本可行放置信息和每个基本放置方案的分数,确定每个基本放置方案对应的概率,其中:
如果该基本放置方案在该样本可行放置信息中是可行放置方案,则该基本放置方案对应的概率为对该基本放置方案的分数进行归一化得到的值;
如果该基本放置方案在该样本可行放置信息中不是可行放置方案,则该基本放置方案对应的概率被设置为预定值;在一组指定放置方案中选择样本最终放置方案,其中,所述一组指定放置方案包括所述一组基本放置方案中的概率不等于所述预定值的放置方案;
在针对所述多组样本数据分别得到相应的样本最终放置方案之后,对所述多组样本数据分别对应的样本最终放置方案进行整体评估,并基于评估结果来调整所述初始深度强化学习算法的参数,以获得所述训练好的深度强化学习算法。
13.一种用于确定对象的放置方案的系统,包括:
获取单元,被配置为获取对象信息和容器状态信息,其中,所述对象信息用于表示待放置到容器中的当前对象的尺寸,所述容器状态信息用于表示所述容器中的对象放置状态;
第一确定单元,被配置为基于所述对象信息和所述容器状态信息,采用深度强化学习算法确定初始放置信息,其中,所述初始放置信息用于表示所述当前对象的一组初始放置方案,每个初始放置方案包括所述当前对象的相应初始放置位置和相应初始放置姿态;
第二确定单元,被配置为基于所述容器状态信息,采用与所述深度强化学习算法不同的另一算法确定可行放置信息,其中,所述可行放置信息用于表示所述当前对象的一组可行放置方案,每个可行放置方案包括所述当前对象的相应可行放置位置和相应可行放置姿态;
第三确定单元,被配置为基于所述初始放置信息和所述可行放置信息,确定所述当前对象的最终放置方案,其中,所述最终放置方案是所述一组初始放置方案与所述一组可行放置方案之间共有的放置方案。
14.根据权利要求13所述的系统,包括:容器编码器(301)、对象编码器(302)、状态卷积神经网络(303)、深度强化学习模块(304)、候选图模块(305)和最终方案确定模块(306);
所述容器编码器(301)用于:基于所述容器状态信息,确定容器特征信息,其中,所述容器特征信息用于表示所述容器中的对象高度状况以及高度变化;
所述对象编码器(302)用于:基于所述对象信息,确定对象特征信息,其中,所述对象特征信息和所述容器特征信息在二维空间中具有相同的维度;
所述状态卷积神经网络(303)用于:对将所述容器特征信息和所述对象特征信息进行通道扩展合并后的结果进行处理;
所述第一确定单元包括所述深度强化学习模块(304),所述深度强化学习模块(304)用于采用所述深度强化学习算法对所述状态卷积神经网络(303)的处理结果进行处理,以确定所述初始放置信息;
所述第二确定单元包括所述候选图模块(305),所述候选图模块(305)用于基于所述容器状态信息,采用与所述深度强化学习算法不同的另一算法确定所述可行放置信息;
所述第三确定单元包括所述最终方案确定模块(306),所述最终方案确定模块(306)用于从所述一组可行放置方案与所述一组初始放置方案之间共有的放置方案中选择优选放置方案作为所述最终放置方案。
15.根据权利要求14所述的系统,其中,所述对象编码器(302)包括:
第一线性层(312)和第二线性层(322),用于将对象信息进行线性变换;
卷积神经网络(332),用于对经所述线性变换和矩阵乘法将对象信息进行维度变换后的结果进行处理,得到所述对象特征信息。
16.一种用于确定对象的放置方案的装置,包括:
至少一个处理器;
与所述至少一个处理器进行通信的存储器,其上存储有可执行代码,所述可执行代码在被所述至少一个处理器执行时使得所述至少一个处理器执行根据权利要求1至10中任一项所述的方法。
17.一种计算机可读存储介质,其存储有可执行代码,所述可执行代码在被执行时使得计算机执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211356790.8A CN118046372A (zh) | 2022-11-01 | 2022-11-01 | 用于确定对象的放置方案的方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211356790.8A CN118046372A (zh) | 2022-11-01 | 2022-11-01 | 用于确定对象的放置方案的方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118046372A true CN118046372A (zh) | 2024-05-17 |
Family
ID=91052402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211356790.8A Pending CN118046372A (zh) | 2022-11-01 | 2022-11-01 | 用于确定对象的放置方案的方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118046372A (zh) |
-
2022
- 2022-11-01 CN CN202211356790.8A patent/CN118046372A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110450153B (zh) | 一种基于深度强化学习的机械臂物品主动拾取方法 | |
CN108537876B (zh) | 三维重建方法、装置、设备及存储介质 | |
CN110992356A (zh) | 目标对象检测方法、装置和计算机设备 | |
CN113096094B (zh) | 三维物体表面缺陷检测方法 | |
CN113592855B (zh) | 基于启发式深度强化学习的自主抓取与装箱方法及系统 | |
US20230011757A1 (en) | Method and apparatus for generating strategy of object transport-and-pack process, and computer device | |
CN111015656A (zh) | 一种机器人主动避障的控制方法、装置及存储介质 | |
Ila et al. | Fast incremental bundle adjustment with covariance recovery | |
Zhang et al. | Sim2real learning of obstacle avoidance for robotic manipulators in uncertain environments | |
WO2020180697A1 (en) | Robotic manipulation using domain-invariant 3d representations predicted from 2.5d vision data | |
JP2022187984A (ja) | モジュール化ニューラルネットワークを用いた把持学習 | |
CN116460843A (zh) | 一种基于元启发式算法的多机器人协作抓取方法及系统 | |
CN114310892B (zh) | 基于点云数据碰撞检测的物体抓取方法、装置和设备 | |
JP2022187983A (ja) | 高次元のロボット作業を学習するためのネットワークモジュール化 | |
CN115338856A (zh) | 用于控制机器人装置的方法 | |
JP2010210511A (ja) | 対象物の3次元位置・姿勢認識装置及びその方法 | |
Schaub et al. | 6-dof grasp detection for unknown objects | |
CN113553943A (zh) | 目标实时检测方法以及装置、存储介质、电子装置 | |
CN118046372A (zh) | 用于确定对象的放置方案的方法、装置和计算机可读存储介质 | |
CN112446952B (zh) | 三维点云法向量的生成方法、装置、电子设备及存储介质 | |
CN112171664B (zh) | 基于视觉识别的生产线机器人轨迹补偿方法、装置和系统 | |
CN115284279A (zh) | 一种基于混叠工件的机械臂抓取方法、装置及可读介质 | |
CN114820802A (zh) | 高自由度灵巧手抓取规划方法、装置和计算机设备 | |
CN115032984A (zh) | 一种面向港口物流智能机器人的半自主导航方法及系统 | |
JP2023519725A (ja) | 画像処理システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |