三维点云处理之点云配准

1. ICP

(1)定义

​ 对于两个点云source和target,求source经位姿变换后得到的点云与target尽可能重合的旋转 R R R与平移 t t t。由于实际中source和target两个点云中的点不一定完全对应,因此取二者能够相互关联的那些点(公共点)来参与位姿计算:
X = { x 1 , x 2 , ⋯   , x N x }            Y = { y 1 , y 2 , ⋯   , y N y }        N x = N y X = \{ x_1,x_2,\cdots,x_{N_x} \} \ \ \ \ \ \ \ \ \ \ Y = \{ y_1, y_2, \cdots, y_{N_y} \} \ \ \ \ \ \ N_x=N_y X={ x1,x2,,xNx}          Y={ y1,y2,,yNy}      Nx=Ny
目标:通过最小化损失函数计算旋转矩阵 R R R和平移向量 t t t
m i n E ( R , t ) = m i n 1 N y ∑ i = 1 N y ∣ ∣ x i − R y i − t ∣ ∣ 2 min E(R,t) = min \frac{1}{N_y}\sum_{i=1}^{N_y}|| x_i-Ry_i-t||^2 minE(R,t)=minNy1i=1Ny∣∣xiRyit2
流程

​ 获取两个点云之间的关联点一般是以二者距离最近的两个点为相互关联点,但若两初始点云相距较远,此时通过距离最近找到的关联点不一定是真正的关联点。在具有较好的初始位姿前提下,可通过迭代的方式,将当前迭代中变换后的点作为下一迭代的起始点,直到两关联点云达到预期的尽可能重合状态(较好的初始位姿是为了使经过迭代后两点云相互靠近,否则即使迭代多次后两点云仍不会达到预期重合状态)。其流程如下所示:
在这里插入图片描述
(2)ICP公式推导

​ 根据定义可知,目标函数如下:
E ( R , t ) = 1 N y ∑ i = 1 N y ∣ ∣ x i − R y i − t − u x + R u y + u x − R u y ∣ ∣ 2                    = 1 N y ∑ i = 1 N y ( ∣ ∣ x i − u x − R ( y i − u y ) + ( u x − R u y − t ) ∣ ∣ 2 )                      = 1 N y ∑ i = 1 N y ( ∣ ∣ x i − u x − R ( y i − u y ) ∣ ∣ 2 + ∣ ∣ u x − R u y − t ∣ ∣ 2             + 2 ( x i − u x − R ( y i − u y ) ) T ( u x − R u y − t ) )                       = 1 N y ∑ i = 1 N y ( ∣ ∣ x i − u x − R ( y i − u y ) ∣ ∣ 2 + ∣ ∣ u x − R u y − t ∣ ∣ 2 ) E(R,t)=\frac{1}{N_y}\sum_{i=1}^{N_y}||x_i-Ry_i-t-u_x+Ru_y+u_x-Ru_y||^2 \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\frac{1}{N_y}\sum_{i=1}^{N_y}(||x_i-u_x-R(y_i-u_y)+(u_x-Ru_y-t)||^2) \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\frac{1}{N_y}\sum_{i=1}^{N_y}(||x_i-u_x-R(y_i-u_y)||^2+||u_x-Ru_y-t||^2 \\ \ \ \ \ \ \ \ \ \ \ \ +2(x_i-u_x-R(y_i-u_y))^T(u_x-Ru_y-t)) \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\frac{1}{N_y}\sum_{i=1}^{N_y}(||x_i-u_x-R(y_i-u_y)||^2+||u_x-Ru_y-t||^2) E(R,t)=Ny1i=1Ny∣∣xiRyitux+Ruy+uxRuy2                  =Ny1i=1Ny(∣∣xiuxR(yiuy)+(uxRuyt)2)                    =Ny1i=1Ny(∣∣xiuxR(yiuy)2+∣∣uxRuyt2           +2(xiuxR(yiuy))T(uxRuyt))                     =Ny1i=1Ny(∣∣xiuxR(yiuy)2+∣∣uxRuyt2)
​ 其中, u x u_x ux u y u_y uy分别是点云X和Y的质心,即:
u x = 1 N x ∑ i = 1 N x x i            u y = 1 N y ∑ i = 1 N y y i u_x=\frac{1}{N_x}\sum_{i=1}^{N_x}x_i \ \ \ \ \ \ \ \ \ \ u_y=\frac{1}{N_y}\sum_{i=1}^{N_y}y_i ux=Nx1i=1Nxxi          uy=Ny1i=1Nyyi
​ 上述推导中去掉两点云的中心,其目的是: 中心到中心之间的距离就是两点云之间的平移,去中心之后两点云之间的约束只剩下旋转,这样可将平移和旋转解耦开。

​ 令 E 1 ( R , t ) = 1 N y ∑ i = 1 N y ( ∣ ∣ x i − u x − R ( y i − u y ) ∣ ∣ 2 E_1(R,t)=\frac{1}{N_y}\sum_{i=1}^{N_y}(||x_i-u_x-R(y_i-u_y)||^2 E1(R,t)=Ny1i=1Ny(∣∣xiuxR(yiuy)2 E 2 ( R , t ) = 1 N y ∑ i = 1 N y ∣ ∣ u x − R u y − t ∣ ∣ 2 E_2(R,t)=\frac{1}{N_y}\sum_{i=1}^{N_y}||u_x-Ru_y-t||^2 E2(R,t)=Ny1i=1Ny∣∣uxRuyt2

那么, E ( R , t ) = E 1 ( R , t ) + E 2 ( R , t ) E(R,t)=E_1(R,t)+E_2(R,t) E(R,t)=E1(R,t)+E2(R,t)
在求解 m i n E ( R , t ) minE(R,t) minE(R,t)的过程中,由于第一项 E 1 ( R , t ) E_1(R,t) E1(R,t)只和 R R R有关,因此只要根据 m i n E 1 ( R , t ) minE_1(R,t) minE1(R,t)求出 R R R,令第二项 E 2 ( R , t ) E_2(R,t) E2(R,t)取最小值0,即可求出平移 t t t

求解旋转矩阵 R R R

  • 化简:将原始点云转换为去质心点云

​ 记两点云的去质心点云分别为: x i , = x i − u x x_i^,=x_i-u_x xi,=xiux y i , = y i − u y y_i^,=y_i-u_y yi,=yiuy
E 1 ( R , t ) = 1 N y ∑ i = 1 N y ∣ ∣ x i − u x − R ( y i − u y ) ∣ ∣ 2 = 1 N y ∑ i = 1 N y ∣ ∣ x i , − R y i , ∣ ∣ 2      = 1 N y ∑ i = 1 N y ( x i , T x i , + y i , T R T R y i , − 2 x i , T R y i , ) = 1 N y ∑ i = 1 N y ( x i , T x i , + y i , T y i , − 2 x i , T R y i , ) E_1(R,t)=\frac{1}{N_y}\sum_{i=1}^{N_y}||x_i-u_x-R(y_i-u_y)||^2=\frac{1}{N_y}\sum_{i=1}^{N_y}||x_i^,-Ry_i^,||^2 \\ \ \ \ \ =\frac{1}{N_y}\sum_{i=1}^{N_y}(x_i^{,T}x_i^,+y_i^{,T}R^TRy_i^,-2x_i^{,T}Ry_i^,) =\frac{1}{N_y}\sum_{i=1}^{N_y}(x_i^{,T}x_i^,+y_i^{,T}y_i^,-2x_i^{,T}Ry_i^,) E1(R,t)=Ny1i=1Ny∣∣xiuxR(yiuy)2=Ny1i=1Ny∣∣xi,Ryi,2    =Ny1i=1Ny(xi,Txi,+yi,TRTRyi,2xi,TRyi,)=Ny1i=1Ny(x

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值