GradSLAM
Murthy 2020 · 論文
一行要約 — 密なSLAMを完全に微分可能な計算グラフとして定式化するPyTorchフレームワーク。トラスト領域最適化、表面測定、フュージョン、レイキャスティングを滑らかに再パラメータ化することで、3D地図から2Dピクセルまで勾配をエンドツーエンドで流せるようにする。
問題
表現学習とSLAMを融合させることは、SLAMシステムが高度にモジュール化され複雑であるがゆえに未解決の問題である。機能的には、SLAMは生のセンサー入力をロボットと環境の状態に関する分布へと変換する — この写像が微分可能であれば、勾配は「特定のピクセル測定が結果として得られる3D地図にどれだけ寄与しているか」に答えることができ、タスクベースの誤差信号を用いて表現をエンドツーエンドで学習できるようになる。しかし、密なSLAMの複数のコンポーネントは微分不可能であるか、勾配がほぼどこでもゼロになる:LMソルバーは減衰/非減衰の離散的な決定を行い、マッピングはクリッピング/インデクシング/しきい値処理、および新規要素か既存要素かの離散的な決定を含み、レイキャスティングはレイに沿って離散的に進む。
手法とアーキテクチャ
GradSLAMは各非滑らかブロックを、可能な限り厳密に近い微分可能な対応物に置き換え、それらを完全なパイプラインへと合成する。
微分可能LM(LM)。 目的関数に対して、LMステップは現在の反復点と先読み反復点における誤差ノルムとを比較して減衰・非減衰を決定しなければならない。GradSLAMは、この離散的な切り替えを、一般化ロジスティック関数に基づく滑らかなゲート関数に置き換える:
ここでは減衰速度を制御し、は減衰係数の範囲を限定する — これにより最適化器全体が1つの微分可能グラフになる。
微分可能なマッピングとフュージョン。 表面測定は3つの方法で平滑化される:各有効ピクセルの測定値は近傍のカーネル関数である(2次元では双線形);ライブ測定値と地図要素との対応付けはソフトであり、深度センサーに基づいたガウス減衰(ここではカメラレイからの径方向深度)によって最も近い候補群に広がる;そしてデフォルトでは、すべての測定値は微分可能なフュージョンステップに渡される新規要素として扱われる。フュージョン(地図サイズを時間ではなく探索済み体積に比例させる)は、従来の重み付き平均化スキームの急峻な打ち切りしきい値を、ロジスティック減衰によって滑らかにする。
微分可能レイキャスティング。 レイは、そのピクセルの深度測定値を中心としたガウス減衰を用いて、通過するすべてのボクセルにわたってプーリングされる;ピクセル位置に関するレイの導関数には、近傍レイに対するIgehy風の有限差分が用いられる。
ケーススタディ。 3つの古典的な密なシステムがこれらのブロックから再構成される:KinectFusion(TSDFボリューム;打ち切り符号付き距離関数は滑らかなロジスティック打ち切りを得る。というのも、における床関数と、における厳格な打ち切りの両方が勾配をブロックしてしまうためである)、PointFusion(本論文のソフト対応付けマッピングとPointFusionのフュージョン規則を用いたサーフェルマップ)、ICP-SLAM(フレーム間ICP-Odometryおよびフレーム対モデルのバリアント)。すべてGPU上で完全に動作し、任意の中間変数 — カメラポーズ、ピクセルの輝度/深度、最適化器のパラメータ、カメラ内部パラメータ — に関する勾配を提供する。
実験結果
- LM対古典的ソルバー: 指数関数・サイン関数・sinc関数それぞれ100個の曲線フィッティング問題群(パラメータはからサンプリング;10/50/100反復)において、LMはパラメータ空間・関数空間のMSEの両方で古典的LMとほぼ同一の性能を発揮する。
- 軌跡精度(ICL-NUIM living_room_traj0分割、ATE/RPE): ICP-Odometryは0.01664/0.0237(非微分可能版は0.029/0.0318);ICP-SLAMは0.01660/0.0204(0.0282/0.0294);PointFusionは0.0072/0.0101(0.0071/0.0099);KinectFusionは0.016/0.021(0.013/0.019) — 微分可能性による「性能上の実質的な変化はない」。
- 再構成品質: 同じシーケンスの部分区間において、微分可能なKinectFusionは21.301のスコアを記録し、Kintinuousの18.625を上回る(本論文は、滑らかな打ち切りがノイズの多いアーティファクトを残す一方、Kintinuousは高信頼度の点のみを保持するため、この比較はやや有利に働くと注意している)。
- TUM RGB-D、ScanNet、および社内のIntel RealSense D435シーケンスに対する箱出しでの定性的な結果。
SLAMにおける意義
GradSLAMは初の汎用的な微分可能SLAMフレームワークであり、「SLAMをレイヤーとして扱う」というスローガンを実行可能な研究コードへと変えた。これはBA-Net、Theseus、LieTorchと同じ潮流に属する — 幾何学的最適化をネットワーク内に埋め込むというものである — そして、per-frameのラベルではなく下流のマッピング品質から得られる教師信号を用いて知覚モジュール(深度の事前知識、センサーノイズモデル、コスト関数)を学習する道を開いた。オープンソースのPyTorchライブラリは、微分可能なロボット知覚研究の一般的な出発点となっている。
関連ノート
- Differentiability — 微分可能な幾何学的パイプラインが重要な理由
- BA-Net — ネットワークレイヤーとしての微分可能バンドル調整
- Theseus — 汎用微分可能非線形最小二乗ライブラリ
- Lietorch — PyTorchにおける微分可能なリー群演算
- ElasticFusion — gradSLAMが微分可能化する系統に関連するサーフェルフュージョンの系譜
- KinectFusion — 微分可能に再実装されるTSDFフュージョンパイプライン