3D匹配算法简述

一.什么是3D匹配

•形状、大小一致的源点云与目标点云之间的刚体变换。

•源点云通过平移与旋转操作变换到目标点云位置使之重合。

•源点云与目标点云坐标系之间的变换。

典型的应用流程为:

3D相机数据采集----点云生成----点云处理----目标点云提取----3D模板匹配----位姿估计

3D模板匹配的流程为:3D粗匹配----3D精匹配

二.粗匹配的原理(PPF算法)

基于点对特征的匹配过程:

•对源点云所有点对特征进行记录

•遍历目标点云点对,并在记录中查找特征一致的点对。

•通过对应点对求取源点云到目标点云的转换关系。

1. PPF的定义:

(1)两点间的距离:|d|

(2)点1的法线与向量d的夹角

(3)点2的法线与向量d的夹角

(4)点1的法线与点2的法线的夹角

2.off-line准备:

(1)计算模型点云中任意两点的PPF

(2)以其为哈希表的key并在对应的位置存入点对信息

创建的哈希表如下:

|-----------|-----------------------------------------------------|
| PPF | Pairs |
| F(m1, m2) | (m1, m2),(m3, m4),(m7, m9),(m7, m10),(m1, m6)...... |
| F(m2, m3) | (m2, m3),(m3, m5),(m4, m8),(m6, m8),(m7, m8)...... |
| F(m1, m4) | (m1, m4) |
| ...... | ...... |
| ...... | ...... |

3.PPF的步骤

(1)取得点云后,在点云中选择一个参考点

(2)将场景中的点分为参考点(reference point)和其他的点(refered point),在参考点中选择一点,并与其他的点种的每一个点组成的点对且计算PPF

如选择一个参考点Sr1,计算每个点对的PPF,即为计算F(Sr1, Si1),F(Sr1, Si2),F(Sr1, Si3)......

(3)用计算的PPF来查哈希表,并将对应的模型点云中的点对抽出

查表的例子:

(4)通过抽出的点对计算位姿(局部坐标系)

将场景的点Sr和模型的点mr转移到世界坐标系原点,将此两点的法线并齐,计算旋转角α

计算位姿的例子:

依次计算每个点对的位姿,得到旋转角α,

(5)对(位姿,对应的模型点)进行投票

(6)输出最高票的(位姿,对应的模型点)

(7)改变参考点并重复步骤2--6

在完成此步骤后,对于每一个参考点有一个组合F=(参考点,对应的模型的点,位姿,票数)

(8)进行聚类并输出位姿

对F中的位姿进行聚类,计算每个cluster的分数并输出最高票数对应的位姿,分数是每个cluster中所有参考点的票数总和

三.精匹配的原理

精匹配常用的方法有

1.Iterative Closest Point(ICP)

迭代最近点:由于未知点集间对应关系,即认为距离最近的两个点为对应点,所以称为迭代最近点。

求解方法:构建为最小二乘问题,求解使两个点集误差平方和最小的变换(R,T)

方法一:点到点匹配,基于svd分解的解析解

方法二:点到面匹配,基于非线性优化的迭代解

优点:思路简单,实现容易

缺点:对噪声和异常点比较敏感,鲁棒性较差

2.Coherent Point Drift**(CPD)**

将点云匹配问题,构建为基于高斯混合模型的极大似然估计,并通过期望最大算法(EM算法)求解。

以每一个模型点的坐标为中心,构建一个高斯核,组成高斯混合模型。每一个场景点,置身于高斯核中,与每一个模型点构成的高斯核有一个对应关系,比如最近点的对应概率可能是0.8,次近点可能是0.19,其它点的对应关系非常小0.01。那对应概率最大的模型点高斯核,即为该场景点的对应点,归一化后的概率值即为点对权重。

通过高斯混合概率分布表达模型点和场景点的对应关系(对应点+权重),而不是ICP硬性假设最近点100%就是对应点。

EM算法建模、求解过程

优化目标:估计一组参数,使场景点云在根据模型云构造的高斯混合模型中后验概率最大,即使模型点和场景点间距均方误差最小。

已知参数:高斯核的位置(均值)

未知参数:高斯核的方差是什么?模型点与场景点之间的对应关系?已知对应关系后,模型点到场景点之间的位姿变换?

EM迭代过程:

第一步,初始化:

根据粗匹配初始位姿,将高斯核初始位置(均值)构建在每个模型点上,根据粗匹配的位姿偏差人工设置一个默认值(比如3毫米)。

第二步,Expection-Step(求解对应关系):

计算场景点在每个模型高斯核中概率值,取概率最大的高斯核模型点为对应点,归一化后的概率值为点对权重。

第三步,Maximization-Step(求解位姿变换):

已知模型点与场景点的对应关系(对应点+权重),构建为最小二乘问题,求解使两个点集误差平方和最小的变换(R,T)

交替进行,获取最佳对应关系和匹配位姿。

优点:鲁棒性优于ICP

缺点:时间复杂度O(mnd),点数稍多,速度极慢,无法在真实应用场景推广应用

3.FilterReg

基本思想:

将点云匹配问题,构建为基于高斯混合模型的极大似然估计,并通过期望最大算法(EM算法)求解。

不同于CPD,为了避免每次迭代后都要重建场景lattice,FilterReg将高斯混合模型构建在场景点上。

CPD取得是概率最大的一个点作为对应点。

FilterReg是周围一定范围内所有点的权重均值。

如何获取模型点对应的场景点(Expectation step)?

通过permutohedral lattice将场景点云构建为高维高斯过滤模型,模型点投影到lattice数据结构中,对模型点3倍标准偏差范围内的场景点做高斯过滤,过滤后的目标点即为模型点的对应点。

如何计算点对权重?

FilterReg中点对权重表达的物理意义:

模型点找到的场景点非outlier point的概率,可以称为点对有效性概率。

计算方式:

weight sum = 模型点在lattice中收集的权重和

点对有效性概率 = weight sum / (weight sum + constant)

从计算公式理解,模型点投影的lattice中,点数越多,距离lattice中心越近,那么权重和越大,点对有效性越高。

4.EM算法收敛性

EM算法为什么能收敛呢?

EM算法收敛性的简易理解角度:坐标上升法(coordinate ascent)。

图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。

这犹如在x-y坐标系中找一个曲面的极值,然而曲面函数不能直接求导,因此梯度下降方法就不适用了。但固定一个变量后,另外一个可以通过求导得到,因此可以使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。

对应到EM上:

E步:固定模型初始位姿,优化点对对应关系;

M步:固定点对对应关系,优化模型位姿; 交替进行将极值推向最大。

5.点集配准收敛条件

条件一,模型初始位姿临近目标极值,即粗匹配的初始位姿偏差不能过大。

例:曲轴工件,粗匹配给出了反向位姿

条件二,模型点云和场景点云在形状上提供足够的约束

约束刚体位姿需要六个维度,任意一个维度上缺失足够的约束,都无法输出唯一的全局最优解。

例:轴对称物体,下图工件沿X轴对称,所以Y轴和Z轴的方向是在X轴的垂直平面上是随机状态,没有提供足够约束,即在Y轴和Z轴未提供足够的约束。

相关推荐
新启航光学频率梳1 天前
【新启航】起落架大型结构件深孔检测探究 - 激光频率梳 3D 轮廓检测
科技·3d·制造
兰亭妙微2 天前
界面设计风格解析 | ABB 3D社交媒体视觉效果设计
3d·媒体
渲吧-云渲染2 天前
3ds MAX文件/贴图名称乱码?6大根源及解决方案
3d·贴图
渲吧-云渲染2 天前
从行业场景到视觉呈现:3ds Max 与 C4D 效果图的本质分野
大数据·3d
东临碣石822 天前
【AI论文】Hi3DEval:以分层有效性推进三维(3D)生成评估
3d
点云侠2 天前
【2025最新版】PCL点云处理算法汇总(C++长期更新版)
c++·算法·计算机视觉·3d·可视化
二川bro4 天前
第十篇:3D模型性能优化:从入门到实践
3d·性能优化
新启航光学频率梳4 天前
【新启航】飞机起落架外筒深孔型腔的测量方法 - 激光频率梳 3D 轮廓检测
科技·3d·制造
向宇it4 天前
【unity实战】在Unity中实现不规则模型的网格建造系统(附项目源码)
游戏·3d·unity·c#·游戏引擎
%KT%4 天前
基于AutoDL平台的3D_Gaussian_Splatting初体验
3d