Sparse Bundle Adjustment¶
概要¶
利点
- 大規模な復元を高速に行うことができる
- ある視点からは見えないランドマークがあったとしても復元を行うことができる
- 内部行列を指定できるため,正投影以外にも多様なカメラモデルを用いることができる
欠点
- 問題に応じてハイパーパラメータを調整しなければならない
- 誤差関数のヤコビ行列を計算する際に, so(3) あるいは四元数などに関する微分が現れるため,手法が複雑である
- 誤差関数が減る方向にしかパラメータ探索を行わないため,容易に局所解に落ちてしまう
問題設定¶
出力¶
- 3次元空間におけるランドマーク座標 bi,i=1,…,n
- カメラ姿勢 aj=[tj,ωj],j=1,…,m
ただし tj∈R3 は並進を表すベクトルであり,ωj∈so(3) はカメラの回転を表す行列 R∈SO(3) に対応するリー代数の元である.
目的¶
投影モデルを Q(ai,bj) とし,以下の誤差関数を最小化するような P=[a,b]=[a⊤1,…,a⊤m,b⊤1,…,b⊤n] を求める.
ここで dΣx は x に対応する分散共分散行列を Σx として
で定義される距離関数である.
とおけば,誤差を次のように表現することができる.
解法の概要¶
SBAでは,誤差関数を最小化するような P を見つけるため, P(t) を逐次的に更新し,誤差関数を探索する.すなわち,時刻 t における P の更新量を δ(t)P=[δ⊤a1,…,δ⊤am,δ⊤b1,…,δ⊤bn] として,
解法¶
線型方程式の分解¶
まず J を分解する. P の定義より, A=∂ˆX∂a,B=∂ˆX∂b とおけば, J は
とおくことによって,
以上の結果を用いると, (16) は
という形にすることができる.さらに,
とおけば,
となる.この両辺に
という行列を左から作用させると,
という形にすることができる.ここから2つの方程式を取り出す.すると, (20) において左辺の行列の右上が 0 になったことから, δb を含まない δa についての式 (21) を得ることができる.
具体的な計算¶
∀i≠k について
ここで, ∂(R(v)bi)∂v はGallegoら [2] による計算結果を用いることができる.
3次元点の座標 bi に関する微分 Bij=∂Q(aj,bi)∂bi は次のようになる.
以上より, Aij と Bij の具体的なかたちを求めることができた.あとは,
という3つのステップによって更新量を求めることができる.
計算量の削減¶
ただし V∗i は
である.
(21) には V∗ の逆行列が両辺に含まれている.また, (22) を解いて δb を得る際にも両辺に左から V∗ の逆行列をかける必要がある.V∗ のサイズが大きいとその逆行列を求めるのに多大なコストがかかってしまう.しかし, V∗ がスパースな行列であることに着目すると, V∗ の逆行列は
改良¶
LM法¶
概要¶
I は単位行列であり, λ∈R,λ>0 は damping parameter と呼ばれる値である.それぞれの式を見比べると,
- LM法による更新量の計算方法はGauss-Newton法と最急降下法を組み合わせたものである
- Gauss-Newton法と最急降下法のどちらの性質を強くするかを damping parameter がコントロールしている
- 誤差が減少する (f(β(t)+δ)<f(β(t))) ならばパラメータを β(t+1)←β(t)+δ と更新する.
- 誤差が減少しない (f(β(t)+δ)≥f(β(t))) ならば λ の値を大きくし,再度更新量 δ を計算し直す.誤差が減少するような δ が見つかるまでこれを繰り返す.
LM法は,damping parameter を変化させながら誤差が必ず減少するような更新量 δ を探し出すことで収束を保証している.
導出¶
Σ を分散共分散行列とし,誤差をmahalanobis距離によって次のように定義する.
関数 f を f(β+δ)≈f(β)+Jδ と近似すると, (26) は
となる.これを δ で微分して 0 とおくと,
が得られる.左辺に λI という項を組み込んでしまえば,即座にLM法が得られる.
[1] | Lourakis, Manolis IA, and Antonis A. Argyros. “SBA: A software package for generic sparse bundle adjustment.” ACM Transactions on Mathematical Software (TOMS) 36.1 (2009): 2. |
[2] | Gallego, Guillermo, and Anthony Yezzi. “A compact formula for the derivative of a 3-D rotation in exponential coordinates.” Journal of Mathematical Imaging and Vision 51.3 (2015): 378-384. |
[3] | Levenberg, Kenneth. “A method for the solution of certain non-linear problems in least squares.” Quarterly of applied mathematics 2.2 (1944): 164-168. |
[4] | Coppersmith, Don, and Shmuel Winograd. “Matrix multiplication via arithmetic progressions.” Journal of symbolic computation 9.3 (1990): 251-280. |
[5] | (1, 2) Agarwal, Sameer, et al. “Bundle adjustment in the large.” European conference on computer vision. Springer, Berlin, Heidelberg, 2010. |
[6] | Wright, Stephen, and Jorge Nocedal. “Numerical optimization.” Springer Science 35.67-68 (1999): 7. |