掌桥专利:专业的专利平台
掌桥专利
首页

物品定位方法和装置、机器人及计算机可读存储介质

文献发布时间:2023-06-19 12:02:28


物品定位方法和装置、机器人及计算机可读存储介质

技术领域

本公开涉及计算机技术领域,更具体地,涉及一种物品定位方法、一种物品定位装置、一种机器人以及一种计算机可读存储介质。

背景技术

随着科技的进步,机械化程度不断提高,在生产和物流过程中经常需要利用机器人抓取物品以及搬运物品。例如,在商品出库过程中,工作人员根据购物订单从货架上挑选出商品,并将商品集中到托盘上而形成商品堆垛。之后,托盘被运送到规定位置,并由机器人在视觉辅助的基础上,从商品堆垛逐一拣选商品。此时的商品处于初步包装状态,即外部包装有纸箱,形成为大小不一的物品。

在实现本公开构思的过程中,发明人发现在利用机器人进行物品的拆垛的场景下,由于堆垛中的物品的种类和尺寸信息一般是未知的,因此现有的视觉辅助系统无法利用尺寸和模板进行辅助定位,从而给物品的精确定位带来很大难度。如果无法实现较为精确的定位,在接下来的物品抓取以及物品搬运的过程中,可能会发生无法拾取物品或出现物品掉落等情况。

发明内容

有鉴于此,本公开提供了一种物品定位方法、一种物品定位装置、一种机器人以及一种计算机可读存储介质。

本公开的一个方面提供了一种物品定位方法,包括:获取与物品表面相关的二维图像和与上述物品表面相关的三维位置信息;从上述二维图像中提取边缘图像;从上述边缘图像中提取角点数据;处理并分析所提取的角点数据,得到表征上述物品表面的边缘的目标多边形;从上述与上述物品表面相关的三维位置信息中确定出上述目标多边形的三维位置信息;以及利用上述目标多边形的三维位置信息确定出上述物品表面的位置。

根据本公开的实施例,上述物品为多个物品紧密排列而成的堆垛中的一个物品,该堆垛的至少一个方向上的多个物品的表面为具有相同边数的多边形表面。

根据本公开的实施例,上述物品为长方体物品,上述处理并分析所提取的角点数据,得到表征上述物品表面的边缘的目标多边形包括:对上述角点数据进行聚类,以减少角点个数;提取由角点连接而成的多个四边形;以及从上述多个四边形中筛选得到目标矩形。

根据本公开的实施例,从上述多个四边形中筛选得到目标矩形包括:从上述多个四边形中筛选出尺寸大小处于目标尺寸范围内的四边形;根据上述尺寸大小处于目标尺寸范围内的四边形之间的重合度筛选出一个或多个候选四边形;针对上述一个或多个候选四边形中的每一个候选四边形,生成与候选四边形的尺寸对应的卷积核,上述卷积核具有环带状矩形边框区域;以及利用每个候选四边形的对应的卷积核的环带状矩形边框区域对相应的候选四边形进行匹配,以得到上述目标矩形。

根据本公开的实施例,利用每个候选四边形的对应的卷积核的环带状矩形边框区域对相应的候选四边形进行匹配,以得到上述目标矩形包括:对上述环带状矩形边框区域赋值1且对上述环带状矩形边框区域以外的区域赋值0;利用上述卷积核对相应的上述候选四边形进行卷积而得到卷积值;利用上述卷积值判断上述候选四边形与上述环带状矩形边框区域的匹配度是否大于规定值;以及若上述匹配度大于规定值,则将上述候选四边形确定为上述目标矩形。

根据本公开的实施例,若存在多个与相应的上述环带状矩形边框区域的匹配度大于规定值的上述候选四边形,则将上述匹配度最高的候选四边形确定为上述目标矩形。

根据本公开的实施例,在提取由角点连接而成的多个四边形时,提取的四边形的四个角的角度均处于80°至100°的范围内。

根据本公开的实施例,在确定出上述物品表面的位置后,还包括:根据上述物品表面的位置的信息计算出用于拣选上述物品的目标拣选位姿;以及将上述目标拣选位姿发送给机器人,以使得上述机器人根据上述目标拣选位姿对上述物品进行拣选。

本公开的另一方面提供了一种物品定位装置,包括:获取模块,用于获取与物品表面相关的二维图像和与上述物品表面相关的三维位置信息;边缘图像提取模块,用于从上述二维图像中提取边缘图像;角点数据提取模块,用于从上述边缘图像中提取角点数据;处理分析模块,用于处理并分析所提取的角点数据,得到表征上述物品表面的边缘的目标多边形;目标多边形位置确定模块,用于从上述与上述物品表面相关的三维位置信息中确定出上述目标多边形的三维位置信息;以及物品表面位置确定模块,用于利用上述目标多边形的三维位置信息确定出上述物品表面的位置。

根据本公开的实施例,上述物品为多个物品紧密排列而成的堆垛中的一个物品,该堆垛的至少一个方向上的多个物品的表面为具有相同边数的多边形表面。

根据本公开的实施例,上述物品为长方体物品,上述处理分析模块包括:角点聚类子模块,用于对上述角点数据进行聚类,以减少角点个数;四边形提取子模块,用于提取由角点连接而成的多个四边形;以及目标矩形筛选子模块,用于从上述多个四边形中筛选得到目标矩形。

根据本公开的实施例,上述目标矩形筛选子模块包括:四边形初选单元,用于从上述多个四边形中筛选出尺寸大小处于目标尺寸范围内的四边形;候选四边形筛选单元,用于根据上述尺寸大小处于目标尺寸范围内的四边形之间的重合度筛选出一个或多个候选四边形;卷积核生成单元,用于针对上述一个或多个候选四边形中的每一个候选四边形,生成与候选四边形的尺寸对应的卷积核,上述卷积核具有环带状矩形边框区域;以及卷积核匹配单元,用于利用每个候选四边形的对应的卷积核的环带状矩形边框区域对相应的候选四边形进行匹配,以得到上述目标矩形。

根据本公开的实施例,上述卷积核匹配单元包括:赋值子单元,用于对上述环带状矩形边框区域赋值1且对上述环带状矩形边框区域以外的区域赋值0;卷积子单元,用于利用上述卷积核对相应的上述候选四边形进行卷积而得到卷积值;判断子单元,用于利用上述卷积值判断上述候选四边形与上述环带状矩形边框区域的匹配度是否大于规定值;以及确定子单元,用于若上述匹配度大于规定值,则将上述候选四边形确定为上述目标矩形。

根据本公开的实施例,若存在多个与相应的上述环带状矩形边框区域的匹配度大于规定值的上述候选四边形,则上述确定子单元将上述匹配度最高的候选四边形确定为上述目标矩形。

根据本公开的实施例,上述四边形提取子模块提取的四边形的四个角的角度均处于80°至100°的范围内。

根据本公开的实施例,物品定位装置还包括:目标拣选位姿计算模块,用于根据上述物品表面的位置的信息计算出用于拣选上述物品的目标拣选位姿;以及发送模块,用于将上述目标拣选位姿发送给机器人,以使得上述机器人根据上述目标拣选位姿对上述物品进行拣选。

本公开的另一方面提供了一种机器人,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现上述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有可执行指令,该指令被处理器执行时使处理器实现上述的方法。

根据本公开的实施例,根据获取到的与物品表面相关的二维图像和与上述物品表面相关的三维位置信息,无需使用特别的设备,就能够通过对与物品表面相关的二维图像进行一系列处理而实现物品的较为精确的定位,至少一定程度上解决了现有的视觉辅助系统需要利用尺寸和模板进行辅助定位的问题,达到了能够简单地实现对物品进行较为精确的定位的效果。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的物品定位方法和装置的应用场景;

图2示意性示出了根据本公开实施例的物品定位方法的流程图;

图3示意性示出了根据本公开实施例的物品定位方法的流程图;

图4示意性示出了根据本公开实施例的物品定位方法的流程图;

图5示意性示出了根据本公开实施例的物品定位方法的流程图;

图6示意性示出了根据本公开实施例的对卷积核的环带状矩形边框区域赋值的方式的示意图;

图7至图16示意性示出了根据本公开实施例的物品定位方法的一个具体实施例;

图17示意性示出了根据本公开实施例的物品定位装置的框图;以及

图18示意性示出了根据本公开实施例的机器人的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的装置”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的装置等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的装置”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的装置等)。

本公开的实施例提供了一种物品定位方法。该物品定位方法包括:获取与物品表面相关的二维图像和与物品表面相关的三维位置信息;从二维图像中提取边缘图像;从边缘图像中提取角点数据;处理并分析所提取的角点数据,得到表征物品表面的边缘的目标多边形;从与物品表面相关的三维位置信息中确定出目标多边形的三维位置信息;以及利用目标多边形的三维位置信息确定出物品表面的位置。

图1示意性示出了根据本公开实施例的可以应用物品定位方法和装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,处于初步包装状态的大小不一的物品集中在托盘140上而形成堆垛,其中,堆垛中包括物品130。根据本公开的实施例,多个物品可以为长方体形状,需要说明的是,在本公开实施例中,长方体形状可以包括正方体形状。托盘140配置在规定位置,且该规定位置的上方还相应地配置有拍摄装置110。拍摄装置110拍摄到物品130的图像信息并发送给机器人120,机器人120基于该图像信息对物品130进行定位,然后抓取并运输物品130。机器人120例如可以通过拾取机构121对物品130的上表面进行吸附,由此实现对物品130的抓取和运输。机器人120从堆垛中抓取物品130的动作也被称为拆垛。

在该应用场景下,堆垛中的物品130虽然例如在俯视观察下具有长方形的表面形状,但种类繁多,因此尺寸也多种多样。换言之,物品130为多个物品紧密排列而成的堆垛中的一个物品,且该堆垛的至少一个方向上的多个物品的表面为具有相同边数的多边形表面,但物品130表面的尺寸是未知的。

在该应用场景下,如果无法实现对物品130较为精确的定位,则在接下来的物品抓取以及物品搬运的过程中,可能会发生无法拾取物品或出现物品掉落等情况。考虑到拆垛的具体要求,在对物品130进行定位时,需要准确获知物品130的上表面的形状和尺寸信息以计算物品130的重心,同时需要准确获知物品130的上表面的相应深度信息以确定拾取机构121的下降高度。

当前的物品定位技术主要包括模板匹配技术、点云分割技术、以及通过深度学习直接预测物品的包围框的技术等,但这些物品定位技术由于以下原因而不适用于上述应用场景。

(1)模板匹配技术通过预先存储可能出现的物品的模板,在进行定位时,从预先存储的模板中找到与物品匹配的目标模板,并利用该目标模板的信息对物品进行定位。在物品的种类、尺寸未知的情况下,无法预先存储物品的模板。从而,模板匹配技术不适用于上述应用场景。

(2)点云分割技术根据空间、几何和纹理等特征对点云进行划分,并将同一划分内的拥有相似特征的点云定位为一个物品,该技术需要使用具有足够高的分辨率的3D相机,并且运算量大。对于多个物品紧密排列而成的堆垛中的一个物品,尤其是在堆垛中的多个物品的高度也接近的情况下,难以通过点云直接进行分割。从而,点云分割技术也不适用于上述应用场景。

(3)通过深度学习直接预测物品的包围框的技术需要采集仓储中所有物品的数据进行模型训练,工作量巨大,且仓储中的物品更新频繁,需经常更新模型以适应物品更新,不利于实际应用。从而,通过深度学习直接预测物品的包围框的技术也不适用于上述应用场景。

针对混合物品拆垛应用场景下的目标定位的技术痛点,本公开提出了一种有效的物品定位方法,规避了传统的模板匹配技术需要依赖模板、点云分割技术难以分割同层目标的弊端;同时,也弥补了通过深度学习直接预测物品的包围框的技术在实际应用中需频繁更新模型的不足。本公开的技术方案不依赖于物品的尺寸和模板,即能够实现物品较为精确的定位。

图2示意性示出了根据本公开实施例的物品定位方法的流程图。

如图2所示,该方法包括操作S210~S260。

在操作S210,获取与物品表面相关的二维图像和与物品表面相关的三维位置信息。

结合图1的场景示例对该操作S210进行详细说明。如图1所示,该物品表面例如可以是物品130的上表面,获取与物品表面相关的二维图像和与物品表面相关的三维位置信息这一行为例如可以通过拍摄装置110来实现。拍摄装置110例如可以具备一个2D相机和一个3D相机。并且,利用外参标定技术对上述2D相机和3D相机进行配置,以使得在空间笛卡尔直角坐标系中,针对同一个点的由2D相机拍摄到的平面位置信息与由3D相机拍摄到的平面位置信息一致。即,由于对上述2D相机和3D相机进行了基于同一坐标系的外参标定,因此每一个由2D相机拍摄到的点都具有一个确定的三维位置信息,可以确定其平面位置和深度位置。从而,所述二维图像例如可以通过利用2D相机拍摄获得,所述三维位置信息例如可以通过利用3D相机拍摄获得。上述2D相机和3D相机使用通用的相机即可。

与物品130表面相关的二维图像可以是利用2D相机拍摄到的包含物品表面在内的二维图像,该二维图像可以是RGB图像,也可以是灰度图。在二维图像是RGB图像的情况下,为了方便后述的处理,需要转换为灰度图。

例如,与物品130表面相关的二维图像可以是利用具有400万像素的2D相机拍摄到的包含物品130表面在内的1.5m*2m的区域内的二维图像。也就是说,该与物品130表面相关的二维图像不仅包括物品130表面的二维图像,还包括拍摄区域内的其他物品的表面甚至于地面的二维图像,数据量较大,并且存在干扰数据。因此,可能无法根据该与物品表面相关的二维图像而精确定位出物品130的表面。

与物品130表面相关的三维位置信息可以包括物品130的空间坐标信息,例如可以根据该三维位置信息来确定物品130表面的具体空间位置。该三维位置信息可以是利用3D相机拍摄到的,但也可以通过其他方式获得。

传统的2D相机虽然能够获取物品的平面图像,但却无法直接获取物品的空间信息。另外,传统的3D相机虽然能够获取物品的三维位置信息,但却无法直接生成便于识别的平面图像。从而,单独使用传统的2D相机或3D相机均难以实现物品较为精确的定位。

在操作S220,从二维图像中提取边缘图像。

从二维图像中提取边缘图像可以使用深度学习的方法,例如可以使用RCF网络、DeepEdge网络、DeepContour网络等通用特征提取网络。上述这些通用特征提取网络均无需因仓储的物品频繁更新而更新网络模型,增加了实际应用的便利。需要说明的是,像这样从二维图像中提取的边缘图像不仅包括实际的物品表面的边缘的图像,还包括物品表面上存在的一些图案的边缘等的图像,数据量依然比较大,并且存在干扰数据。因此,可能无法根据该边缘图像而精确定位出物品130的表面。

在操作S230,从边缘图像中提取角点数据。从边缘图像中提取角点数据例如可以利用Harris角点检测技术。

根据本公开的实施例,物品130具有多边形表面。从边缘图像中提取角点数据是为了确定物品的多边形表面的各个角的平面位置。

通过该操作S230,大概能够确定出数以万计的角点。

在操作S240,处理并分析所提取的角点数据,得到表征物品表面的边缘的目标多边形。

根据本公开的实施例,物品130可以为多个物品紧密排列而成的堆垛中的一个物品,该堆垛的至少一个方向上的多个物品的表面为具有相同边数的多边形表面。这样,堆垛的至少一个方向上的多个物品的多边形表面尽管尺寸不相同,但由于具有相同边数,因此能够通过将相同个数的角点连接来确定。在操作S240得到的表征物品表面的边缘的目标多边形能够高精度地反映物品的多边形表面的平面位置。

在操作S250,从与物品表面相关的三维位置信息中确定出目标多边形的三维位置信息。

如前所述,由于对上述2D相机和3D相机进行了基于同一坐标系的外参标定,而表征物品表面的边缘的目标多边形又是基于2D相机拍摄到的二维图像而得到的,因此目标多边形的每一个点都具有一个确定的三维位置信息。从而确定出目标多边形后,即能够从与物品表面相关的三维位置信息中确定出该目标多边形的三维位置信息。

在操作S260,利用目标多边形的三维位置信息确定出物品表面的位置。实际上,可以将该目标多边形的三维位置信息视为物品表面的位置,直接用于接下来的处理。

通过上述操作S210~S260的一系列处理,根据获取到的与物品表面相关的二维图像和与上述物品表面相关的三维位置信息,无需使用特别的设备,就能够实现物品的较为精确的定位,至少一定程度上解决了现有的视觉辅助系统需要利用尺寸和模板进行辅助定位的问题,达到了能够简单地实现物品的较为精确的定位的效果。从而,不依赖于物品的尺寸和模板,即能够实现物品的精确定位。

图3示意性示出了根据本公开实施例的物品定位方法的流程图。

根据本公开的实施例,在确定出物品表面的位置后,还可以包括如下操作S270~S280。

在操作S270,根据物品表面的位置的信息计算出用于拣选物品的目标拣选位姿。确定出物品表面的位置后,可以据此获知物品表面的大小、高度、重心等。由此,例如可以计算出机器人120的拾取机构121的平移位置、下降高度等。

在操作S280,将目标拣选位姿发送给机器人,以使得机器人根据目标拣选位姿对物品进行拣选。

通过上述操作,能够利用本公开实施例的物品定位方法辅助机器人实现物品拣选。

图4示意性示出了根据本公开实施例的物品定位方法的流程图。

根据本公开的实施例,物品130可以为长方体物品,此时物品130具有矩形的表面。在该情况下,如图4所示,操作S240可以进一步包括如下操作S410~S430。

在操作S410,对角点数据进行聚类,以减少角点个数。物品角落附近会聚集许多近邻角点,若每一个角点都参与计算,则运算量过大且无实质性好处。因此,可通过角点聚类来减少角点数目,提高后述处理的运算速度。角点聚类例如使用DBSCAN聚类算法。例如,通过该操作S410能够从数以万计的角点中选择出一百左右个角点。

在操作S420,提取由角点连接而成的多个四边形。具体而言,每次选择四个角点,并且使四个角点两两相连而组成一个四边形。为了减少运算干扰,可以仅提取由角点连接而成的凸四边形。

根据本公开的实施例,在提取由角点连接而成的多个四边形时,可以使得提取的四边形的四个角的角度均处于80°至100°的范围内。这是由于,在物品130具有矩形的表面的情况下,使得提取的四边形的四个角的角度均处于接近直角的范围内,能够仅提取接近矩形的四边形,减少运算干扰。另外,四个角的角度均处于80°至100°的范围内是四个角的角度均处于90°±10%的范围内的例子,根据实际情况,当然也可以将该范围设为90°±5%的范围等。

在操作S430,从多个四边形中筛选得到目标矩形。该目标矩形即为表征物品表面的边缘的目标多边形,能够高精度地反映物品的矩形表面的平面位置。

通过上述操作S410~S430的一系列处理,能够有效地减少数据量,迅速得到用于物品定位的目标矩形,而不需要预先获知物品的尺寸或存储与物品相应的模板。

图5示意性示出了根据本公开实施例的物品定位方法的流程图。

根据本公开的实施例,如图5所示,操作S430可以进一步包括如下操作S510~S540。

在操作S510,从多个四边形中筛选出尺寸大小处于目标尺寸范围内的四边形。

通常,堆垛中的物品的尺寸大小虽不确定,但不会过大或过小。因此,设置一个目标尺寸范围,只筛选出尺寸大小处于目标尺寸范围内的四边形。例如,可以将目标尺寸范围设置为20cm*30cm~80cm*100cm。如果发现了四边边长为别为50cm、60cm、50cm、60cm的四边形,则将该四边形筛选出来并进行下一步处理;如果发现了四边边长为别为5cm、6cm、5cm、6cm的四边形,则直接舍弃以减少数据干扰。目标尺寸范围可以根据实际的使用场景而适当设置。例如,也可以根据机器人能够拣选的最小物品的尺寸来设置目标尺寸范围。

在操作S520,根据尺寸大小处于目标尺寸范围内的四边形之间的重合度筛选出一个或多个候选四边形。

在实际处理过程中,会出现多个高度重合的四边形,这些高度重合的四边形往往只对应于一个真实的物品表面。按照该构想,可以从多个高度重合的四边形中选择出一个代表性的四边形用于后述的处理。例如,如果两个四边形彼此的重合度为80%以上,则保留这两个四边形中的一个。可以根据需要设置如何判断保留哪一个四边形的标准。例如,可以保留更接近矩形的一个四边形。

在操作S530,针对一个或多个候选四边形中的每一个候选四边形,生成与候选四边形的尺寸对应的卷积核,卷积核具有环带状矩形边框区域。该卷积核的长宽例如可以与候选四边形的长宽一致。即该卷积核的环带状矩形边框区域的外缘例如可以与候选四边形的长宽一致,而其内缘可以距外缘几个像素的宽度。

在操作S540,利用每个候选四边形的对应的卷积核的环带状矩形边框区域对相应的候选四边形进行匹配,以得到目标矩形。例如,可以用卷积核上的数值与相应的候选四边形的落在上述环带状矩形边框区域内的部分的灰度值相乘。

图6示意性示出了根据本公开实施例的对卷积核的环带状矩形边框区域赋值的方式的示意图。

根据本公开的实施例,操作S540可以具体包括如下过程。

如图6所示,对环带状矩形边框区域赋值1且对环带状矩形边框区域以外的区域赋值0。

利用卷积核对相应的候选四边形进行卷积而得到卷积值。

具体而言,可以利用环带状矩形边框区域内的数值1与相应的候选四边形的落在上述环带状矩形边框区域内的部分的灰度值相乘,并将所得乘积求和。

在前述操作中得到的边缘图像与非边缘图像的值有很大差异。例如,灰度值是图像数据的一种,在二维图像的边缘显示为黑色的情况下,边缘图像的灰度值较低,而非边缘图像的灰度值较高。

如果候选四边形是真的目标矩形,则该候选四边形应该对应于二维图像的边缘区域,由于边缘图像的灰度值较低,因而上述卷积值较低。

如果候选四边形不是真的目标矩形,则该候选四边形的至少一部分不对应于二维图像的边缘区域,由于非边缘图像的灰度值较高,因而上述卷积值较高。候选四边形与环带状矩形边框区域的匹配度可以用该卷积值来表征。

从而,可以设置一个针对卷积值的规定值,利用卷积值判断候选四边形与环带状矩形边框区域的匹配度是否大于规定值。

若匹配度大于规定值,则将候选四边形确定为目标矩形。

根据本公开的实施例,若存在多个与相应的环带状矩形边框区域的匹配度大于规定值的候选四边形,则将匹配度最高的候选四边形确定为目标矩形。

图7至图16示意性示出了根据本公开实施例的物品定位方法的一个具体实施例。

图7示意性示出了物品130和载置该物品130的托盘140的俯视图。图7中的物品130和托盘140与图1中的物品130和托盘140相对应。

为了便于图示,仅针对托盘140上的一个物品130进行说明。对于托盘140上的其他物品,采用相同方式处理即可。

在该实施例中,设置有由一个2D相机和一个3D相机组成的拍摄装置,但此处省略拍摄装置的图示。

如前所述,图7所示的范围即为2D相机的拍摄区域,大小为1.5m*2m。

针对该拍摄区域,通过具有400万像素的2D相机获得平面的二维图像,通过3D相机获得与该二维图像对应的三维位置信息。

该二维图像中不仅包括物品130表面的二维图像,还包括拍摄区域内的其他物品、托盘以及地面等。

接下来,从二维图像中提取边缘图像。

图8示意性示出了所提取的边缘图像。在图8中,边缘图像显示为黑色,非边缘图像显示为白色。

该边缘图像不仅包括实际的物品表面的边缘的图像,还包括物品表面上存在的一些图案的边缘等的图像。

接下来,利用Harris角点检测技术从边缘图像中提取角点数据。

图9示意性示出了所提取的一部分角点。

需要说明的是,此时提取的角点大概有几千到一万个,图9中用圆点表示主要的角点聚集位置。

然后,使用DBSCAN聚类算法对角点数据进行聚类。

图10示意性示出了聚类后的一部分角点。

聚类后角点大约有一百个左右。

接下来,提取由角点连接而成的多个四边形。

图11示意性示出了由角点连接而成的一部分四边形。

由于本实施例中的物品130的上表面为矩形,因此可以仅提取接近矩形的四边形,减少运算干扰。例如,在图11中,可以仅提取由黑色实线示出的三个四边形。

接下来,从多个四边形中筛选出尺寸大小处于目标尺寸范围内的四边形。

图11中的右上方的四边形由于尺寸过小而被舍弃。

并且,根据尺寸大小处于目标尺寸范围内的四边形之间的重合度筛选出一个或多个候选四边形。

在实际处理过程中,会出现多个高度重合的四边形,这些高度重合的四边形往往只对应于一个真实的物品表面。如果两个四边形彼此的重合度为80%以上,则保留这两个四边形中的一个。可以根据需要设置如何判断保留哪一个四边形的标准。例如,可以保留更接近矩形的一个四边形。该根据重合度的筛选没有在图11中示出。

图12示意性示出了筛选出的候选四边形。

对于左方的候选四边形,使用该候选四边形的四个顶点坐标(u0,v0),(u1,v1),(u2,v2),(u3,v3)获取该候选四边形的最小外接矩形,由此得到最小外接矩形的长L和宽W。该操作通过OpenCV的minAreaRect函数来实现。并且,通过minAreaRect函数不仅能够获得最小外接矩形的长L和宽W,还能获得该最小外接矩形的倾角,通过该倾角能够判断最小外接矩形是否为倾斜矩形。

根据由候选四边形得到的最小外接矩形的长L和宽W,设计具有环带状矩形边框区域的卷积核。该卷积核的长宽与最小外接矩形的长宽一致,且环带状矩形边框区域的宽度可以为10像素。环带上的值为1,内部的值为0。并且,对环带状矩形边框区域赋值1且对环带状矩形边框区域以外的区域赋值0。图13示出了与图12中左方的候选四边形对应的卷积核。

获取到最小外接矩形后,可以据此在二维图像中截取与候选四边形相应的边缘图像数据。

若最小外接矩形为倾斜矩形,则可通过OpenCV的warpAffine函数转动图像,把矩形转正后,在二维图像中截取上述的边缘图像数据。

图14以阴影部分示出了根据图12中左方的候选四边形截取到的边缘图像数据。

将截取到的边缘图像数据记为I,上一步设计的卷积核记为K,则卷积计算如下:

卷积核的环带状矩形边框区域的值为1,内部的值为0。因此,通过上述计算,对环带状矩形边框区域的10像素宽度的边缘图像的灰度值数据进行求和。

如前所述,边缘图像显示为黑色,灰度值较低;非边缘图像显示为白色,灰度值较高。

对于图12中左方的候选四边形而言,环带状矩形边框区域内的黑色部分较多,因此求和值较低,将该候选四边形判断为目标矩形。

利用与上述相同的方法对图12中的中央的候选四边形进行判断。图15示出了与图12中的中央的候选四边形对应的卷积核。

图16以阴影部分示出了根据图12中的中央的候选四边形截取到的边缘图像数据。

对于图12中的中央的候选四边形而言,环带状矩形边框区域内的白色部分较多,因此求和值较高,从而不将该候选四边形判断为目标矩形。

以上基于图7至图16对本公开的一个具体实施例进行了说明,但本公开当然不受上述具体实施例的限制。

本公开的另一方面提供了一种物品定位装置。

图17示意性示出了根据本公开实施例的物品定位装置的框图。

如图17所示,本公开实施例的物品定位装置1700可以包括获取模块1710、边缘图像提取模块1720、角点数据提取模块1730、处理分析模块1740、目标多边形位置确定模块1750以及物品表面位置确定模块1760。

获取模块1710用于获取与物品表面相关的二维图像和与物品表面相关的三维位置信息。

边缘图像提取模块1720用于从二维图像中提取边缘图像。

角点数据提取模块1730用于从边缘图像中提取角点数据。

处理分析模块1740用于处理并分析所提取的角点数据,得到表征物品表面的边缘的目标多边形。

目标多边形位置确定模块1750用于从与物品表面相关的三维位置信息中确定出目标多边形的三维位置信息。

物品表面位置确定模块1760用于利用目标多边形的三维位置信息确定出物品表面的位置。

根据本公开的实施例,物品为多个物品紧密排列而成的堆垛中的一个物品,该堆垛的至少一个方向上的多个物品的表面为具有相同边数的多边形表面。

根据本公开的实施例,物品为长方体物品。在该情况下,处理分析模块1740可以包括角点聚类子模块、四边形提取子模块以及目标矩形筛选子模块。

角点聚类子模块用于对角点数据进行聚类,以减少角点个数。

四边形提取子模块用于提取由角点连接而成的多个四边形。

目标矩形筛选子模块用于从多个四边形中筛选得到目标矩形。

根据本公开的实施例,目标矩形筛选子模块可以包括四边形初选单元、候选四边形筛选单元、卷积核生成单元以及卷积核匹配单元。

四边形初选单元用于从多个四边形中筛选出尺寸大小处于目标尺寸范围内的四边形。

候选四边形筛选单元用于根据尺寸大小处于目标尺寸范围内的四边形之间的重合度筛选出一个或多个候选四边形。

卷积核生成单元用于针对一个或多个候选四边形中的每一个候选四边形,生成与候选四边形的尺寸对应的卷积核,卷积核具有环带状矩形边框区域。

卷积核匹配单元用于利用每个候选四边形的对应的卷积核的环带状矩形边框区域对相应的候选四边形进行匹配,以得到目标矩形。

根据本公开的实施例,卷积核匹配单元可以包括赋值子单元、卷积子单元、判断子单元以及确定子单元。

赋值子单元用于对环带状矩形边框区域赋值1且对环带状矩形边框区域以外的区域赋值0。

卷积子单元用于利用卷积核对相应的候选四边形进行卷积而得到卷积值。

判断子单元用于利用卷积值判断候选四边形与环带状矩形边框区域的匹配度是否大于规定值。

确定子单元用于若匹配度大于规定值,则将候选四边形确定为目标矩形。

根据本公开的实施例,若存在多个与相应的环带状矩形边框区域的匹配度大于规定值的候选四边形,则确定子单元将匹配度最高的候选四边形确定为目标矩形。

根据本公开的实施例,四边形提取子模块提取的四边形的四个角的角度均处于80°至100°的范围内。

根据本公开的实施例,物品定位装置还可以包括目标拣选位姿计算模块以及发送模块。

目标拣选位姿计算模块用于根据物品表面的位置的信息计算出用于拣选物品的目标拣选位姿。

发送模块用于将目标拣选位姿发送给机器人,以使得机器人根据目标拣选位姿对物品进行拣选。

根据本公开的实施例,物品定位装置不依赖于物品的尺寸和模板,即能够实现物品的精确定位。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块1710、边缘图像提取模块1720、角点数据提取模块1730、处理分析模块1740、目标多边形位置确定模块1750以及物品表面位置确定模块1760中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,获取模块1710、边缘图像提取模块1720、角点数据提取模块1730、处理分析模块1740、目标多边形位置确定模块1750以及物品表面位置确定模块1760中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块1710、边缘图像提取模块1720、角点数据提取模块1730、处理分析模块1740、目标多边形位置确定模块1750以及物品表面位置确定模块1760中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

需要说明的是,本公开实施例的物品定位装置与本公开实施例的物品定位方法部分是相对应的,物品定位装置部分的描述具体参考物品定位方法部分,在此不再赘述。

本公开实施例的机器人包括一个或多个处理器和用于存储一个或多个指令的存储器,当一个或多个指令被一个或多个处理器执行时,使得一个或多个处理器实现上文描述的方法。

图18示意性示出了根据本公开实施例的机器人的框图。图18示出的机器人仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图18所示,根据本公开实施例的机器人1800包括处理器1801,其可以根据存储在只读存储器(ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(RAM)1803中的程序而执行各种适当的动作和处理。处理器1801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1801还可以包括用于缓存用途的板载存储器。处理器1801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 1803中,存储有机器人1800操作所需的各种程序和数据。处理器1801、ROM1802以及RAM 1803通过总线1804彼此相连。处理器1801通过执行ROM 1802和/或RAM1803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM1802和RAM 1803以外的一个或多个存储器中。处理器1801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,机器人1800还可以包括输入/输出(I/O)接口1805,输入/输出(I/O)接口1805也连接至总线1804。机器人1800还可以包括连接至I/O接口1805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被处理器1801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开实施例的计算机可读存储介质存储有可执行指令,该指令被处理器执行时使处理器实现上文描述的方法。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1802和/或RAM 1803和/或ROM 1802和RAM 1803以外的一个或多个存储器。

附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置、机器人和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • 物品定位方法和装置、机器人及计算机可读存储介质
  • 机器人定位方法、装置、计算机可读存储介质及机器人
技术分类

06120113147983