CloudCompare——实现点云由粗到精的配准

目录

  • 1.粗配准
  • 2.精配准
  • 3.合并点云
  • 4.去除重叠点
  • 5.附:手算配准精度
    • 5.1 精确选取同名点
    • 5.2 计算配准误差
  • 6.相关链接

1.粗配准

  使用Tools-> Registration -> Align (point pairs picking)工具手动选取匹配点对。此工具允许用户通过在两个实体中拾取至少三个等效点对来对齐两个实体。此方法对于非常精确地对齐云非常有用。有时,这甚至是获得良好结果的唯一途径(通常情况下,如果两个云在很大程度上存在巨大差异,则ICP配准将无法正常工作)。从2.6版本开始,可以直接在网格上使用此工具-这样您可以配准两个点云、一个点云和一个网格或两个网格。

CloudCompare——实现点云由粗到精的配准_第1张图片
匹配点对的选取有如下方法:

  • 使用“铅笔”图标输入(虚拟)点(例如:地面的控制点)。
  • 直接在点云的三维视图上拾取点。
  • 从点云数据中检测靶标球。选择检查“白色球体”图标(右上角)并设置搜索半径(如果您知道的话,大致等于扫描中注册球体的半径)。一旦激活,CC将尝试检测云中围绕您拾取的每个点的球体。如果成功,将使用球体中心作为配准点。需要注意的是,输入半径只是指示性的(它将用于搜索拾取的点周围的点)。CC随后将自动检测最佳拟合球体半径并将最佳拟合RMS一起显示在控制台中)

进行配准:

  一旦选择了至少3对或更多对同名点,就可以使用align按钮预览结果。能在表中看到每个点对匹配点对的错误贡献(例如,删除并再次拾取最差的对)。可以随时向这两个集合添加新点(即使在按下align按钮之后也是可以的),以便添加更多约束并获得更可靠的结果。如前所述,还可以删除每个表上方带有专用图标或每个点旁边带有X图标的点。
CloudCompare——实现点云由粗到精的配准_第2张图片
  ③位置的Reset 按钮可以将点云重置到未配准状态。
  可以使用绿色✔和红色X图标验证或取消当前配准过程。验证时,CC将显示一份报告(控制台中显示相同的信息,但是控制台中显示的数字精度更高)。
CloudCompare——实现点云由粗到精的配准_第3张图片
  高级参数adjust scale可以确定两个点集之间的最佳比例因子。要允许优化比例参数,只需取消选中固定比例复选框。如果两个云具有不同的比例,而你不知道它们之间的比例因子,则这非常有用。警告:如果比例系数不同,完成此工具后得到的是4x4的仿射矩阵。这样的话使用该矩阵的逆就无法将点云恢复到未配准之前的状态。
完整操作:

2.精配准

  精配准使用的是ICP算法。ICP算法的主要参数:
CloudCompare——实现点云由粗到精的配准_第4张图片

  • Number of iterations/RMS difference:ICP是一个迭代过程。在此过程中,配准误差(缓慢)减少。我们可以告诉CC在最大迭代次数后停止此过程,或者在两次迭代之间的误差(RMS)差低于给定阈值时停止此过程。该阈值越小,收敛所需的时间越长,但结果应该越精细(注意:由于CC使用32位浮点值,1e-8阈值已经接近计算精度极限,因此不必再降低)。
  • Final overlap:设置待配准点云之间的重叠度。
  • Adjust scale:如果待配准的两个点云尺寸不一致,可以选上该选项。

高级参数:
CloudCompare——实现点云由粗到精的配准_第5张图片

  • Random sampling limit:为了大幅度提高计算速度,CC使用了一种优化方案。它包括在每次迭代时对数据云进行随机子采样。此参数是子采样点的最大数量。默认值(50000)通常是一个很好的猜测,其对结果的影响是不可感知的。然而,对于数据量非常大的点云来说,它可能是不够的。因此,如果您对结果有疑问,或者如果您想进一步精细化配准,并且不害怕等待很长时间,请毫不犹豫地增加此值(要完全停用此优化方案,只需输入一个大于点云点数的数字即可)。
  • Rotation:增加指定轴(X、Y或Z)旋转约束。
  • Translation:增加平移方向的约束。
  • Enable farthest point removal:剔除距离较远的点,对于噪声点有一定的抑制性。
  • Use displayed model/data scalar field as weights:此选项应允许用户使用标量值作为权重(主要用于点云与模型的配准,不建议用于两个点云的配准。)
    完整操作:
    CloudCompare——实现点云由粗到精的配准_第6张图片

3.合并点云

  对于地面三维激光扫描仪多视角、多测站扫描采集的点云,配准之后往往需要将不同视角的点云合并为一个整体。操作如下:
CloudCompare——实现点云由粗到精的配准_第7张图片

4.去除重叠点

  由于配准后的点云具有重叠区域,重叠区域的点云密度会比较大,也可能由于配准误差的存在导致融合后的点云存在重影现象,影响三维建模的效果。需要去除重叠的点,或进行等密度抽稀。去除重叠的点,操作如下:
CloudCompare——实现点云由粗到精的配准_第8张图片
  其他去除重叠点的方法也比较多,如k均值聚类法、体素法等。这里不再一一展示。

5.附:手算配准精度

5.1 精确选取同名点

CloudCompare——实现点云由粗到精的配准_第9张图片

同名点为图像中的概念,当匹配点对一一对应的时候可以叫做同名点。认为:手动选取的对应点为绝对一一对应。软件会自动计算出对应点之间的距离,如上图所示。

5.2 计算配准误差

import numpy as np

a = np.array([0.127004, 0.148904, 0.097030, 0.079241, 0.038671, 0.061479])
rmse = np.linalg.norm(a)/ np.sqrt(a.size)
print("RMSE=", rmse)

6.相关链接

[1] PCL ICP算法实现点云精配准
[2] PCL 点云合并(两个点云中的数据或字段连接)
[3] PCL 删除点云中重叠的点

你可能感兴趣的:(CloudCompare,计算机视觉)