点云--ICP/点云配准
点云配准(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 |
点 |
中文常叫 迭代最近点(算法)。
它的核心思想非常直观,可以用四个字概括:找点、求变。 算法会反复循环执行以下两个步骤:
-
找对应点:对于源点云中的每一个点,在目标点云中找到距离它最近的那个点,形成一对“最近点”。
-
求最优变换:根据所有找到的“最近点对”,计算出一个最优的旋转和平移矩阵,让源点云的整体移动距离最小。然后,把源点云实际移动过去。
这个过程会不断迭代,重复“找对应点 -> 计算变换 -> 移动点云”的循环,直到变换量非常小或达到设定的迭代次数,此时点云便实现了高精度对齐。
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)(配准)
粗配准(初值未知时):
- 在 PA、PB 中各提取几何特征点(角点、边缘等)
- 计算局部形状描述子(如 FPFH)
- 找描述子相似的特征点对 →「A 的这个角 ≈ B 的那个角」
- RANSAC 从多组点对中估计
(R, t),去掉错误匹配
精配准(ICP):
- 用当前
(R, t)把 PB 变换到 PA 坐标系 - PB 中每个点,在 PA 中找最近点
- 假设这些最近点就是对应关系,解最小二乘,更新
(R, t) - 重复 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) 后:
- 把实测点云每个点变换:si′=R⋅si+t
- 在模板上找最近点,得距离 di
- 算 RMSE
作用
| RMSE | 含义 |
|---|---|
|
小(如 < 2mm) |
整体对齐好,形状与模板一致 |
|
大 |
对不齐,可能型号不对、放偏、缺件等 |

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



所有评论(0)