ICP算法

ICP算法是一种经典的点云匹配算法,用于求解两组点云的旋转R和平移t。通过迭代找到最近点对并计算误差,不断优化变换关系,直至误差低于阈值。已知对应点时,可通过SVD分解直接求解;未知对应点时,通过迭代寻找匹配点。数学证明了在已知对应点情况下,误差函数最小化与R的求解关系。
摘要由CSDN通过智能技术生成

1.ICP算法(迭代最近点算法)

ICP(迭代最近点算法)是一种古老而又经典的点云匹配算法,其思路也很清晰。点云配准就是求解两堆点云之间的变换关系——也就是旋转关系 R R R 和平移关系 t t t

ICP算法的思路就是:找到两组点云集合中距离最近的点对,根据估计的变换关系( R R R t t t)来计算距离最近点对经过变换之后的误差,进过不断的迭代直至误差小于某一阈值或者达到迭代次数来确定最终的变换关系。

ICP算法的数学描述:
给定两个点云集合:
X = ( x 1 , x 2 , x 3 . . . x n ) X =(x_{1},x_{2},x_{3}...x_{n}) X=(x1,x2,x3...xn) P = ( p 1 , p 2 , p 3 . . . p m ) P=(p_{1},p_{2},p_{3}...p_{m}) P=(p1,p2,p3...pm)
求解 R R R t t t,使下式最小
E ( R , t ) = 1 n ∑ i = 1 n ∣ ∣ x i − ( R p i + t ) ∣ ∣ 2 E(R,t) =\frac{1}{n}\displaystyle\sum_{i=1}^{n}||x_{i}-(Rp_{i}+t)||^{2} E(R,t)=n1i=1nxi(Rpi+t)2

1.ICP算法的求解

1.1 已知对应点的情况

如果已知两个点云中点的对应关系,那么ICP算法的求解过程将非常简单,这个在视觉slam中较为常用,因为我们可以根据特种匹配的方式找出空间点的对应关系。

具体方法为:

  1. 首先,计算两组点云的质心
    u x = 1 n ∑ i = 1 n ∣ ∣ x i ∣ ∣ 2 u_{x} =\frac{1}{n}\displaystyle\sum_{i=1}^{n}||x_{i}||^{2} ux=n1i=1nxi2
    u p = 1 m ∑ i = 1 m ∣ ∣ p i ∣ ∣ 2 u_{p} =\frac{1}{m}\displaystyle\sum_{i=1}^{m}||p_{i}||^{2} up=m1i=1mpi2
  2. 计算两组点云中的点以质心为原点的坐标
    X ′ = ( x i − u x ) = ( x i ′ ) X' =(x_{i}-u_{x})=(x_{i}') X=(xiux)=(xi) P ′ = ( p i − u p ) = ( p i ′ ) P'=(p_{i}-u_{p})=(p_{i}') P=(piup)=(p
  • 25
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值