[0001]
本发明属于计算机视觉领域,具体涉及一种融合线激光轮廓特征的三维点云自动配准方法。
背景技术:[0002]
随着传感器技术的飞快发展,三位传感器在各行业中也得到了广泛的应用。二十世纪八十年代后期到二十一世纪初期半导体传感器技术和计算机设备的迅速的发展,尤其是计算机的计算能力得到了质的提升,随之点云处理技术也随之得到了快速的发展,从之前的个别领域扩展到了众多的领域,如工业制造上的逆向工程、医学上的医学影像建模、考古中的文物修复、游戏和动漫中的人物建模、地质上的地形勘探与建模等等。虽然在这些领域中已经得到了很好的应用,但部分点云获取设备依然无法避免笨重的体型和昂贵的造价。近年来,随着第三代半导体的发展和人工智能与物联网的崛起,使得点云处理技术从工业生产或者其他专有领域直接走向我们的生活应用,如虚拟现实(virtual reality,vr)和增强现实(augmented reality,ar)的场景制作、移动机器人的实时定位与建图(simultaneous localization and mapping,slam)、城乡规划和商业房的快速建模等。在各种点云获取设备不断更新的今天,顺着人工智能和万物互联的浪潮,点云处理技术已进入我们生活的方方面面。
[0003]
在工业领域中,激光轮廓传感器被广泛用于焊接、涂胶、分拣等场景,激光轮廓传感器是一种非接触式,高精度的激光传感器,它具有结构坚固、设计紧凑、分辨率高、测量精度高等特点、是小型化尺寸和小重量的产品设计。通常一个激光轮廓传感器扫描得到的点云数据规模较大,就以加拿大lmi公司生产的gocator 2430为例,在该传感器的扫描范围内,可以获取高达上百万的点云数目,传感器精度的提高又为点云处理算法带来了诸多挑战。点云配准是机器视觉中重要的研究方向,它为三维重建、快速原型等高层应用打下基础,在计算机视觉、模式识别和机器人技术中,点云配准是寻找使两个点云对齐的空间变换(例如缩放、旋转和平移)的过程。寻找这种转换的目的包括将多个数据集合并为一个全局一致的模型(或坐标系),并将一个新的测量映射到一个已知的数据集,以识别特征或估计其姿态。现存的点云配准算法为迭代最近点(iterative closest point,icp),了减少计算时间luh和milios提出了两种算法。第一个称为imrp(迭代匹配范围点),提供了更好的点选择来匹配两个激光扫描。第二个idc(迭代对应性)结合了icp和imrp,其中icp用于计算平移,imrp用于计算旋转。y.j.lee等人开发了另一种极坐标扫描匹配(psm)方法。该方法通过简单地匹配具有相同方位的点来避免搜索关联点。其他研究的灵感来自于视觉中使用的方法,如sift(比例不变特征变换)和surf(加速鲁棒特征)。其目标是通过选择图像处理中最相关的点来优化扫描的选择。icp算法虽拥有较高的精度但是收敛速度较慢,它的时间复杂度o(n^2),这意味着配准处理时间较长,尤其是在使用高分辨率(点云数据大于200000)数据时,而对于线激光点云,激光轮廓传感器往往有较高的精度,这意味着点云数据的量也非常庞大,如果仅用传统的icp算法进行配准,将会耗费巨大的计算时间,这在工业生产中是
不可以被接受的,并且对于很多生产场景中,点云配准精度要求也很高,如果不对icp算法进行改进,该配准算法无法用于工业激光点云的配准中。
[0004]
综上所述,现有的点云配准算法用于线激光点云配准中有以下不足之处:点云配准的精度有待提高且配准时间太长需要缩短点云数据的配准时间。如何在保证配准精度的同时减少点云配准运算所需的时间成为了本领域的科研人员急需解决的问题。
技术实现要素:[0005]
本发明的目的在于克服现有的点云配准算法用于线激光点云配准时精度达不到要求、且算法运行时间过长的问题,提供了一种行之有效、科学合理的基于线激光点云轮廓特征的点云快速配准方法。
[0006]
为了实现上述目的,本发明所提供的技术方案为以下步骤:一种线激光点云快速配准方法,该方法包含以下步骤:
[0007]
s1、用激光轮廓传感器扫描工件获取原始工件轮廓线数据,并将轮廓线上源点云p的坐标转换为目标点云q的坐标;
[0008]
s2、对每条轮廓线上的源点云p和目标点云q数据进行关键点搜索;
[0009]
s3、对步骤s2获取的源点云p的关键点和目标点云的关键点进行滤波操作;
[0010]
s4、对滤波后的源关键点云集p
key
和目标关键点云集q
key
进行迭代处理求解旋转矩阵r
f
和平移向量t
f
;
[0011]
s5、将源点云p根据r
f
和t
f
转换到目标点云q下进行配准。
[0012]
进一步的,将轮廓线上源点云p的坐标转换为目标点云q的坐标,方法如下:对源点云中的每个点云数据做下列运算,即对源点云中的每个点云数据做下列运算,经下式刚性变换的所有点q
i
形成的点云集为q:
[0013][0014]
其中,p
i
为源点云中的一点的坐标,x,y,z是点云的三维坐标,t为预设的齐次变换矩阵。
[0015]
进一步的,步骤(2)中,关键点搜索方法如下:
[0016]
(a)计算轮廓线中相邻两点之间的距离d
i
,激光轮廓传感器每条轮廓线上的点有两个值(x,z),x表示在传感器坐标系下x的值,z表示在传感器坐标系下的z值,相邻两点(x
i+1
,z
i+1
)和(x
i
,z
i
)之间的距离d
i
可以用下式计算:
[0017][0018]
(b)判断d
i
和阈值eps的关系,若d
i
>eps,则认为点(x
i
,z
i
)是一个区域分割点,利用d
i
和eps的距离关系将每条轮廓线分为若干段;
[0019]
(c)判断每个分段的数据点数是否大于期望值n,若该分段的数据点数小于期望值n,则认为该段数据为噪声点并舍弃该分段的所有数据;
[0020]
(d)通过上述方法将一条轮廓线基于相邻点的距离分为了若干段,设每个分段中的数据点个数为k,则根据该段中的第1个点和该分段中的第k个点,构建一条直线,直线的
方程如下:
[0021]
ax+by+c=0
[0022]
其中,a,b,c为系数;
ꢀꢀꢀ
(4)
[0023]
并根据下式计算出轮廓线上的每个点(x
i
,z
i
)到该直线的距离:
[0024][0025]
(e)判断dis的最大值是否大于阈值δe,若dis>δe,则认为dis取得最大值的点是一个角点,否则判定该段为直线,无关键点;若该点为角点,则以该点为分界点继续搜索该分段中剩下的关键点,直至所有关键点搜索完毕;通过上述方法,搜索所有轮廓线上的关键点;
[0026]
(f)对源点云和目标点云中的所有轮廓线进行关键点提取,并根据下式将二维轮廓关键点转化为三维点云:
[0027][0028]
形成关键点云集p
key
和目标关键点云集q
key
,上式中,为机器人基坐标系到传感器坐标系的齐次变换矩阵,其次变换矩阵是描述坐标系变换的一个4
×
4的方阵,每一个齐次变换矩阵可以写成下式所示的形式,其中,r
3*3
为旋转矩阵,t
3*1
为平移向量:
[0029][0030]
进一步的,步骤s3中,滤波操作方法如下:对每一个点,计算它到所有邻近点平均距离,邻近点是指点云数据中分布在某个点云周围最近的k个点,如果平均距离在标准范围之外的点,可以被定义为离群点并从数据中去除。
[0031]
进一步的,步骤s4的具体方法如下:
[0032]
(a)对于p
key
中的每一点pi,i=1,2,3,...,n
p
和q
key
中的点q
j
,j=1,2,3,...,n
q
,利用下式计算出p
i
和q
j
的最小欧式距离d
m
:
[0033]
d
m
=min||p
i-q
j
||
ꢀꢀꢀꢀ
(7)
[0034][0035]
此时的p
j
作为p
i
的对应点通过该方法找出p
i
的所有对应点,组成对应点集的所有对应点,组成对应点集和p
i
为点云的坐标的向量表示,其形式为
[0036]
(b)求解旋转矩阵r
temp
和平移向量t
temp
,利用步骤a中获取的多组匹配点对下式目标函数进行优化:
[0037][0038]
当该目标函数f
m
最小的r
temp
和t
temp
即为所求的旋转矩阵和平移向量,分别为3*3和3*1矩阵;
[0039]
(c)更新点云,根据步骤b计算的r
temp
和t
temp
通过下式将源关键点云集p
key
和转换到目标关键点云集q
key
下:
[0040]
p
′
key
=r
temp
*p
key
+t
temp
ꢀꢀꢀ
(10)
[0041]
得到新的源关键点云p
′
key
;
[0042]
(d)重复迭代步骤a~步骤d直到点云中的目标函数小于预设值或迭代次数达到上限,迭代结束后计算所得的最终结果r
f
和t
f
。
[0043]
进一步的,步骤s5的具体方法如下:将计算结果作用于源点云p,对于p中的每个点云p
i
按照下式对源点云数据集的进行计算:
[0044]
p
′
i
=r
f
*p
i
+t
f
ꢀꢀꢀ
(11)。
[0045]
有益技术效果:与现有技术相比,本发明的技术方案具有以下优点与有益效果:
[0046]
传统的点云配准算法icp在选取迭代配准的点集过程中没有针对性,这对于高分辨率的点云而言计算时间过于冗长,本发明通过搜索线激光点云轮廓特征点,并通过统计滤波的方式滤除离群点和噪声点,让减少了点云数据的规模并,在保证配准精度的同时,显著加快了配准的速度。这有利于工业生产中的实时性,提高生产加工、质量检测等应用的效率,此外,该本发明方法精度较高,在线激光点云配准应用中具有很大的应用前景。
附图说明
[0047]
图1是本实施例的圆弧工件点云图;
[0048]
图2是本实施例的l形工件点云图;
[0049]
图3是本实施例的点云放大图;
[0050]
图4是本实施例中激光轮廓传感器采集的某一轮廓数据示例图;
[0051]
图5是本实施例圆弧形工件刚体变换后对比图;
[0052]
图6是本实施例l形工件点云刚体变换对比图;
[0053]
图7是本实施例关键点搜索结果示意图;
[0054]
图8是本实施例l形工件点云关键点变换后图;
[0055]
图9是本实施例圆弧形工件关键点变换实验结果图;
[0056]
图10是本实施例关键点点云滤波前后对比图;
[0057]
图11是本实施例l形工件点云和圆弧形工件点云配准对比图;
[0058]
图12是本发明算法流程图。
具体实施方式
[0059]
下面结合具体实施例对本发明作进一步说明,本实施例通过激光轮廓传感器采集了两个场景下的线激光点云数据,激光轮廓传感器固定在法兰盘上并且已经标定完毕,需要说明的是该场景仅作为具体实施方式的说明,不是本发明的限制。
[0060]
实施例:
[0061]
本实施例用的激光轮廓传感器固定在一个六轴机械臂末端的法兰盘上并进行了准确的手眼校准,分别对圆弧形工件和l形工件进行扫描,扫描的圆弧形工件点云图1所示,l型工件的点云如图2所示,将点云图放大可以看出,点云图是由若干条轮廓线组成,如图3所示,点云中的每一条线都是由一个二维的轮廓线拼接而成,其中一条轮廓线如图4所示。
[0062]
s1、本实施例采集的点云数据如图1和图2所示,进行两次实验对本发明提出的算法进行测试,其中圆弧形工件点云数据的点云数量为2464674,l型工件点云数据的点云个数为1900915,把采集l形工件和圆弧形工件的点云数据作为源点云p,对它们通过刚性变换得到目标点云,即对源点云中的每个点云数据做下列运算,即对源点云中的每个点云数据做下列运算,经下式刚性变换的所有点q
i
形成的点云集为q:
[0063][0064]
其中,p
i
为源点云中的一点的坐标,x,y,z是点云的三维坐标,t为齐次变换矩阵,在本实施例中,该矩阵为用户事先设定的,目的是通过配准算法计算结果和已知结果进行比对,易于计算和评估本发明算法的配准精度,在本实施例中,该矩阵的具体数值如下所示:
[0065][0066]
圆弧工件和l形工件点云经刚体变换后显示分别如图5和图6所示。
[0067]
s2、对源点云p和目标点云q数据的每条轮廓线进行关键点搜索,此处的关键点是指角点,角点的搜索方法如下:
[0068]
(a)计算轮廓线中相邻两点之间的距离d
i
,激光轮廓传感器每条轮廓线上的点有两个值(x,z),x表示在传感器坐标系下x的值,z表示在传感器坐标系下的z值,相邻两点(x
i+1
,z
i+1
)和(x
i
,z
i
)之间的距离d
i
可以用下式计算:
[0069][0070]
(b)判断d
i
和阈值eps的关系,若d
i
>eps,则认为点(x
i
,z
i
)是一个区域分割点,利用d
i
和eps的距离关系将每条轮廓线分为若干段,eps的大小由用户设定;
[0071]
(c)判断每个分段的数据点数是否大于用户期望值n,若该分段的数据点数小于期望值n则认为该段数据为噪声点并舍弃该分段的所有数据;
[0072]
(d)此时已经将一条轮廓线基于相邻点的距离分为了若干段,设每个分段中的数据点个数为k,则根据该段中的第1个点和该分段中的第k个点,计算一条直线,直线的方程如下:
[0073]
ax+by+c=0,其中,a,b,c为系数
ꢀꢀꢀ
(4)
[0074]
并根据下式计算出轮廓线上的每个点(x
i
,z
i
)到该直线的距离:
[0075][0076]
(e)判断dis的最大值是否大于用户设定的阈值δe,若dis>δe,则认为dis取得最大值的点是一个角点,否则判定该段为直线,无关键点;若该点为角点,则以该点为分界点继续搜索该分段中剩下的关键点,直至所有关键点搜索完毕;通过上述方法,搜索所有轮廓线上的关键点;该实施例中对轮廓线用此方法进行关键点搜索,得到的结果如图7所示,图7中的方形点即搜索到的关键点,由图可以看出,关键点都被准确的搜索到了。
[0077]
(f)对源点云和目标点云中的所有轮廓进行关键点提取,并根据下式将二维轮廓关键点转化为三维点云:
[0078][0079]
形成关键点云集p
key
和目标关键点云集q
key
,将关键点转化后点云图如图8和图9所示,上式中,x
s
和z
s
是传感器坐标系下轮廓上点的坐标,为机器人基坐标系到传感器坐标系的齐次变换矩阵,其次变换矩阵是描述坐标系变换的一个4
×
4的方阵,每一个齐次变换矩阵可以写成下式所示的形式,其中,r
3*3
为旋转矩阵,t
3*1
为平移向量:
[0080][0081]
s3、根据s2执行后的结果,获取了源点云和目标点云的关键点集,此时关键点中还存在着错误或噪声点,需要对离群的噪声点剔除,具体方法为利用统计滤波器对源点云的关键点和目标点云的关键点进行滤波操作,统计滤波对每个点的邻域进行一个统计分析,并修剪掉一些不符合标准的点。
[0082]
具体方法为在输入数据中对点到临近点的距离分布的计算,对每一个点,计算它到所有邻近点平均距离(假设得到的结果是一个高斯分布,其形状是由均值和标准差决定),邻近点是指点云数据中分布在某个点云周围最近的k个点,那么平均距离在标准范围之外的点,可以被定义为离群点并从数据中去除,统计滤波结果如图10所示,可以看出,统计滤波在保留原有点云形状的同时有效的滤除了噪声点。
[0083]
s4、对滤波后源关键点云集p
key
和目标关键点云集q
key
进行下述迭代过程:
[0084]
(a)对于pk
ey
中的每一点p
i
,i=1,2,3,...,n
p
和q
key
中的点q
j
,j=1,2,3,...,n
q
,利用下式计算出p
i
和q
j
的最小欧式距离d
m
:
[0085]
d
m
=min||p
i-q
j
||
ꢀꢀꢀꢀ
(7)
[0086][0087]
此时的p
j
作为p
i
的对应点通过这样的方法找出p
i
的所有对应点,组成对应点集
[0088]
(b)求解旋转矩阵r
temp
和平移向量t
temp
,利用步骤a中获取的匹配点对下式目标函数进行优化:
[0089][0090]
当该目标函数f
m
最小的r
temp
和t
temp
即为所求的旋转矩阵和平移向量,分别为3*3和3*1矩阵,和p
i
为点云的坐标的向量表示,它们的形式为
[0091]
(c)更新点云,根据步骤b计算的r
temp
和t
temp
通过下式将源关键点云集p
key
和转换到目标关键点云集q
key
下:
[0092]
p
′
key
=r
temp
*p
key
+t
temp
ꢀꢀꢀꢀ
(10)
[0093]
得到新的源关键点云p
′
key
,p
key
为点云的集合,对于点云集中的每个点其坐标的向量表示,它们的形式为
[0094]
(d)重复迭代步骤a~步骤d直到点云中的目标函数小于预设值或迭代次数达到上限,迭代结束后计算所得的最终结果r
f
和t
f
;
[0095]
s5、将计算结果作用于源点云p,对于p中的每个点云p
i
按照下式对源点云数据集的进行计算:
[0096]
p
′
i
=r
f
*p
i
+t
f
ꢀꢀꢀꢀ
(11)
[0097]
将源点云数据p转换到目标点云q下p
i
为点云的坐标的向量表示,它们的形式为
[0098]
将计算结果和用户设定的计算结果做差,就可以的到配准的精度,在本实施例中,本发明的配准结果和传统的icp配准结果可视化对比图如图11所示,从图中可以看出,l形工件点云数据传统的icp在面对200万的点云数目时,其中l形工件配准失败,而本实施例利用本发明提出的算法成功配准,l形工件配准得到的其次变换矩阵t
l
如下所示:
[0099][0100]
由该计算结果可以看出,本发明所述的配准算法准确的计算出源点云和目标点云的齐次变换矩阵非常接近用户的设定值,完全满足生产的精度要求。圆弧形工件传统icp配准算法结果t
icp
和本发明的配准结果t
cir
如下所示:
[0101][0102][0103]
从计算结果可以明显看出,本文的算法精度高于传统的icp算法,此外对算法的时间进行评估,对比传统的icp算法和本发明算法的计算用时,实验条件如下表1所示:
[0104]
表1实验条件
[0105][0106]
进行10次实验,计算10次实验的平均耗时,统计结果如下表2所示:
[0107]
表2算法时间统计
[0108][0109]
上表可以看出,对比传统的icp算法,本发明的算法显著提高了算法速度,这对提高生产效率具有重大的意义。
[0110]
综上所述,本发明融合轮廓特征的线激光点云配准算法在准确度和速度方面有了显著的提升,在传感器高速发展的今天,传感器的分辨率和测量精度也越来越高,这对点云的算法性能要求也带来了挑战,本发明针对线激光点云的特点,提出一个高性能的算法,具有广阔的应用前景。
[0111]
以上所述实施例仅为本发明的一个应用场景,并非以此限制本发明的实施范围,故凡依本发明的原理所作的变换,均在本发明的保护范围内。