ICPアルゴリズムメモ
何したい
3次元点の位置合わせをしたい.
アルゴリズム
ICP(Iterative Closest Point)はデータ形状をモデル形状に合わせるアルゴリズム.
点の対応は未知でも良いけど,大まかな位置合わせは行っている前提で,高精度に位置を合わせる.
- モデル形状:
- データ形状:
- 収束判定閾:
1. 大まかに位置を合わせる.
- 初期並進:
- 初期回転:
2. 近傍点の計算する.
データ点から最も近いモデル形状の点を
とする.
3. 位置合わせパラメータの計算する.
- 重心を計算する.
- 共分散行列を計算する.
- 共分散行列を特異値分解する.
- 回転行列を計算する.
- 並進ベクトルを計算する.
4. 誤差を計算する.
5. 収束判定をする.
- ひとつ前の2乗距離誤差:
もし,
なら,とを返して終了する.
そうでなければ,として2へ戻る.
メモ
- 最近傍の点の対応付けは,KD-treeなどのデータ構造を用いると高速に行えるそう.
- 収束を高速化したり,形状のスケールを調節するパラメータを推定したりする派生もある.
参考
「コンピュータビジョン最先端ガイド3」,アドコム・メディア株式会社