Ric*_*ick 6 c# algorithm computational-geometry
我目前正在使用以下伪代码在C#中实现ICP算法.从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
Run Code Online (Sandbox Code Playgroud)
但是我不完全确定应该如何实现更新对齐?如果有人能解释这一点比功能点更清楚:)我已经编写了计算对应错误和对齐错误的方法,但是我不知道如何应用这些来获得新的更新对齐.
第 10 张幻灯片上的公式(它们实际上是编写同一公式的两种等效方法)为您提供对齐的均方误差。您想要选择旋转和平移(q 向量是它们的组合)以最小化均方误差。MSE 是 q 向量的一个很好的可微函数,因此很容易使用诸如共轭梯度法之类的方法从当前对齐开始找到一个新的对齐(至少在局部)最小化 MSE。
| 归档时间: |
|
| 查看次数: |
4344 次 |
| 最近记录: |