ICP重量点对应关系

时间:2015-03-20 15:17:52

标签: math computational-geometry mathematical-optimization point-cloud-library point-clouds

为了估计两个3D点集之间的仿射变换,其中已经建立了相应的点对,我在对这样计算的相关矩阵(伪代码)上使用单值分解:

vector3 fixed_center = (0, 0, 0)
vector3 loose_center = (0, 0, 0)
n = 0
foreach (fixed_pt, loose_pt) in correspondences
    fixed_center += fixed_pt
    loose_center += loose_pt
    n++
fixed_center /= n
loose_center /= n
matrix3x3 correlation = ((0,0,0), (0,0,0), (0,0,0))
foreach (fixed_pt, loose_pt) in correspondences
     correlation += (fixed_pt - fixed_center) * (loose_pt - loose_center)

如果将权重分配给对应关系,那么必须如何计算相关矩阵?权重是否必须标准化,是否必须包括在中心的计算中?

1 个答案:

答案 0 :(得分:2)

如果您的权重的含义是您想要最小化

Q = Sum{ i | w[i]*||fixed[i] - (R*loose[i] + t)||^2 }

(其中w是权重,x - > R * x + t你的仿射图)

然后是的,中心应该都是加权平均值,“相关性”(真正的协方差)也应该加权。如果你的体重没有标准化,你应该先将它们标准化。

那是

f_centre = Sum{ i | w[i]*fixed[i] }
l_centre = Sum{ i | w[i]*loose[i] }
covar = Sum{ i | w[i] * (fixed[i]-f_centre)*(loose[i]-l_centre)' }