用于确定物体的6D位姿的方法和装置与流程

文档序号:32517969发布日期:2022-12-13 17:20阅读:140来源:国知局
用于确定物体的6D位姿的方法和装置与流程
用于确定物体的6d位姿的方法和装置
技术领域
1.本发明涉及图像处理领域,特别是,涉及一种用于确定物体的6d位姿的方法和装置。


背景技术:

2.随着机器人的普及,在使用机器人来抓取物体、例如工件等时,通常需要机器人通过“无序抓取(bin-picking)”来抓取物体。因此,精确地确定物体的6d位姿对于机器人操作的高效性和安全性至关重要。
3.在确定物体的6d位姿时,通常通过物体的rgb图像来估计物体的6d位姿。
4.例如,可通过将rgb图像输入到用于估计6d位姿的神经网络来估计物体的6d位姿。然而,由于在训练该神经网络的过程中,难以获得充足的训练数据、例如难以获得真实环境中各种6d位姿、各种背景环境下的物体的rgb图像,因此通过这种方式确定的6d位姿通常不够精确。
5.此外,还可通过使用rgb数据来获得物体的局部点云,进而通过局部点云来估计物体的6d位姿。然而,这种方式需要从物体的局部点云来估计物体的整体状态,即仅通过物体的局部2d图像来估计物体的3d状态进而估计物体的6d位姿,因而估计的6d位姿精确度不高。此外,这种估计6d位姿的方式的计算量较大,导致估计6d位姿的效率较低。
6.因此,需要能够精确且快速地确定物体的6d位姿的方式。


技术实现要素:

7.本发明的目的在于提供一种用于确定物体的6d位姿的方法和装置。
8.根据本发明的一方面,提供了一种用于确定物体的6d位姿的方法,所述方法包括:通过物体的rgb-d图像获得物体的rgb图像以及对应的图像点云;根据rgb图像通过预先训练的掩膜神经网络,获得与物体对应的掩膜和物体类型;根据获得的掩膜和/或物体类型,从图像点云分割出实际物体点云,并获得基于物体的3d模型的预估6d位姿点云;将所述预估6d位姿点云与实际物体点云进行匹配,以确定物体的6d位姿。
9.根据本发明的另一方面,提供了一种用于确定物体的6d位姿的装置,所述装置包括:图像处理单元,其被配置为能够通过物体的rgb-d图像获得物体的rgb图像以及对应的图像点云;神经网络单元,其被配置为能够根据rgb图像通过预先训练的掩膜神经网络,获得与物体对应的掩膜和物体类型;位姿预估单元,其被配置为能够根据获得的掩膜和/或物体类型,从图像点云分割出实际物体点云,并获得基于物体的3d模型的预估6d位姿点云;位姿确定单元,其被配置为能够将所述预估6d位姿点云与实际物体点云进行匹配,以确定物体的6d位姿。
10.根据本发明的另一方面,提供了一种计算机程序产品,其中,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时,使得处理器能够实施根据本发明的用于确定物体的6d位姿的方法。
11.根据本发明的用于确定物体的6d位姿的方法和装置,能够基于rgb-d图像使用神经网络而精确、快速地获得物体的掩膜和物体类型,从而能够根据获得的掩膜和物体类型而基于物体的原始3d模型精确地确定物体的6d位姿,提高了确定物体6d位姿的效率和精确度。
附图说明
12.通过以下结合附图所作的详细描述,将更全面地理解本发明的前述和其他方面,附图包括:
13.图1示出了根据本发明的一个示例性实施例的用于确定物体的6d位姿的方法的流程图。
14.图2示出了根据本发明的一个示例性实施例的物体的rgb图像的示例示图。
15.图3示出了根据本发明的一个示例性实施例的物体的图像点云的示例示图。
16.图4示出了根据本发明的一个示例性实施例的物体的掩膜的示例示图。
17.图5示出了根据本发明的一个示例性实施例的物体的实际物体点云的示例示图。
18.图6示出了根据本发明的一个示例性实施例的获得基于物体的3d模型的预估6d位姿点云的步骤的流程图。
19.图7示出了根据本发明的一个示例性实施例的物体的3d模型的示例示图。
20.图8示出了根据本发明的一个示例性实施例的物体的预估6d位姿点云的示例示图。
21.图9示出了根据本发明的一个示例性实施例的匹配点云的示例示图。
22.图10示出了根据本发明的一个示例性实施例的用于确定物体的6d位姿的装置的框图。
具体实施方式
23.为了使本发明所要解决的技术问题、技术方案以及有益的技术效果更加清楚明白,以下将结合附图以及多个示例性实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,而不是用于限定本发明的保护范围。
24.图1示出了根据本发明的一个示例性实施例的用于确定物体的6d位姿的方法的流程图。
25.这里描述的物体可以是任意目标物体、例如需要通过机器人抓取的物体、例如工件等。
26.参照图1,在步骤s1,通过物体的rgb-d图像获得物体的rgb图像以及对应的图像点云。
27.例如,可通过3d相机对目标物体、例如需要通过机器人抓取的物体进行拍摄,来获得该物体的rgb-d图像。应该理解,该rgb-d图像可包括该物体以及该物体所处的背景环境的信息。
28.rgb-d图像中的rgb图像可以直接作为以上rgb图像。此外,可通过任意方式将rgb-d图像中的深度图像转换为对应的点云(图像点云)。
29.图2示出了根据本发明的一个示例性实施例的物体的rgb图像的示例示图。
30.图2中部示出的较大的弯曲物体可以是被拍摄的目标物体,即需要确定6d位姿的物体。图2中该物体周围的背景环境中还存在多个其他物体、例如图2中示出的螺丝刀、笔等。
31.图3示出了根据本发明的一个示例性实施例的物体的图像点云的示例示图。
32.参照图3,图3以与图2所示的rgb图像不同的视角(即,不同于图2的拍摄视角),示出了通过rgb-d图像获得的图像点云,图3中部较大的弯曲物体是图2中的目标物体、即需要确定6d位姿的物体。
33.由于rgb-d图像具有深度信息,因此获得的图像点云能够反应物体的立体(3d)状态,因而该图像点云可以以不同的视角被示出。
34.应该理解,图3以与图2不同的视角示出图像点云仅用于说明图像点云能够表示物体的立体状态,为了便于确定物体的6d位姿,通常可以以与图2相同的视角示出图像点云。
35.返回参照图1,在步骤s2,根据rgb图像通过预先训练的掩膜神经网络,获得与物体对应的掩膜和物体类型。
36.在一个实施例中,所述掩膜神经网络可以为循环卷积神经网络(例如,mask-rcnn)。通过将步骤s1获得的rgb图像输入到该掩膜神经网络中,可使得该掩膜神经网络输出与输入的rgb图像对应的掩膜和物体类型。
37.在此,由于在训练掩膜神经网络的过程中,可以方便地获得充足的训练数据、即输入数据和标注数据(在下文中,对掩膜神经网络的训练进行了详细描述),因此通过掩膜神经网络,可快速且精确地获得与物体对应的掩膜和物体类型。
38.图4示出了根据本发明的一个示例性实施例的物体的掩膜的示例示图。
39.参照图4,图4示出了与图2中的目标物体、即图2中部的弯曲物体对应的掩膜。掩膜可提供关于物体的轮廓的信息。
40.在获得掩膜和物体类型之后,可执行图1的步骤s3,根据获得的掩膜和/或物体类型,从图像点云分割出实际物体点云,并获得基于物体的3d模型的预估6d位姿点云。
41.在一个实施例中,在步骤s3中可通过获得的掩膜将图像点云分割为物体点云和背景环境点云,并将分割的物体点云作为实际物体点云。
42.例如,物体的实际物体点云可以是从图3的图像点云分割出的图2和图3中的弯曲物体的点云。
43.图5示出了根据本发明的一个示例性实施例的物体的实际物体点云的示例示图。
44.图5示出了从图3中的图像点云分割出的去除了环境背景的仅包括目标物体的点云(实际物体点云)。为了便于确定物体的6d位姿,图5以与图2相同的视角示出了实际物体点云。
45.应该理解,该实际物体点云还可以以图3的视角或其他视角示出。
46.在图1的步骤s3中如上分割实际物体点云的同时或之前或之后,可在步骤s3中获得基于物体的3d模型的预估6d位姿点云。
47.该预估6d位姿点云可以是具有粗略估计的6d位姿的基于物体的原始3d模型的物体点云。
48.图6示出了根据本发明的一个示例性实施例的获得基于物体的3d模型的预估6d位姿点云的步骤的流程图。
49.参照图6,在步骤s31,可从位姿数据库获得与获得的掩膜对应的6d位姿作为预估6d位姿。
50.作为示例,位姿数据库可包括多个掩膜以及与所述多个掩膜分别对应的多个6d位姿。
51.可通过以上获得的掩膜,来从位姿数据库检索对应的6d位姿作为预估6d位姿(即,粗略估计的物体的6d位姿)。
52.此外,为了更加高效地从位姿数据库检索对应的6d位姿,在一个实施例中,位姿数据库可包括多种物体类型、与每种物体类型对应的多个掩膜以及与每个掩膜对应的6d位姿。
53.在这种情况下,在步骤s31中可通过以上获得的掩膜和物体类型二者,来从位姿数据库检索对应的6d位姿(预估6d位姿)。
54.在获得预估6d位姿的同时或之前或之后,可执行步骤s32,从模型数据库获得与获得的物体类型对应的物体的3d模型。
55.作为示例,模型数据库可包括分别对应于多种物体类型的物体的多个3d模型。例如,模型数据库可以是包括多种物体的cad模型以及纹理特征(例如,颜色(例如rgb)特征)的模型数据库。
56.例如,可通过以上获得的物体类型,从以上描述的模型数据库检索该物体类型的物体的3d模型、例如图2中的目标物体的原始3d模型,该原始3d模型具有物体的完整、精确的物体信息(例如,物体的细节结构以及颜色等)。
57.图7示出了根据本发明的一个示例性实施例的物体的3d模型的示例示图。
58.图7示出了例图2中拍摄的物体的原始3d模型。图7示出的物体的原始3d模型可具有完整、精确的物体信息、例如物体的细节结构以及颜色等。
59.返回参照图6,在获得物体的原始3d模型之后,可执行步骤s33,将获得的3d模型光投影变换到所述预估6d位姿,以获得在所述预估6d位姿下的3d模型的点云作为所述预估6d位姿点云。
60.此时,通过将从模型数据库获得的物体的完整、精确的3d模型变换到、例如通过cad光投影变换到从位姿数据库检索到的6d位姿(预估6d位姿),可使得物体的完整、精确的3d模型具有与实际物体比较接近的6d位姿。因此,以上获得的预估6d位姿点云可既具有比较完整、精确的物体信息,同时又具有与实际物体比较接近的6d位姿。
61.图8示出了根据本发明的一个示例性实施例的物体的预估6d位姿点云的示例示图。
62.从图8可以看出,在步骤s33获得的预估6d位姿点云已具有与图5所示的实际物体点云非常相近的6d位姿,同时还包括比图5所示的实际物体点云更多的物体信息、例如物体的细节结构以及颜色等。
63.在获得预估6d位姿点云之后、例如通过如上方式获得预估6d位姿点云之后,可执行图1中的步骤s4,将所述预估6d位姿点云与实际物体点云进行匹配,以确定物体的6d位姿。
64.在一个实施例中,在步骤s4中可首先通过迭代最近点算法(icp(iterative closest point)算法),以所述预估6d位姿点云为初始值,来将所述预估6d位姿点云匹配到
实际物体点云,以获得匹配点云。
65.图9示出了根据本发明的一个示例性实施例的匹配点云的示例示图。
66.参照图9,图示出的匹配点云可具有预估6d位姿点云所包括的完整、精确的物体信息,同时具有与物体的实际6d位姿相同的6d位姿。
67.之后,在步骤s4中可将所述匹配点云所对应的6d位姿确定为物体的6d位姿。
68.通过如上方式,能够避免通过icp算法将基于原始物体模型(例如,图7所示的物体模型)的点云从原始模型的初始6d位姿,经过复杂的迭代过程来旋转到目标物体的实际6d位姿(例如,对应于图5所示的实际物体点云的6d位姿)。
69.在本公开的实施例中,通过icp算法能够快速地将具有与物体的实际6d位姿非常接近的位姿的预估6d位姿点云(例如,如图8所示)匹配到实际物体点云,从而避免以上复杂的迭代过程,而能够高效地确定物体的6d位姿。
70.在以上实施例中,物体的6d位姿可包括物体的位置和方位,其中,物体的位置可包括预定三维坐标系下的物体的x坐标、y坐标和z坐标,物体的方位可包括物体的倾斜度、旋转度和俯仰度。
71.例如,在通过3d相机拍摄物体的rgb-d图像的情况下,上述预定坐标系可以是相机坐标系,物体的倾斜度、旋转度和俯仰度可以是相对于预定初始状态、例如相对于以上模型数据库中存储的原始3d模型的初始状态的倾斜度、旋转度和俯仰度。
72.应该理解,以上预定坐标系以及倾斜度、旋转度和俯仰度仅是示例,可根据实际需要,设置任意其他的预定坐标系以及倾斜度、旋转度和俯仰度。
73.在一个实施例中,为了提高以上确定物体的掩膜以及预估6d位姿的精确度,根据本发明的用于确定物体的6d位姿的方法还可包括训练以上掩膜神经网络的步骤以及建立以上位姿数据库的步骤。
74.作为示例,可使用多组rgb图像作为输入数据,并使用与每组rgb图像中的每个rgb图像对应的标注掩膜和标注物体类型作为标注数据,来训练掩膜神经网络,其中,所述多组rgb图像中的每组rgb图像可对应于一种物体类型的物体。
75.在一个实施例中,可如下获得以上输入数据和标注数据:
76.首先,可从模型数据库获得多个3d模型,其中,每个3d模型对应于一种物体类型的物体。
77.之后,可对每个3d模型在至少一个背景环境模型下进行视点变换、缩放和/或光照变换,来针对每个3d模型获得对应物体类型的物体的一组rgb图像、对应于每个rgb图像的掩膜和/或对应于每个rgb图像的6d位姿。
78.此时,获得的所有组rgb图像可以为所述输入数据,对应于每个rgb图像的掩膜可以为所述标注掩膜,对应于每个rgb图像的物体类型可以为所述标注物体类型。
79.例如,对于每个3d模型,可将该3d模型以及至少一个背景环境输入到能够对3d模型和环境背景进行如上变换的任意硬件或软件单元(例如,blender),之后通过该任意硬件或软件单元(例如,blender)对输入的3d模型以及背景环境进行视点变换、缩放和/或光照变换,从而输出不同视点、缩放和/或光照变化下的物体的不同rgb图像以及与对应于每个rgb图像的掩膜和6d位姿。
80.在此,能够通过对各种物体的3d模型和背景环境进行如上变换,而方便地获得各
种姿态、各种视点以及各种背景环境下的各个物体的rgb图像和相应的掩膜、物体类型和6d位姿,即,能够方便地获得用于训练掩膜神经网络的充足的训练数据。
81.因此,如上训练的神经网络能够精确地确定各种姿态下的各种物体的掩膜和物体类型。从而使得在如上确定物体的6d位姿的过程中,能够在无需收集真实环境中的各种物体的各种6d位姿作为标注或参考的情况下,而精确地确定出物体的6d位姿。
82.此外,在一个实施例中,在通过以上方式得到以上不同rgb图像以及对应于每个rgb图像的掩膜和6d位姿的同时,还可将对应于每个rgb图像的掩膜和对应于每个rgb图像的6d位姿进行对应存储,以获得上述位姿数据库。
83.此外,还可将对应的物体类型一同存储,使得建立的位姿数据库包括各种物体类型、与每种物体类型对应的多个掩膜以及与每个掩膜对应的6d位姿。
84.根据本发明的用于确定物体的6d位姿的方法,能够基于rgb-d图像使用神经网络而精确、快速地获得物体的掩膜和物体类型,从而能够根据获得的掩膜和物体类型而基于物体的原始3d模型精确地确定物体的6d位姿,提高了确定物体6d位姿的效率和精确度。
85.图10示出了根据本发明的一个示例性实施例的用于确定物体的6d位姿的装置10的框图。
86.参照图10,根据本发明的用于确定物体的6d位姿的装置10包括图像处理单元1、神经网络单元2、位姿预估单元3和位姿确定单元4。
87.图像处理单元1被配置为能够通过物体的rgb-d图像获得物体的rgb图像以及对应的图像点云。
88.神经网络单元2被配置为能够根据rgb图像通过预先训练的掩膜神经网络,获得与物体对应的掩膜和物体类型。
89.位姿预估单元3被配置为能够根据获得的掩膜和/或物体类型,从图像点云分割出实际物体点云,并获得基于物体的3d模型的预估6d位姿点云。
90.位姿确定单元4被配置为能够将所述预估6d位姿点云与实际物体点云进行匹配,以确定物体的6d位姿。
91.以上已经参照图1至图9对图像点云、掩膜、物体类型和预估位姿点云的获取以及物体的6d位姿的确定进行了详细描述,这里不再赘述。
92.根据本发明的用于确定物体的6d位姿的装置,能够基于rgb-d图像使用神经网络而精确、快速地获得物体的掩膜和物体类型,从而能够根据获得的掩膜和物体类型而基于物体的原始3d模型精确地确定物体的6d位姿,提高了确定物体6d位姿的效率和精确度。
93.根据本发明的示例性实施例还提供一种计算机程序产品,其中,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时,使得处理器实施根据本发明的用于确定物体的6d位姿的方法。计算机程序产品可包括用于独立地或共同地命令或配置硬件装置以按照需要进行操作的计算机程序、程序代码、指令或它们的一些组合。计算机程序和/或程序代码可包括可由一个或多个硬件装置实施的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。程序代码的示例可包括由编译器产生的机器代码和使用解释器执行的更高级程序代码。
94.此外,根据本发明的示例性实施例的上述装置和设备中的各个单元可被实现为硬件组件或软件模块。此外,本领域技术人员可根据限定的各个单元所执行的处理,通过例如
使用现场可编程门阵列(fpga)、专用集成电路(asic)或处理器来实现各个单元。
95.尽管这里参考特定实施例说明和描述了本发明,但是本发明并不限于所示的细节。而是,可以在本发明的范围内对这些细节进行各种修改。
96.附图标记列表
97.s1 通过物体的rgb-d图像获得物体的rgb图像以及对应的图像点云
98.s2 根据rgb图像通过预先训练的掩膜神经网络,获得与物体对应的掩膜和物体类型
99.s3 根据获得的掩膜和/或物体类型,从图像点云分割出实际物体点云,并获得基于物体的3d模型的预估6d位姿点云
100.s4 将所述预估6d位姿点云与实际物体点云进行匹配,以确定物体的6d位姿
101.s31 从位姿数据库获得与获得的掩膜对应的6d位姿作为预估6d位姿
102.s32 从模型数据库获得与获得的物体类型对应的物体的3d模型
103.s33 将获得的3d模型光投影变换到所述预估6d位姿,以获得在所述预估6d位姿下的3d模型的点云作为所述预估6d位姿点云
104.10 用于确定物体的6d位姿的装置
105.1 图像处理单元
106.2 神经网络单元
107.3 位姿预估单元
108.4 位姿确定单元
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1