黄淞宣,李新春,刘玉珍
(1.辽宁工程技术大学研究生院,辽宁 葫芦岛 125105; 2.辽宁工程技术大学电子与信息工程学院,辽宁 葫芦岛 125105)
点云配准技术作为激光雷达扫描成像的关键技术之一,被广泛用于三维重建、医疗成像、自动驾驶、目标识别与定位等领域[1]。点云配准的目的是将不同视角下采集到的点云数据整合到同一坐标系下,为后续工作打下基础。
在点云配准中经典的迭代最近点(ICP)算法[2]对点云的初始位置和重叠率要求较高,且存在易受噪声点和离群点影响、配准耗时较长的问题[3]。Segal等[4]提出一种GICP算法,将点到点的ICP算法和点到面的ICP算法结合到一个概率框架上,然后基于此框架进行局部平面建模与配准,提高了抗噪性能,但配准效率较低。Yang[5]等提出一个可以解耦尺度估计、旋转和平移的算法框架,结合截断最小二乘法求解最优变换,提高了配准精度。陆军[6]等根据不同尺度空间的法向量投影值提取特征点,用特征点估计初始位置再用ICP配准,提高了配准精度。张彬[7]等对原始点云体素下采样后,利用法向量夹角特性提取特征点,对特征点特征匹配后用ICP精配准,提高了配准的效率和精度。徐思雨[8]等设计一种加权的最小二乘目标函数,通过迭代最近点求解最佳参数,提高了配准精度。
但上述的ICP改进算法采用单一特征提取特征点,会因特征信息不够完整而出现误匹配;采用最小二乘形式的目标误差函数,易受噪声点、离群点等误匹配的干扰,会降低配准精度,而相关熵形式的误差函数可以更好的处理非高斯分布数据,能够提高配准的精度和鲁棒性[9]。为此,本文提出一种多维度特征点结合最大相关熵模型的点云配准方法。所提取的多维度特征点含有加权投影信息、表面曲率、法向量夹角三种特征信息,在特征匹配时能够减少误匹配。在精配准阶段采用特征点代替源点云以提高配准效率,用法向量夹角与刚性距离约束剔除误匹配点对,并结合相关熵模型的目标函数双向配准,进一步减小了误匹配的影响,提高了配准的精度。
特征点作为粗配准的输入点集,用于快速估计两个点云间的初始位姿。特征点提取的效果及数量很大程度上影响着粗配准的精度和效率,用单一特征提取的特征点存在特征信息不够完整的问题,容易在特征匹配时出现误匹配,导致配准效果不佳[10]。因此,本文结合邻域点的投影信息、表面曲率和法向量夹角三个维度的特征,提出一种多维度特征点(MFP)。
邻域点在采样点法向量上的投影可以反映表面的弯曲程度,如图1所示,在半径为r的邻域内,若采样点pi位于表面弯曲度较大的区域,则邻域点pj在采样点pi法向量上的投影距离dij较大。当采样点位于表面弯曲度较小的区域,则该投影距离较小。
图1 不同区域点的投影
设邻域半径为r,建立点pi的加权协方差矩阵,其形式为:
(1)
(2)
求得式(1)矩阵的特征值为λi1≥λi2≥λi3,最小特征值λi3所对应的特征向量即为点pi的法向量ni。用法向量内积来计算邻域点在采样点pi法向量上的投影距离值dij,为:
(3)
(4)
ωd=edij
(5)
采样点与邻域点的法向量夹角可以很好的表示该区域的起伏程度。如图2所示,在平坦区域采样点与领域点的法向量夹角接近于0°,在弯曲区域采样点与邻域点的法向量夹角较大。用邻域法向量内积均值代替邻域法向量夹角均值来计算,可以更简便的评判一点是否处于表面起伏较大的特征区,其形式为:
图2 不同区域的法向量
(6)
式中,nj为邻域点pj的法向量。当pi点位于表面弯曲度越大的位置时,它与邻域点的法向量夹角就越大,法向量内积就越小,X(pi)的值就越小。
表面曲率可以评估一点邻域的表面弯曲程度[12]。根据式(1)求得的特征值为λi1≥λi2≥λi3,则点pi的表面曲率σ(pi)为:
(7)
当点pi位于弯曲度较大的区域时,σ(pi)的值就比较大。
由于法向量夹角与表面曲率都可以评估点邻域的弯曲程度,本文提出一种弯曲度函数S,其形式为:
(8)
取弯曲度阈值为δ,当S(pi)大于δ时,则pi点处于弯曲度较大的区域,即认为pi点为特征点。
用弯曲度函数对初始特征点进行筛选,若初始特征点满足S(pi)>δ,则该点为本文的MFP特征点。最终提取的MFP特征点含有丰富的特征信息,包含了邻域点的投影、表面曲率与法向量夹角特征。
通常维度越高的特征描述子具有更好的特征描述能力,但是由于特征描述子向量是浮点数形式,在计算欧氏距离进行特征匹配时会产生巨大的计算开销,导致效率低下,而二值化的特征描述子可以很好的解决这个问题[13]。为了提高粗配准的效率及精度,本文采用352维度的二进制描述子B-SHOT[14],分别对源点云和目标点云的特征点进行特征描述,再用汉明距离代替欧式距离进行特征匹配以提高计算效率,由此得到初始匹配点对集记为:
H={(pi,qi)|pi∈P0,qi∈Q0,i=1,2,3,…,N}
(9)
式中,P0和Q0分别为源点云和目标点云的特征点集;pi和qi为匹配点对;N为匹配点对的个数。
由于存在特征相似的情况,初始匹配点对集中存在大量误匹配点对。对点对集H中的任意两组对应点对(pi,qi)和(pj,qj)进行欧式距离约束,若不满足式(10),则视为误匹配点对并剔除。
(10)
式中,ε为阈值,取ε为0.02[15]。
遍历点对集H,得到更为正确的匹配点对集H′,表示为:
H′={(pk,qk)|pk∈P0,qk∈Q0,k=1,2,3,…,M}
(11)
式中,pk和qk为匹配点对;M为匹配点对的个数。
最后,用随机采样一致性算法(RANSAC)算法对匹配点对集H′进行处理[6],得到点云的初始变换矩阵R0和T0。
2.3.1 相关熵模型的目标函数
相关熵是利用非线性的方法度量两个变量之间的相似性,通过核函数对残差进行约束,可以有效的抵抗粗差的干扰,对于点云类非高斯分布数据的处理,相关熵比均方误差函数更加准确[16]。
(12)
如图3(a)所示,均方误差函数在x=y的谷底取得最小值,但随着x和y差值的增大,均方误差函数对残差呈二次放大作用。离群点或噪声点容易产生误匹配,且点对间的距离差值一般较大,而均方误差函数对该差值具有放大作用,因此离群点或噪声点对均方误差函数具有较大的干扰。由图3(b)可知,相关熵沿x=y线时取得最大,随着x和y差值的增大,相关熵的值迅速减小到接近于0,这说明相关熵能很好的抵抗粗差的干扰,能有效的降低噪声点或离群点误匹配的影响。
图3 均方误差函数与相关熵
点到面的距离比点到点的距离更能体现点云的空间结构,具有一定的抗噪性。点到对应点曲面的距离越小,相关熵的值就越大,因此目标函数是最大化点到面的相关熵模型,其形式为:
(13)
2.3.2 MFP特征点结合相关熵的精配准流程
设点到对应点曲面的距离阈值为dm,法向量夹角阈值为θm。为了提高精配准效率,本文算法采用MFP特征点代替含大量冗余点的源点云进行精配准,具体流程为:
1)对源点云P的特征点集P′和目标点云Q构建k维树;
2)对P′中一点pi,在目标点云Q中用KD-tree搜索pi的最近点qi;在P′中用KD-tree搜索点qi的最近点为pi′;
3)若pi与pi′不为同一点,则返回2)重新选择下一个点pi+1;若pi与pi′是同一个点,则计算点pi到点qi所在曲面的距离di和两点间的法向量夹角θi;如果di 4)计算对应点对的旋转矩阵R和平移向量T,使相关熵模型的目标函数Ec(R,T)最大,将点集P′通过R和T变换; 5)重复步骤2)到4),若满足相邻两次迭代误差的差值小于阈值或迭代次数达到设定值,则停止迭代,将P用最终的R和T变换变即完成了精配准;若不满足,则继续迭代。 本文的实验平台是Intel Core i5-8300H CPU @ 2.30GHz处理器、四核八线程、8G内存的PC机。本文实验是在Windows10 64 位操作系统下,基于PCL1.8.1库和Visual Studio2017编译环境,用C++语言实现。用均方误差评价配准精度和用时间评价配准效率,均方误差表达式为: (14) 式中,pi和qi为源点云变换后与目标点云重叠部分间的点对;N为点对的个数。均方误差EMS的值越小,代表配准精度越高。 弯曲度阈值的选取对配准的精度和效率有着重要的影响,该实验采用斯坦福数据库下的Bunny模型和Dragon模型。如图4(a)所示,当弯曲度阈值δ为0.03时,配准误差最小。如图4(b)所示,随着弯曲度阈值δ的增大,配准时间逐渐减小。弯曲度阈值δ越小,特征相似的点较多,会产生较多的误匹配与较大的时间消耗。弯曲度阈值δ越大,提取的特征点越少,配准耗时越少,但较少的特征点不能产生足够的匹配点对,会导致配准误差增大。因此在兼顾配准精度和效率的前提下,Bunny和Dragon模型选取的弯曲度阈值δ为0.03。 图4 阈值对配准的影响 为了验证本文配准算法在低重叠率点云下配准的有效性,本实验采用斯坦福大学数据库的Armadillo模型、Dragon模型和Bunny模型。将本文的MFP征点结合相关熵模型的算法(MFP-CICP)与经典ICP算法、GICP[5]算法、内部形变描述子特征点(ISS)结合k维树ICP的算法(ISS-KICP)[17]、邻域特征点结合k维树ICP的算法(NFP-KICP)[18]进行比较。 从图5中可以看出,在三个模型下,本文算法与NFP-KICP均能完成配准,ICP算法、GICP算法与ISS-KICP算法在重叠度更低的Bunny模型下不能有效地完成配准。根据表1定量分析,本文算法的配准精度较ICP算法、GICP算法、ISS-KICP算法、NFP-KICP算法分别平均提高了约50.7 %、44.8 %、28.1 %、21.4 %。本文算法的配准效率比GICP算法平均提高了一个量级,与ICP算法、ISS-KICP算法、NFP-KICP算法相比平均提高了约86.7 %、19.1 %、33.6 %。本文算法所提取的多维度特征点含有多种特征信息,特征匹配时误匹配点对较少,且相关熵模型的目标函数在迭代时能有效的限制非常重叠区域误匹配点对的影响,进一步提高了配准精度。而ISS-KICP、NFP-KICP算法所提特征点的特征信息单一,容易产生误匹配,在重叠度更低的Bunny模型下配准误差较大。 表1 点云模型配准结果对比 图5 点云模型配准结果 为验证本文算法抗噪性能的优越性,本试验选取斯坦福Bunny(35947)模型,并对目标点云添加标准差σ分别为1.5 mm、2.0 mm,2.5 mm、3.0 mm的高斯噪声。 从图6中可以看出,只有ICP算法在σ为3.0 mm时陷入局部最优,配准失败,而其他算法都能有效的完成配准。根据表2定量分析,本文算法的配准精度较ICP算法、GICP算法分别提高了25.1 %~97.3 %、19.5 %~58.3 %。在σ为3.0 mm时,本文算法的配准精度较ISS-KICP算法、NFP-KICP算法分别提高了约25.4 %和20.0 %。本文算法的配准效率比ICP算法和GICP算法提高了1个量级,比ISS-KICP算法、NFP-KICP算法平均提高了约19.7 %、18.6 %。在迭代最近点时,本文算法通过双向搜索、欧式距离约束和法向量夹角特征约束剔除了大量误匹配点对,且相关熵模型的目标函数进一步降低了误匹配点对的影响,提高了在噪声环境下的配准精度。而其他算法采用均方误差形式的目标函数,受噪声影响较大,因此配准误差较大。 表2 加噪模型配准结果对比 图6 加噪模型配准结果 为验证本文算法在实际物体的点云配准中也具有较高的配准精度和配准效率,本实验采用Creaform Handy SCAN 700激光扫描仪获取的瓶子点云数据以及RIEGL VZ-400扫描仪获取的石狮子雕像点云数据。 从图7中可以看出,本文算法和ISS-KICP算法、NFP-KICP算法都能有效的完成配准,在石狮子的点云数据下,ICP算法和GICP算法配准效果不佳。从表3中定量分析可知,在瓶子的点云配准中,五种算法的配准精度相差不大。在石狮子的点云配准中,本文算法的配准精度比ICP算法、GICP算法、ISS-KICP算法、NFP-KICP算法分别提高了约67.4 %、63.1 %、48.1 %、24.5 %。本文算法的配准效率比ISS-KICP算法、NFP-KICP算法平均提高了约24.3 %、48.1 %。瓶子实物的点云数据量较小,且重叠度大,因此五种算法的配准效果相差不大。而石狮子的点云数据量大,重叠度低,非重叠区域的点会产生大量误匹配,ICP算法和GICP算法配准效果较差;ISS-KICP算法、NFP-KICP算法在精配准阶段没有降低大量误匹配点对的影响,因此配准误差较大。本文算法通过多种约束剔除了大量误匹配点对,并且相关熵模型的目标函数可进一步减少误匹配的影响,提高了配准精度。 表3 实际物体的点云配准对比 图7 实际物体的点云配准 为了提高点云配准的效率和精度,本文提出一种邻域多维度特征点结合最大相关熵模型的点云配准方法。所提取的多维度特征点具有多种特征信息,不易产生误匹配,将特征点代替含大量冗余点的源点云进行迭代提高了配准效率。通过多种约束与构建高斯核函数形式的相关熵模型,有效的限制了噪声、离群点等误匹配的干扰。实验结果表明,在重叠度较低、噪声干扰较大的点云配准中,相比于ICP算法、GICP算法、单一特征结合均方误差目标函数的ISS-KICP算法和NFP-KICP算法,本文算法具有更高的配准精度和配准效率。3 实验与分析
3.1 阈值选取实验
3.2 低重叠率点云的配准实验
3.3 加噪点云模型的配准实验
3.4 实际物体的配准实验
4 结 论