一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像处理系统和方法

2022-11-16 18:37:57 来源:中国专利 TAG:


1.本发明涉及处理图像数据和相关联深度信息以确定三维场景中的对象的姿态。


背景技术:

2.在其中机器人被用于操纵环境中的物理对象或以其它方式与环境中的物理对象交互的情况下,重要的是机器人要精确地确定所述物理对象相对于给定坐标系的位置和取向。此任务被称为姿态预测。姿态预测与许多其它领域相关,例如在用于自动车辆的自动驾驶系统(ads)或高级驾驶员辅助系统(adas)中,其中知道实体(诸如车辆或行人)的姿态对于预测该实体将有怎么样的行为是有用的。
3.姿态预测方法的一些最早的示例是基于模板的方法,其中由在离线训练阶段期间从不同视点拍摄的图像导出对象的模板,然后在测试时间扫描包含所述对象的图像,以根据预定的距离度量找到最佳匹配。进一步的示例包括基于稀疏特征的方法,其中在训练时间从对象的图像中提取尺度不变的关注点,并且所述关注点与诸如sift或surf的局部描述符相关联。采用诸如ransac的方法在测试时间将局部描述符与包含所述对象的图像进行匹配。
4.传感器技术的最新进展包括例如立体相机、红外相机、声音导航测距(声纳)以及光探测和测距(激光雷达)系统,它们允许将准确的深度信息与常规的二维图像一起捕获,例如从而产生rgb-d图像格式。某些姿态预测方法利用此深度信息来提高精确度。示例包括密集方法,其中在测试时间构建用于对象的三维点云,然后使用诸如迭代最近点(icp)的算法与所述对象的存储模型匹配。进一步的示例包括混合方法,其同时使用神经网络处理点云信息并且使用卷积神经网络(cnn)处理rgb图像数据,然后融合网络的输出,以导出可用于姿态估计的逐像素密集特征嵌入。
5.在其中环境中的多个对象彼此相接触的情况下,或者所述对象中的一些被部分遮挡的情况下,采用任何上述方法进行姿态预测的精确度通常降低。在机器人应用的情况下,这种降低的精确度可能会削弱机器人的性能,特别是在杂乱或其他人口密集的环境中。


技术实现要素:

6.根据第一方面,提供了一种确定三维场景中的多个对象中的每一者的姿态的计算机实现的方法。所述方法包括对于所述多个对象中的每个给定对象,获得表示所述三维场景的视图的图像数据和相关联深度信息,在所述视图中所述给定对象的至少一部分是可见的;以及处理所述图像数据和所述相关联深度信息以估计所述给定对象的姿态。所述方法进一步包括迭代地更新所述多个对象的所述估计姿态,其中所述更新包括:针对所述多个对象中的每个给定对象,从根据所述给定对象的所述估计姿态转换的所述给定对象的预定模型中采样多个点;根据从所述给定对象的所述预定模型中采样的点相对于包含所述给定对象的体素网格的位置确定所述多个对象中的每个给定对象的相应第一占用数据;根据从所述多个对象中的其它对象的预定模型中采样的点相对于包含所述给定对象的所述体素
网格的位置确定所述多个对象中的每个给定对象的相应第二占用数据;并根据所述多个对象中的每一者的所述相应第一占用数据和所述相应第二占用数据来更新所述多个对象的所述估计姿态以减少占用罚分(occupancy penalty)。
7.使用取决于从目标对象的预定模型中采样的点的位置的第一占用数据和第二占用数据来定义占用罚分允许递增更新所述目标对象的估计姿态,以避免其中所述对象中的两者或更多者彼此相交的物理上不切实际的预测。
8.在示例中,更新所述多个对象的所述估计姿态包括确定关于所述多个对象的所述估计姿态的所述占用罚分的梯度,并使用所述占用罚分的所述确定梯度来更新所述多个对象的所述估计姿态。使用所述占用罚分的所述梯度更新所述估计姿态允许比其它可能的方法(诸如基于搜索的方法)更有效地优化对象姿态的配置。
9.在示例中,每个给定对象的所述第一占用数据取决于包含所述给定对象的所述体素网格的体素与从所述给定对象的所述预定模型中采样的点之间的最小距离;并且每个给定对象的所述第二占用数据取决于包含所述给定对象的所述体素网格的体素与从所述多个对象中的其它对象的预定模型中采样的点之间的最小距离。
10.在其中第一占用数据和第二占用数据取决于最小距离的一些示例中,对所述最小距离的依赖在预定的距离阈值时达到饱和。以这种方式,如果没有点比所述预定的距离阈值更靠近所述体素,则该体素不会对所述占用罚分有所贡献,从而防止了对象之间明显的“有一定距离的动作”,否则即使对象彼此不相交,在所述对象姿态的更新期间这种动作也会导致所述对象彼此移开。
11.在其中第一占用数据和第二占用数据取决于最小距离的一些示例中,所述占用罚分包括所述多个对象中的每个给定对象的碰撞分量,当使从所述给定对象的所述预定模型中采样的点和从不同对象的预定模型中采样的点同时更靠近包含所述给定对象的所述体素网格的体素时,所述碰撞分量增加。
12.在示例中,所述方法包括处理所述图像数据和所述相关联深度信息以针对所述多个对象中的每个给定对象生成体积重建。
13.在所述方法包括针对每个给定对象生成体积重建的一些示例中,所述方法包括使用所生成的体积重建来生成第三占用数据,所述第三占用数据指示包含所述给定对象的所述体素网格的由自由空间占用的部分和包含所述给定对象的所述体素网格的由除所述给定对象之外的对象占用的部分。
14.在其中所述占用罚分包括所述多个给定对象中的每个给定对象的碰撞分量的一些示例中,当使从所述给定对象的所述预定模型中采样的点更靠近包含所述给定对象的所述体素网格的由自由空间或由除所述给定对象之外的对象占用的体素时,给定对象的所述碰撞分量增加。这可导致预测更精确的姿态,因为如果每个对象的姿态将导致所述对象占用所述场景的已知不可透过的区域,则所述姿态被罚分。
15.在一些示例中,估计每个给定对象的姿态包括使用所生成的第三占用数据和所述给定对象的表面上的多个点的逐点特征数据来确定目标对象的估计姿态。通过使用所述给定对象的表面上的点的逐点特征数据与指示周围区域占用的自由空间及其它对象的占用数据的组合,使得所述估计姿态取决于与所述给定对象有关的详细视觉信息,同时还考虑与所述给定对象的周围有关的信息。作为结果,姿态估计的精确度得以提高,特别是在杂乱
或人口密集的场景中。
16.在一些示例中,所述占用罚分包括所述多个对象中的每个给定对象的表面对准分量,当使从所述给定对象的所述预定模型中采样的点更靠近包含所述给定对象的所述体素网格的由所述给定对象的所述体积重建占用的体素时,所述表面对准分量减少。所述表面对准分量促进所述给定对象的所述估计姿态与图像中的所述给定对象的外观和相关联深度信息之间的一致性。
17.在一些示例中,所述三维场景的视图是所述三维场景的第一视图,并且每个给定对象的所述确定姿态是所述给定对象的第一姿态。所述方法进一步包括:获得表示与所述三维场景的所述第一视图不同的所述三维场景的第二视图的另外的图像数据和另外的相关联深度信息;并且对于所述多个对象的每个给定对象:处理所述另外的图像数据和所述另外的相关联深度信息,以确定所述给定对象的第二姿态;转换所述给定对象的所述第一姿态和所述第二姿态中的至少一者以确定姿态比较数据;处理所述姿态比较数据以确定是否满足一致性条件;并且当确定满足所述一致性条件时,生成与所述给定对象的所述第一姿态和所述第二姿态一致地转换的所述给定对象的预定对象模型。
18.通过捕获所述场景的不同视图并比较由不同视图产生的姿态预测,可以识别并丢弃例如由遮挡产生的错误姿态预测。一旦发现来自不同视图的多个姿态估计满足所述一致性条件,就产生对象模型,其可例如由与所述场景交互的机器人使用,或者可以显示给人类用户。此外,通过捕获多个视图,可以使用来自所述不同视图的信息来迭代地构建所述场景的体积图,其中随着更多的视图被捕获,所述体积图包含越来越少的处于“未知”状态的体素。作为结果,后来的姿态预测(其可使用来自多个视图的信息)可以比初始姿态预测(其仅使用来自单个视图的信息)更精确。
19.在示例中,所述方法包括由相应的计算机辅助设计(cad)模型生成所述多个对象中的每个给定对象的所述预定模型。cad建模对于生成对象的网格模型是普遍的且高度优化的。在示例中,所述生成的预定模型是包括内部结构以及表面结构的实体模型,从而允许点从所述预定模型的整个体积中被采样。以这种方式,所得到的占用罚分可用于更精确地确定使所述场景中的对象之间的不切实际的重叠最小化的姿态。
20.根据第二方面,提供了一种图像处理系统,所述图像处理系统包括一个或多个传感器,所述传感器可操作以捕获图像数据和相关联深度信息。所述系统被布置成对于所述三维场景中的多个对象中的每个给定对象:使用所述一个或多个传感器捕获表示所述三维场景的视图的图像数据和相关联深度信息,在所述视图中所述给定对象的至少一部分是可见的;以及处理所述图像数据和所述相关联深度信息,以估计所述给定对象的姿态。所述系统被进一步布置成迭代地更新所述多个对象的所述估计姿态,其中所述更新包括:针对所述多个对象中的每个给定对象,从根据所述给定对象的所述估计姿态转换的所述给定对象的预定模型中采样多个点;根据从所述给定对象的所述预定模型中采样的点相对于包含所述给定对象的体素网格的位置确定所述多个对象中的每个给定对象的相应第一占用数据;根据从所述多个对象中的其它对象的预定模型中采样的点相对于包含所述给定对象的所述体素网格的位置确定所述多个对象中的每个给定对象的相应第二占用数据;并根据所述多个对象中的每一者的所述相应第一占用数据和所述相应第二占用数据来更新所述多个对象的所述估计姿态以减少占用罚分。
21.在示例中,所述系统包括用于根据给定对象的所述确定姿态来接合所述多个对象中的所述给定对象的接合装置。接合装置可包括一个或多个机器人手或用于抓取、推动或以其它方式物理地接触目标对象的其它部件。通过根据如上所述估计的姿态来接合目标对象,所述系统能够以精确的方式执行复杂或敏感的任务,而所述姿态估计方法引入的滞后最小。在进一步的示例中,系统可以与目标对象交互而不直接接触所述目标对象。
22.根据第三方面,提供了一种包括机器可读指令的计算机程序产品,所述机器可读指令在由计算系统执行时使所述计算系统执行上述任何方法。
23.根据下面参考附图仅以举例的方式给出的对本发明的优选实施方案的描述,本发明进一步的特征和优点将变得显而易见。
附图说明
24.图1是示出被布置成执行根据示例的方法的系统的示意性框图;
25.图2是表示根据示例估计目标对象的姿态的方法的流程图;
26.图3示出包括三个已知对象的三维场景的示例;
27.图4示意性地示出根据示例生成场景的体积图的数据处理例程;
28.图5示出包含图3的三维场景中的已知对象之一的体素网格的示例。
29.图6a和图6b示意性地示出根据示例估计目标对象的姿态的数据处理例程;
30.图7是表示根据示例细化多个对象的姿态估计的方法的流程图;并且
31.图8示出对图3的三维场景中的已知对象的姿态估计的细化的示例。
具体实施方式
32.图1示出被布置成执行根据本公开的方法的系统100的示例。系统100包括存储器102和处理电路104,其中存储器102被布置成存储用于执行本文所述的方法的数据和例程。处理电路104被配置成执行存储在存储器电路102中的例程。处理电路104被进一步布置成控制传感器106以捕获图像数据和相关联深度信息,并且一个或多个致动器108被布置成使传感器106移动。
33.此示例中的存储器102保存主例程、姿态估计例程和姿态细化例程,以及机器可读指令形式的各种其它例程(未示出)。在特定的配置中,主例程的执行导致姿态估计例程被执行,接着是姿态细化例程,如将在下文更详细描述的。存储器102还包括用于在姿态估计例程的执行期间使用的各种可训练模型的可训练模型参数。
34.存储器102被布置成保存由传感器106捕获的图像数据和相关联深度信息。在此示例中,存储器102被布置成以红绿蓝-深度(rgb-d)格式存储图像数据和相关联深度信息,尽管系统100可以被配置用于与其它合适的格式一起使用,例如基于青色、品红色、黄色、黑色(cmyk)或yuv颜色格式。
35.存储器102保存各种已知对象的三维模型的数据库。在此示例中,已知对象被视为刚性对象,并且为每个已知对象存储的三维模型是作为网格表示存储的计算机辅助设计(cad)模型。在本示例中,每个对象的体积实体表示由cad模型生成,并与cad模型一起存储。除了被包括用于网格模型的表面结构之外,每个对象的实体表示还包括对象的内部结构。要注意的是,对于具有复杂内部结构的对象,所存储的实体表示的内部结构不一定对应于
对象的实际内部结构,并且可例如被简化。存储每个已知对象的实体模型允许点从对象的整个体积(而不是仅表面)中被采样,从而允许特别有效地实现根据本公开的各方面的姿态细化方法。尽管如此,在不脱离本发明的范围的情况下,本文所述的方法可适于仅使用网格模型来实现。
36.本示例中的传感器106包括用于捕获场景的二维图像的相机和用于确定距场景中的对象的距离(换言之,相关联深度信息)的红外传感器。
37.图2示出由系统100执行的用于估计三维场景中的目标对象的姿态的计算机实现的方法200的示例。在202,系统100获得具有相关联深度信息的图像。所述图像表示三维场景的视图,并且相关联深度信息指定距场景内的不同对象的距离。在此示例中,使用传感器106捕获图像和相关联深度信息。
38.三维场景包含多个三维对象,其中至少一个是系统100已被训练识别的已知对象。在此示例中,所述已知对象或每个已知对象对应于存储在存储器102中的对象模型数据库中的对象模型。所述场景还可以包括系统100尚未被训练识别且没有存储在存储器102中的对应对象模型的未知对象。未知对象的典型示例包括已知对象定位在其上的表面以及与系统100正被用于执行的特定任务无关的对象。
39.图3示出三维场景300的视图。场景300包括三个已知对象:立方体盒302;圆柱形罐304;和具有不等边三角形截面的棱柱体306。每个已知的对象具有三维形状和表面细节,包括颜色和纹理(未示出),并且在一些情况下包括进一步的表面装饰,如盒302上的箭头310和罐304上的符号312。场景300还包括已知对象定位在其上的水平表面308。水平表面308是未知对象的示例。
40.场景300中的每个已知对象的实际姿态(位置和取向)在图3中由相应的一组三维轴线表示。姿态是六维量,其中三个维度定义了关于给定坐标系相对于对象固定的预定点的位置,且其它三个维度定义了相对于给定坐标系的取向。在本示例中,使用笛卡尔坐标定义位置,并使用外在欧拉角定义取向。本领域技术人员将理解的是,其它定义也是可能的,例如对于位置使用圆柱或球形极坐标,和/或对于取向使用内在欧拉角。如下文将更详细解释的,方法200可用于估计场景300中的任何已知对象的姿态。
41.在图3的示例中,没有已知对象在任何平面中表现出反射对称性,因此关于给定的坐标系可以唯一地定义每个已知对象的姿态(注意对象的对称性在姿态的定义中引入了模糊性,这是在如下文所述的某些实施方案中处理的问题)。在本示例中,罐304和棱柱体306处于直立取向,其各自具有竖直向上指向的一个轴线和位于水平面中的两个轴线。盒302倚靠在罐304上,因此不处于直立取向。
42.返回到图2,在204,系统100处理图像和相关联深度信息以生成体积图。所述生成的体积图由三维场景内的对象的体积重建形成。给定对象的体积重建包括对应于图像中的对象的可见部分的体积图的体素。从场景的单个视图来看,每个对象仅某些部分是可见的,因此仅对应于这些部分的体素将被包括在对象的体积重建内。
43.图4示出处理表示三维场景的视图的图像402和相关联深度信息404以生成场景的体积图的方法400的示例。在406,采用图像分割来处理图像402,以为场景中的每个已知对象生成对象掩码408。用于给定对象的对象掩码408指定图像402的像素的子集,其中对象的一部分是可见的。在图像分割期间,图像被分割成对应于图像中已知对象的相应不同对象
掩码的区域,以及表示图像内未知对象的进一步的区域。在本示例中,使用如kaiming he等人的文章mask r-cnn(arxiv:1703.06870)中所述的深度cnn架构来执行图像分割。用于图像分割的其它方法是已知的,并且与本公开兼容。
44.在410,采用体积融合一起处理深度信息404和对象掩码408以生成体积图412。体积图412包括场景中每个已知对象的体积重建414,并且可进一步包括场景中未知对象的体积重建416。深度信息404通常比图像402的分辨率低,并且体积图412通常也比图像402的分辨率低。
45.返回到图2,在206,系统100确定由体积图的体素的子集形成且包含要估计其姿态的目标对象的体积网格。图5示出其中体积网格502包含三维场景300中的圆柱形罐304的示例。在此示例中,体积网格502是在每一方向上延伸超出罐304的立方体。体积网格的尺寸通常取决于目标对象的尺寸。例如,与包含罐304的体积网格502相比,包含棱柱体306的体积网格高度降低。然而,为了简化各种后续处理步骤,目标的体素网格中的体素的数量是固定的,且与目标对象的尺寸无关(例如,32x32x32个体素),并且体素本身的尺寸是变化的,以实现不同大小和形状的体素网格。为了做到这一点,可以将体积图的体素分成两个或更多个较小的体素,或者可以将体积图的两个或更多个体素组合以形成单个较大的体素。
46.在208,系统100生成占用数据,其指示体积网格的由自由空间或由除目标对象之外的对象占用的部分。取决于体素的占用率,体积网格的体素中的每一者可处于四种状态中的任一种:
47.1.由目标对象(例如罐304)的体积重建占用;
48.2.由包括已知对象(例如盒302和棱柱体306)和未知对象(例如表面308)在内的其它对象之一的体积重建占用;
49.3.由自由空间占用,如通过深度测量所识别;或
50.4.未知,因为遮挡和/或传感器范围限制。
51.处于状态2和3的体素对于估计目标对象的姿态特别受关注,因为这些体素定义了不能由目标对象的任何部分占用的不可透过的区域。通过指示体积网格的由自由空间或由除目标对象之外的对象占用的部分,占用数据因此包括与估计目标对象的姿态相关的信息。
52.在210,系统100使用在208生成的占用数据和目标对象的可见部分上的点的逐点特征数据来估计目标对象的姿态。逐点特征数据由图像的像素导出,并且可取决于目标对象的所有视觉方面,包括形状、表面细节和包含在所述图像的包含目标对象的部分内的任何其它信息。
53.通过将目标对象的逐点特征数据与包含目标对象的体素网格的占用数据组合,可以根据与目标对象本身有关的详细视觉信息,同时还考虑与目标对象的周围环境有关的信息来得出估计的姿态。与已知的姿态估计方法相比,这导致姿态估计的精确度提高。
54.图6a和图6b示出使用占用数据和逐点特征数据来估计目标对象的姿态的方法600的示例。在604,采用二维特征提取来处理掩码的图像数据602以生成二维特征数据606。掩码的图像数据602包含图像402的像素的包含在目标对象的对象掩码内的子集。在此示例中,使用cnn执行二维特征提取。为了将掩码的图像数据602用作cnn的输入,掩码的图像数据应具有固定的大小和形状。为了实现这一点,将对象掩码之外的像素的像素值设定为恒
定值(例如,零)。掩码的图像数据的使用意味着二维特征数据606仅取决于目标对象本身,对目标对象的周围环境没有任何依赖。以这种方式,使得估计姿态对周围环境的依赖仅仅取决于目标对象周围的体积网格的占用数据,如将在下文更详细解释的。
55.在610,采用逐点编码处理二维特征数据606以及掩码的深度信息608,以生成逐点特征数据612。逐点特征数据612包括由掩码的深度信息608导出的一组三维点中的每一者的多个特征通道。这些点形成表示在图像中可见的对象的部分的点云。在本示例中,使用相应的完全连接的神经网络层单独处理二维特征数据606和掩码的深度信息608,并将得到的逐点特征连接起来以生成逐点特征数据612。
56.在614,采用体素化处理逐点特征数据612以生成特征网格616。体素化(voxelisation/voxelation)将逐点特征数据612中指定的点与包含目标对象的体素网格(例如,图5中的体素网格502)的体素相关联。与图像和相关联深度数据相比,体素网格通常具有相对低的分辨率(例如,32x32x32个体素)。因此给定体素的特征数据由逐点特征数据612的多个点导出,在此示例中通过求平均,尽管在其它示例中,采用其它方法导出给定体素的特征数据,例如通过取最大值。特征网格的每个体素具有指定其在体素网格中的位置的相关联体积索引,并且这些索引618被存储以用于后续处理。
57.将特征网格616与指示体素网格的不能由目标对象占用的区域的占用数据620连接起来,这些区域不能由目标对象占用,因为它们由其它对象或自由空间占用。占用数据620将二进制数与包含目标对象的体素网格的每个体素相关联,其中所述二进制数指示该体素是否为目标对象不可透过的(即所述体素是否处于上面提到的状态2或3中的任一者)。因此对于体素网格的每个体素,连接起来的特征网格616和占用数据620包括来自占用数据620的二进制通道和来自特征网格616的多个通道。因此连接起来的特征网格616和占用数据620包含由掩码的图像数据602和掩码的点云610导出的信息,并且进一步包含取决于目标对象周围的对象和空间的信息。
58.在622,采用三维特征提取来处理连接起来的特征网格616和占用网格620,以生成三维特征数据624。在此示例中,使用具有多个级的三维cnn执行三维特征提取,每个级包含若干卷积层。三维cnn的每个级生成体积特征图,并且在每个级之后,执行池化或压缩操作以在通过三维cnn的下一级处理之前降低体积特征图的维度。作为结果,三维cnn以顺序减小的分辨率生成体积特征图的分层结构。当三维cnn被适当训练时(如下文所解释的),在不同级生成的分层特征捕获与目标对象的估计姿态相关的不同潜在信息。三维特征数据624包括在三维cnn的不同级生成的体积特征图。在本示例中,连接起来的特征网格和占用网格包含32x32x32个体素,三维cnn包括三个级,并且分层体积特征图分别包含32x32x32、16x16x16和8x8x8个特征的体素。
59.要注意的是,在本示例中,独立于在622的三维特征提取执行从掩码的图像数据602中进行的二维特征提取。通过首先执行二维特征提取,掩码的图像数据602的每一像素对逐点特征数据612有贡献,从而导致信息丰富的掩码的图像数据的有效使用,而不会使计算成本变得令人望而却步。在其它示例中,使用三维特征提取器将图像数据直接与占用数据一起处理。然而,这种方法通常需要降低图像数据的分辨率,以便将需要的计算资源(处理能力和内存)保持在合理的水平。因此,图像数据内包含的信息丢失。
60.在626执行点提取,以对于与在614的体素化期间存储的索引618对应的点从三维
特征数据624中提取逐点特征数据628。对于与索引618之一对应的每个点,提取并存储三维特征数据624内的对应特征。因此逐点特征数据628包括与由掩码的图像数据602和掩码的深度信息608导出的逐点特征数据612相同的点组的特征。出于逐点姿态估计的目的将逐点特征数据612和逐点特征数据628连接起来。
61.要注意的是,逐点特征数据612在很大程度上取决于目标对象的视觉外观和深度轮廓。逐点特征数据628也对目标对象的外观和深度轮廓有一些依赖,但进一步取决于周围的空间和对象。发明人已经发现,使用在很大程度上取决于目标对象的视觉外观和深度轮廓的逐点特征数据612与周围的占用数据组合导致姿态检测的精确度比已知方法有显著的提高。
62.在630,使用连接起来的逐点特征数据612和628执行逐点姿态估计。在本示例中,逐点姿态估计为逐点特征数据612和628内的每个点确定候选姿态632和候选置信度得分634。每个候选姿态632是六维向量,并且候选置信度得分634是指示对应候选姿态正确的确定性的数值。在此示例中,使用完全连接的神经网络来执行逐点姿态估计。
63.基于置信度得分634,在636将估计姿态638确定为候选姿态632中的最佳姿态。换言之,估计姿态638被确定为具有最高置信度得分634的候选姿态632。
64.尽管在上述示例中,逐点姿态估计被用于为一组点中的每一者确定相应的候选姿态,但在其它示例中,对逐点特征数据进行处理以生成单个全局姿态估计,在这种情况下不需要确定置信度得分。
65.图6的方法600利用一系列可训练的模型部件,即在604使用的二维特征提取器、在610使用的逐点编码器、在622使用的三维特征提取器和在630使用的逐点姿态估计器。在本示例中,这些部件中的每一者是具有相应一组可训练参数的神经网络模型。在方法600被执行之前,利用具有已知对象的标记数据集与已知地面真实姿态的监督学习来训练模型。在本示例中,独立于用于生成掩码的图像数据602的图像分割模型来训练姿态估计方法600中使用的可训练模型。有鉴于此,为了训练姿态预测模型,通过定位和定向已知对象的体积模型(在此示例中,已知对象的cad模型)以生成人工场景,例如使用具有碰撞检测的物理模型,来生成标记的训练数据。以这种方式,可以用完美分割的对象和已知的地面真实姿态生成大量的人工场景,而不需要将物理对象移动到用于训练模型的位置和人工确定对象的地面真实姿态的耗时任务。此外,使用体积模型的本方法允许快速地训练姿态估计模型,并且与系统100的某些昂贵的物理部件隔离,包括传感器106和致动器108。为了训练姿态估计模型,一组x点从目标对象的体积模型中(例如,均匀地)被采样。将在通过场景中的目标对象的地面真实姿态转换时点在x中的位置与在使用每个逐点候选姿态估计转换时点在x中的位置进行比较。
66.使用单个姿态估计损失l来训练姿态估计方法600中使用的模型。在一组训练迭代的每一次,采用反向传播相对于姿态预测模型的可训练参数θ来确定姿态预测损失的梯度并且采用梯度下降或其变型来更新可训练参数θ的值,以减小姿态估计损失l的值。迭代地执行此更新,直到满足预定的停止条件,这可对应于满足预定的收敛标准或执行预定数量的训练迭代。
67.在本示例中,姿态估计损失l由等式(1)给出:
[0068][0069]
其中:
[0070]
·
n是估计候选姿态的点数;
[0071]
·ci
是与第i个点的候选姿态相关联的置信度得分;
[0072]
·
λ是正则化项log(ci)的缩放因子;并且
[0073]
·
li是与为第i个点确定的候选姿态相关联的逐点姿态估计损失。
[0074]
已发现λ的适当值在范围λ∈[0.01,0.1]内,且特别是在范围λ∈[0.01,0.02]内,例如λ=0.015。缩放因子可针对给定的训练实例进行人工调整,或者可以被包括作为在训练期间要学习的参数。此示例中的逐点姿态估计损失由等式(2)给出:
[0075][0076]
其中:
[0077]
·
[r|t]∈se(3)是目标对象的地面真实姿态,由3x3旋转矩阵r∈so(3)和平移向量组成;
[0078]
·
表示第i个点的候选姿态估计;并且
[0079]
·
pq是从目标对象的体积模型中采样的点集x的第q个点的位置。
[0080]
等式(2)的逐点姿态估计损失适合于在任何平面中不表现出反射对称性的对象。对于对称性对象,关于由地面真实姿态转换的哪个点应与由给定候选姿态估计转换的点进行比较出现了模糊性。对于此类对象,使用如等式(3)给出的修改的逐点姿态估计损失:
[0081][0082]
这实际上导致由候选姿态估计转换后的最近点与由地面真实姿态转换的给定点进行比较。在特定的配置中,使用等式(2)的未修改的逐点训练损失来执行第一训练阶段,接着是使用等式(3)的修改的逐点训练损失执行第二训练阶段。发明人已经发现这会避免有时可能由使用修改的逐点姿态损失产生的局部最小值,同时避免将由对于对称性对象使用未修改的逐点训练损失产生的错误姿态估计。这导致对于具有复杂形状的对称性对象的姿态估计方法具有特别良好的性能。
[0083]
图2的方法200可用于估计给定场景中的多个对象的姿态,其中每个给定对象的估计姿态考虑了给定对象周围的空间区域的占用率在一些示例中,估计姿态足够精确以用于给定目的。在其它示例中,不能保证采用方法200或任何其它姿态估计例程确定的姿态估计对于给定目的是足够精确的。在这种情况下,需要一种以一些额外的计算成本和时间为代价来细化姿态估计的方法。
[0084]
图7示出由系统100执行的用于估计三维场景中的多个已知对象中的每一者的姿态的计算机实现的方法700的示例。对于多个已知对象中的每个给定对象,系统100在702获得表示三维场景的视图的图像数据和相关联深度信息,其中给定对象的至少一部分是可见
的(给定对象可能被部分遮挡或延伸超出图像的边界),并在704估计给定对象的姿态。在本示例中,使用传感器106捕获图像和相关联深度信息,并采用图2的方法200估计每个对象的姿态。或者,可采用任何其它合适的姿态预测方法。在一些示例中,使用单个图像和相关联深度信息来估计场景中的若干对象的姿态。在其它示例中,使用表示三维场景的不同视图的不同图像来估计两个或更多个不同对象的姿态。在后一种情况下,将每个给定对象的估计姿态转换为共同参考框架(例如,当捕获图像和相关联深度信息时使用指示传感器106的位置和取向的信息)。
[0085]
已经确定了对多个对象中的每一者的姿态的估计,并且如果必要的话,将估计的姿态转换为共同参考框架,则系统100执行迭代姿态细化例程以共同优化估计的姿态,如下文所述。姿态细化例程在706开始,其中系统100从每个给定对象的存储模型中采样一组点,根据对象的对应估计姿态进行转换。在此示例中,存储的模型是体积实体模型,并且系统100从体积实体模型的整个体积中均匀地采样该组点。针对每个给定对象采样的点组形成点云。
[0086]
在708,系统100根据从给定对象的存储模型中采样的点相对于包含给定对象的体素网格的位置确定每个给定对象的相应第一占用数据。在本示例中,在系统100采用方法200来确定初始姿态估计的情况下,系统100已经确定了包含每个给定对象的体素网格。相同的体素网格因此被重新用于定义第一占用数据。在其它示例中,诸如当方法200不用于确定初始姿态估计时,在708为每个给定对象确定新的体素网格。
[0087]
给定对象的第一占用数据取决于点,这些点的位置取决于给定对象相对于包含给定对象的体素网格的估计姿态。因此这些点的位置相对于给定对象的姿态是可区分的。换言之,给定对象的估计姿态的微小变化导致每个采样点的位置的可预测的微小变化。倘若第一占用数据以平滑、可区分的方式取决于点的位置,则第一占用数据因此相对于给定对象的估计姿态也是可区分的。
[0088]
在710,系统100根据从多个对象中的其它对象的存储模型中采样的点相对于包含给定对象的体素网格的位置来确定每个给定对象的相应第二占用数据。给定对象的第二占用数据相对于其它对象的估计姿态是可区分的,其方式与第一占用数据相对于给定对象的估计姿态可区分的方式是相同的。
[0089]
在712,系统100根据多个对象中的每一者的相应第一占用数据和相应第二占用数据来更新多个对象的估计姿态以减少占用罚分。占用罚分以可区分的方式取决于第一占用数据和第二占用数据,并进而因此相对于多个对象的估计姿态是可区分的。这允许相对于多个对象的估计姿态确定占用罚分的梯度,这进而允许使用其变型的梯度下降来递增更新估计姿态。
[0090]
迭代执行步骤706-712,直到满足停止条件。停止条件可包括满足预定的收敛标准,或者可以包括已经执行了预定次数的迭代。
[0091]
在特定示例中,第一占用数据包括多个对象中的每个给定对象的第一可区分占用网格。m个对象的第一可区分占用网格由包含第m个对象的体素网格的每个体素的第一可区分占用值组成。第k个体素的第一可区分占用值取决于第k个体素与从给定对象的体积模型中采样的点之间的最小距离,如等式(4)所示:
[0092][0093]
其中是包含第m个对象的体素网格的第k个体素与从第m个对象的体积模型中采样的第q个点之间的距离,且δ
t
是预定的距离阈值。在本示例中,对最小距离的依赖在距离阈值达到饱和,使得如果没有点比距离阈值更靠近体素,则该体素的占用率被设定为0,并且该体素对占用罚分没有贡献。一旦使任何点比预定距离阈值更靠近体素,则可区分的占用率就持续增加,如果点与体素重合则达到最大值1。为了计算距离使用等式将从第m个对象的模型中采样的第q个点的位置转换到体素网格的坐标系,其中l是体素网格坐标系的原点,并且s是体素网格中的每个体素的大小。然后由|给出距离,其中是与第k个体素相关的位置(例如,体素的预定角或体素的中心),并且是体素坐标系中的点的位置。
[0094]
在此示例中,第二占用数据包括多个给定对象中的每个给定对象的第二可区分占用网格。第m个对象的第二占用网格由包含第m个对象的体素网格的每个体素的第二可区分占用值组成。第k个体素的第二可区分占用值取决于第k个体素与从所有其它给定对象的体积模型中采样的点之间的最小距离,如等式(5)所示:
[0095][0096]
其中是包含第m个对象的体素网格的第k个体素与从第n个对象的体积模型中采样的第q个点之间的距离(其中n≠m)。为了确定距离将从其它对象的模型中采样的点转换到包含第m个对象的体素网格的坐标系。
[0097]
在本示例中,对于多个已知对象中的每个给定对象,占用罚分lo包括碰撞分量当使从多个已知对象中的给定对象的预定模型中采样的点和从不同对象的预定模型中采样的点同时更靠近包含给定对象的体素网格的体素时,所述碰撞分量增加。此示例中的碰撞分量由第一可区分占用网格和第二可区分占用网格导出,如等式(6)所示:
[0098][0099]
其中表示逐元素的积。碰撞分量对包含第m个对象的体素网格的体素同时靠近从第m个对象中采样的点和从多个已知对象中的其它对象之一采样的点的情况进行罚分。然后由给出总占用罚分的可能定义,其中总和针对n个已知对象。总占用罚分相对于所有已知对象的估计姿态共同优化。然而,如将在下文中解释的,占用罚分可能有更复杂的定义。
[0100]
在一些示例中,诸如其中图2的方法200用于确定初始姿态估计的那些示例中,为多个已知对象中的每个给定对象生成体积重建,由体积融合生成另外的占用数据。此另外
的占用数据指示包含给定对象的体素网格的由自由空间占用的部分和包含给定对象的体素网格的由除给定对象之外的对象占用的部分。与第一占用数据和第二占用数据不同,此另外的占用数据相对于对象的估计姿态是不可区分的。然而,另外的占用数据确实包含与姿态细化相关的信息,因为另外的占用数据定义了包含给定对象的体素网格的不可透过的区域。给定此信息,当使从给定对象的预定模型中采样的点更靠近包含给定对象的体素网格的由自由空间或由除给定对象之外的对象占用的体素时,可以将给定对象的碰撞分量修改为增加。
[0101]
在一个示例中,另外的占用数据包括将二进制数与包含给定对象的体素网格的每个体素相关联的二进制不可透过网格其中所述二进制数指示该体素对于给定对象是否是不可透过的(即,所述体素是否处于上面提到的状态2或3中的任一者)。为了与第一可区分占用网格和第二可区分占用网格的定义相容,对于不可透过的体素,不可透过网格被赋值1,另外的情况赋值0。然而将要理解的是,其它定义也是可能的。
[0102]
给定不可透过网格第m个给定对象的碰撞分量的替代定义由等式(7)给出:
[0103][0104]
其中逐元素取最大运算符。此替代定义对其中包含第m个对象的体素网格的体素靠近从第m个对象中采样的点且同时靠近从其它已知对象之一中采样的点和/或是不可透过网格的一部分的情况进行罚分。碰撞分量的替代定义可导致姿态细化方法的性能提高,因为所得姿态组受场景的体积图的不可透过区域的约束。
[0105]
除了例如由等式(6)或等式(7)定义的碰撞分量之外,还可以增加占用罚分以包括多个已知对象中的每一者的表面对准分量。与对相邻对象的重叠进行罚分的碰撞分量不同,表面对准分量奖励从给定对象中采样的点与该对象的体积重建的体素重叠的情况。因此表面对准分量促进给定对象的估计姿态与图像中的给定对象的外观和相关联深度信息之间的一致性。
[0106]
在示例中,第m个给定对象的表面对准分量由等式(8)给出:
[0107][0108]
其中是具有由给出的元素的二进制自占用网格,其中在此示例中对于由第m个对象的体积重建占用的体素,值为1,另外的情况则为0。当使从给定对象的预定模型中采样的点更靠近包含给定对象的体素网格的由给定对象的体积重建占用
的体素时,给定对象的表面对准分量减少。
[0109]
当包括表面对准分量时,占用罚分由等式(9)定义:
[0110][0111]
相对于所有已知对象的估计姿态共同优化占用罚分。在一个示例中,在图形处理单元(gpu)上采用批量梯度下降来执行优化。
[0112]
图8示出在占用罚分中包括表面对准分量的效果。顶部画面示出图3的场景300中的已知对象302、304、306的初始组估计姿态,在此示例中采用图2的方法200来确定。观察到估计姿态并不精确,导致盒302与罐304相交。作为结果,罐304的碰撞分量(使用体素网格502定义)具有高值。左下画面示出在不使用表面对准分量的情况下已执行姿态细化之后对象302、304、306的估计姿态。观察到罐304已经向左移动,使得不再与盒302重叠,以便减少罐304的碰撞分量。然而,所得场景与图3中所示的实际场景300不是紧密对应的。右下画面示出在已经使用表面对准分量执行姿态细化之后对象302、305、306的估计姿态。观察到盒302的角度已经被修改,使得与罐304不再重叠,以便减少占用罚分的碰撞分量。然而,与左下画面中的错误场景相反,右下画面中的所得场景与图3中的场景300紧密对应,因为罐304的表面对准分量已经阻止了罐304以与其体积重建不一致的方式远离其原始位置移动。表面对准分量因此导致姿态预测更精确。
[0113]
采用方法200和/或700,系统100能够使用表示由传感器106捕获的场景的第一视图的图像和相关联深度信息来预测场景中的对象的第一姿态。然而,从场景的任何单个视图均不可见整个对象。为了实现甚至更精确的姿态预测,在本示例中,系统100被进一步配置成使用致动器108来移动传感器106,以捕获表示场景的第二视图的另外的图像和相关联深度信息。第二视图不同于第一视图,因为传感器106在被移动之后相对于场景具有不同的取向和/或位置。
[0114]
使用另外的图像和相关联深度信息,系统100预测对象的第二姿态。在本示例中,采用与第一姿态相同的方法来预测第二姿态,即姿态估计方法200接着是姿态细化方法700。转换第一姿态和第二姿态中的至少一者,使得第一姿态和第二姿态相对于共同坐标系被表示。在本示例中,第一姿态和第二姿态两者被转换到独立于传感器106的位置和取向的任意“世界”坐标系。
[0115]
将第一姿态和/或第二姿态转换到共同坐标系允许对第一姿态和第二姿态进行比较。基于此比较,如果确定满足一致性条件,则确定第一姿态和第二姿态是精确的。如果确定不满足一致性条件,则捕获表示场景的第三视图的另外的图像和相关联深度信息,然后将其与第一姿态和第二姿态中的每一者进行比较。如果第三姿态与第一姿态或者第二姿态一致,则确定该姿态是精确的。捕获另外的图像和相关联深度信息,并为对象预测另外的姿态,直到满足一致性条件。在本示例中,使用等式(2)的逐点姿态估计损失来比较姿态,并且当任何两个预测姿态的逐点姿态估计损失小于阈值时,一致性条件得到满足。在其它示例中,当阈值数量m的预测姿态具有小于阈值l
t
的逐点姿态估计损失li时,即当m=count(li<l
t
)时,满足一致性条件。
[0116]
如果基于如上所述的姿态比较确定姿态预测是精确的,则系统100产生与预测姿
态一致地转换的对象的网格模型。通过产生多个已知对象的网格模型,生成场景的网格模型。场景的网格模型可用于与场景交互(如下文更详细描述的),或者可以显示给人类用户。
[0117]
要注意的是,在捕获场景的不同视图和进行进一步姿态预测的过程期间,可以使用来自不同视图的信息来迭代地构建场景的体积图,其中对象的体积重建包含越来越少处于“未知”状态的体素。作为结果,后来的姿态预测(其使用来自多个视图的信息)有可能比初始姿态预测(其仅使用来自单个视图的信息)更精确。然而,捕获场景的多个视图花费额外的时间。因此,要在精确度与时间之间进行权衡。在一些情况下,必须快速执行姿态预测,在这种情况下可能需要仅由场景的单个视图来预测给定对象的姿态。示例包括由车辆中的ads或adas执行的姿态预测。在其它情况下,精确度是最为重要的。这类情况的示例包括非常复杂的机器人任务。
[0118]
本文所述的方法对于其中机器人被用于拾取或以其它方式接合对象的机器人任务特别有价值。此类机器人包括一个或多个接合装置,诸如机器人手或用于抓取、推动或以其它方式物理地接触给定对象的其它部件。为了正确地接合给定对象,机器人首先预测给定对象的姿态,然后根据预测姿态接合给定对象。在一些示例中,机器人首先产生根据给定对象的预测姿态转换的给定对象的网格模型(例如,cad模型),并基于产生的网格模型接合给定对象。
[0119]
在进一步的示例中,机器人可以在不直接接触给定对象的情况下与给定对象交互,例如使用抽吸装置或吹送装置、激光或其它辐射源或者适合于由机器人执行的任务的任何其它部件。
[0120]
图1的系统100可实现为独立装置或分布式计算系统。尽管系统100包括用于捕获图像和相关联深度信息的传感器106,但在其它示例中,数据处理系统可以被布置成执行本文所述的方法,从远程源接收的图像和相关联深度信息,在这种情况下传感器不是必需的。在其它示例中,除了传感器106之外或者代替传感器106,可以包括一种或多种其它类型的传感器。合适传感器的示例是立体相机、事件相机、红外相机和/或用于声音导航测距(声纳)的收发器。
[0121]
系统100的处理电路104包括各种处理单元,包括中央处理单元(cpu)和图形处理单元(gpu)。在其它示例中,提供专用处理单元诸如专用集成电路(asic)或数字信号处理器(dsp)以执行特定的处理操作。在一些示例中,提供专用神经网络加速器(nna)或神经处理单元(npu),用于有效执行神经网络操作。在一些示例中,半导体装置设置有被配置成执行实现本文所述的方法所需的特定操作的一个或多个门阵列。
[0122]
系统100的存储器电路102包括固态驱动器(ssd)形式的非易失性存储器以及易失性随机存取存储器(ram),特别是静态随机存取存储器(sram)和动态随机存取存储器(dram)。在其它示例中,可包括替代类型的存储器,诸如可移动存储器、闪存存储器、同步dram等。
[0123]
可彼此独立地执行图2的姿态估计方法200或图7的姿态细化方法700。因此,在一些示例中,系统被配置成执行方法200而无需任何进一步的细化。在这类示例中,不需要存储每个已知对象的体积模型,尽管仍然需要提供训练的神经网络或其它部件以识别已知对象用于图像分割。在其它示例中,可结合姿态细化方法700来执行替代的姿态估计方法。
[0124]
上述实施方案应被理解为是本发明的说明性示例。设想了本发明进一步的实施方
案。例如,本文所述的姿态预测方法可与物理学推理相结合,以确保所得姿态预测在物理上是可能的/现实的。这种推理可以使用诸如在视频游戏背景下众所周知的物理学引擎来结合。在一些示例中,除了基于碰撞的方法之外或作为基于碰撞的方法的替代而使用物理学推理用于姿态细化。
[0125]
要理解的是,关于任一实施方案描述的任何特征可单独使用,或者与所描述的其它特征组合使用,并且也可以与任何其它实施方案的一项或多项特征组合使用,或与任何其它实施方案的任意组合组合使用。此外,在不脱离由所附权利要求限定的本发明的范围的情况下,也可以采用上面没有描述的等同方案和修改方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献