本发明涉及一种基于深度学习的堆叠物体6d位姿估计方法和装置。
背景技术:
随机分拣(binpicking)是机器人学和计算机视觉的一个核心问题,目标是让带有视觉传感器的机器人通过末端执行器(吸盘、二指机械手)抓取随机摆放的物体。为了精确的抓取和放置物体,需要对物体进行6d位姿估计,即旋转和平移。平移为物体的xyz坐标,旋转为物体姿态,可用旋转矩阵(或欧拉角,或单位四元素)表示。
在堆叠较为严重的情况下,很难对所有的堆叠物体进行位姿估计。传统方法在rgb图片中采用局部特征匹配,如ssd-6d([1]w.kehl,f.manhardt,f.tombari,s.ilic,andn.navab,“ssd-6d:makingrgb-based3ddetectionand6dposeestimationgreatagain,”inproceedingsoftheinternationalconferenceoncomputervision(iccv2017),venice,italy,2017,pp.22–29),linemod([2]s.hinterstoisser,v.lepetit,s.ilic,s.holzer,g.bradski,k.konolige,andn.navab,“modelbasedtraining,detectionandposeestimationoftexture-less3dobjectsinheavilyclutteredscenes,”inasianconferenceoncomputervision.springer,2012,pp.548–562.)等,不能够很好的处理堆叠场景物体。
posecnn([3]y.xiang,t.schmidt,v.narayanan,andd.fox,“posecnn:aconvolutionalneuralnetworkfor6dobjectposeestimationinclutteredscenes,”2018.)采用深度学习的方法处理rgb图片,回归物体6d位姿,但是这种方法比较依赖于物体的纹理,在工业环境中,大多物体的纹理特征不大明显,所以直接处理rgb图片的方法不适用于工业环境中。因此,为了更好的表示场景中无纹理物体的几何特征,需要借助深度信息。因此,深度信息的表示主要包括:深度图(depthimage)、体素(voxel)、网格(mesh)、点云(pointcloud)。深度信息之间可以互相转换,不同的深度信息表示方法对应的处理方式也大有不同。其中,点云占用空间较小并且能够很好的反映物体的3d特征,点云是深度信息较好的表示形式。
传统的点云特征提取主要有pfh和fpfh等局部特征,随着深度学习方法的流行,pointnet是第一个能直接处理点云数据的深度学习网络,pointnet能够很好的获取场景点云的全局信息,pointnet 在pointnet的基础上加强了局部特征的提取。目前大多数点云深度学习网络都是基于pointnet的。
posecnn如图1所示,输入为一张rgb图片,使用卷积神经网络提取特征,然后用网络同时学习回归物体的语义信息、3d平移和3d旋转。posecnn处理的是rgb图片,需要依赖物体的纹理信息,当物体没有纹理时,很难估计物体的位姿。由于posecnn用的仅为2d视觉,所有不能够很好的处理复杂的堆叠场景。
ppr-net([4]z.dong,s.liu,t.zhou,x.yu,l.zeng,h.cheng,andh.liu,“pprnet:point-wiseposeregressionnetworkforinstancesegmentationand6dposeestimationinbin-pickingscenario,”inieee/rsjinternationalconferenceonintelligentrobotsandsystems,2019.iros2019.ieee,2019,(inpress).)是一个基于点云的深度学习位姿估计网络,通过深度学习网络逐点学习回归点云中每个点所属物体的类别、3d平移和旋转,再通过预测的物体3d平移信息,在空间中聚类,从而得到每个物体的位姿。ppr-net的估计方法流程如图2所示,首先由深度相机获取场景的深度图,再将深度图转成为点云,人工去除点云中的背景信息(如箱子,桌子的点云等),仅留下待估计物体的点云。之后,将点云输入到点云深度学习网络框架(pointnet )中,提取点云特征。再将点云特征通过mlp,同时学习回归每个点所属物体的语义信息(即物体类别)、3d平移和3d旋转信息。对于同一种类的物体上的点,在空间上对这些点预测的3d平移进行空间聚类,则属于同一个个体的点云将被聚为一类。最后,对聚类后的每一类中的点,对应所预测的3d旋转进行平均,以聚类点的3d位置平均作为物体平移信息,最后得到对应物体的6d位姿估计。缺点在于:ppr-net需要在网络输出后再进行聚类,而聚类需要设置一些超参数,针对不同的物体需要设置不同的参数,这使得该算法框架仍然依赖于后期的人工调试。同时,逐点回归在场景点数较多的情况下会消耗大量的计算时间和计算机内存。
技术实现要素:
本发明的主要目的在于克服现有技术的不足之处,提供一种基于深度学习的堆叠物体6d位姿估计方法和装置。
为实现上述目的,本发明采用以下技术方案:
一种基于深度学习的堆叠物体6d位姿估计方法,包括如下步骤:
s1、将由深度相机获得的场景深度信息的点云输入到点云深度学习网络中,提取点云特征;
s2、将提取到的点云特征通过多层感知机mlp,学习回归所属物体的语义信息、场景的前景和背景以及所属物体的3d平移信息,回归得到种子点;
s3、在所述种子点中随机采样k个点,其中k大于待估计物体个数,以采样的k个点为中心点对所述种子点进行归类,得到k类点;
s4、将每一类点的特征通过多层感知机mlp,预测物体的3d平移、物体的3d旋转以及物体的6d位姿置信度;
s5、根据预测的物体6d位姿和6d位姿置信度,使用非极大值抑制nms的方法得到最终的场景物体位姿。
进一步地:
在步骤s1之前还包括如下步骤:
s0、使用深度相机获得场景的深度信息,以点云的形式保存。
所述点云深度学习网络包括pointnet或pointnet 。
步骤s3中,以采样的k个点为中心点对所述种子点进行归类,得到k类点具体包括:以采样的k个点为圆心,r为半径分别定义k个球体,在同一个球体内的种子点取为同一类点。
步骤s4中,每一类点的特征包括点的坐标、预测的语义信息以及背景前景信息。
步骤s5中,将预测k个物体6d位姿放入位姿集合a,最终的物体6d位姿结果存放到位姿集合b;选择具有最大置信度的位姿p,将其从位姿集合a中移除,并加入到存放最终的位姿结果的集合b中,再将位姿集合a中剩余位姿中与所述具有最大置信度的位姿p的位姿距离大于阈值m的位姿从位姿集合a中移除;重复以上过程,直到位姿集合a为空为止。
一种计算机可读存储介质,其特征在于,其存储的计算机程序被处理器执行时实现所述的基于深度学习的堆叠物体6d位姿估计方法。
一种基于深度学习的堆叠物体6d位姿估计装置,包括:
处理器;
计算机可读存储介质,其存储计算机程序,所述计算机程序被所述处理器执行时实现所述的基于深度学习的堆叠物体6d位姿估计方法。
本发明的有益效果:
本发明提供一种基于深度学习的堆叠物体6d位姿估计方法和装置,端到端地实现了堆叠场景位姿精确估计,输入为场景点云,直接输出场景中各物体的位姿,被遮挡较多的物体的位姿可不进行估计。本发明实施例中采用先预测出较多的位姿,再用nms(非极大值抑制)来筛选的方法,能够很好地处理物体的遮挡问题,且实时高效。本发明实施例中可在深度学习网络中采用采样聚类的方法,并对每一类点云做位姿的回归。
与传统方法相比,本发明的优点主要包括:
1.实现端到端的位姿估计深度学习网络,不需要再对输入和输出做数据处理;
2.针对堆叠物体,能够很好地处理物体的遮挡问题;
3.网络规模小,训练速度以及运行速度快,能够实时对堆叠物体进行准确的位姿估计,满足机械臂的实时随机分拣需求;
4.能够处理各种类型的物体,算法泛化能力强。
附图说明
图1为现有的posecnn示意图;
图2为现有的ppr-net估计方法的流程图;
图3为本发明一种实施例的基于深度学习的堆叠物体6d位姿估计方法的流程图。
图4为本发明一种实施例中的输入点云(左)和预测位姿(右)。
具体实施方式
以下对本发明的实施方式作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
图3为本发明一种实施例的基于深度学习的堆叠物体6d位姿估计方法的流程图。参阅图3,本发明实施例提出一种基于深度学习的堆叠物体6d位姿估计方法,包括如下步骤:
s1、将由深度相机获得的场景深度信息的点云输入到点云深度学习网络中,提取点云特征;
s2、将提取到的点云特征通过多层感知机mlp,学习回归所属物体的语义信息、场景的前景和背景以及所属物体的3d平移信息,回归得到的点称为种子点(称为seeds);
s3、在所述种子点seeds中随机采样k个点,其中k大于待估计物体个数,以采样的k个点为中心点,将每个中心点及其周边设定范围内的点归为一类,得到k类点;
s4、将每一类点的特征通过多层感知机mlp,预测物体的3d平移和物体的3d旋转,即,预测物体的6d位姿,以及预测物体的6d位姿置信度;
s5、根据预测的物体6d位姿和6d位姿置信度,使用非极大值抑制nms的方法得到最终的场景物体位姿。
本发明实施例的估计方法端到端地实现了堆叠场景位姿精确估计,输入为场景点云,直接输出场景中各物体的位姿。本发明实施例中采用先预测出较多的位姿,再用nms(非极大值抑制)来筛选的方法。可在深度学习网络中采用采样聚类的方法,并对每一类点云做位姿的回归。
在一些实施例中,在步骤s1之前还可包括如下步骤:
s0、使用深度相机获得场景的深度信息,以点云的形式保存。
在不同的实施例中,所述点云深度学习网络可以包括pointnet或pointnet 等。
在优选的实施例中,步骤s3中,以采样的k个点为中心点对所述种子点进行归类,得到k类点具体包括:以采样的k个点为圆心,r为半径分别定义k个球体,在同一个球体内的种子点(seeds)取为同一类点。
在优选的实施例中,步骤s4中,每一类点的特征包括点的坐标、预测的语义信息以及背景前景信息。
在优选的实施例中,步骤s5中,将预测k个物体6d位姿放入位姿集合a,最终的物体6d位姿结果存放到位姿集合b;选择具有最大置信度的位姿p,将其从位姿集合a中移除,并加入到存放最终的位姿结果的集合b中,再将位姿集合a中剩余位姿中与所述具有最大置信度的位姿p的位姿距离大于阈值m的位姿从位姿集合a中移除;重复以上过程,直到位姿集合a为空为止。
在一些实施例中,对于遮挡较多的物体,本方法可以正常进行位姿估计。但是由于物体被遮挡较多时会影响到估计结果的准确度。因此,在较佳的实施例中,本方法将遮挡较多物体的位姿估计结果舍去或者直接不进行位姿估计。具体地,判断物体遮挡程度的方法是计算每个物体包含的点的个数,在点云中,点多的物体遮挡少,点少的遮挡多。因此,根据点数的多少,设定一个阈值,点数低于该阈值时则认为遮挡较多。
在另一种实施例中,一种基于深度学习的堆叠物体6d位姿估计装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被所述处理器执行时实现前述任一实施例所述的基于深度学习的堆叠物体6d位姿估计方法。
以下结合附图进一步描述本发明具体实施例的特征和优点。
如图3所示,一种具体实施例的基于深度学习的堆叠物体6d位姿估计方法,包括如下步骤:
1)使用深度相机获得场景的深度信息,以点云的形式保存。
2)将场景深度信息的点云输入到点云深度学习网络中(包括但不限于pointnet、pointnet 等学习网络),提取点云高维特征;
3)将提取到的点云特征通过多层感知机mlp,学习回归所属物体的语义信息(即物体类别)、场景的前景和背景(前景为待估计物体的点云,背景为无关点云,如盒子和桌子点云等)以及所属物体的3d平移信息,回归得到的点称为种子点(seeds)。
4)在所述种子点中随机采样k个点,其中k大于待估计物体个数,以采样的k个点为中心点,将每个中心点及其周边的点归为一类,得到k类点。较佳地,得到k类点的具体方法为:以采样的k个点为圆心,r为半径,将在同一个球体内的种子点(seeds)取为同一类点;实际中可将k设置较大。
5)将每一类点的特征(包括点的坐标,预测的语义信息以及背景前景信息)通过多层感知机mlp,预测物体的3d平移、物体的3d旋转以及物体的6d位姿置信度。其中,该步骤再次预测物体的3d平移是为了相比步骤3的预测,得到更加精确的物体平移信息。位姿置信度是指预测的6d位姿(物体的3d平移 3d旋转)的置信程度,置信度越大,则算法预测的位姿越可信(准确)。
6)根据预测的物体6d位姿和6d位姿置信度,使用非极大值抑制nms的方法得到最终的场景物体位姿。由于在此之前采样了k类点,k大于实际待估计物体个数,网络在预测k个物体6d位姿和对应的k个置信度时,为了得到与实际物体个数相同量的位姿,在k个物体位姿中进行筛选。
较佳地,非极大值抑制的步骤具体为:
将预测k个物体6d位姿放入位姿集合a,最终的物体6d位姿结果存放到位姿集合b;选择具有最大置信度的位姿p,将其从位姿集合a中移除,并加入到存放最终的位姿结果的集合b中,再将位姿集合a中剩余位姿中与所述具有最大置信度的位姿p的位姿距离大于阈值m的位姿从位姿集合a中移除;重复以上过程,直到位姿集合a为空为止。
图4为本发明一种实施例中的输入点云(左)和预测位姿(右)。使用本发明实施例基于深度学习的堆叠物体6d位姿估计方法和装置,输入堆叠场景物体的点云,直接输出场景中多个物体的位姿,其中被遮挡较多的物体的位姿不进行估计。如图4所示,左边为输入点云,右边为经过本发明方法估计得到按照预测位姿展示的物体。
与传统方法相比,本发明实施例的优点主要包括:
1.实现端到端的位姿估计深度学习网络,不需要再对输入和输出做数据处理;
2.针对堆叠物体,能够很好的处理物体的遮挡问题;
3.网络规模小,训练速度以及运行速度快,能够实时对堆叠物体进行准确的位姿估计,满足机械臂的实时随机分拣需求;
4.能够处理各种类型的物体,算法泛化能力强。
本发明的背景部分可以包含关于本发明的问题或环境的背景信息,而不一定是描述现有技术。因此,在背景技术部分中包含的内容并不是申请人对现有技术的承认。
以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。在本说明书的描述中,参考术语“一种实施例”、“一些实施例”、“优选实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。尽管已经详细描述了本发明的实施例及其优点,但应当理解,在不脱离专利申请的保护范围的情况下,可以在本文中进行各种改变、替换和变更。
1.一种基于深度学习的堆叠物体6d位姿估计方法,其特征在于,包括如下步骤:
s1、将由深度相机获得的场景深度信息的点云输入到点云深度学习网络中,提取点云特征;
s2、将提取到的点云特征通过多层感知机mlp,学习回归所属物体的语义信息、场景的前景和背景以及所属物体的3d平移信息,回归得到种子点;
s3、在所述种子点中随机采样k个点,其中k大于待估计物体个数,以采样的k个点为中心点对所述种子点进行归类,得到k类点;
s4、将每一类点的特征通过多层感知机mlp,预测物体的3d平移、物体的3d旋转以及物体的6d位姿置信度;
s5、根据预测的物体6d位姿和6d位姿置信度,使用非极大值抑制nms的方法得到最终的场景物体位姿。
2.如权利要求1所述的基于深度学习的堆叠物体6d位姿估计方法,其特征在于,在步骤s1之前还包括如下步骤:
s0、使用深度相机获取场景的深度信息,以点云的形式保存。
3.如权利要求1所述的基于深度学习的堆叠物体6d位姿估计方法,其特征在于,所述点云深度学习网络包括pointnet或pointnet 。
4.如权利要求1所述的基于深度学习的堆叠物体6d位姿估计方法,其特征在于,步骤s3中,以采样的k个点为中心点对所述种子点进行归类,得到k类点具体包括:以采样的k个点为圆心,r为半径分别定义k个球体,在同一个球体内的种子点取为同一类点。
5.如权利要求1所述的基于深度学习的堆叠物体6d位姿估计方法,其特征在于,步骤s4中,每一类点的特征包括点的坐标、预测的语义信息以及背景前景信息。
6.如权利要求1所述的基于深度学习的堆叠物体6d位姿估计方法,其特征在于,步骤s5中,将预测k个物体6d位姿放入位姿集合a,最终的物体6d位姿结果存放到位姿集合b;选择具有最大置信度的位姿p,将其从位姿集合a中移除,并加入到存放最终的位姿结果的集合b中,再将位姿集合a中剩余位姿中与所述具有最大置信度的位姿p的位姿距离大于阈值m的位姿从位姿集合a中移除;重复以上过程,直到位姿集合a为空为止。
7.一种计算机可读存储介质,其特征在于,其存储的计算机程序被处理器执行时实现如权利要求1、3至6任一项所述的基于深度学习的堆叠物体6d位姿估计方法。
8.一种基于深度学习的堆叠物体6d位姿估计装置,其特征在于,包括:
处理器;
计算机可读存储介质,其存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1、3至6任一项所述的基于深度学习的堆叠物体6d位姿估计方法。
技术总结