发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种物品中心定位方法、装置以及物流***和存储介质。
根据本公开的一个方面,提供一种物品中心定位方法,包括:分别获得二维摄像装置和三维摄像装置采集的与目标物品相对应的二维图像和三维点云图像;基于所述二维摄像装置和所述三维摄像装置之间的标定矩阵和所述三维点云图像获得与所述二维图像相对应的点云图;根据所述点云图生成所述目标物品的拟合表面;根据所述目标物品在所述二维图像中的二维中心位置信息、所述标定矩阵和所述目标物品的拟合表面获得所述目标物品的三维中心位置信息以及姿态信息。
可选地,所述基于所述二维摄像装置和所述三维摄像装置之间的标定矩阵和所述三维点云图像获得与所述二维图像相对应的点云图包括:获取与所述目标物品相对应的二维模板图像;将所述二维模板图像与所述二维图像进行匹配,在所述二维图像中获得所述目标物品的图像区域;基于所述标定矩阵对所述三维点云图像进行处理,用以获得与所述图像区域相对应的图像区域点云图。
可选地,所述基于所述标定矩阵对所述三维点云图像进行处理包括:基于所述标定矩阵对所述三维点云图像中的每个点云数据进行坐标转换处理,获得每个点云数据在所述二维图像中对应的二维坐标数据;建立所述点云数据与所述二维坐标数据的对应关系;基于所述对应关系获得所述图像区域中每个像素的二维坐标数据对应的图像区域点云数据;基于所述图像区域点云数据生成所述图像区域点云图。
可选地,所述对于所述点云图进行拟合处理、生成目标物品的拟合表面包括:基于预设的平面拟合算法对所述图像区域点云图中的点云数据进行空间平面拟合处理,获得与所述图像区域点云图相对应的目标物品的拟合表面。
可选地,在所述图像区域中获得所述目标物品的中心点二维坐标。
可选地,所述根据所述二维中心位置信息、所述标定矩阵和所述目标物品的拟合表面获得所述目标物品的三维中心位置信息以及姿态信息包括:根据所述标定矩阵、所述中心点二维坐标和所述目标物品的拟合表面计算出与所述中心点二维坐标对应的中心点三维坐标;根据所述目标物品的拟合表面获得与所述中心点三维坐标相对应的目标物品姿态角信息。
可选地,所述中心点三维坐标为
其中,M33表示M矩阵前3列组成的矩阵;-M;4表示M矩阵第4列组成的列矢量;所述中心点二维坐标为(U,V),所述标定矩阵为P34,所述目标物品的拟合表面为A*x+B*y+C*z+D=0;
所述M矩阵为
根据本公开的另一方面,提供一种物品中心定位装置,包括:图像获取模块,用于分别获得二维摄像装置和三维摄像装置采集的与目标物品相对应的二维图像和三维点云图像;点云图生成模块,用于基于所述二维摄像装置和所述三维摄像装置之间的标定矩阵和所述三维点云图像获得与所述二维图像相对应的点云图;拟合表面生成模块,用于根据所述点云图生成所述目标物品的拟合表面;位置和姿态获得模块,用于根据所述目标物品在所述二维图像中的二维中心位置信息、所述标定矩阵和所述目标物品的拟合表面获得所述目标物品的三维中心位置信息以及姿态信息。
可选地,所述点云图生成模块,包括:模板获取单元,用于获取与所述目标物品相对应的二维模板图像;区域确定单元,用于将所述二维模板图像与所述二维图像进行匹配,在所述二维图像中获得所述目标物品的图像区域;点云处理单元,用于基于所述标定矩阵对所述三维点云图像进行处理,用以获得与所述图像区域相对应的图像区域点云图。
可选地,所述点云处理单元,具体用于基于所述标定矩阵对所述三维点云图像中的每个点云数据进行坐标转换处理,获得每个点云数据在所述二维图像中对应的二维坐标数据;建立所述点云数据与所述二维坐标数据的对应关系;基于所述对应关系获得所述图像区域中每个像素的二维坐标数据对应的图像区域点云数据;基于所述图像区域点云数据生成所述图像区域点云图。
可选地,所述拟合表面生成模块,用于基于预设的平面拟合算法对所述图像区域点云图中的点云数据进行空间平面拟合处理,获得与所述图像区域点云图相对应的目标物品的拟合表面。
可选地,所述位置和姿态获得模块,包括:二维位置获得单元,用于在所述图像区域中获得所述目标物品的中心点二维坐标。
可选地,所述位置和姿态获得模块,还包括:三维位置计算单元,用于根据所述标定矩阵、所述中心点二维坐标和所述目标物品的拟合表面计算出与所述中心点二维坐标对应的中心点三维坐标;姿态信息获得单元,用于根据所述目标物品的拟合表面获得与所述中心点三维坐标相对应的目标物品姿态角信息。
根据本公开的又一方面,提供一种物品中心定位装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。
根据本公开的又一方面,提供一种物流***,包括:机器人、如上所述的物品中心定位装置;所述物品中心定位装置将目标物品的三维中心位置信息以及姿态信息发送给所述机器人。
根据本公开的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上所述的方法。
本公开的物品中心定位方法、装置以及物流***和存储介质,根据标定矩阵和三维点云图像获得与二维图像相对应的点云图,根据点云图生成目标物品的拟合表面,根据二维图像中的二维中心位置信息、标定矩阵和拟合表面获得三维中心位置信息以及姿态信息;解决了因点云空洞而造成的中心位置定位不准的问题,利用二维图像中确定目标的准确性较高的优点,能够精确地识别物品的中心位置和姿态,可以提高拣选物品的成功率,并能够提高工作效率和安全性。
具体实施方式
下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。
目前,物品通常采用方形包装盒,周转箱内一般密集排放着多个相同种类的物品的包装盒,识别物品(物品的包装盒)的中心位置和姿态的方法为:建立物品的3D模型,通过在场景点云上匹配物品的3D模型,进而计算出拣选目标物品的中心位置和姿态。
上述识别物品的中心位置和姿态的方法存在不足:通过点云模型匹配的方法会明显受点云质量的干扰;例如,目前3D相机普遍分辨率不高,测量精度偏低,较难分辨物体间的缝隙,并且,许多物品的包装材质易反光,在反光的位置容易造成点云上存在空洞(无效数据),影响目标匹配精度。
本发明提出一种物品中心定位方法,以提高机器人端拾器的拣选成功率。
图1为根据本公开的物品中心定位方法的一个实施例的流程示意图,如图1所示,物品中心定位方法包括步骤101-104。
步骤101,分别获得二维摄像装置和三维摄像装置采集的与目标物品相对应的二维图像和三维点云图像。
二维摄像装置可以为2D相机等,三维摄像装置可以为3D相机等。目标物品可以为多种商品的包装箱等,二维图像和三维点云图像可以为包含有目标物品的场景图像。
步骤102,基于二维摄像装置和三维摄像装置之间的标定矩阵和三维点云图像获得与二维图像相对应的点云图。
二维摄像装置和三维摄像装置之间的标定矩阵可以有多种。例如,二维摄像装置和三维摄像装置之间的标定矩阵可以为矩阵P34,矩阵P34蕴含三维摄像装置坐标系与二维摄像装置坐标系之间的旋转和平移关系,以及二维摄像装置的内部参数。利用标定矩阵P34乘上三维摄像装置得到的点云坐标即可得到该点对应到二维摄像装置采集的二维图像上的坐标。
步骤103,根据点云图生成目标物品的拟合表面。可以采用现有的多种方法进行目标物品的表面拟合,生成的目标物品的拟合表面可以为平面、曲面等。
步骤104,根据目标物品在二维图像中的二维中心位置信息、标定矩阵和目标物品的拟合表面获得目标物品的三维中心位置信息以及姿态信息。
图2为根据本公开的物品中心定位方法的一个实施例的拣选作业场景示意图,如图2所示:物流***下发拣选任务后,把周转箱调至物流***的拣选工位,机器人根据视觉***识别的目标位置和姿态抓取商品。视觉***包含一个2D相机与一个3D相机。2D相机的分辨率高,有利于同种类物品密排情形的分割;3D相机拍摄的点云用于目标拣选位置及姿态的计算。
在一个实施例中,基于标定矩阵和三维点云图像获得与二维图像相对应的点云图可以有多种方法。例如,获取与目标物品相对应的二维模板图像,二维模板图像可以为包含有目标物品的矩形图像等。将二维模板图像与二维图像进行匹配,在二维图像中获得目标物品的图像区域,图像区域可以为与二维模板图像相对应的包含有目标物品的矩形框区域等。基于标定矩阵对三维点云图像进行处理,用以获得与图像区域相对应的图像区域点云图。
模板匹配是一种模式识别方法,确定某一特定对象物的图案位于图像的什么地方,进而识别对象物。二维模板图像是一副与目标物品相对应的二维图像,模板匹配是指在二维摄像装置采集的二维图像中基于二维模板图像搜寻目标物品。在二维摄像装置采集的二维图像中匹配获得的目标物品的图像区域同二维图像模板具有相同的尺寸、方向和图像元素。可以采用现有的多种算法进行图像匹配处理,
基于标定矩阵对三维点云图像中的每个点云数据进行坐标转换处理,获得每个点云数据在二维图像中对应的二维坐标数据,建立点云数据与二维坐标数据的对应关系。获得图像区域中的像素,基于对应关系获得图像区域中每个像素的二维坐标数据对应的图像区域点云数据,基于图像区域点云数据生成图像区域点云图。
基于预设的平面拟合算法对图像区域点云图中的三维点云数据进行空间平面拟合处理,获得与图像区域点云图相对应的目标物品的拟合表面,拟合表面可以为平面、曲面等。平面拟合算法可以为现有的多种平面拟合算法,例如为随机采样一致算法等。
在一个实施例中,在图像区域中获得目标物品的中心点二维坐标,根据标定矩阵、中心点二维坐标和目标物品的拟合表面计算出与中心点二维坐标对应的中心点三维坐标,根据目标物品的拟合表面获得与中心点三维坐标相对应的目标物品姿态角信息。如果拟合表面为平面,则拟合表面的姿态角信息为目标物品姿态角信息;如果拟合表面为曲面,在拟合表面上确定中心点三维坐标对应的位置,获得此位置的姿态角信息为目标物品姿态角信息。目标物品姿态角信息可以为欧拉角,欧拉角可以由章动角θ、进动角ψ和自转角组成。
图3为根据本公开的物品中心定位方法的另一个实施例的流程示意图,如图3所示:
步骤301,启动2D相机与3D相机拍照,获得场景2D图像和场景3D点云。场景2D图像和场景3D点云中都包含有目标物品,目标物品可以为商品的包装箱等。
步骤302,使用目标物品的2D模板与场景2D图像进行匹配处理,在场景2D图像中获得包含有目标物品的矩形框。
例如,根据目标物品的2D模板,在场景2D图像上匹配出机器人待拣选的目标物品。例如,可以在场景2D图像中得到包含有目标物品的矩形框,矩形框由4个点的坐标表征,[(u0,v0),(u1,v1),(u2,v2),(u3,v3)]。
步骤303,根据场景2D图像上的矩形框、场景3D点云获取目标物品的有效点云。
例如,根据2D相机采集的场景2D图像、3D相机采集的场景3D点云以及3D相机与2D相机之间的标定矩阵P34(3行4列矩阵),获取目标物品的有效点云。
设3D相机所拍摄的场景3D点云中的一点V=[x,y,z]T对应于2D相机采集的场景2D图像中的坐标为w=[u,v]T,则w的具体计算如下:
根据公式(1-1)和(1-2)可以计算出3D相机所拍摄的场景3D点云中的每一个有效点云在场景2D图像中的二维坐标,可以建立一幅与包含有目标物品的矩形框尺寸一致的点云图(没有相对应的有效点云的位置填成无效数据)。
步骤304,根据有效点云生成拟合平面A*x+B*y+C*z+D=0,并计算出目标物品的姿态欧拉角(α,β,γ)。
例如,在步骤302中,可识别出在场景2D图像中获得包含有目标物品的矩形框,在步骤303中,建立一幅与在场景2D图像中的包含有目标物品的矩形框尺寸一致的点云图,因此可获得目标物品的有效点云。
使用有效点云,利用随机采样一致算法(RANSAC算法)即可拟合出目标物品(物品的包装箱表面)的拟合平面方程A*x+B*y+C*z+D=0,进而能够计算出拣选该目标物品的姿态,由欧拉角(α,β,γ)表征。
步骤305,根据目标物品在场景2D图像中的矩形框中心(U,V)以及通过目标物品的有效点云拟合出的平面,计算出目标物品的抓取中心位置(x,y,z)。
例如,在场景2D图像中获得包含有目标物品的矩形框[(u0,v0),(u1,v1),(u2,v2),(u3,v3)],计算出目标物品在场景2D图像中的中心点(U,V)。可以采用多种方法在场景2D图像中获得目标物品的中心点。例如,目标物品的中心点为包含有目标物品的矩形框的几何中心等。依据3D相机与2D相机的标定矩阵P34与拟合平面方程A*x+B*y+C*z+D=0,可算出目标物品的中心位置。具体计算过程如下:
参考(1-1)、(1-2)式可把(1-2)式改写如下:
拟合平面方程A*x+B*y+C*z+D=0可写成下列形式:
场景2D图像和场景3D点云满足如下方程:
方程(1-5)的解可写成参考(1-3)式,把(1-3)式带入(1-5)式得到:
合并(1-4)与(1-6)式得到:
把目标物品的中心点(U,V)带入(1-7)式,并记矩阵:
则由(1-7)式可解出目标物品的中心位置如下计算:
公式(1-9)式中的M33表示M矩阵前3列组成的矩阵;-M;4表示M矩阵第4列组成的列矢量。由公式(1-9)得到目标物品的中心位置[x,y,z],由拟合平面方程A*x+B*y+C*z+D=0可以计算出目标物品的姿态(α,β,γ)。
步骤305,将获得的目标物品的中心位置及姿态(x,y,z,α,β,γ)发送给机器人,由机器人执行拣选操作。
在从二维图像中的坐标(u,v)推断其对应的3D点(x,y,z)时,会产生多解,所有的解组成一条射线,从而无法由二维图像上确定的目标物品的中心直接确定其拣选位置。通过利用目标物品的有效点云拟合出目标物品的拟合表面方程,可以确定唯一的空间位置;根据目标物品在二维图像中的二维中心位置信息、标定矩阵和目标物品的拟合表面获得目标物品的三维中心位置信息以及姿态信息,解决了因点云空洞(无效数据)造成的中心位置定位不准的问题。
在一个实施例中,如图4所示,本公开提供一种物品中心定位装置40,包括:图像获取模块41、点云图生成模块42、拟合表面生成模块43和位置和姿态获得模块44。
图像获取模块41分别获得二维摄像装置和三维摄像装置采集的与目标物品相对应的二维图像和三维点云图像。点云图生成模块42基于二维摄像装置和三维摄像装置之间的标定矩阵和三维点云图像获得与二维图像相对应的点云图。拟合表面生成模块43根据点云图生成目标物品的拟合表面。位置和姿态获得模块44根据目标物品在二维图像中的二维中心位置信息、标定矩阵和目标物品的拟合表面获得目标物品的三维中心位置信息以及姿态信息。
在一个实施例中,如图5所示,点云图生成模块42包括:模板获取单元421、区域确定单元422和点云处理单元423。模板获取单元421获取与目标物品相对应的二维模板图像。区域确定单元422将二维模板图像与二维图像进行匹配,在二维图像中获得目标物品的图像区域。点云处理单元423基于标定矩阵对三维点云图像进行处理,用以获得与图像区域相对应的图像区域点云图。
点云处理单元423基于标定矩阵对三维点云图像中的每个点云数据进行坐标转换处理,获得每个点云数据在二维图像中对应的二维坐标数据,建立点云数据与二维坐标数据的对应关系。点云处理单元423基于对应关系获得图像区域中每个像素的二维坐标数据对应的图像区域点云数据,基于图像区域点云数据生成图像区域点云图。拟合表面生成模块43基于预设的平面拟合算法对图像区域点云图中的点云数据进行空间平面拟合处理,获得与图像区域点云图相对应的目标物品的拟合表面。
在一个实施例中,如图6所示,位置和姿态获得模块44包括:二维位置获得单元441、三维位置计算单元442和姿态信息获得单元423。二维位置获得单元441在图像区域中获得目标物品的中心点二维坐标。三维位置计算单元442根据标定矩阵、中心点二维坐标和目标物品的拟合表面计算出与中心点二维坐标对应的中心点三维坐标。姿态信息获得单元443根据目标物品的拟合表面获得与中心点三维坐标相对应的目标物品姿态角信息。
例如,中心点三维坐标为
其中,M33表示M矩阵前3列组成的矩阵;-M;4表示M矩阵第4列组成的列矢量;中心点二维坐标为(U,V),标定矩阵为P34,目标物品的拟合表面为A*x+B*y+C*z+D=0;
M矩阵为
在一个实施例中,图7为根据本公开的物品中心定位装置的另一个实施例的模块示意图。如图7所示,该装置可包括存储器71、处理器72、通信接口73以及总线74。存储器71用于存储指令,处理器72耦合到存储器71,处理器72被配置为基于存储器71存储的指令执行实现上述的物品中心定位方法。
存储器71可以为高速RAM存储器、非易失性存储器(non-volatile memory)等,存储器71也可以是存储器阵列。存储器71还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器72可以为中央处理器CPU,或专用集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本公开的物品中心定位方法的一个或多个集成电路。
在一个实施例中,本公开提供一种物流***,包括:机器人、如上任一实施例中的物品中心定位装置,物品中心定位装置将目标物品的三维中心位置信息以及姿态信息发送给机器人。
在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的物品中心定位方法。
上述实施例中的物品中心定位方法、装置以及物流***和存储介质,根据标定矩阵和三维点云图像获得与二维图像相对应的点云图,根据点云图生成目标物品的拟合表面,根据二维图像中的二维中心位置信息、标定矩阵和拟合表面获得三维中心位置信息以及姿态信息;解决了因点云空洞而造成的中心位置定位不准的问题,利用二维图像中确定目标的准确性较高的优点,能够精确地识别物品的中心位置和姿态,可以提高拣选物品的成功率,并能够提高工作效率和安全性。
可能以许多方式来实现本公开的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和***。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。