点云配准(Point Cloud Registration)

点云配准是将两个或多个三维点云(或点云与模型)对齐到同一坐标系的过程。

核心目标是得到一个(或一组)刚体变换(通常记为旋转 R 和平移 t),使得对应的几何结构在空间上重合。

数学上,常见形式为:

pB=R pA+t

其中 pA是源点云中的点,pB是变换后在目标坐标系中的位置。

应用场景:多视角扫描拼接、SLAM 回环、机器人定位、三维重建、医学影像对齐等。

评价指标:配准误差(如 RMSE)、重叠率、收敛性、鲁棒性(对噪声、离群点、部分重叠的容忍度)。

点云配准的目的

点云配准是将两个或多个点云(或点云与三维模型)变换到同一坐标系下,使同一物理位置的几何结构对齐或者重合。

核心目的

估计刚体变换 R(旋转) 和 t(平移),满足:

ptarget=R psource+t

使对应点/对应几何之间的误差最小。

具体要解决的问题

目的 说明

统一坐标系

多视角、多帧、多传感器采集的点云原本各自坐标系不同,配准后合并为一张完整点云

三维重建

将多次扫描拼接成完整场景或物体模型

定位与建图(SLAM)

确定当前帧相对地图/上一帧的位姿 (R, t)

变化检测

对齐不同时刻点云后,比较差异(形变、缺失、新增)

模型对齐

实测点云与 CAD/设计模型对齐,用于检测、测量、机器人操作

输出结果

  • 变换参数:R、t(或 6DoF 位姿)
  • 对齐后的点云:可在同一坐标系下融合、分析、可视化

一句话:点云配准的目的是求 R、t,把分散采集的三维数据对齐到同一空间,以便融合、定位、测量和分析。

配准算法

粗配准(Coarse / Global Registration)

粗配准是在没有良好初值或初值偏差很大时,先求一个大致正确的全局变换,为后续精配准提供起点。

特点:

  • 搜索范围大,允许对比的点云的初始位姿相差较远(角度、平移都较大)
  • 对局部最优不敏感,强调全局一致性
  • 精度通常不高,但鲁棒性更重要
  • 计算可能更重,或依赖特征而非逐点迭代

常见方法:

  • 基于特征的配准:FPFH、SHOT 等描述子 + RANSAC / TEASER++ 等对应关系估计
  • 4PCS / Super4PCS 等基于几何不变量的全局方法
  • NDT(Normal Distributions Transform) 在大范围搜索时有时也作粗配准
  • 利用 GPS / IMU / 里程计 / 先验模型 提供的初始位姿(也属于“粗”的初值来源)

粗配准的输出一般是:近似正确的 R、t,误差可能在厘米到分米级(视场景而定),但足以让精配准收敛到正确解。


精配准(Fine / Local Registration)

精配准是在已有较好初值的前提下,通过局部优化把变换精确细化,使对应点(或对应几何)之间的误差最小。

特点:

  • 搜索范围小,依赖粗配准或已知初值
  • 追求高精度(毫米级或更高,取决于传感器与场景)
  • 对初值敏感:初值不好容易陷入局部最优或发散
  • 通常基于迭代优化,逐次修正 R、t

常见方法:

  • ICP 及其变体(最典型)
  • 点到面 ICP(Point-to-Plane ICP)
  • GICP(Generalized ICP)
  • NDT 在局部 refine 阶段
  • 非线性最小二乘(如 Ceres、GTSAM)结合对应关系

精配准与粗配准的关系:先粗后精是工业与学术中的标准流程;单独做 ICP 而不做粗配准,在初值差时往往失败。

ICP

ICP 是 Iterative Closest Point 的缩写。

单词 含义

Iterative

迭代的(反复做、逐步改进)

Closest

最近的

Point

中文常叫 迭代最近点(算法)。


它的核心思想非常直观,可以用四个字概括:找点、求变。 算法会反复循环执行以下两个步骤:

  1. 找对应点:对于源点云中的每一个点,在目标点云中找到距离它最近的那个点,形成一对“最近点”。

  2. 求最优变换:根据所有找到的“最近点对”,计算出一个最优的旋转和平移矩阵,让源点云的整体移动距离最小。然后,把源点云实际移动过去。

这个过程会不断迭代,重复“找对应点 -> 计算变换 -> 移动点云”的循环,直到变换量非常小或达到设定的迭代次数,此时点云便实现了高精度对齐。

ICP 的优点:在初始位置好的情况下,精度非常高,收敛速度快。

ICP 的缺点

  • 依赖初值:如果粗配准没做好,初始位置很差,ICP 几乎必然失败。

  • 效率问题:每次都需搜索最近点,计算量大。但可以通过 KD-Tree 等数据结构加速。

  • 对异常值敏感:点云中的噪声或离群点会严重影响结果。

点云拼接和点云模版匹配

点云拼接

本质

两个视点点云是在不同传感器位姿下采集的,各自坐标系不同。
拼接就是求:视点 B 相对视点 A 的位姿 (R, t),把 B 变到 A 的坐标系,再合并。

视点A坐标系下的点云 PA

视点B坐标系下的点云 PB --(R,t)--> 变换后的 PB' --合并--> 完整点云

为什么能拼

两个视点必然拍到同一块物理区域(重叠区)。
同一块墙、同一个角点在 PA 和 PB 里各有一份坐标,只是数值不同。
找到 (R, t) 使这些相同物理位置重合,就完成了对齐。

没有重叠区:能求出 R,t 吗?能拼接吗?

结论

不能可靠拼接。
没有重叠区时,(R, t) 要么无解,要么有无穷多组解,算法给出的 (R, t) 没有物理意义,拼出来的结果也是错的。


为什么:

配准的约束来自:同一物理点在 PA 和 PB 里各有一个坐标,对应关系已知或可估计

有重叠时:

PA 里的点 pA ←→ 物理点 X ←→ PB 里的点 pB

约束:pA ≈ R · pB + t

多个这样的约束联立,才能唯一(或稳定)解出 (R, t)

无重叠时:

PA 拍的是区域 A

PB 拍的是区域 B

A 与 B 没有公共物理点

→ 没有任何「这是同一个点」的约束

→ 无法从几何上确定 B 相对 A 的位姿

实现步骤

1. 预处理

两云降采样、去噪,统一点密度,便于后续计算。

2. 求变换 (R, t)(配准)

粗配准(初值未知时):

  1. 在 PA、PB 中各提取几何特征点(角点、边缘等)
  2. 计算局部形状描述子(如 FPFH)
  3. 找描述子相似的特征点对 →「A 的这个角 ≈ B 的那个角」
  4. RANSAC 从多组点对中估计 (R, t),去掉错误匹配

精配准(ICP):

  1. 用当前 (R, t) 把 PB 变换到 PA 坐标系
  2. PB 中每个点,在 PA 中找最近点
  3. 假设这些最近点就是对应关系,解最小二乘,更新 (R, t)
  4. 重复 2–3 直到 (R, t) 基本不变

输出:最终 (R, t),使重叠区几何对齐。

点云模版匹配

本质

模板 M 是已知标准(CAD 或标准扫描),实测 S 是当前扫描。
流程:把 S 对齐到 M,再看对齐质量是否达标。

S --配准(R,t)--> S' 与 M 重合

计算误差指标

达标 → 匹配成功,输出 (R,t)

不达标 → 匹配失败

配准怎么做

与拼接相同:粗匹配(特征+RANSAC)→ ICP 精配准,得到 (R, t)
区别是 M 固定不变,只判断 S 是否「像 M」。

匹配判定:看什么指标

配准完成后,用 (R, t) 把 S 变换到 M 坐标系,逐点计算与 M 的距离:

1. RMSE(均方根误差)

对每个点 s_i in S:

变换后 s_i' = R·s_i + t

在 M 上找最近点/最近面,距离 d_i

RMSE = sqrt( mean(d_i²) )

结果 含义

RMSE 小(如 < 2mm)

形状、尺寸与模板一致

RMSE 大

不是该工件、放偏严重、缺件、变形

2. Fitness / 内点率

满足 d_i < 阈值(如 5mm)的点数 / 总点数 = fitness

结果 含义

fitness 高(如 > 80%)

大部分点都能对齐到模板

fitness 低

形状对不上,或扫描到无关物体

RMS / RMSE 是什么

RMS(Root Mean Square,均方根)

对一组误差值先平方 → 求平均 → 再开方:

其中 ei是第 i 个误差。

作用:衡量一组数整体偏大还是偏小。

RMSE(Root Mean Square Error,均方根误差)

RMS 在「预测值与真实值之差」上的用法,点云配准里说的 RMSE 通常指这个。

di​ = 配准后第 i个点到模板/目标点云的最近距离。


在点云模板匹配里

配准得到 (R, t) 后:

  1. 把实测点云每个点变换:si′=R⋅si+t
  2. 在模板上找最近点,得距离 di
  3. 算 RMSE

作用

RMSE 含义

小(如 < 2mm)

整体对齐好,形状与模板一致

对不齐,可能型号不对、放偏、缺件等

教程

RMS和RMSE

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐