LSD-SLAM: Large-Scale Direct Monocular SLAM
つくばチャレンジに使うネタとして LSD-SLAM の論文を読んだので,そのまとめとメモ.
0. アブストラクト
特徴点を用いず,画素値を直接的に用いて単眼 SLAM を実現するアルゴリズムを提唱する.このアルゴリズムは近年提唱されている画素値を直接的に使用する方法とは異なり,大きなスケールで一貫したマップを作成するができる.画素値直接利用法を用いてイメージ間のアラインメントを実施することによって高精度なポーズを推定することが出来,3 次元環境を実時間で再構築することが出来る.ここで,3 次元環境はキーフレームのポーズグラフで表現されており,またそれぞれのキーフレームには準深度マップがひも付けられている.これら(キーフレーム,準深度マップ,ポーズグラフ)は,短基線長ステレオ比較をピクセルレベルで繰り返し行うことによってフィルタリングされ,リファインされていく.明示的にスケールドリフトを取り込む形で定式化することによって,対象とするシーンスケールが大きく変わるようなチャレンジングなシーケンスにおいてもマッピングをすることが可能になる.下記 2 つの新たなアプローチによって,これが可能になった.
本研究で提唱する単眼 SLAM システムは,実時間で CPU 上で動作する.
1.イントロダクション
単眼カメラを用いた実時間 SLAM,および 3 次元復元は段々と研究のトピックとして人気が高まってきている.これには (1) UAV の航行に使うため,(2) Virtual Reality のアプリケーションに使うためという二つの理由が挙げられる.
単眼カメラを用いた SLAM の最大の利点であるとともに困難でもある点は,本質的なスケールの不定性にある.環境のスケールが直接的に観測できず,かつ時間経過とともにドリフトするという点が主な誤差要因となっている.しかしながら,これは利点と考えることもでき,異なるスケール環境間で継ぎ目無くスイッチすることが出来る.つまり,屋内のデスク周辺環境から屋外の環境といった具合である.深度カメラやステレオカメラなどのスケールされたセンサでは,信頼性高く計測できるレンジが限られているため,この柔軟性 (スケールが異なる環境下でも継ぎ目無く計測できる) を提供することは出来ない.
1.1 関連する研究
特徴点に基づく方法 (Feature-Based Methods)
特徴点に基づく方法では,処理の流れは大きく2つに分けられる.まず,「画像から幾何学的情報を推定(特徴点の抜き出し)」を実施し,次に「特徴点からのカメラの位置とシーン幾何の計算」を実施する.この方法の短所は,画像上にある情報のうち,特徴点としてあがってくるものしか使えないということ.
直接的な方法 (Direct Methods)
直接 Visual Odometry 法では,画像の輝度を直接用いる.つまり画像のすべての情報を活用することが出来る.この方法では,特徴点をあまり得られないような環境下であっても,高い精度でロバストにマッピングを実施できる.画素値を直接的に用いてイメージ間のアラインメントを実施する方法は,RGB-D やステレオセンサー向けに確立されていたが,近年モノカメラでの直接 Visual Odometry 法が提唱された.Full Dense Depth Map を計算する方法がいくつか提案されたが,これらの方法では計算量が多すぎるために通常の CPU では計算が間に合わなかった.ここで Semi-Dense Depth Map を構築する方法が提唱された.この方法を用いれば,計算量を劇的に減少させることが可能で,かつCPU 上でリアルタイムに実行することが出来る.ただし,これらの方法は Visual Odometry として提唱されていた.つまり,局所的なカメラの挙動をトラックするのみで,ループクロージャーを伴うグローバルに一貫した地図の生成は行っていなかった.
ポーズグラフ最適化 (Pose Graph Optimization)
これは,SLAM のテクニックとしてよく知られた方法であるが,一貫したグローバルマップの生成に使われる.復元する環境は,たくさんのキーフレームの集合として表現される.このキーフレームは,一つ一つがカメラのポーズをあらわしており,前後のキーフレームポーズ間の制約条件で結び付けられている.このキーフレーム間の関係は,g2o などのグラフ最適化ツールを用いて最適化することが出来る.
過去の研究の例として {14} では,RGB-D SLAM を用いる方法が提唱された.ここでは幾何誤差を取り込むことにより,テクスチャ情報が少ない環境下においてもトラッキングを可能にしている.また,単眼 SLAM の本質的な問題であるスケールドリフトに対処するために {23} ではキーポイントを用いた単眼 SLAM 法を提唱している.この方法では,カメラのポーズ間の関係を剛体変換として扱うのではなく,相似変換として扱っている.
1.2 研究の寄与と論文のアウトライン
LSD-SLAM は,局所的にカメラの動きをトラックするのみでなく,グローバルに一貫性のあるマップを作成することが出来る.LSD-SLAM では,「画素値を直接的に用いるイメージ間アラインメント」と「フィルタリングベースの準密深度マップ」を用いている.
最終的なグローバルマップは,キーフレームをノード,キーフレーム間の 3 次元相似変換をエッジとして表したポーズグラフによって表現される.また,このポーズグラフには対象環境のスケール変化も取り込まれており,ドリフトを抑制することが出来る.この研究の寄与は 2 つあり,以下のとおり.
- Direct Monocular SLAM の枠組みを提示したこと,特に二つのキーフレーム間の相似変換 をスケール変化を考慮しつつ推定できるをアルゴリズムを提示したこと.
- 推定深度の不確かさを確率論的にトラッキングに取り込んだこと.
2. Preliminaries
ここでは,本アプローチに関連する数学的コンセプト・表記法のサマリーを導入する.とりわけ,下記 3 つの要約を記載する.
2.1 3 次元剛体変換と 3 次元相似変換
3 次元剛体変換
3 次元剛体変換 は 3 次元での回転運動と並進運動からなり,下記のように定義される.はユークリッド変換 (すなわち剛体変換) を表す.
with and
ここで,は 3 次元の回転群を表す.最適化計算をするために,カメラポーズの最小表現が必要となるが,これは対応するリー代数要素を用いて表現する.この要素は,指数マップを用いてにマッピングされ,逆変換はとあらわされる.ここからは,ポーズを表現するためにの要素を用い,以降の表記をベクトル とするが,これは 3D 並進と 3D 回転を表現するベクタである.ここで, frame i から frame j への変換を と記述し,簡単のために連結オペレータ を下記のように定義する.
更に,3 次元の投影ワープ関数として,を定義する.この関数は,3次元空間上の点 とその逆深度 d を によってカメラの投影面座標に投影する.
with
2.2 重み付きのガウス・ニュートン法による最適化
二つのイメージのアラインメントは,ガウス・ニュートン法を用いて測光誤差を最小化することで実現される.以下,誤差関数の定義である.
上式は に関しての最尤推定器となる.反復計算のイメージとしては,初期推定 から始まり,それぞれの反復のステージで増分 が求められるが,この増分は上記 E のガウス・ニュートン二次近似式を最小化することによって求められる.
with
ここで,J は残差ベクトル の微分値を表しており,そして は E のヘッセ行列のガウス・ニュートン近似を表している.新しい推定値は以下のように表される.
オクルージョンや反射に起因するアウトライアに対してロバスト処理するために,ことなる重み付けスキームが [14] によって提唱された.この方法では,反復的に最小二乗法の重み付けを更新していく.毎回の反復の中で,重み付け行列 が計算されるが,ここでは大きな残差に対しての重み付けが減らされる.このスキームを取り入れると,繰り返し解かれるエラー関数は以下のようになる.
残差が独立していると仮定すると,最終反復サイクルのヘッセ行列の逆行列,つまり は最終結果に上乗せされる誤差の共分散行列 の推定である.つまり,
実際は残差は独立ではないため, は下界である.しかしながら,それぞれ異なる自由度間のノイズの相関情報を保持している.
3. Large Scale Direct Monocular SLAM
3.1 アルゴリズムの流れ
アルゴリズムは,大きく分けると「トラッキング (Tracking)」「深度マップ推定 (Depth Map Estimation)」「マップ最適化 (Map Optimization)」の 3 つの部分から構成される.
新しいカメラ画像をトラックし続ける.つまり,現状のキーフレームと新しいフレーム間の剛体変換 を推定し続ける.ここで,前回のフレームとキーフレームの剛体変換が初期値として用いられる.
- 深度マップ推定アルゴリズム
トラックされているフレームを使って,深度マップをリファインするか新たにキーフレームを置き換えるかする.Depth is refined by filtering over many per-pixel, small-baseline stereo comparisons coupled with interleaved spatial regularization as originally proposed in [9]. もしカメラがキーフレーム位置から大きく動いたばあい,新たなキーフレームを作成する.このフレームはすでに存在する近傍のキーフレームの点を投影することで初期化される.
- マップ最適化アルゴリズム
キーフレームが新たなものに置き換えられた場合,つまりこれ以上深度マップがリファインされない場合,置き換えられたキーフレームはマップ最適化のための要素として Global Map に取り込まれる.ループクロージャーとスケールのドリフトを検知するために,近傍の既存キーフレームとの相似変換 が推定される.
- 初期化
LSD-SLAM 開始時,初期のキーフレームには適当な深度マップと分散を与えておけば十分である.最初の数秒間でカメラに横方向の動きを与えてあげれば,アルゴリズムは Certain Configuraiton をロックする.
3.2 マップ表現方法
マップはキーフレームのポーズグラフとして表現される.それぞれのキーフレーム には,画像 ,逆深度マップ ,逆深度マップの分散 が付随する.ここで,深度マップとその分散値に関しては,全ピクセルのサブセット に関してのみ定義されることに注意が必要である.つまり,画素値の勾配が十分に大きい画像領域のみが となる.サブセットを限定しているために,Semi-Dense になる.またエッジ は,キーフレーム間の相対アラインメント情報を相似変換 として保持しており,この値の分散も 保持している.
3.3 新しいフレームのトラッキング (画素値を直接的に使ったイメージアラインメント )
現在のキーフレームを とすると,新しいイメージ の相対 3次元ポーズ は,下記の分散値で正規化された測光誤差関数を最小化することによって求められる.
with
ここで, は Huber Norm (下記参照) をあらわしている.
3.4 深度マップの推定
- キーフレームの選択
もしカメラが現在取得しているマップ域から大きく離れた場合,一番最新のトラックされたフレームを用いて新しいキーフレームを作る.カメラが現在取得しているマップ域から大きく離れたかどうかは,キーフレームと現在のフレームの相対距離・相対角度によって決まる.
閾値は上式によって定義され,Wは重み付けのための行列.ここで,それぞれのキーフレームでは,それぞれの深度の逆数の平均値が 1 になるようにスケールされている.そのため,閾値自体はシーンのスケールに依存している.
- 深度マップの作成
新しいフレームがキーフレームになることが決定した場合,そのキーフレームの保持する深度マップは直前キーフレーム深度マップが保持する点群を投影して初期化される.投影後,[9] にて提案されている Spatial Regularization とアウトライアの除去が行われる.その後,深度マップは逆深度の平均値が 1 になるようにスケーリングされる.このスケーリングファクタは sim(3) に取り込まれ,最終的に前回のキーフレームが置き換えられる.
- 深度マップの改善
キーフレームになれなかったフレームは,現在のキーフレームを Refine するために使用される.A high number of very efficient small-baseline stero comparison is performed for image regions where the expected stereo accuracy is efficiently large. 結果は深度マップに取り込まれ,その結果深度マップが Refine され,またもしかすると新たなピクセルが加えられるかもしれない.これは [9] にて提案されている Filterling Approach を用いて実施される.
3.5 キーフレーム間トラッキング (フレーム間制約条件の取得, イメージ間の相似変換 計算)
相似変換 を用いた直接的イメージアラインメント
Monocular SLAM の場合,RGB-D SLAM や Stereo SLAM と異なり,スケールが不定である.つまり,対象としている環境の絶対的なスケールを求めることは出来ない.カメラの軌跡が長くなると,このスケールに対する不定性は誤差の要因となる.すべての距離はスケールまでしか定義することができない (絶対距離を求めることは出来ない.).このため,閾値に基づくアウトライア除去やパラメータ化されたカーネルを用いようとしても不定性が残ってしまう.我々は,シーン深度とトラッキングの正確さの相関を用いることによってこの問題を解決した.: キーフレームに付随する深度マップは,逆深度の平均値が 1 になるようにスケールされる.その代わり,キーフレーム間エッジは,三次元相似変換 を仮定・推定する.三次元相似変換 を仮定することで,キーフレーム間のスケール変化を取り込むことが出来た.これによって,特にループクロージャーの場面でスケールによるドリフトの影響を検知することができる.
画素を直接的に用い,かつスケール変化にも対応しながら でのスケールの異なるキーフレーム同士のアラインメントを実現する方法を提案する.ここでは測光残差 に加えて,深度残差 を導入した.この追加項がキーフレーム間の逆深度乖離に対するペナルティとして作用することで,二つのキーフレーム間のスケール変換を推定することが出来る.最小化する誤差関数は以下のように再定義される.
ここで,測光残差 と分散 は前述の定義のとおりで,新たに導入した深度残差 とその分散 を下記のように定義する.
は Transform された後の点を表している.正規化された測光残差と深度残差の和には Huber Norm が用いられているが,ここでは,accounts for the fact that if one is an outlier, the other typically is as well. また でのトラッキングをする場合,測光残差のみではスケールを拘束できない.そのため,深度残差を含めることが必須となる.最小化自体は でのアラインメントのケースと類似する形で,重み付けを変更しながらのガウス・ニュートン法を用いて実施することができる.実際には, でのトラッキングは, でのトラッキング比べて少しだけコストが高くなる.
制約条件探索
あらたなキーフレーム がマップに加えられた後,ループクロージャする可能性のあるキーフレーム が複数ピックアップされる.本研究では,もっとも近い 10 個のキーフレームと,アピアランスに基づくアルゴリズムから選択された適した候補キーフレームを用いた.間違ったループクロージャの発生を避けるため, Reciprocal Tracking Check を実施した.ここで,Reciprocal Tracking Check とは,それぞれの候補 に対して,独立に と をトラッキングする.そして,二つの推定値に対する下記の計算値が十分に小さければループクロージャとしてグローバルマップに加える.
ここで,随伴行列 は を正しい正接空間に変換するために使われる.
3 次元相似変換 によるトラッキングの収束半径
直接イメージアラインメント法の重要な制約は,本質的にこの問題が Non Convex であるということに起因する.つまり,十分に正確な初期化が必要となる.新しいカメラフレームをトラッキングしている場合には,十分によい初期化を達成することができる.(手前のフレームのポーズがわかっているから.) しかし,これは Loop Closure を求める際には当てはまらない.
この問題に対する一つの解として,初期値計算のために使用するキーポイントの数を減らすというアプローチが考えられる.既存の逆深度マップからの深度値を利用した場合,対応付けがわかっている 2つの 3次元点群セットのアライニングが必要となるが,この計算自体は効率的に実施することが出来る.詳細はたとえば {13} の文献を参照の事.さらに,実際には大きなスケールのループクロージャであっても,下記 2 つのメソッドを用いることで十分大きな収束半径を維持できることがわかった.
- Efficient Second Order Minimization (ESM)
文献 {17} によると,ESM はイメージアラインメントに対して飛躍的な精度向上をもたらさないことが確認されているが,われわれの今回の研究では ESM を用いることによってわずかに収束半径が大きくなることがわかった.
- Coarse-to-Fine Approach
ピラミッドアプローチ自体は,直接イメージアラインメント法ではよく使われているが,通常よりももっと解像度を下げること (20 x 15 pixels) でさらに収束半径を大きくすることが出来た.
3.6 マップ最適化
マップは,キーフレームのセットとそれらをつなぐ 3 次元相似変換 から構成されているが,バックグラウンドで継続的に最適化されている.この最適化にはポーズグラフ最適化法を用いている.ここで最小化される誤差関数は下記で定義される. は世界座標系を表す.
4. 結果
我々は,LSD-SLAM を定量評価したが,用いた評価環境は以下の 2 つ.
- インターネットで公開されているデータセットに対する評価.
- 実際の屋外環境で,モノカメラを手に持ちながら長い距離を移動しつつ撮影し.
4.1 長い軌跡に対する定性的評価
長い距離を移動し,かつ困難な環境下でアルゴリズムのテストを行った.また,ここでのテストはカメラの回転や撮影シーンの大幅なスケール変化,ループクロージャなども含んでいる.Figure 7 では,全長およそ 500m,6分 の距離に対してループクロージャが見つかる前後のマップが示されている.Figure 8 では,シーン深度が大きく異なる難しい軌跡の例が示されており,こちらもループクロージャを含んでいる.
4.2 定量的評価
我々は,LSD-SLAM をウェブ上の公開された RGB-D データセットを用いて評価した. このデータセットには素早い回転動作,強い被写体ブレ,ローリングシャッターによる影響などが含まれており,モノカメラによる SLAM に対しては非常にチャレンジングなデータである.開始時点での深度マップを用いてシステムを立ち上げることによって,正しい初期スケールをシステムに与えた.Table 9 にて軌跡誤差を示し,たのアプローチによる方法と比較している.
4.3 相似変換トラッキング (sim(3)) の収束半径
我々は,二つの典型的なシーケンスに対して,収束半径を評価した.その結果が Figure 10 に示されている.直接イメージアラインメントはコンベックス問題ではないけれども,セクション 3.5 で提唱した方法を用いることで,驚くほど大きなカメラ挙動でもトラックできることがわかった.また,これらの方法は収束半径を大きくするのみで得られる最終結果の精度に対しては影響しないこともわかった.
5. 結論
我々は特徴点を用いない LSD-SLAM と呼ばれる方法を提唱した.この方法は単眼の直接 SLAM アルゴリズムであり,CPU 上で実時間で動かすことが出来る.すでに提唱されている直接的なアプローチはすべて純粋なオドメトリであるが,これらと違って今回の方法ではグローバルマップの維持とトラックを行う.またこのグローバルマップは,キーフレームから構成されるポーズグラフで表され,それぞれのキーフレームには確率的準深度マップが付随している.今回提唱した方法で目新しい点は 2 つあり,それは下記の 2 点である.
- 2 つのキーフレーム間の 3 次元相似変換をダイレクトに求める方法.この方法はスケール変化を検知し,かつ明示的に取り込むことが出来る.
- トラッキングに用いられる推定深度マップに対し,ノイズを取り込むために確率的アプローチを取り入れたこと.
マップはポイントクラウドとして表現され,準密で精度の高い 3 次元構造の復元を可能にしている.我々は実験として,500m 以上の距離を手持ち撮影した映像に対してトラッキングとマッピングを行った.とりわけ,この映像にはシーケンスの中でスケールが大きく変化し (平均逆深度が 20cm から 10m まで変化している.) ,またおおくの回転運動がふくまれている.結果として,本方法の多用途性,ロバスト性,柔軟性を示しことができた.