HTML
-
为检验改进算法性能,使用Pomerleau的模块化配准方法[19]以及点云库PCL 1.10.0来实现ICP、TrICP、3D-NDT、4PCS和文中CFB-ICP算法,点云数据为斯坦福大学公开的0°与45°扫描Bunny点云组、TBunny (由0°Bunny裁剪得到)点云组以及Hippo点云组,在Bunny点云上添加噪声以检验算法鲁棒性,最后将算法用于滑坡体的激光与影像重建点云。实验平台为Windows 10+64位操作系统,Intel core i5-6500CPU,内存16 G。
-
CFB-ICP算法可直接对点云进行配准。其中
$\alpha = 0.5$ 与$\;\beta = 2.5$ 由实验得出,重叠度精度与采样间隔$j$ 有关,文中取$j = 40$ ;为保证速度,需将点云降采样,但过少的点云不能得到正确的结果,经实验得出${N_P} = 2\;000$ 同时兼顾速度与结果的正确性;CFB-ICP能自动计算出点云的重叠度,Bunny为0.875,Hippo为0.725,TBunny为0.575,并将其应用于TrICP算法。点云初始状态及配准结果如图2~4所示,红色为目标点云,绿色为待配准点云,蓝色为配准结果点云。视觉上可以看出,对不同点云(Bunny与Hippo)以及不同重叠度点云(Bunny与TBunny),CFB-ICP均取得较好的配准效果;对于ICP,配准后的点云并没有完全贴合;对于TrICP,使用由CFB-ICP得到的重叠度进行配准,Bunny与TBunny取得了良好的配准效果,而对于Hippo,得到了错误的局部最优结果,因为在初始Hippo的腹部位置的点云点对距离较小,这也证明上文所述,使用距离更近的点对进行矩阵求解反而可能使算法陷入局部最优;对于3D-NDT,三组点云也均得到较好效果;4PCS寻找共面4点集时为随机选点,导致每次结果不一致,若要得到相对更稳定的结果,需增大时间阈值,因此增加了时间消耗;3D-NDT与4PCS都对参数敏感[20],对不同的点云模型需要通过实验调整以获取最佳参数,相对来说使用不便且耗时。因此,CFB-ICP在点云的模型不同、重叠度更小的情况下均表现最优。文中采用重叠部分点云的点对距离均方误差MSE以及运行时间作为评价指标,定量地对比算法结果。表1为各算法时间消耗以及MSE,算法时间取10次实验平均值;MSE均用同样的点对计算;由于4PCS算法每次结果不一致,其MSE也取10次实验的平均值。由表1可知,ICP与4PCS配准的MSE相对较大,且4PCS更耗时;TrICP对Hippo配准失败;3D-NDT也得到较小的MSE,但最耗时;TBunny的相对MSE大小结果与Bunny相似,均是CFB-ICP的MSE最小,虽然TrICP也成功配准且时间更少,但算法需要CFB-ICP提供重叠度信息。CFB-ICP配准的三种模型MSE最小,并且相比于TrICP算法,CFB-ICP对Bunny与Hippo的配准时间效率分别提升50%与64%,因此,CFB-ICP在效率和精度上均有优势。
Point cloud Algorithm MSE Time/s Target:Bunny0°(40 097)
Source:Bunny45°(40 256)ICP 0.108 160 4.197 TrICP 0.030 659 4.215 3D-NDT 0.032 507 63.264 4PCS 0.167 862 20.493 CFB-ICP 0.030 626 2.111 Target:Hippo1(30 519)
Source:Hippo2(21 935)ICP 0.975 653 3.280 TrICP 0.807 319 12.824 3D-NDT 0.362 541 206.879 4PCS 0.517 493 23.725 CFB-ICP 0.163 100 4.613 Target:TBunny0°(31 327)
Source:Bunny45°(40 256)ICP 0.911 277 3.092 TrICP 0.027 214 5.266 3D-NDT 0.029 574 56.107 4PCS 0.149 031 20.975 CFB-ICP 0.027 076 6.755 Table 1. MSE and time consumption
-
为验证算法的抗噪声能力,同时在0°(
${Q_0}$ )与45°(${P_0}$ )扫描的两个Bunny点云上添加高斯噪声。以对${P_0}$ 添加噪声为例,噪声点云的点数量为${N_G} = \gamma \times $ $ {N_{{P_0}}}$ ,$\gamma \in \left[ {0,1} \right]$ ,即按原点云数量的0%~100%比例添加。从原点云中随机抽取上述${N_G}$ 个点,得到点云$G$ ,高斯噪声点由抽取点${G_i}$ 的xyz坐标分别加上一个高斯随机数得到,即:${G_{iy}}$ 与${G_{iz}}$ 同理,$g$ 服从高斯分布$g\sim N\left( {u,{\sigma ^2}} \right)$ ,其中$u = 0,\;\;\sigma = 0.5$ ,均值$u$ 决定了噪声点云相对于原点云的整体偏移,设置为0;方差$\sigma $ 由具体使用的点云决定,该实验使用Bunny点云,设置$\sigma = 0.5$ 能很好地反映算法对大量噪声的鲁棒性。将噪声点云
$G$ 添加至原始待配准点云${P_0}$ ,得到最后用于实验的噪声点云,参考点云${Q_0}$ 同理:此时,噪声点云总数为
${N_{{P_0}}} = {N_{{P_0}}} + {N_G}$ 。在采样点
${N_P} = 2\;000$ 时,CFB-ICP算法与TrICP在原点云添加0%~60%比例的噪声下进行多次实验,均能得到正确的配准结果,其余算法效果较差;继续增加噪声至70%~100%,由于噪声的随机性导致点云的差异,出现部分配准失败,但若将采样点增至${N_P} = $ $ 5\;000$ ,CFB-ICP算法与TrICP算法成功对点云配准,如图5为两点云同时添加100%噪声后的配准情况。表2为添加100%噪声后及${N_P} = 5\;000$ 时,各算法的时间消耗以及MSE,对比上文可知采样点增加后,所有算法配准时间都变长。TrICP与文中算法虽然都能对噪声点云进行配准,但是文中算法在时间上更有优势。所以可看出所提算法抗噪能力较强,且必要时可以增加采样点以牺牲时间来换取配准精度。Point cloud Algorithm MSE Time/s Target:Noise-Bunny0°(80 194)
Source:Noise-Bunny45°(80 512)ICP 0.122 026 20.157 TrICP 0.065 855 59.731 3D-NDT 0.151 467 310.675 4PCS 0.157 339 50.478 CFB-ICP 0.065 806 44.103 Table 2. MSE and time consumption after adding noise to Bunny
-
文中使用上述几种算法对“茂县624”滑坡体进行激光与影像重建点云的配准。该滑坡体垮塌体体积大约300万立方米,对基于多源数据融合的灾害监测研究具有代表性,影像重建点云由Pix4d对大疆如风8拍摄的现场影像进行重建获取,如图6(a)所示,该点云跨度最大方向为2 500 m,点数量超过200万点;激光扫描点云由Optech Polaris扫描获取,如图6(b)所示。因为激光扫描点云的精度高于影像重建点云,所以激光点云为配准输入的参考点云,影像重建点云为待配准源点云[12]。配准结果如图7所示,文中CFB-ICP算法与TrICP算法均配准成功,但文中算法无需手动设置重叠度,且由表3可知,文中算法MSE更低且时间效率提升了67%。
Figure 6. Point cloud of Maoxian landslide. (a) Image reconstruction point cloud; (b) Laser scanning point cloud
Point cloud Algorithm MSE Time/s Target: Laser scanning point cloud of Maoxian landslide (680 764)
Source: Image reconstruction point cloud of Maoxian landslide
(2 497 335)ICP 36.349 600 17.755 TrICP 1.683 420 40.739 3D-NDT 2.284 381 94.194 4PCS 12.335 440 58.285 CFB-ICP 1.678 910 13.299 Table 3. Results comparison of registration for Maoxian landslide