迭代最近点实施 [英] Iterative Closest Point Implementation

查看:162
本文介绍了迭代最近点实施的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前使用以下伪code到C#实现的ICP算法。从 ICP简报获得

I am currently using the following pseudo code to implement the ICP algorithm in C#. Obtained from ICP Powerpoint

function ICP(Scene,Model)
 begin
  E` = + ∞;
  (Rot,Trans) = In Initialize-Alignment(Scene,Model);
  repeat 
E = E`;
Aligned-Scene = Apply-Alignment(Scene,Rot,Trans);
Pairs = Return-Closest-Pairs(Aligned-Scene,Model);
(Rot,Trans,E`) = Update-Alignment(Scene,Model,Pairs,Rot,Trans);
  Until |E`- E|  < Threshold
  return (Rot,Trans);
 end    

但我不完全知道如何更新调整应实行?如果有人可以解释比简报,这将是巨大的:)我写的方法计算对应误差和对准误差更清楚这一点,但我不知道如何运用这些来获得新的更新调整。

However I am not entirely sure how update alignment should be implemented? If someone could explain this a little clearer than the powerpoint that would be great :) I have written the methods for calculating correspondence error and alignment error, however I am not sure how to apply these to get the new updated alignment.

推荐答案

在幻灯片10公式(它们实际上是写同样的公式的两个等价的方式)给你的均方的定位误差。你要选择你的旋转和平移(的Q矢量是这些的组合),以尽量减少均方误差。该MSE是Q矢量的一个不错的,微函数,所以很容易使用的东西,如共轭梯度法从当前的对准开始寻找新对准的(至少局部)最小化MSE。

The formulas on slide 10 (they are actually two equivalent ways of writing the same formula) give you the mean squared error of your alignment. You want to choose your rotation and translation (the q vector is the combination of these) to minimize the mean squared error. The MSE is a nice, differentiable function of the q vector, so it is easy to use something like the Conjugate Gradient Method starting from the current alignment to find a new alignment that (at least locally) minimizes the MSE.

这篇关于迭代最近点实施的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆