[发明专利]一种基于法向量的点云自动配准方法有效
申请号: | 201310168358.0 | 申请日: | 2013-05-06 |
公开(公告)号: | CN103236064A | 公开(公告)日: | 2013-08-07 |
发明(设计)人: | 达飞鹏;陶海跻;潘仁林;刘健;郭涛;陈璋雯 | 申请(专利权)人: | 东南大学 |
主分类号: | G06T7/00 | 分类号: | G06T7/00 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 杨晓玲 |
地址: | 211103 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于法向量的点云自动配准方法,处理对象为两幅及两幅以上相互间有重叠部分的三维点云数据,处理步骤为:(1)根据点云局部法向量的变化选取特征点;(2)设计一种直方图特征量对获得的每个特征点进行特征描述;(3)通过比较特征点的直方图特征向量获得初始匹配点对;(4)运用刚性距离约束条件结合RANSAC算法获取精确匹配点对,并利用四元素法计算得到初始配准参数;(5)采用改进的ICP算法对点云精确配准。按照上述步骤可对点云进行自动配准,本发明提出的特征描述简单且辨识度高,同时具有较高的鲁棒性,配准精度和速度都有一定的提高。 | ||
搜索关键词: | 一种 基于 向量 自动 方法 | ||
【主权项】:
1.一种基于法向量的点云自动配准方法,其特征在于:包括以下步骤:步骤1:基于法向量信息获取待匹配两个点云中的特征点集,具体步骤如下:步骤1.1:采用三维扫描仪获取带有法向量信息的多视角点云数据,且相邻视角获得的点云间有重叠部分,定义点云中重叠部分的某一点pi的特征度fi为点pi的法向量与其k个近邻点法向量夹角的算术平均值:f i = 1 k Σ j = 1 k θ ij ]]> (1)式其中某一点pi的k个近邻点是指与点pi欧氏距离最近的k个点,θij为点pi的法向量与其近邻点pj的法向量的夹角,k为5≤k≤20的自然数;步骤1.2:选取阈值ε1,去掉点云中fi≤ε1的平坦部分,保留fi>ε1的点,对于保留点中的任一点pm,若其满足:f(pm)=max(f(pm1),f(pm2),…,f(pmk)) (2)式则将pm作为特征点,其中f(pm1),f(pm2),…,f(pmk)为点pm的k个近邻点的特征度,其中阈值ε1取值范围为5°≤ε1≤10°;步骤1.3:利用步骤1.1和步骤1.2所述的特征点提取方法,分别对两个点云进行特征点提取,设待配准的两个点云数据分别为点集P和点集Q,其中点集Q为参考点云数据,得到待配准点云的特征点集为Pt={pt1,pt2,pt3,…ptm′},参考点云的特征点集为Qt={qt1,qt2,qt3,…qtn′},其中m′和n′分别为P和Q的特征点的个数;步骤2:建立特征点集的直方图特征描述,方法如下:步骤2.1:对于特征点集Pt中的每个点pti,在点集P中以pti为原点,半径为γ的球域内的点作为pti的邻近点,标记为N(pti),其中γ取值范围为点云的平均点间距离的5~10倍;步骤2.2:根据点pti与邻近点N(pti)之间的几何关系,建立三种特征描述:f1=acos<ni,vk> (3)式f2=<ni,(sk-pti)> (4)式f3=||sk-pti|| (5)式其中ni为点pti的法向量,vk为pti邻近某个点N(pti)的法向量,sk为pti某个邻近点N(pti)的三维坐标;其中,式(3)中特征值f1是点集Pt中一点pti的法向量与其邻近一点N(pti)的法向量的夹角,根据夹角大小将其分成[0,20]、(20,40]、(40,60]和(60,180]4个间隔;式(4)中特征值f2是两个向量点积,其中一个是点pti的法向量,另一个是该点pti与其邻近一点N(pti)之间的点间向量,根据f2是否大于0,将f2分成2个间隔;式(5)中特征值f3是一点pti与其邻近点中一点N(pti)间的欧氏距离,根据阈值将其分成2个间隔;根据这三个特征值的间隔分类,我们可建立一个间隔数为4×2×2=16的直方图,对应地得到一个16维的特征向量,其中γ取值范围为点云的平均点间距离的5~10倍;步骤2.3:根据所述步骤2.2中三个特征值f1、f2、f3,定义idex=k1+k2·4+k3·4·2;若特征值f1落入[0,20]间隔中则对应地将k1记为1,若特征值f1落入(20,40]间隔中则对应地将k1记为2,若特征值f1落入(40,60]间隔中则对应地将k1记为3,若特征值f1落入(60,180]间隔中则对应地将k1记为4;若特征值f2的值小于0,则将k2记为1,否则记为0;若特征值f3的值大于则将k3记为1,否则记为0;根据idex的值确定N(pti)中一点属于直方图中的间隔位置,遍历一个点pti的所有邻近点N(pti),得到落入每个间隔中的邻近点N(pti)的数量,以N(pti)中落入每个间隔中的点数占其总数的百分比作为对应间隔的值,记此值为特征向量h1i;步骤2.4:根据所述步骤2.1至2.3,建立点集Pt和Qt中每个点的特征向量,得到点集Pt和Qt的特征向量集h1和h2;步骤3:采取特征向量间的欧氏距离作为比较准则,比较所述步骤2中获得的特征向量集h1和h2中的特征向量,在点集Qt中为点集Pt中每个点找到其初始匹配点:选取阈值ε2,特征向量的距离小于ε2时,该特征向量所对应点集Pt和Qt中的点作为初始匹配点对,记为:Matchdots = { ( s i 1 , s i 2 ) | s i 1 ∈ Pt , s i 2 ∈ Qt , i = 1,2,3 · · · num ( Matchdots ) } ]]> 其中num(Matchdots)是初始匹配点对的数量,ε2取0.05;步骤4:结合刚性距离约束条件,使用一种自适应的RANSAC算法获取精确匹配点对,具体步骤如下:步骤4.1:Matchdots中的任意两个点对和如果是正确的匹配点对,那么根据刚体变换的距离不变性得到:其中dist表示两点间的距离;选取ε3>0,对每个点对计算Matchdots中除点对以外与该点对符合刚性距离约束的点对的数目numi,若Matchdots中一个点对满足下式:| dist ( s i 1 , s j 1 ) - dist ( s i 2 , s j 2 ) | dist ( s i 1 , s j 1 ) + dist ( s i 2 , s j 2 ) < ϵ 3 ]]> (6)式则将点对记为相对于点对的符合距离约束的点对,同时将的numi值加1,其中ε3取0.02;步骤4.2:对Matchdots中每个点对根据所述步骤4.1计算numi值,然后按照numi值从大到小对Matchdots中点对进行排序,选取前N个点对,N为N≤num(Matchdots)的自然数;使用RANSAC算法对这N个点对检验是否为正确匹配点对,具体检验方法为:步骤4.2.1:从这N个点对中随机选取3个点对作为一个样本;步骤4.2.2:假设这3个点对为正确匹配点对,计算刚体变换矩阵T;步骤4.2.3:判断其余N-3个点对在此刚体变换矩阵T下是否为正确匹配:如果小于预定义的阈值ε4,则认为是正确的匹配点对,记为内点;如果大于等于预定义的阈值ε4,则认为是错误的匹配点对,记为外点;所有内点组成本次采样的一致集;其中,ε4取值范围为点云的平均点间距离的2倍;步骤4.2.4:重复所述步骤4.2.1至步骤4.2.3,直到N个点中所有3点组合的样本都遍历了,循环次数达到采样次数上限后,将内点数目最多的刚体变换矩阵作为正确的刚体变换矩阵,据此变换矩阵求得初始匹配点对中的内点作为最终的精确匹配点对,记为:Matchdots1={(mi,m′i)|mi∈P,m′i∈Q,i=1,2,3…n}其中n为精确匹配点对的数目;步骤5:利用四元素法计算初始配准参数,具体步骤如下:步骤5.1:计算点集{mi|mi∈P,i=1,2,...,n}的质心μ和{m′i|m′i∈Q,i=1,2,...,n}的质心μ′:μ = 1 n Σ i = 1 n m i μ ′ = 1 n Σ i = 1 n m ′ i ]]> (7)式式(7)中,n为精确匹配点对的数目;步骤5.2:将点集{mi|mi∈P,i=1,2,...,n}和{m′i|m′i∈Q,i=1,2,...,n}做相对于质心μ、μ′的平移,设平移后的点集分别为{hi}和{h′i}:h i = m i - μ h ′ i = m ′ i - μ ′ ]]> (8)式步骤5.3:根据平移后的所得点集{hi}和{h′i}计算相关矩阵K:K = 1 n Σ i = 1 n h i ( h ′ i ) T ]]> (9)式式(9)中,n为精确匹配点对的数目;步骤5.4:由相关矩阵K中各元素Kij(i,j=1,2,3,4)构造出四维对称矩阵Ka:K a = K 11 + K 22 + K 33 K 32 - K 23 K 13 - K 31 K 21 - K 12 K 32 - K 23 K 11 - K 22 - K 33 K 12 + K 21 K 31 + K 13 K 13 - K 31 K 12 + K 21 - K 11 + K 22 - K 33 K 23 + K 32 K 21 - K 12 K 31 + K 13 K 23 + K 32 - K 11 - K 22 + K 33 ]]> (10)式步骤5.5:计算Ka的最大特征根所对应的单位特征向量q:q = q 0 q 1 q 2 q 3 T ]]> (11)式步骤5.6:由步骤5.5中计算所得单位特征向量q,计算旋转矩阵R:R = q 0 2 + q 1 2 - q 2 2 - q 3 2 2 ( q 1 q 2 - q 0 q 3 ) 2 ( q 1 q 3 + q 0 q 2 ) 2 ( q 1 q 2 + q 0 q 3 ) q 0 2 + q 2 2 - q 1 2 - q 3 2 2 ( q 2 q 3 - q 0 q 1 ) 2 ( q 1 q 3 - q 0 q 2 ) 2 ( q 2 q 3 + q 0 q 1 ) q 0 2 + q 3 2 - q 1 2 - q 2 2 ]]> (12)式步骤5.7:由步骤5.6计算所得旋转矩阵R,求解平移矢量T:T=μ′-Rμ (13)式步骤6:采用改进的ICP算法对点云精确配准,具体步骤如下:步骤6.1:利用步骤5中获得的配准参数R和T,根据式(14)将待配准点云P中的每个点pi变换到参考点云Q所在的坐标系下得到点p0i,将转换后得到的初始配准后的点云记为P0;其中:p0i=R·pi+T (14)式步骤6.2:令目标点集为Pm,参考点集为Q,取m=0,利用改进的ICP算法进行精确配准:步骤6.2.1:计算最近点:对目标点集Pm中任一点pmi,计算该点与参考点集Q中每个点间的欧氏距离,对于点集Q中与其欧氏距离最小的点qj,选取阈值σ,若:两者间欧氏距离||pmi,qj||2<σ,则将pmi作为内点并记为并将qj作为其对应匹配点并记为这样便得到一组内点匹配点对否则将其作为外点去除;其中当m=0时,阈值σ取为点云Q点间平均距离的3倍;对目标点集Pm中所有点作以上操作,最终得到内点匹配点集,记为:M m = { ( p i m , q i m ) | p i m ∈ P m , q i m ∈ Q , i = 1,2,3 · · · n p } , ]]> 其中np为点对数目;步骤6.2.2:利用步骤6.2.1中获得内点匹配点集来计算配准参数:计算使得式(15)中err取得最小时的旋转矩阵Rm和平移矩阵Tm作为新的配准参数:err = 1 n p Σ i = 1 n p | | q i m - ( R m p i m + T m ) | | 2 ]]> (15)式其中err为本次配准的误差,np为点对数目;步骤6.2.3:将计算得到的配准参数用于点集Pm中的每个点pmi得到新的点集P′p i ′ = R m p mi + T m ]]> (16)式其中,为点集P′中的点;步骤6.2.4:检验迭代终止的条件:设定阈值τ=0.00001,当满足:σ-err<τ,则迭代过程结束;否则令m=m+1,σ=err,Pm=P′转步骤6.2.1;迭代过程结束后得到的点集P′即为最终的精确配准结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310168358.0/,转载请声明来源钻瓜专利网。