基于迭代最少点和遗传算法的点云粗配准算法
Point Cloud Coarse Registration Algorithm Based on Iterative Minimum Point and Genetic Algorithm
DOI: 10.12677/SEA.2022.111005, PDF, HTML, XML, 下载: 324  浏览: 633 
作者: 李思远, 林梦琪:上海工程技术大学,电子电气工程学院,上海
关键词: 点云配准遗传算法迭代最少点三维重构Point Cloud Registration Genetic Algorithm Iterative Minimum Point Three-Dimensional Reconstruction
摘要: 为了兼顾点云配准过程的时间和精度,提出了基于迭代最少点和遗传算法的点云粗配准算法。将源点云和目标点云的总点云进行下采样,以采样后总点云的数量作为遗传算法的目标函数,采用遗传算子指导解的搜索方向,通过新种群的迭代使下采样总点云数量最少,快速得到点云粗配准的结果。通过对6组不同的点云,以及采用多种算法进行对比试验,结果表明,该算法在保证配准精度的同时,耗时稳定在24 s左右,且对待配准点云模型无特殊要求,鲁棒性较强。
Abstract: To balance the time and precision of the point cloud registration process, a point cloud coarse registration algorithm based on the iterative minimum point and genetic algorithm is proposed. The total point clouds of the source point clouds and target point clouds are down sampled, with the number of the total point clouds after sampled as the target function of the genetic algorithm, the genetic operator guides the search direction of the solution, the total number of sampled point clouds minimizes through the iteration of the new population, and the results of point cloud coarse registration are obtained quickly. By comparing the tests of six different point clouds and using various algorithms, the results show that the proposed algorithm takes about 24 seconds stably while ensuring the registration accuracy, and treats the registration point cloud model without special requirements and has strong robustness.
文章引用:李思远, 林梦琪. 基于迭代最少点和遗传算法的点云粗配准算法[J]. 软件工程与应用, 2022, 11(1): 32-40. https://doi.org/10.12677/SEA.2022.111005

1. 引言

近年来,在医疗 [1] 、工业 [2] 、文物修复 [3] [4] 、逆向工程 [5] 等各个领域中,三维重建都有着广泛的应用。生产环境和扫描设备的限制,得到的点云数据大多都存在不完整的情况,需要将多个点云进行配准,来完善物体的点云数据。一个完善的三维扫描系统除了滤波 [6] 、分割 [7] 以外,关键就在于如何快速、高效地寻找到最优的旋转平移矩阵。

目前,国内外在点云配准上取得了一定进展,比较经典的是Besl [8] 等提出的迭代最近点(Iterative Closest Point, ICP)算法,该算法基于计算欧氏距离来获得两个点云之间的对应点对,并针对对应点计算旋转平移矩阵,基于变换后的目标点云和源点云的误差函数,进行迭代的过程,直到两者误差小于所设阈值。ICP算法的精度较好,且原理较为简单,但其对两点云的初始位置要求较高,否则目标函数极易陷入局部最优。为了避免这种情况,一般采用粗配准算法搭配ICP算法来共同对点云进行配准。实现点云粗配准的重要方法之一是采用特征进行匹配。Rusu [9] [10] 等人提出了点特征直方图(Point Feature Histograms, PFH),通过计算点云和邻域点云之间的法向量等特征来估计点云的表面情况;随后又作出改进,简化了特征的提取,优化了配准时间,提出了快速点特征直方图(Fast Point Feature Histograms, FPFH);Tangelder [11] 等提出了三维形状上下文(3D Shape Context, 3DSC),针对匹配向量的值来构建不同曲面的点之间的相对应的关系,用于描述曲面上指定点及邻域的形状特征;刘鸣 [12] 提出了一种利用独立成分分析(ICA)的点云配准方法;唐志荣 [13] 提出一种采用高斯混合模型对点云进行拟合,并通过最大期望算法(EMA)求解出正交因子模型的因子载荷矩阵;利用因子载荷矩阵完成对点云的配准;李宇翔 [14] 提出了一种基于内部形态描述子(ISS)及方向直方图描述子(SHOT)特征的点云配准算法;近些年也提出了一些启发式搜索算法在点云配准上的应用,马卫 [15] 通过布谷鸟算法和莱维飞行全局搜索更新策略对点云进行初始配准,得到空间变换矩阵参数;陈斯祺 [16] 采用了基于天牛须算法改进的粒子群算法,以点云分布熵为寻优目标,寻找最优空间变换矩阵的点云粗配准;孙殿柱 [17] 提出一种将遗传算法和O’Rourke算法相融合的最小包围盒求解算法,以O’Rourke算法中的体积函数作为遗传算法的目标函数来进行搜索迭代。

针对现有算法存在的精度或者时间上的问题,本文提出了迭代最少点算法(Iterative Minimum Point, IMP),并采用遗传算法(Genetic Algorithm, GA),以IMP为目标函数进行迭代,构建GA-IMP算法,快速完成粗配准过程,再配合ICP算法完成配准,保证从时间和精度两方面都取得较好的结果。

2. 点云配准算法

点云配准的实质是在源点云S和目标点云D中寻找到最优的旋转平移矩阵,其中 D = R S + t R 为旋转矩阵, t 为平移向量。本文算法由迭代最少点算法和遗传算法两部分构成,共同完成对点云的粗配准,再搭配ICP算法完成精配准。

2.1. 迭代最少点算法

通过体素栅格对点云进行下采样滤波,用体素中所有点的质心来近似显示体素中其他点,在精简点云的同时可以保留点云的几何结构。

设一个体素栅格内包围的点共有n个, p i = { x i y i z i } , i = 1 , 2 , 3 , , n ,则其重心c满足

c = 1 n i = 1 n p i (1)

滤波结果用一个质心点代替体素栅格内的n个点,因此体素栅格包围的点越多,则去除的点越多。

设源点云的点的数量为 N S ,目标点云D的点的数量为 N D ,源点云S和目标点云D的总点云为T,总点云T的点的数量为 N T ,且 N T = N S + N D ,体素栅格的边长为l。

图1所示,点云 S , D , T 经过边长为的l体素栅格滤波后,形成了新点云 F S , F D , F T ,点的数量分别为 N F S , N F D , N F T

Figure 1. Point cloud before and after filtering

图1. 滤波前后点云

当下采样体素栅格不变时,滤波后的源点云数量 N F S 和目标点云数量 N F D 是保持恒定的,唯一变化的是随着源点云的移动和目标点云的相交情况而变化的总点云数量 N F T 。在一个体素栅格内的所有点都会近似为一个质心点,所以相交部分越多,则滤波后的总点云数量 N F T 越少。

设迭代过程中源点云和目标点云的实际相对应点的数量为,当可得:

N F S + N F D N N F T N F S + N F D (2)

当且仅当点云S和D无相交部分,且S所有关于D的对应点的距离大于体素栅格边长l时, N F T 取最大值, max ( N F T ) = N F S + N F D

当且仅当源点云S和目标点云D的对应点完全重合,或者S所有关于D的对应点的距离小于体素栅格边长l时, N F T 取最小值, min ( N F T ) = N F S + N F D N

特别的,当源点云S和目标点云D为同一模型时,有 N = N F S = N F D ,因此当 N F T = N F D 时,源点云S和目标点云D即完全配准。

实验验证:

采用Bunny完整点云模型,体素栅格边长为0.08进行实验。源点云和目标点云的初始位置完全不相交。

在源点云S向目标点云D移动的过程中,选取其中的6个阶段如图2所示,下采样滤波后的点云为 F T 1 , F T 2 , F T 3 , F T 4 , F T 5 , F T 6

Figure 2. Point cloud in registration process

图2. 配准过程中的点云

可以清楚的看到,随着配准的逼近,两点云重合的部分越来越多,因此滤波对总点云数量的影响变大,滤波前后各点云点的数量如表1所示。

Table 1. Number of points during the registration process

表1. 配准过程中点的数量

通过实验,证明了在配准过程中,随着重合部分的增大,滤波后的总点云数量在减少,两者成负相关,因此用滤波后总点云的数量来表征配准的有效程度是可行的。

2.2. 遗传算法

遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解,算法流程如图3所示。

Figure 3. Flow chart to the genetic algorithm

图3. 遗传算法流程图

2.2.1. 染色体编码

待求的旋转矩阵一共有六个参数,因此染色体有六个基因,分别是绕 X , Y , Z 轴旋转的角度 α , β , γ 和平移的距离 a , b , c

α , β , γ 的取值范围为 [ 0 , 2 π ] a , b , c 的取值范围为 [ x min , x max ] [ y min , y max ] [ z min , z max ] ,其中 x min , x max , y min , y max , z min , z max 分别为点云D在 X , Y , Z 轴方向上的最小值和最大值。各基因分别用10位二进制来表示,可以表示的范围在[0, 1024), α , β , γ 的精度可以达到0.351˚, a , b , c 的精度为 ( x max x min ) / 1024 ( y max y min ) / 1024 ( z max z min ) / 1024

在每次迭代前通过对染色体解码,计算出旋转矩阵 α , β , γ a , b , c 的值,通过公式3计算得到旋转平移矩阵 R

R = [ cos ( β ) cos ( γ ) cos ( α ) sin ( γ ) + sin ( α ) sin ( β ) cos ( γ ) sin ( α ) sin ( γ ) + cos ( α ) sin ( β ) cos ( γ ) a cos ( β ) sin ( γ ) cos ( α ) cos ( γ ) + sin ( α ) sin ( β ) sin ( γ ) sin ( α ) cos ( γ ) + cos ( α ) sin ( β ) sin ( γ ) b sin ( β ) sin ( α ) cos ( β ) cos ( α ) cos ( β ) c 0 0 0 1 ] (3)

2.2.2. 适应度函数

由2.1节可知,遗传算法种选择的目标函数为在迭代过程中的总点云T滤波后的点云数量 N F T

为了便于遗传算法的选择,首先计算在相同体素栅格下目标点云D滤波后的点云数量 N F D ,然后每次迭代计算 N F T N F D 的差值,使得变化幅度相对变大,更有利于子代的选择。

步骤如下:

1) 通过对染色体解码,得到参数 α , β , γ a , b , c ,并计算得到旋转平移矩阵 R

2) 计算变换后的源点云:

S new = R S (4)

3) 计算迭代一次的总点云:

T = S new + D (5)

4) 通过滤波函数 F ( x ) 对总点云T和目标点云D进行滤波并作差,得到目标函数:

F i t n e s s ( α , β , γ , a , b , c ) = F ( T ) F ( D ) (6)

3. 实验与分析

3.1. 迭代次数

遗传算法迭代次数太多会增大配准时间,次数太少则会影响配准效果,因此通过四次重复实验来确定迭代次数,实验对象同样为1.1节所采用的Bunny完整点云模型。遗传算法交叉概率,变异概率,种群数量为80。

实验结果如图4所示,点云数量在迭代30次之前已趋于稳定,因此将迭代次数设为30次较为合理。

Figure 4. Iterative process of genetic algorithm

图4. 遗传算法迭代过程

3.2. 对比试验

采用本文所提出的GA-IMP算法配合ICP精配准算法对公共点云Horse,Dragon,Happy Buddha和实验室采集的私有点云Cochlea,以及公共点云库的Bun000和Bun045单面点云进行试验。

为了评价本文算法的耗时和精度,加入了经典的PFH算法、FPFH算法和3DSC算法分别搭配ICP精配准算法完成配准对比实验。

结果如图5图6图7图8图9以及表2所示。

Figure 5. Horse point cloud

图5. Horse点云

Figure 6. Dragon point cloud

图6. Dragon点云

Figure 7. Happy Buddha point cloud

图7. Happy Buddha点云

Figure 8. Cochlea point cloud

图8. Cochlea点云

Figure 9. Bun000 and Bun045 point cloud

图9. Bun000和Bun045点云

表2可知,对于各点云,3DSC算法在精度上表现最优,但同时耗时也远多于其他算法;而PFH算法相对于FPFH算法精度略高,但耗时也较多;本文所提GA-IMP算法则在保证精度与FPH和3DSC相近的情况下,耗时基本稳定在24 s左右。

Table 2. The registration results for different algorithms

表2. 不同算法配准结果

FPFH算法是基于PFH算法对特征进行了简化,因此牺牲了一定精度,提高了配准速度;3DSC算法则采用了一种针对形状轮廓的特征描述,获得的特征较为复杂;这三种算法都需要对点云进行特征提取,而特征的计算往往需要大量的时间,且根据不同形状所需时间差异较大;例如Dragon和Happy Buddha模型表面变化较大,细节较多,因此需要进行特征提取的方法耗时就会显著增加。

本文所提的GA-IMP算法只需要计算总点云滤波后点的数量,时间复杂度低,耗时主要取决于遗传算法种群数量和迭代次数,对于模型表面复杂程度不敏感,鲁棒性较强。

4. 结论

为了避免ICP算法可能陷入局部最优以及配准时间不稳定的情况,本文采用遗传算法和迭代最少点相结合的GA-IMP粗配准算法搭配ICP精配准算法共同完成对点云的配准。通过对不同的点云进行试验,结果表明该算法适用于不同的模型,在保证精度的同时,耗时根据种群数量和迭代次数保持在24 s左右,证明了该算法的有效性和稳定性。

但该算法也存在不足,遗传算法部分的种群数和迭代次数,以及迭代最少点算法部分的体素栅格边长等,都是影响算法速度的重要因素。现阶段这些参数都基于人工设置,如何自动根据不同的点云去计算得到合适的参数,则是下一步需要研究的内容。

参考文献

[1] Jiang, W., Xu, K., Cheng, Z.Q. and Zhang, H. (2013) Skeleton-Based Intrinsic Symmetry Detection on Point Clouds. Graphical Models, 75, 177-188.
https://doi.org/10.1016/j.gmod.2013.03.001
[2] 朱宁宁. 三维激光扫描在地铁隧道形变监测中的应用[J]. 测绘工程, 2015, 24(5): 63-68.
[3] 杨稳, 周明全, 郭宝, 耿国华, 刘晓宁, 刘阳洋. 基于曲率图的颅骨点云配准方法[J]. 光学学报, 2020, 40(16): 1610002.
https://doi.org/10.3788/AOS202040.1610002
[4] 邱兆文, 张田文. 文物三维重建关键技术[J]. 电子学报, 2008, 36(12): 2423-2427.
[5] 张德海, 崔国英, 白代萍, 等. 逆向工程中的三维光学检测点云采样技术研究[J]. 计算机应用研究, 2014, 31(3): 946-948.
[6] 韩浩宇, 张元, 韩燮. 一种改进的激光点云滤波算法[J]. 激光与光电子学进展, 2021, 58(20): 2010001.
https://doi.org/10.3788/LOP202158.2010001
[7] 赵梦娜, 花向红, 冯绍权, 赵不钒. 基于点云切片的建筑物门窗信息提取[J]. 中国激光, 2020, 47(6): 0604002.
https://doi.org/10.3788/CJL202047.0604002
[8] Besl, P.J. and Mckay, H.D. (1992) A Method for Registration of 3-D Shapes. IEEE Transactions on Pattern Analysis and Machine Intelligence, 14, 239-256.
https://doi.org/10.1109/34.121791
[9] Rusu, R.B., Blodow, N., Marton, Z.C. and Beetz, M. (2008) Aligning Point Cloud Views Using Persistent Feature Histograms. 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, 22-26 September 2008, 3384-3391.
https://doi.org/10.1109/IROS.2008.4650967
[10] Rusu, R.B., Blodow, N. and Beetz, M. (2009) Fast Point Feature Histograms (FPFH) for 3D Registration. IEEE International Con-ference on Robotics & Automation, Kobe, 12-17 May 2009, 3212-3217.
https://doi.org/10.1109/ROBOT.2009.5152473
[11] Tangelder, J. and Veltkamp, R.C. (2008) A Survey of Content Based 3D Shape Retrieval Methods. Multimedia Tools & Applications, 39, Article No. 441.
https://doi.org/10.1007/s11042-007-0181-0
[12] 刘鸣, 舒勤, 杨赟秀, 袁菲. 基于独立成分分析的三维点云配准算法[J]. 激光与光电子学进展, 2019, 56(1): 011203.
https://doi.org/10.3788/LOP56.011203
[13] 唐志荣, 蒋悦, 苗长伟, 赵成强. 基于因子分析法的三维点云配准算法[J]. 激光与光电子学进展, 2019, 56(19): 191503.
https://doi.org/10.3788/LOP56.191503
[14] 李宇翔, 郭际明, 潘尚毅, 吕丽丽, 卢主兴, 章迪. 一种基于ISS-SHOT特征的点云配准算法[J]. 测绘通报, 2020(4): 21-26.
[15] 马卫. 基于布谷鸟优化的三维点云配准算法[J]. 计算机应用与软件, 2020, 37(12): 216-223+272.
[16] 陈斯祺, 张海洋, 赵长明, 张子龙, 王文鑫, 张明. 基于天牛须改进粒子群算法的点云配准方法[J]. 激光技术, 2020, 44(6): 678-683.
[17] 孙殿柱, 史阳, 刘华东, 李延瑞. 基于遗传算法的散乱点云最小包围盒求解[J]. 北京航空航天大学学报, 2013, 39(8): 995-998.