DXSLAM
Li 2020 · 論文
一行要約 — ORB-SLAM2パイプライン内で手作りのORB特徴をHF-Netによる深層局所・大域特徴に置き換え、照明変化やライフロングSLAMのシーン変化に対するロバスト性を大幅に向上させながら、CPU上でリアルタイム動作を実現した。
問題
視覚SLAMにおいては「理論的枠組みはほとんどの側面でよく確立されているものの、特徴抽出と対応付けは多くの場合いまだ経験的に設計されており、複雑な環境では脆弱になりうる」— ORB-SLAM2は、シーンや視点が変化すると以前訪れたシーンを認識できないことが頻発する。CNN特徴ははるかにロバストだが、多くの深層特徴システムはGPUを必要とし、多くのロボットでは実用的でない。DXSLAMは深層特徴が「現代的なSLAMフレームワークにシームレスに組み込める」ことを示し、CPUでのリアルタイム動作を実現した。特徴を変え、実証済みの幾何はそのまま保つというアプローチである。
手法とアーキテクチャ
このフレームワークはORB-SLAM2のトラッキング/ローカルマッピング/ループクロージングのパイプラインをベースに、特徴抽出・再ローカライゼーション・ループクロージングを1つのCNNを中心に再構築したものである。
- HF-Netフロントエンド — 各画像は共有エンコーダと、キーポイント検出スコア、密な局所特徴記述子(両方SuperPointアーキテクチャ)、NetVLAD大域記述子を予測する3つの並列デコーダを通過する。1回の推論で姿勢トラッキング/マッピング用の局所特徴と検索用の大域画像記述子の両方が得られる。HF-NetはSuperPointおよびD2-Netより経験的に選ばれた(SuperPointは低照度下では検出するキーポイントが少なすぎる)。
- 段階的に学習されるFBoW語彙 — 視覚語彙はOpenLORIS-Sceneの系列からHF-Netの局所記述子を用いて学習される: 隣接する学習画像はブルートフォースでマッチングされ、(検出スコアで)上位300件のマッチした記述子が既存の視覚単語に加わり、マッチしなかったものは新たな葉ノードとなり、その後単語は親ノードにクラスタリングされる。バイナリFBoW形式の読み込みはORB-SLAM2の語彙の約6 sに対して約40 msである。
- 大域特徴による再ローカライゼーション — BoW検索とフレーム間マッチングの代わりに、候補は学習された大域記述子によって検索され、グループマッチングに用いられる: 現フレームのキーポイントは検索されたグループ(通常2〜3グループ)のすべてのキーポイントとマッチングされ、その後標準のRANSAC + PnPで姿勢が推定される。これによりORB-SLAM2の再ローカライゼーションの両方の失敗モード(候補が検索されない、単一フレームあたりのマッチが少なすぎる)が解決される。
- 2段階ループクロージング — 上位個の候補は、視覚ベクトル間のBoW類似度スコア
によりランク付けされる。BoWは空間的関係を無視するため、第二段階では各候補への大域記述子の内積距離を計算し、閾値以下の最も近いものだけを受理する — 誤ったループはマップを損なうため、精度優先の設計である。
- CPU最適化 — TensorFlow版HF-NetモデルはIntel OpenVINOで変換され(双線形記述子アップサンプリングは後処理に移動)、FBoWはSIMD命令を使用しているため、「システム全体がGPUやその他のアクセラレータなしでリアルタイムに動作できる」。
実験結果
OpenLORIS-Sceneの再ローカライゼーションテスト(オフィスシーン、制御された難易度要因)では、DXSLAMは照明変化下で0.862(ORB-SLAM2: 0.764)、低照度下で0.994(ORB-SLAM2とDS-SLAMは0)、物体・人物変化下で0.999を記録する。すべての手法は完全な視点反転下で失敗する(0)。New CollegeとCity Centerのループクロージングのプレシジョン・リコール曲線では、フルの手法(HF-FBoW-GLB)がORB-SLAM2のORB-BoWを大きく上回り、大域記述子の段階が顕著な差を生んでいる。TUM RGB-Dの動的系列では、ATE RMSEはfr3_walking_staticでORB-SLAM2の0.3900 mから0.0167 mに、fr3_walking_halfで0.4863 mから0.0759 mに低下する — これは動的性を明示的に扱わないにもかかわらず、動的環境に対応したDS-SLAMと同程度である。特徴抽出は15 WのIntel Core i7-10710U上でOpenVINOを使うと46.2 ms/画像(単純なHF-Netの144.2 msより68%高速、SuperPointは387.5 ms、D2-Netは2484.6 ms必要)であり、ROS全体としてのシステムはIntel NUC上で約15 Hzの姿勢を出力する。
SLAMにおける意義
DXSLAMは古典的SLAMを現代化する最もシンプルな方法を明快に示している: 実証済みの幾何バックエンドを保持し、学習された特徴を差し込むだけである。動的環境やライフロングSLAM設定において、システムを再設計せずにORB-SLAM2に対する大幅なロバスト性向上を示し、さらに珍しく、その手法がGPUを持たないロボットに展開可能であることも証明した。これはレベル3の古典的システムとレベル5の学習特徴研究(SuperPoint、HF-Net)を橋渡しするものであり、多くの実用システムがまさにこのハイブリッド手法に従っている。