ICP_SVD的公式推导

ICP_SVD

设目标点云的点集为 : X = {x1,x2......,xn}

设当前点云的点集为 : Y = {y1,y2......,yn}

所构建的目标方程为:
minE(R,t) = min\frac{1}{N} \sum_{i=1}^{N}{||x_i - R_{yi}y_i-t||^2}

对后面的方程进行化简

首先减去上 X Y 的平均值 为了等式相等所以也得加上


E(R,t) = \frac{1}{N}\sum_{i=1}^{N}{||x_i - Ry_i - t- u_x - Ru_y + u_x + Ru_y ||^2}

将 R t隔离


= \frac{1}{N}\sum_{i=1}^{N}{||x_i - u_x - R(y_i - u_y) + (u_x - Ru_y - t) ||^2}

将二范数展开


= \frac{1}{N}\sum_{i=1}^{N}{(||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}\sum_{i=1}^{N} (x_i - u_x - R(y_i - u_y))^T *(u_x - Ru_y - t)

上面的式子为0

所以
= \frac{1}{N}\sum_{i=1}^{N}{(||x_i - u_x - R(y_i - u_y) ||^2 + ||(u_x - Ru_y - t) ||^2 )}

令只与旋转相关的式子
E_1(R,t) = \frac{1}{N}\sum_{i=1}^{N}{||x_i - u_x - R(y_i - u_y) ||^2 }

令只与平移相关的式子
E_2(R,t)= \frac{1}{N}\sum_{i=1}^{N}{||u_x - Ru_y - t||^2 }

那么,对于任意的R,都可以找到一个t 使得上式子等于 0

所以可以先求旋转在求平移

对于求解旋转有如下:
E_1(R,t) = \frac{1}{N}\sum_{i=1}^{N}{||x_i - u_x - R(y_i - u_y) ||^2 }
= \frac{1}{N}\sum_{i=1}^{N}{||x'_i - Ry'_i ||^2 }

二范数展开
= \frac{1}{N}\sum_{i=1}^{N}{(x'{_i}^{T}x'{_i} + y'{_i}^{T}R^TRy'_i - 2x'{_i}^{T}Ry'_i)}

由于旋转矩阵的正交性质 所以上式前两项和 R 无关 所以求取下式的最大值
= \frac{1}{N}\sum_{i=1}^{N}{x'{_i}^{T}Ry'_i}

展开之后就需要用到 由于常数的 等于本身
= \sum_{i=1}^{N}{x'{_i}^{T}Ry'_i} = \sum_{i=1}^{N}Trace(Ry'_ix'{_i}^{T}) = Trace(RH)

H为确定的,问题转换为找到和是的R使得Trace(RH)为最大值

定理: 若有正定矩阵 AAT ,则对于任意正交矩阵 R 有 Trace(AAT) >= Trace(BAAT)

意义,如果能找到R 是的 Trace(RH) 为 Trace(AAT)形式,则R就是我们要找的矩阵 (这里可以理解 后面在对这个R进行变换相当于 做成一些变换矩阵 依旧没有当前的值大)

证明 :
tr(BAA^T) = tr(A^TBA) = \sum_{i} a_{i}^{T}(Ba_i)

R = VU^T

ai为 A的列向量 根据柯西不等式,有
a_{i}^{T}(Ba_i) \leq \sqrt{((a_{i}^{T}a_i)(a_{i}^{T}B^TBa_i))} = a_{i}^{T}a_i

因此


tr(BAA^T) <= tr(AA^T)

当前目的: 找到 R ,把Trace(RH)转换为 Trace(AAT)

方法:

对H进行SVD分解


H = U\sigma V

取 R 为
R = VU^T

那么R为我们需要的值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值