点云孔洞定位_一种基于三维点云的目标识别与定位方法及系统与流程

本发明属于机器视觉技术领域,具体是涉及一种基于三维点云的目标识别与定位方法及系统。

背景技术:

在工业生产过程中,上下料是不可或缺且多次出现的生产工序。当前工业生产过程中根据来料的体积和重量采用不同的上下料方式,比如使用振动盘对体积、重量较小的工件(如:螺钉)进行有序排列并供料给锁螺丝机等设备;对于体积、重量中等且容易损坏的工件由人工手动进行拾取和放置;对于体积、重量较大且生产环境恶劣的工件,使用机器视觉引导工业机器人对工件进行上下料(如给冲压、铸造等设备上下料)。随着全世界范围人工成本的提高,中国人口红利的逐渐消失以及机器人技术、机器视觉技术在过去几十年的蓬勃发展,加上工业机器人和机器视觉在工业领域应用范围的不断拓展,使得机器视觉引导机器人上下料的方式越来越受广大生产厂商的欢迎。康耐视(COGNEX)、基恩士(KEYENCE)、大恒等国内外视觉公司以及库卡(KUKA)、ABB、安川(Yaskawa)、发那科(FANUC)等工业机器人生产厂商相继提出各自的工业机器人视觉引导方案。目前存在的视觉引导方案基本工作流程为:使用工业相机对工件进行拍照,利用机器视觉技术获得目标工件与标准姿态之间存在的偏差,继而规划工业机器人的抓取路径,完成工件的上下料。

尽管机器视觉技术可以适用于对相机视场范围内不同体积和重量的工件上下料工序进行引导,但机器视觉方法的正确率和精度却对待测工件的形貌特征非常敏感,也就是说没有某一种机器视觉算法能够适用于所有工件,当前机器视觉方法必须根据具体工件的局部几何形状特征来选取特定的算法。每当更换生产工件时,需要根据工件自身局部几何形状特征开发对应的识别与定位算法,当下的工业机器人视觉引导方案针对不同工件缺乏通用性,严重限制了生产效率。除此之外,目前实现的机器视觉引导工业机器人上下料方案,工件需要按照一定姿态进入相机视野且只能获得工件相对于标准姿态在XOY平面的位置偏差和绕Z轴的偏转角,不能完全获得工件的三维位置和姿态信息。所以,为了提高工业生产中机器人的工作效率,需要研发基于三维视觉的通用物体识别及精确的三维空间定位方法。

技术实现要素:

为解决上述工业机器人视觉引导方案对工件上下料存在的局限性,本发明提出一种基于三维点云的目标识别与定位方法及系统,检测各种不同工件时无需根据工件自身局部几何形状特征(如:圆、孔洞等特征)再次开发或修改识别与定位算法,只需导入工件模型,本发明中提出的算法会自动提取和描述目标工件的关键特征,并将其用于实际工作场景中目标识别以及三维位置和姿态的计算。

为达到上述目的,本发明的技术方案如下:

一种基于三维点云的目标识别与定位方法,包括如下步骤:

S1:离线特征提取,导入工件模型,计算并创建数据库。

S2:在线特征匹配,获取最终的目标识别与定位结果。

所述步骤S1具体包括如下步骤:

S11:导入工件的模型点云。

S12:计算模型点云中各个点对应的法向量。

S13:在模型点云中随机选取一个模型点对,计算所述模型点对对应的模型点对特征。

S14:重复所述步骤S13,获取模型点云中一定数量的模型点对及其对应的模型点对特征,使用上述获取的模型点对及其对应的模型点对特征创建数据库。

所述步骤S2具体包括如下步骤:

S21:采集工件所在场景的三维点云数据,即获取了工件的场景点云,对所述场景点云进行预处理。

S22:计算预处理后的场景点云中各个空间点对应的法向量。

S23:在场景点云中随机选取一个场景点对,计算所述场景点对对应的场景点对特征。

S24:特征匹配,使用所述场景点对特征在所述步骤S14创建的数据库中查找具有相同特征的模型点对。

S25:使用具有相同特征的模型点对和场景点对产生位姿假设。

S26:对步骤S25中产生的位姿假设进行匹配质量评估。

S27:多次循环步骤S23~S26,获取匹配质量最优的一个位姿假设作为最终的目标识别与定位结果。

作为上述技术方案的优选,所述步骤S13中:

所述模型点对由模型点云中任意两点及各自法向量组成。

作为上述技术方案的优选,所述步骤S21中:

使用3D相机采集工件所在场景的三维点云数据。

作为上述技术方案的优选,所述步骤S21中:

所述预处理包括滤波及去噪处理,用于去除场景点云中噪声点及离群点。

作为上述技术方案的优选,所述步骤S23中:

所述场景点对由场景点云中任意两点及其各自法向量组成。

一种基于三维点云的目标识别与定位系统,包括:

离线特征提取模块,所述离线特征提取模块用于导入工件模型,计算并创建数据库。

在线特征匹配模块,所述在线特征匹配模块用于获取最终的目标识别与定位结果。

所述离线特征模块具体包括:

模型点云加载子模块,所述模型点云加载子模块用于导入工件的模型点云。

模型点云法向量计算子模块,所述模型点云法向量计算子模块用于计算模型点云中各个点对应的法向量。

模型点对特征计算子模块,所述模型点对特征计算子模块用于在模型点云中随机选取一个模型点对,计算所述模型点对对应的模型点对特征。

数据库创建子模块,所述数据库创建子模块用于重复所述模型点对特征计算子模块中的计算方法,获取模型点云中一定数量的模型点对及其对应的模型点对特征,使用上述获取的模型点对及其对应的模型点对特征创建数据库。

所述在线特征匹配模块具体包括:

场景点云获取子模块,所述场景点云获取子模块用于采集工件所在场景的三维点云数据,即获取了工件的场景点云,对所述场景点云进行预处理。

场景点云法向量计算子模块,所述场景点云法向量计算子模块用于计算预处理后的场景点云中各个空间点对应的法向量。

场景点对特征计算子模块,所述场景点对特征计算子模块用于在场景点云中随机选取一个场景点对,计算所述场景点对对应的场景点对特征。

特征匹配子模块,所述特征匹配子模块用于使用所述场景点对特征在所述数据库创建子模块创建的数据库中查找具有相同特征的模型点对。

位姿假设子模块,所述位姿假设子模块用于使用具有相同特征的模型点对和场景点对产生位姿假设。

匹配质量评估子模块,所述匹配质量评估子模块用于对位姿假设子模块中产生的位姿假设进行匹配质量评估。

目标识别与定位结果获取子模块,所述目标识别与定位结果获取子模块用于多次循环场景点对特征计算子模块~匹配质量评估子模块中的操作,获取匹配质量最优的一个位姿假设作为最终的目标识别与定位结果。

作为上述技术方案的优选,所述模型点对特征计算子模块中:

所述模型点对由模型点云中任意两点及各自法向量组成。

作为上述技术方案的优选,所述场景点云获取子模块中:

使用3D相机采集工件所在场景的三维点云数据。

作为上述技术方案的优选,所述场景点云获取子模块中:

所述预处理包括滤波及去噪处理,用于去除场景点云中噪声点及离群点。

作为上述技术方案的优选,所述场景点对特征计算子模块中:

所述场景点对由场景点云中任意两点及其各自法向量组成。

本发明的有益效果在于:本发明把工业生产上下料中目标工件的识别与定位过程分为离线特征提取和在线特征匹配两个模块,大大减少了实时阶段的计算量,提高了运算速度。本发明引入了匹配质量评估以获得精确的工件三维位置和姿态,从而控制工业机器人以相应姿态抓取被识别的工件。传统的机器视觉方法需要根据工件局部几何形状特征(如:圆、孔洞等特征)开发对应的识别与定位算法,本发明能够进行通用的识别与精确的定位,对不同的工件不需进行算法的重新开发,节省了开发时间,大大提高生产效率。此外,传统的机器人上下料方案要求工件按照一定姿态进入相机视野并且只能获得工件相对于标准姿态在XOY平面的位置偏差和绕Z轴的偏转角,本发明对工件在相机视野中的姿态没有任何要求(工件可以离散放置,也可以相互重叠、相互遮挡),并且能够完全获得目标工件的三维位置和姿态。

附图说明:

以下附图仅旨在于对本发明做示意性说明和解释,并不限定本发明的范围。其中:

图1为本发明一个实施例的一种基于三维点云的目标识别与定位方法流程图;

图2为本发明一个实施例的点对特征查询数据库示意图;

图3为本发明一个实施例的一种基于三维点云的目标识别与定位系统框图。

具体实施方式:

实施例1

如图1所示,本实施例提供一种基于三维点云的目标识别与定位方法,包括如下步骤:

S1:离线特征提取,导入工件模型,计算并创建数据库。

所述步骤S1具体包括如下步骤:

S11:导入工件的模型点云。

S12:计算模型点云中各个点对应的法向量。

S13:在模型点云中随机选取一个模型点对,计算所述模型点对对应的模型点对特征。所述模型点对由模型点云中任意两点及各自法向量组成。

S14:重复所述步骤S13,获取模型点云中一定数量的模型点对及其对应的模型点对特征,使用上述获取的模型点对及其对应的模型点对特征创建数据库。

S2:在线特征匹配,获取最终的目标识别与定位结果。

所述步骤S2具体包括如下步骤:

S21:采集工件所在场景的三维点云数据,即获取了工件的场景点云,对所述场景点云进行预处理。本实施例中,使用3D相机采集工件所在场景的三维点云数据。所述预处理包括滤波及去噪处理,用于去除场景点云中噪声点及离群点。

S22:计算预处理后的场景点云中各个空间点对应的法向量。

S23:在场景点云中随机选取一个场景点对,计算所述场景点对对应的场景点对特征。所述场景点对由场景点云中任意两点及其各自法向量组成。

S24:特征匹配,使用所述场景点对特征在所述步骤S14创建的数据库中查找具有相同特征的模型点对。查询过程如图2所示,其中S1和S2为场景点云中的场景点对,n1和n2为场景点对的法向量,k为数据库,(Ma,Mb)(Mc,Md)(Me,Mf)…为模型点云中的与所述场景点对具有相同特征的模型点对。

S25:使用具有相同特征的模型点对(来自模型点云)和场景点对(来自场景点云)产生位姿假设。其中位姿假设:对特征一致的模型点对和场景点对分别建立局部坐标系,计算两个局部坐标系间的相对位姿,将该位姿作为模型和场景间的匹配位姿。

S26:对步骤S25中产生的位姿假设进行匹配质量评估。其中匹配质量评估的方案有以下四种:

方案1:场景点云中的重合点个数。首先根据匹配位姿来更新模型点云,然后对场景点云中的每个点,利用Kd-tree计算出模型点云中与它最近的点,两点之间的距离大于预先给定的阈值t1时认为该场景点是重合点。当重合点的总个数大于预先给定的阈值t2时认为模型和场景匹配,否则不匹配。

方案2:模型点云中的重合点个数。首先根据匹配位姿来更新模型点云,然后对模型点云中的每个点,利用Kd-tree计算出场景点云中与它最近的点,两点之间的距离大于预先给定的阈值t1时认为该模型点是重合点。当重合点的总个数大于预先给定的阈值t2时认为模型和场景匹配,否则不匹配。

方案3:场景点云中重合点所占的百分比。先按方案1的方法计算出场景点云中的重合点个数,将该值除以场景点云的总点数得到重合点所占的百分比,该比值大于预先给定的阈值t2时认为模型和场景匹配,否则不匹配。

方案4:模型点云中重合点所占的百分比。先按方案2的方法计算出模型点云中的重合点个数,将该值除以模型点云的总点数得到重合点所占的百分比,该比值大于预先给定的阈值t2时认为模型和场景匹配,否则不匹配。

本实施例基于以下2点考虑选定方案4作为优选方案:

①对于不同的模型点云和场景点云,方案1和方案2的阈值t2不容易选定。

②方案3中场景点云的总点数受相机的视场影响较大。

S27:多次循环步骤S23~S26,获取匹配质量最优的一个位姿假设作为最终的目标识别与定位结果。

至此完成了在场景点云中对目标工件的识别并定位出了目标工件相对于工业机器人的三维位置和姿态信息,把该位姿信息传递给工业机器人即可完成目标工件的上下料操作。

实施例2

如图3所示,本实施例提供一种基于三维点云的目标识别与定位系统,包括:

离线特征提取模块,所述离线特征提取模块用于导入工件模型,计算并创建数据库。

在线特征匹配模块,所述在线特征匹配模块用于获取最终的目标识别与定位结果。

所述离线特征模块具体包括:

模型点云加载子模块,所述模型点云加载子模块用于导入工件的模型点云。

模型点云法向量计算子模块,所述模型点云法向量计算模块用于计算模型点云中各个点对应的法向量。

模型点对特征计算子模块,所述模型点对特征计算子模块用于在模型点云中随机选取一个模型点对,计算所述模型点对对应的模型点对特征。所述模型点对由模型点云中任意两点及各自法向量组成。

数据库创建子模块,所述数据库创建子模块用于重复所述模型点对特征计算子模块中的计算方法,获取模型点云中一定数量的模型点对及其对应的模型点对特征,使用上述获取的模型点对及其对应的模型点对特征创建数据库。

所述在线特征匹配模块具体包括:

场景点云获取子模块,所述场景点云获取子模块用于采集工件所在场景的三维点云数据,即获取了工件的场景点云,对所述场景点云进行预处理。本实施例中,使用3D相机采集工件所在场景的三维点云数据。所述预处理包括滤波及去噪处理,用于去除场景点云中噪声点及离群点。

场景点云法向量计算子模块,所述场景点云法向量计算子模块用于计算预处理后的场景点云中各个空间点对应的法向量。

场景点对特征计算子模块,所述场景点对特征计算子模块用于在场景点云中随机选取一个场景点对,计算所述场景点对对应的场景点对特征。所述场景点对由场景点云中任意两点及其各自法向量组成。

特征匹配子模块,所述特征匹配子模块用于使用所述场景点对特征在所述数据库创建子模块创建的数据库中查找具有相同特征的模型点对。

位姿假设子模块,所述位姿假设子模块用于使用具有相同特征的模型点对和场景点对产生位姿假设。

匹配质量评估子模块,所述匹配质量评估子模块用于对位姿假设子模块中产生的位姿假设进行匹配质量评估。

目标识别与定位结果获取子模块,所述目标识别与定位结果获取子模块用于多次循环场景点对特征计算子模块~匹配质量评估子模块中的操作,获取匹配质量最优的一个位姿假设作为最终的目标识别与定位结果。

本发明提供了一种基于三维点云的目标识别与定位方法及系统,把工业生产上下料中目标工件的识别与定位过程分为离线特征提取和在线特征匹配两个模块,大大减少了实时阶段的计算量,提高了运算速度。本发明引入了匹配质量评估以获得精确的工件三维位置和姿态,从而控制工业机器人以相应姿态抓取被识别的工件。传统的机器视觉方法需要根据工件局部几何形状特征(如:圆、孔洞等特征)开发对应的识别与定位算法,本发明能够进行通用的识别与精确的定位,对不同的工件不需进行算法的重新开发,节省了开发时间,大大提高生产效率。此外,传统的机器人上下料方案要求工件按照一定姿态进入相机视野并且只能获得工件相对于标准姿态在XOY平面的位置偏差和绕Z轴的偏转角,本发明对工件在相机视野中的姿态没有任何要求(工件可以离散放置,也可以相互重叠、相互遮挡),并且能够完全获得目标工件的三维位置和姿态。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

你可能感兴趣的:(点云孔洞定位)