田青华,白瑞林,李 杜
1(江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122) 2(无锡信捷电气股份有限公司,江苏 无锡 214072)
为使机器人从随机放置且未排序的箱体中以正确的方向定位和抓取工件,需对目标工件进行位姿估计.近年来,使用三维扫描设备(如三维激光扫描仪、立体视觉系统等)获取工件表面的3D点云数据,并将三维点云和位姿已知模板点云进行匹配得到两者之间的刚性变换,从而实现工件的识别和定位[1,2],成为了机器视觉领域的研究热点.
常见的配准算法是迭代最近点算法[3](Iterative Closest Point,ICP)及后续研究者的改进算法,ICP算法原理简单易实现,配准精度高,缺点为:1)当两幅点云之间不存在包含关系或初始位置偏差较小时,算法易陷入局部最优;2)迭代收敛速度慢.因此,在进行精确配准之前先进行初始配准很有必要.常见的初始配准算法有基于图的方法、基于特征的方法以及基于视图的方法.其中,基于图的方法利用图来提取3D形状的几何属性,包含各形状分量的类型和空间关系,其突出优点为姿态的独立性和部分匹配的可行性;然而每个匹配过程需要不同的匹配策略,且计算量大.此外,基于图的方法相似性度量的计算对图的变化比较敏感.
基于视图方法的原理:两个3D对象仅在它们从所有视角看起来都相似时才是类似的.这些方法具有位姿独立性,因为其相似性比较是旋转独立的.该方法可以应用在几乎所有类型的对象,且不需要任何特征提取.然而,在数据库和图像获取方面,基于视图计算复杂性较高,这使得该算法不适用于实时应用之中.
基于特征的方法[4]可以分为全局特征和局部特征,通过测量和比较3D形状的几何形状和拓扑属性来区分3D对象.基于全局特征描述的配准算法对于杂乱、有遮挡场景的抗干扰能力不强,而通过局部特征匹配建立的对应关系对视点、杂波和遮挡的变化具有很好的鲁棒性,因此,该类方法在工业上采用的最多.
常见的局部特征描述子有快速点特征直方图描述子[5](FPFH,Fast Point Feature Histograms)、3D形状内容描述子(3D Shape Context)、旋转图像(Spin image)、方向直方图签名描述子(SHOT,Signature of Histograms of OrienTations)、旋转投影统计(RoPS,Rotational Projection Statistics)等.其中,RoPS描述子具有很好的抗噪能力,鉴别力最好,但实时性较差;对实时性要求高的场合下,FPFH和 SHOT是最好的选择.当局部表面上的点较少时,FPFH描述子是最佳选择,这是由于 FPFH 鉴别力强、运算速度快且占用存储资源少.反之,SHOT描述子是最佳选择,其在鉴别力与计算效率之间能取得很好的折中.SHOT描述子是由Salti S等[6]于2010年提出,该描述子同时具有直方图特征的抗噪性和基于标签特征的鉴别性,主要用于曲面模型匹配,且对旋转和尺度具有不变性;文献[7]将颜色特征加入描述子,增加了特征的描述性,但是需要获取特征点的颜色信息,且增加了计算量;文献[8]提出一种法矢改进点云特征C-SHOT的3D 物体识别方法,利用特征点处法矢与邻域法矢的夹角余弦构造点云形状直方图,同时统计点云纹理直方图并与形状直方图融合成C-SHOT 描述符,该特征描述符可以实现复杂场景下3D物体识别和位姿估计,但是该算法亦需要获取点云RGB字段信息.文献[9]提出了一种基于特征提取的点云自动配准算法,利用点云局部点的三种几何特征搜索匹配点对,得到较高的匹配精度但耗时多.
综上所述,考虑随机箱体抓取[10]过程中散乱工件识别和定位的精度和速度要求,本文选取特征描述性和实时性均优的SHOT描述子进行配准,由于该特征在相似区域易得到错误的对应关系,提出一种SHOT特征融合的点云配准算法.算法针对点云相似区域单一的特征匹配识别度低的问题,提出SHOT和空间位置结合的特征描述子,实现对特征点的唯一性描述,从而降低误匹配的概率,并提高精配准的速度;采用线下建立不同姿态下的模板点云特征描述库的方法,对分割出的单个工件点云的关键点在特征库中进行特征匹配,寻找对应点,从而得到单个工件位姿信息.
本文配准算法流程图如图1所示,分为线下模板特征建立和线上点云配准部分.通过线下处理建立工件模板库,提取模板点云关键点,并计算关键点的特征描述子;线上配准根据单个工件点云关键点特征描述子查找模板点云中的对应点,选取最佳变换确定两者之间的转换关系.
算法实现的关键部分在于初始配准实现,初始配准分为关键点提取、关键点特征描述以及特征匹配三个部分.分别提取单个工件点云和模板点云的关键点,并进行特征描述与匹配,通过特征对应点获取两者的刚性变换矩阵.最后,利用ICP算法优化两者之间的变换矩阵,进一步提高匹配精度,从而得到工件精确的位姿信息.
图1 算法流程图Fig.1 Flow chart of algorithm
3.1.1 方向包围盒
包围盒是用体积稍大且特性简单的几何体来近似地代替复杂的几何对象.常见的包围盒有包围球(Sphere)、轴向包围盒(Axis-aligned bounding box,AABB)以及方向包围盒(Oriented bounding box,OBB)[11].其中OBB具有方向性、可以旋转、紧密性好,总体性能优于Sphere和AABB,因此,本文通过求取点云的OBB进行关键点选取.OBB可以由基准角C(xc,yc,zc)和三个矢量CC1(xmax,ymax,zmax),CC2(xmid,ymid,zmid),CC3(xmin,ymin,zmin) 表示,分别对应于OBB的最大、中间和最小维度.利用PCA算法计算点云在3D空间下的3个特征向量,根据特征向量构建点云的局部坐标系,将原点云变换到新坐标系下,计算变换后点云在三个轴方向的最大最小值以及对角线中心点,根据最大最小值得到OBB的长宽高,结合对角线中心点得出方向包围盒.
具体步骤如下:
1)计算点云重心Centriod和归一化协方差矩阵covariance;
(1)
(2)
2)计算本征向量e0,e1,e2,得到新的参考坐标系(e0,e1,e0×e1);
3)将点云转换到坐标系(e0,e1,e0×e1)下,计算沿坐标轴方向点云的最大、最小和对角线中心点坐标;
4)根据给定的对角线中心点和包围盒尺寸得到点云包围盒.
3.1.2 获取关键点
关键点为点云中一些特殊的点,通常表示为角点、灰度梯度等急剧变换的点[12],通过对关键点进行信息描述可以有效的表示整幅点云.关键点的选取可以减少噪声点,提高匹配的速度.由于目标点云在深度方向上的分辨率是不同的,呈现在实际空间中就是位于深度边缘处的点云相对于目标内部点更稀疏,这会导致稀疏点的特征描述子在寻找模板中的对应匹配点时的差异增大,不利于配准,因此,提出如下关键点提取算法,实验结果如图2所示.
图2 关键点提取Fig.2 Key point extraction
1)以变换后点云的深度为依据(即OBB的高),取OBB高的一半为阈值;
2)采用直通滤波器对点云进行滤波处理,去除深度小于阈值的点,保留余下的点记作候选关键点;
3)将候选关键点点云进行反变换到原坐标系下,用于后续的特征提取与配准;
4)对关键点云进行均匀采样,提高匹配速度.
3.2.1 SHOT 特征描述子
图3 球形域Fig.3 Spherical domain
方向直方图签名描述子( SHOT) 是一个3D特征,它结合了几何分布信息的鲁棒性和直方图统计信息的特异性. 文献[13]把3D特征描述符分为两类: 基于标签和基于直方图特征描述符,分别强调特征的描述性和鲁棒性,而SHOT图3球形域特征结合了两者的优点,具有很好的可重复检测性,且特征描述具有旋转和尺度不变性.
SHOT具体实现步骤如下:
1)建立特征点的r半径球邻域局部参考坐标系,并对特征点的球邻域分别沿径向、方位角方向和高度方向进行区域划分.径向划分为2,方位角方向划分为8,高度方向划分为2,总共32个网格,如图3所示.
2)分别统计每个网格内的法向量夹角余弦值分布情况,即网格的直方图.直方图分为11个小单元,各单元的值由特征点处法线与邻域点法线夹角余弦计算而得,如公式(3)所示,最终SHOT描述子的长度为32×11=352.
cosθq=zknq
(3)
其中,zk为r半径球邻域内局部坐标系的Z轴,也是特征点的法线;nq是当前标签内所包含点的法线.采用夹角余弦而非夹角值有2个优势:1)计算速度快,只需要计算两向量之间的夹角余弦值;2)对cosθ的等距划分等效于在空间上对θ进行划分,由此对接近参考法线的方向进行粗略的划分,在正交方向上进行精细的划分,以这种方式,正交方向上的小差异(可能是最具信息性的差异)导致点在不同单元格中累积,从而导致不同的直方图.此外,在近平面区域,描述性不强,这种选择通过将计数集中在较少的单元中来限制由于噪音而导致的直方图差异.
由于SHOT描述子是局部特征描述子,支持空间细分,因此需要考虑边界效应.为消除边界影响,采用四线性插值法将邻域内各点累加到局部直方图特定的单元格,即在一个局部直方图的相邻单元插值,相邻直方图的同一单元格进行插值[8].插值过程中,局部直方图单元格增量是1-d,对于法线夹角余弦,d表示直方图相邻单元格插值,如图4所示.其中d的定义如公式(4)所示,同理,在方位角方向、仰角方向和径向方向插值与之类似.
(4)
图4 法线夹角余弦插值Fig.4 Interpolation on normal cosines
3.2.2 空间位置描述子
f1(Pqi)=‖Centriod-qi‖
(5)
(6)
其中m表示点云中特征点的数目.
在匹配过程中,需要对随机选取的两个特征进行比较,特征值不近似相等的特征组合对应的转换关系一定是错误的,反之,即使特征值近似,也可能获得错误的转换关系.对于目标中的一个确定特征,在模板点云中,可能存在多个特征点具有相等的特征值,这些特征中只有一个和目标特征相互对应,当提取的两个特征对应关系正确时,才可以获得最佳的目标位姿参数.具体初始配准实现步骤如下:
离线阶段:
1)采用2.1节方法提取模板点云M的关键点集Pk,记作Model_KeyPoints;
在线阶段:
1)分割得到单个工件的点云子集O={Oj,j=0,1,…,n},采用2.1节方法提取目标点云关键点Scene_KeyPoints;
2)计算各个点云子集的SHOT描述子F1O={F1Oj,j=1,2,…,m}和空间位置描述子F2O={F2Oj,j=1,2,…,m};
3)对于点集Oj中的任意一点qi,在模板点云中搜索其对应点,若pi为其对应点,需满足公式(7)(8)所设条件,即采用最小平方误差的方法获取特征点在模板点云中的对应点,若该组对应点的空间位置描述子的差异也在预设阈值范围内,则保留当前对应点,反之则舍弃;
|FM1pi-F1Oqi|/[|FM1pi+F1Oqi|]<ε1
(7)
|FM2pi-F2Oqi|/[|FM2pi+F2Oqi|]<ε2
(8)
4)对对应点对采用奇异值分解算法求解模板点云到目标点云之间的旋转矩阵R和平移矩阵T,即初始配准结果;
(9)
5)对初始配准结果进行性能评估.
(10)
初始配准得到了场景点云相对于模板点云的变换矩阵,使得变换后的两幅点云大致 “重合”,为了进一步提高匹配精度,使用ICP算法进行优化,过程如下:
3)根据四元数法计算出旋转矩阵Rk和平移矩阵Tk;
4)计算误差函数为:
(11)
如果误差函数保持不变或者达到设定要求,则停止迭代,当前旋转矩阵Rk和平移矩阵Tk就是最终的配准参数矩阵.如果没有达到设定要求,则Sk+1=RkSk+Tk,返回公式(11).式中k表示迭代次数,n表示源点云随机点集中元素个数.
为验证配准算法的有效性,采用文献[14]的点云数据采集系统获取箱体内散乱堆放工件点云和单个工件点云进行的实验,工件为柱形塑料瓶,瓶身直径为2.15cm,长4.7cm.分别采用基于SHOT特征配准算法和基于FPFH特征配准算法对散乱工件点云进行识别和定位,作为对比实验.实验所用PC机为Windows 7 64位操作系统,配置为Intel(R)Core(TM)i3-3220 CPU,3.3GHz,8.00 GB内存,使用编程语言为C++,软件平台为64位VS2013,涉及库文件为点云库PCL1.8.0.
分别对模板点云进行预处理,包括去除噪声点、背景点和冗余点,如图5(a)所示.对场景点云的处理包括预处理和分割.预处理同样包括去除背景点,离群点,分割的目的是将单个工件从杂乱的场景点云中分离出来,用于后续的位姿定位.
图5 模板点云和目标点云Fig.5 Model point cloud and scene point cloud
采用文献[15]的方法对场景点云进行分割,得到散乱工件点云的分割结果如图5(b)所示.
将分割得到的单个工件点云和模板点云进行配准实验,相关参数选取为:ε1=ε2=0.02,邻域搜索半径5mm,SHOT描述子差异阈值为0.15.为验证本文算法的有效性,采用3组对比试验,统计不同算法下,粗配准、精确配准的误差值以及算法耗时,统计结果如表1所示.
为直观判断配准结果优劣,将目标点云2,4和8的配准结果显示输出,统计结果如图6所示.结合表1对实验结果进行分析,可以得出如下结论:
图6 点云配准结果对比Fig.6 Point cloud registration results contrast
1)在精确配准前加入初始配准可以得到更好的配准结果.由配准误差和配准效果排名均值可以看出,其他三种方法均优于ICP配准算法;
2)本文算法的配准效果优于FPFH特征配准、SHOT特征配准算法.相对于FPFH特征配准,本文算法的配准误差减少了30.07%,相对于SHOT配准算法37.10%.
3)本文算法的耗时少,约0.7s,但由于加入初始配准,耗时大于ICP配准算法.本文算法相对于FPFH特征配准减少了35.64%,相对于SHOT特征配准减少了21.21%.
提出一种基于SHOT特征融合的点云配准方法,用于解决随机箱体抓取过程中的目标工件的识别和定位问题.得出结论如下:
1)提出OBB裁剪结合US算法获取点云的关键点,消除了稀疏边缘点特征差异过大带来的影响,降低了算法的计算量;针对特征相似区域对应点估计错误问题,提出将SHOT特征和空间位置特征结合的方法计算模板点云和目标点云的对应点,从而减少了初始配准的误差,缩小了精确配准的迭代次数,降低了算法的整体耗时.
表1 点云配准实验结果Table 1 Point cloud registration experiment results
2)实验结果表明,本文算法相较于SHOT特征配准、FPFH特征配准算法在配准精度分别提高了30.07%和37.10%,配准速度分别提高了35.64%和21.21%,满足工业生产过程中的准确性和实时性要求.