SVD (Singular Value Decomposition)
**特異値分解(singular value decomposition)**は、おそらくSLAMにおいて最も重要な行列分解である。任意の行列 は次のように書ける:
ここで と は直交行列(、)であり、 は非負の要素 を持つ対角行列で、これらが**特異値(singular values)**である。 と の列はそれぞれ左特異ベクトルと右特異ベクトルである。
幾何学的解釈:すべての線形写像は、回転/反転()、続いて軸方向のスケーリング()、続いてもう一つの回転/反転()である。特異値は、写像がその主方向に沿って空間をどれだけ引き伸ばすかを測る。
SVDが行列について教えてくれること
- ランク:非ゼロの特異値の個数。末尾の特異値がほぼゼロであることは、(数値的に)ランク落ちしたシステム ── 例えば、点配置が退化している場合 ── を示す。
- 条件数:比 (最大を最小の非ゼロ値で割ったもの)が条件数である。大きな値は、関連する最小二乗問題が悪条件であり、解がノイズに敏感であることを意味する。
- 零空間:ゼロの特異値に対応する右特異ベクトルは、 の零空間を張る ── これは幾何学における斉次線形システムがまさに必要とするものである。
SLAMにおける主要な用途
斉次最小二乗(DLT)。 三角測量、ホモグラフィ推定、カメラキャリブレーション、8点アルゴリズムなどの問題はすべて次の形式に帰着する:
その解は、 の最小特異値に対応する右特異ベクトルである。
行列制約の強制。 推定された基礎行列に最も近い(フロベニウスノルムで)ランク2の行列は、その最小特異値をゼロにすることで得られる。同様に、有効な基本行列は特異値 を持つ必要があり、これは を に置き換えることで強制される。
基本行列の分解。 とする が与えられたとき、4つの相対姿勢の候補は 、、そして ( の第3列)から構成される。ここで
正しい姿勢は、カイラリティチェック(三角測量された点が両方のカメラの前方にあること)によって選択される。
点集合の剛体アライメント(Kabsch / Procrustes)。 マッチングされ中心化された3次元点集合が与えられたとき、相互共分散 を作り、 を計算する。最適な回転は
であり、行列式の補正は反転を防ぐためのものである。この閉形式の解は、ICPの内側のステップであり、3D-3D対応の標準的な解法である。
回転群への射影。 ノイズを含む「ほぼ回転」行列(例えば平均化や数値的ドリフトから得られたもの)も同様に修復される:そのSVDを取り、特異値を1に、行列式の補正を適用して再構築する。
擬似逆行列と低ランク近似。 Moore-Penrose擬似逆行列は (非ゼロの特異値を逆数にする)であり、最小ノルムの最小二乗解を与える。SVDを 項で切り捨てると、 の最良のランク近似が得られる(Eckart-Young定理)。これは次元削減や行列の条件数分析で使われる。
SLAMにおける意義
SVDはSLAMパイプラインのほぼすべての幾何的ステージに登場する:基本行列からの相対姿勢の初期化、DLTによるランドマークの三角測量、ICP内での点群のアライメント、推定された基礎行列/基本行列の内部制約の強制、そして特異値のギャップを調べることによる退化(平面的な場面、純粋な回転)の診断。「答えは最小特異値に対応する特異ベクトルである」ということに習熟することで、多視点幾何学の大部分が理解できるようになる。