发明名称 一种基于法向量的点云自动配准方法
摘要 一种基于法向量的点云自动配准方法,处理对象为两幅及两幅以上相互间有重叠部分的三维点云数据,处理步骤为:(1)根据点云局部法向量的变化选取特征点;(2)设计一种直方图特征量对获得的每个特征点进行特征描述;(3)通过比较特征点的直方图特征向量获得初始匹配点对;(4)运用刚性距离约束条件结合RANSAC算法获取精确匹配点对,并利用四元素法计算得到初始配准参数;(5)采用改进的ICP算法对点云精确配准。按照上述步骤可对点云进行自动配准,本发明提出的特征描述简单且辨识度高,同时具有较高的鲁棒性,配准精度和速度都有一定的提高。
申请公布号 CN103236064A 申请公布日期 2013.08.07
申请号 CN201310168358.0 申请日期 2013.05.06
申请人 东南大学 发明人 达飞鹏;陶海跻;潘仁林;刘健;郭涛;陈璋雯
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 杨晓玲
主权项 1.一种基于法向量的点云自动配准方法,其特征在于:包括以下步骤:步骤1:基于法向量信息获取待匹配两个点云中的特征点集,具体步骤如下:步骤1.1:采用三维扫描仪获取带有法向量信息的多视角点云数据,且相邻视角获得的点云间有重叠部分,定义点云中重叠部分的某一点p<sub>i</sub>的特征度f<sub>i</sub>为点p<sub>i</sub>的法向量与其k个近邻点法向量夹角的算术平均值:<maths num="0001"><![CDATA[<math><mrow><msub><mi>f</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>k</mi></mfrac><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></msubsup><msub><mi>&theta;</mi><mi>ij</mi></msub></mrow></math>]]></maths>   (1)式其中某一点p<sub>i</sub>的k个近邻点是指与点p<sub>i</sub>欧氏距离最近的k个点,θ<sub>ij</sub>为点p<sub>i</sub>的法向量与其近邻点p<sub>j</sub>的法向量的夹角,k为5≤k≤20的自然数;步骤1.2:选取阈值ε<sub>1</sub>,去掉点云中f<sub>i</sub>≤ε<sub>1</sub>的平坦部分,保留f<sub>i</sub>>ε<sub>1</sub>的点,对于保留点中的任一点p<sub>m</sub>,若其满足:f(p<sub>m</sub>)=max(f(p<sub>m1</sub>),f(p<sub>m2</sub>),…,f(p<sub>mk</sub>))  (2)式则将p<sub>m</sub>作为特征点,其中f(p<sub>m1</sub>),f(p<sub>m2</sub>),…,f(p<sub>mk</sub>)为点p<sub>m</sub>的k个近邻点的特征度,其中阈值ε<sub>1</sub>取值范围为5°≤ε<sub>1</sub>≤10°;步骤1.3:利用步骤1.1和步骤1.2所述的特征点提取方法,分别对两个点云进行特征点提取,设待配准的两个点云数据分别为点集P和点集Q,其中点集Q为参考点云数据,得到待配准点云的特征点集为Pt={pt<sub>1</sub>,pt<sub>2</sub>,pt<sub>3</sub>,…pt<sub>m′</sub>},参考点云的特征点集为Qt={qt<sub>1</sub>,qt<sub>2</sub>,qt<sub>3</sub>,…qt<sub>n′</sub>},其中m′和n′分别为P和Q的特征点的个数;步骤2:建立特征点集的直方图特征描述,方法如下:步骤2.1:对于特征点集Pt中的每个点pt<sub>i</sub>,在点集P中以pt<sub>i</sub>为原点,半径为γ的球域内的点作为pt<sub>i</sub>的邻近点,标记为N(pt<sub>i</sub>),其中γ取值范围为点云的平均点间距离的5~10倍;步骤2.2:根据点pt<sub>i</sub>与邻近点N(pt<sub>i</sub>)之间的几何关系,建立三种特征描述:f<sub>1</sub>=acos&lt;n<sub>i</sub>,v<sub>k</sub>&gt;  (3)式f<sub>2</sub>=&lt;n<sub>i</sub>,(s<sub>k</sub>-pt<sub>i</sub>)&gt;  (4)式f<sub>3</sub>=||s<sub>k</sub>-pt<sub>i</sub>||  (5)式其中n<sub>i</sub>为点pt<sub>i</sub>的法向量,v<sub>k</sub>为pt<sub>i</sub>邻近某个点N(pt<sub>i</sub>)的法向量,s<sub>k</sub>为pt<sub>i</sub>某个邻近点N(pt<sub>i</sub>)的三维坐标;其中,式(3)中特征值f<sub>1</sub>是点集Pt中一点pt<sub>i</sub>的法向量与其邻近一点N(pt<sub>i</sub>)的法向量的夹角,根据夹角大小将其分成[0,20]、(20,40]、(40,60]和(60,180]4个间隔;式(4)中特征值f<sub>2</sub>是两个向量点积,其中一个是点pt<sub>i</sub>的法向量,另一个是该点pt<sub>i</sub>与其邻近一点N(pt<sub>i</sub>)之间的点间向量,根据f<sub>2</sub>是否大于0,将f<sub>2</sub>分成2个间隔;式(5)中特征值f<sub>3</sub>是一点pt<sub>i</sub>与其邻近点中一点N(pt<sub>i</sub>)间的欧氏距离,根据阈值<img file="FDA00003145796800021.GIF" wi="46" he="118" />将其分成2个间隔;根据这三个特征值的间隔分类,我们可建立一个间隔数为4×2×2=16的直方图,对应地得到一个16维的特征向量,其中γ取值范围为点云的平均点间距离的5~10倍;步骤2.3:根据所述步骤2.2中三个特征值f<sub>1</sub>、f<sub>2</sub>、f<sub>3</sub>,定义idex=k<sub>1</sub>+k<sub>2</sub>·4+k<sub>3</sub>·4·2;若特征值f<sub>1</sub>落入[0,20]间隔中则对应地将k<sub>1</sub>记为1,若特征值f<sub>1</sub>落入(20,40]间隔中则对应地将k<sub>1</sub>记为2,若特征值f<sub>1</sub>落入(40,60]间隔中则对应地将k<sub>1</sub>记为3,若特征值f<sub>1</sub>落入(60,180]间隔中则对应地将k<sub>1</sub>记为4;若特征值f<sub>2</sub>的值小于0,则将k<sub>2</sub>记为1,否则记为0;若特征值f<sub>3</sub>的值大于<img file="FDA00003145796800022.GIF" wi="76" he="118" />则将k<sub>3</sub>记为1,否则记为0;根据idex的值确定N(pt<sub>i</sub>)中一点属于直方图中的间隔位置,遍历一个点pt<sub>i</sub>的所有邻近点N(pt<sub>i</sub>),得到落入每个间隔中的邻近点N(pt<sub>i</sub>)的数量,以N(pt<sub>i</sub>)中落入每个间隔中的点数占其总数的百分比作为对应间隔的值,记此值为特征向量h1<sub>i</sub>;步骤2.4:根据所述步骤2.1至2.3,建立点集Pt和Qt中每个点的特征向量,得到点集Pt和Qt的特征向量集h1和h2;步骤3:采取特征向量间的欧氏距离作为比较准则,比较所述步骤2中获得的特征向量集h1和h2中的特征向量,在点集Qt中为点集Pt中每个点找到其初始匹配点:选取阈值ε<sub>2</sub>,特征向量的距离小于ε<sub>2</sub>时,该特征向量所对应点集Pt和Qt中的点作为初始匹配点对,记为:<maths num="0002"><![CDATA[<math><mrow><mi>Matchdots</mi><mo>=</mo><mo>{</mo><mrow><mo>(</mo><msubsup><mi>s</mi><mi>i</mi><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>s</mi><mi>i</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>|</mo><msubsup><mi>s</mi><mi>i</mi><mn>1</mn></msubsup><mo>&Element;</mo><mi>Pt</mi><mo>,</mo><msubsup><mi>s</mi><mi>i</mi><mn>2</mn></msubsup><mo>&Element;</mo><mi>Qt</mi><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2,3</mn><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mi>num</mi><mrow><mo>(</mo><mi>Matchdots</mi><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>其中num(Matchdots)是初始匹配点对的数量,ε<sub>2</sub>取0.05;步骤4:结合刚性距离约束条件,使用一种自适应的RANSAC算法获取精确匹配点对,具体步骤如下:步骤4.1:Matchdots中的任意两个点对<img file="FDA00003145796800032.GIF" wi="134" he="79" />和<img file="FDA00003145796800033.GIF" wi="172" he="84" />如果是正确的匹配点对,那么根据刚体变换的距离不变性得到:<img file="FDA00003145796800034.GIF" wi="490" he="86" />其中dist表示两点间的距离;选取ε<sub>3</sub>>0,对每个点对<img file="FDA00003145796800035.GIF" wi="424" he="85" />计算Matchdots中除点对<img file="FDA00003145796800036.GIF" wi="134" he="80" />以外与该点对符合刚性距离约束的点对的数目num<sub>i</sub>,若Matchdots中一个点对<img file="FDA00003145796800037.GIF" wi="146" he="93" />满足下式:<maths num="0003"><![CDATA[<math><mrow><mfrac><mrow><mo>|</mo><mi>dist</mi><mrow><mo>(</mo><msubsup><mi>s</mi><mi>i</mi><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>s</mi><mi>j</mi><mn>1</mn></msubsup><mo>)</mo></mrow><mo>-</mo><mi>dist</mi><mrow><mo>(</mo><msubsup><mi>s</mi><mi>i</mi><mn>2</mn></msubsup><mo>,</mo><msubsup><mi>s</mi><mi>j</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>|</mo></mrow><mrow><mi>dist</mi><mrow><mo>(</mo><msubsup><mi>s</mi><mi>i</mi><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>s</mi><mi>j</mi><mn>1</mn></msubsup><mo>)</mo></mrow><mo>+</mo><mi>dist</mi><mrow><mo>(</mo><msubsup><mi>s</mi><mi>i</mi><mn>2</mn></msubsup><mo>,</mo><msubsup><mi>s</mi><mi>j</mi><mn>2</mn></msubsup><mo>)</mo></mrow></mrow></mfrac><mo>&lt;</mo><msub><mi>&epsiv;</mi><mn>3</mn></msub></mrow></math>]]></maths>   (6)式则将点对<img file="FDA00003145796800039.GIF" wi="158" he="87" />记为相对于点对<img file="FDA000031457968000310.GIF" wi="146" he="86" />的符合距离约束的点对,同时将<img file="FDA000031457968000311.GIF" wi="154" he="86" />的num<sub>i</sub>值加1,其中ε<sub>3</sub>取0.02;步骤4.2:对Matchdots中每个点对根据所述步骤4.1计算num<sub>i</sub>值,然后按照num<sub>i</sub>值从大到小对Matchdots中点对进行排序,选取前N个点对,N为N≤num(Matchdots)的自然数;使用RANSAC算法对这N个点对检验是否为正确匹配点对,具体检验方法为:步骤4.2.1:从这N个点对中随机选取3个点对作为一个样本;步骤4.2.2:假设这3个点对为正确匹配点对,计算刚体变换矩阵T;步骤4.2.3:判断其余N-3个点对在此刚体变换矩阵T下是否为正确匹配:<img file="FDA00003145796800041.GIF" wi="483" he="78" />如果<img file="FDA00003145796800042.GIF" wi="246" he="84" />小于预定义的阈值ε<sub>4</sub>,则认为<img file="FDA00003145796800043.GIF" wi="144" he="84" />是正确的匹配点对,记为内点;如果<img file="FDA00003145796800044.GIF" wi="238" he="83" />大于等于预定义的阈值ε<sub>4</sub>,则认为<img file="FDA00003145796800045.GIF" wi="142" he="85" />是错误的匹配点对,记为外点;所有内点组成本次采样的一致集;其中,ε<sub>4</sub>取值范围为点云的平均点间距离的2倍;步骤4.2.4:重复所述步骤4.2.1至步骤4.2.3,直到N个点中所有3点组合的样本都遍历了,循环次数达到采样次数上限后,将内点数目最多的刚体变换矩阵作为正确的刚体变换矩阵,据此变换矩阵求得初始匹配点对中的内点作为最终的精确匹配点对,记为:Matchdots1={(m<sub>i</sub>,m′<sub>i</sub>)|m<sub>i</sub>∈P,m′<sub>i</sub>∈Q,i=1,2,3…n}其中n为精确匹配点对的数目;步骤5:利用四元素法计算初始配准参数,具体步骤如下:步骤5.1:计算点集{m<sub>i</sub>|m<sub>i</sub>∈P,i=1,2,...,n}的质心μ和{m′<sub>i</sub>|m′<sub>i</sub>∈Q,i=1,2,...,n}的质心μ′:<maths num="0004"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><mi>&mu;</mi><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>m</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msup><mi>&mu;</mi><mo>&prime;</mo></msup><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><msup><mi>m</mi><mo>&prime;</mo></msup><mi>i</mi></msub></mtd></mtr></mtable></mfenced></math>]]></maths>   (7)式式(7)中,n为精确匹配点对的数目;步骤5.2:将点集{m<sub>i</sub>|m<sub>i</sub>∈P,i=1,2,...,n}和{m′<sub>i</sub>|m′<sub>i</sub>∈Q,i=1,2,...,n}做相对于质心μ、μ′的平移,设平移后的点集分别为{h<sub>i</sub>}和{h′<sub>i</sub>}:<maths num="0005"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>h</mi><mi>i</mi></msub><mo>=</mo><msub><mi>m</mi><mi>i</mi></msub><mo>-</mo><mi>&mu;</mi></mtd></mtr><mtr><mtd><msub><msup><mi>h</mi><mo>&prime;</mo></msup><mi>i</mi></msub><mo>=</mo><msub><msup><mi>m</mi><mo>&prime;</mo></msup><mi>i</mi></msub><mo>-</mo><msup><mi>&mu;</mi><mo>&prime;</mo></msup></mtd></mtr></mtable></mfenced></math>]]></maths>   (8)式步骤5.3:根据平移后的所得点集{h<sub>i</sub>}和{h′<sub>i</sub>}计算相关矩阵K:<maths num="0006"><![CDATA[<math><mrow><mi>K</mi><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>h</mi><mi>i</mi></msub><msup><mrow><mo>(</mo><msub><msup><mi>h</mi><mo>&prime;</mo></msup><mi>i</mi></msub><mo>)</mo></mrow><mi>T</mi></msup></mrow></math>]]></maths>   (9)式式(9)中,n为精确匹配点对的数目;步骤5.4:由相关矩阵K中各元素K<sub>ij</sub>(i,j=1,2,3,4)构造出四维对称矩阵K<sub>a</sub>:<maths num="0007"><![CDATA[<math><mrow><msub><mi>K</mi><mi>a</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>K</mi><mn>11</mn></msub><mo>+</mo><msub><mi>K</mi><mn>22</mn></msub><mo>+</mo><msub><mi>K</mi><mn>33</mn></msub></mtd><mtd><msub><mi>K</mi><mn>32</mn></msub><mo>-</mo><msub><mi>K</mi><mn>23</mn></msub></mtd><mtd><msub><mi>K</mi><mn>13</mn></msub><mo>-</mo><msub><mi>K</mi><mn>31</mn></msub></mtd><mtd><msub><mi>K</mi><mn>21</mn></msub><mo>-</mo><msub><mi>K</mi><mn>12</mn></msub></mtd></mtr><mtr><mtd><msub><mi>K</mi><mn>32</mn></msub><mo>-</mo><msub><mi>K</mi><mn>23</mn></msub></mtd><mtd><msub><mi>K</mi><mn>11</mn></msub><mo>-</mo><msub><mi>K</mi><mn>22</mn></msub><mo>-</mo><msub><mi>K</mi><mn>33</mn></msub></mtd><mtd><msub><mi>K</mi><mn>12</mn></msub><mo>+</mo><msub><mi>K</mi><mn>21</mn></msub></mtd><mtd><msub><mi>K</mi><mn>31</mn></msub><mo>+</mo><msub><mi>K</mi><mn>13</mn></msub></mtd></mtr><mtr><mtd><msub><mi>K</mi><mn>13</mn></msub><mo>-</mo><msub><mi>K</mi><mn>31</mn></msub></mtd><mtd><msub><mi>K</mi><mn>12</mn></msub><mo>+</mo><msub><mi>K</mi><mn>21</mn></msub></mtd><mtd><msub><mrow><mo>-</mo><mi>K</mi></mrow><mn>11</mn></msub><mo>+</mo><msub><mi>K</mi><mn>22</mn></msub><mo>-</mo><msub><mi>K</mi><mn>33</mn></msub></mtd><mtd><msub><mi>K</mi><mn>23</mn></msub><mo>+</mo><msub><mi>K</mi><mn>32</mn></msub></mtd></mtr><mtr><mtd><msub><mi>K</mi><mn>21</mn></msub><mo>-</mo><msub><mi>K</mi><mn>12</mn></msub></mtd><mtd><msub><mi>K</mi><mn>31</mn></msub><mo>+</mo><msub><mi>K</mi><mn>13</mn></msub></mtd><mtd><msub><mi>K</mi><mn>23</mn></msub><mo>+</mo><msub><mi>K</mi><mn>32</mn></msub></mtd><mtd><msub><mrow><mo>-</mo><mi>K</mi></mrow><mn>11</mn></msub><mo>-</mo><msub><mi>K</mi><mn>22</mn></msub><mo>+</mo><msub><mi>K</mi><mn>33</mn></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>   (10)式步骤5.5:计算K<sub>a</sub>的最大特征根所对应的单位特征向量q:<maths num="0008"><![CDATA[<math><mrow><mi>q</mi><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>q</mi><mn>0</mn></msub></mtd><mtd><msub><mi>q</mi><mn>1</mn></msub></mtd><mtd><msub><mi>q</mi><mn>2</mn></msub></mtd><mtd><msub><mi>q</mi><mn>3</mn></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>   (11)式步骤5.6:由步骤5.5中计算所得单位特征向量q,计算旋转矩阵R:<maths num="0009"><![CDATA[<math><mrow><mi>R</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>q</mi><mn>0</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>q</mi><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>3</mn><mn>2</mn></msubsup></mtd><mtd><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>-</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd><mtd><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>+</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>+</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>)</mo></mrow></mtd><mtd><msubsup><mi>q</mi><mn>0</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>q</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>3</mn><mn>2</mn></msubsup></mtd><mtd><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>2</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>-</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>-</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd><mtd><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>2</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>+</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd><mtd><msubsup><mi>q</mi><mn>0</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>q</mi><mn>3</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>2</mn><mn>2</mn></msubsup></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>   (12)式步骤5.7:由步骤5.6计算所得旋转矩阵R,求解平移矢量T:T=μ′-Rμ  (13)式步骤6:采用改进的ICP算法对点云精确配准,具体步骤如下:步骤6.1:利用步骤5中获得的配准参数R和T,根据式(14)将待配准点云P中的每个点p<sub>i</sub>变换到参考点云Q所在的坐标系下得到点p<sub>0i</sub>,将转换后得到的初始配准后的点云记为P<sub>0</sub>;其中:p<sub>0i</sub>=R·p<sub>i</sub>+T  (14)式步骤6.2:令目标点集为P<sub>m</sub>,参考点集为Q,取m=0,利用改进的ICP算法进行精确配准:步骤6.2.1:计算最近点:对目标点集P<sub>m</sub>中任一点p<sub>mi</sub>,计算该点与参考点集Q中每个点间的欧氏距离,对于点集Q中与其欧氏距离最小的点q<sub>j</sub>,选取阈值σ,若:两者间欧氏距离||p<sub>mi</sub>,q<sub>j</sub>||<sup>2</sup><σ,则将p<sub>mi</sub>作为内点并记为<img file="FDA00003145796800054.GIF" wi="96" he="78" />并将q<sub>j</sub>作为其对应匹配点并记为<img file="FDA00003145796800055.GIF" wi="86" he="76" />这样便得到一组内点匹配点对<img file="FDA00003145796800056.GIF" wi="211" he="79" />否则将其作为外点去除;其中当m=0时,阈值σ取为点云Q点间平均距离的3倍;对目标点集P<sub>m</sub>中所有点作以上操作,最终得到内点匹配点集,记为:<maths num="0010"><![CDATA[<math><mrow><msup><mi>M</mi><mi>m</mi></msup><mo>=</mo><mo>{</mo><mrow><mo>(</mo><msubsup><mi>p</mi><mi>i</mi><mi>m</mi></msubsup><mo>,</mo><msubsup><mi>q</mi><mi>i</mi><mi>m</mi></msubsup><mo>)</mo></mrow><mo>|</mo><msubsup><mi>p</mi><mi>i</mi><mi>m</mi></msubsup><mo>&Element;</mo><msub><mi>P</mi><mi>m</mi></msub><mo>,</mo><msubsup><mi>q</mi><mi>i</mi><mi>m</mi></msubsup><mo>&Element;</mo><mi>Q</mi><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2,3</mn><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><mi>n</mi><mi>p</mi></msub><mo>}</mo><mo>,</mo></mrow></math>]]></maths>其中n<sub>p</sub>为点对数目;步骤6.2.2:利用步骤6.2.1中获得内点匹配点集来计算配准参数:计算使得式(15)中err取得最小时的旋转矩阵R<sub>m</sub>和平移矩阵T<sub>m</sub>作为新的配准参数:<maths num="0011"><![CDATA[<math><mrow><mi>err</mi><mo>=</mo><mfrac><mn>1</mn><msub><mi>n</mi><mi>p</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>p</mi></msub></munderover><msup><mrow><mo>|</mo><mo>|</mo><msubsup><mi>q</mi><mi>i</mi><mi>m</mi></msubsup><mo>-</mo><mrow><mo>(</mo><msub><mi>R</mi><mi>m</mi></msub><msubsup><mi>p</mi><mi>i</mi><mi>m</mi></msubsup><mo>+</mo><msub><mi>T</mi><mi>m</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup></mrow></math>]]></maths>   (15)式其中err为本次配准的误差,n<sub>p</sub>为点对数目;步骤6.2.3:将计算得到的配准参数用于点集P<sub>m</sub>中的每个点p<sub>mi</sub>得到新的点集P′<maths num="0012"><![CDATA[<math><mrow><msubsup><mi>p</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><msub><mi>R</mi><mi>m</mi></msub><msub><mi>p</mi><mi>mi</mi></msub><mo>+</mo><msub><mi>T</mi><mi>m</mi></msub></mrow></math>]]></maths>   (16)式其中,<img file="FDA00003145796800064.GIF" wi="56" he="79" />为点集P′中的点;步骤6.2.4:检验迭代终止的条件:设定阈值τ=0.00001,当满足:σ-err<τ,则迭代过程结束;否则令m=m+1,σ=err,P<sub>m</sub>=P′转步骤6.2.1;迭代过程结束后得到的点集P′即为最终的精确配准结果。
地址 211103 江苏省南京市江宁区润发路5号