DSP-SLAM

Wang (UCL) 2021 · 論文

一行要約 — ORB-SLAM2にカテゴリレベルのDeepSDF形状事前分布を組み込み、単眼・ステレオ・ステレオ+LiDAR入力から完全かつ密な物体モデルをオンラインで再構成する。

問題

事前分布を持たない物体レベルのSLAMシステム(Fusion++など)は、カメラが実際に観測した限りでしか各物体を再構成できない。部分的な視点からは部分的で低品質なモデルしか得られない。一方、インスタンスデータベース方式のシステム(SLAM++)は、すべての物体を事前にスキャンしておく必要がある。DeepSDFのような学習済み形状事前分布は、疎な観測から未観測の物体部分を補完できるが、深いインプリシット形状モデルをリアルタイムのSLAMループに、オンラインの姿勢推定・疎で部分的なデータ・結合マップとともに統合することは未解決の問題であった。FroDOのような事前分布ベースの再構成器は低速なバッチ処理であり、NodeSLAMは密な深度を必要とした。DSP-SLAMは、前景に対する密な物体モデルと背景に対する疎なランドマーク点からなる結合マップを構築し、このギャップを埋める。

手法とアーキテクチャ

ORB-SLAM2(単眼またはステレオ)がカメラの追跡、キーフレーミング、疎な3D点群を提供する。各キーフレームで、Mask R-CNNのマスクと3D検出器が各物体インスタンスI={B,M,D,Tco,0}I=\{\mathcal{B},\mathcal{M},\mathcal{D},\mathbf{T}_{co,0}\}(2Dボックス、マスク、疎な3D点観測(SLAM点、またはわずか50個のLiDAR点)、そしてLiDAR/画像3D検出器または物体点に対するPCAから得られる初期姿勢)を与える。各物体は、デコーダs=G(x,z)s=G(\mathbf{x},\mathbf{z})を持つDeepSDF潜在コードzR64\mathbf{z}\in\mathbb{R}^{64}と、7自由度の姿勢TcoSim(3)\mathbf{T}_{co}\in \mathbf{Sim}(3)として表される。形状と姿勢は2つのエネルギーを最小化することで推定される。表面一致項は、観測された逆投影点をゼロレベル集合へ駆動する。

Esurf=1ΩsuΩsG2(Tocπ1 ⁣(u,D),z)E_{surf}=\frac{1}{\lvert\mathbf{\Omega}_{s}\rvert}\sum_{\mathbf{u}\in\mathbf{\Omega}_{s}}G^{2}\big(\mathbf{T}_{oc}\,\pi^{-1}\!\left(\mathbf{u},\mathcal{D}\right),\,\mathbf{z}\big)

これだけでは部分観測の下で形状が肥大化してしまうため、シルエットを意識した深度教師信号を微分可能なSDFレンダラーが加える。各ピクセル光線に沿って、MM個のサンプリングされた深度が予測SDF(区分線形カットオフσ=0.01\sigma=0.01)から占有度oio_iを得て、光線終端イベント確率ϕi=oij=1i1(1oj)\phi_{i}=o_{i}\prod_{j=1}^{i-1}(1-o_{j})、期待レンダリング深度d^u=i=1M+1ϕidi\hat{d}_{\mathbf{u}}=\sum_{i=1}^{M+1}\phi_{i}d_{i}を与え、以下を得る。

Erend=1ΩruΩr(dud^u)2E_{rend}=\frac{1}{\lvert\mathbf{\Omega}_{r}\rvert}\sum_{\mathbf{u}\in\mathbf{\Omega}_{r}}(d_{\mathbf{u}}-\hat{d}_{\mathbf{u}})^{2}

ここでΩr\mathbf{\Omega}_{r}はボックス内かつマスク外のピクセルを追加し、背景深度1.1dmax1.1\,d_{max}を割り当てる。これは、シルエットの外にはみ出す形状にペナルティを課す。総エネルギーE=λsEsurf+λrErend+λcz2E=\lambda_{s}E_{surf}+\lambda_{r}E_{rend}+\lambda_{c}\lVert\mathbf{z}\rVert^{2}(λs=100\lambda_s=100, λr=2.5\lambda_r=2.5, λc=0.25\lambda_c=0.25)は、z=0\mathbf{z}=\mathbf{0}から始めてネットワークを通した解析的ヤコビアンを用いるガウス・ニュートン法で最小化される。これは1次法の勾配降下よりも1反復あたりおよそ1桁高速であり(両項を含む場合で20msに対して183ms)、必要な反復数も50回ではなく約10回で済む。再構成された物体は、その後カメラ姿勢CC、物体姿勢OO、点PPに関する結合ファクターグラフに入る。

C,O,P=argmin{C,O,P}i,jeco(Twci,Twoj)Σi,j+i,kecp(Twci,wpk)Σi,kC^{*},O^{*},P^{*}=\mathop{\arg\min}_{\{C,O,P\}}\sum_{i,j}\big\lVert\mathbf{e}_{co}(\mathbf{T}_{wc_{i}},\mathbf{T}_{wo_{j}})\big\rVert_{\Sigma_{i,j}}+\sum_{i,k}\big\lVert\mathbf{e}_{cp}(\mathbf{T}_{wc_{i}},{}^{w}\mathbf{p}_{k})\big\rVert_{\Sigma_{i,k}}

カメラ-物体残差はeco=log(Tco1Twc1Two)\mathbf{e}_{co}=\log(\mathbf{T}^{-1}_{co}\mathbf{T}^{-1}_{wc}\mathbf{T}_{wo})であり、標準的なORB-SLAM2の再投影残差ecp\mathbf{e}_{cp}とともに、g2oにおけるLevenberg-Marquardt法で解かれる。物体は追加のランドマークとして振る舞う。データアソシエーションは、検出結果を(LiDARの場合は)3Dボックス距離、(単眼/ステレオの場合は)共有された特徴マッチによってマップ上の物体に対応付ける。再観測された物体は姿勢のみの更新を受ける。

実験結果

KITTI3D(7481フレーム、単一画像+LiDAR、ベースラインと同じDeepSDF事前分布と初期化を使用)において、DSP-SLAMはほぼ全ての物体姿勢指標でオートラベリングを上回る。BEV [email protected]は83.31対80.70(Easy)、75.28対63.36(Moderate)。nuScenes [email protected]は88.01対86.52(E)、76.15対64.44(M)であり、形状も視覚的に改善している(セダンがもはや「カブトムシ」形に再構成されない)。KITTIオドメトリベンチマークでは、ステレオ+LiDARのDSP-SLAMは、平均で100mあたり並進0.70%/回転0.22度に達し、その基盤であるORB-SLAM2(0.72/0.22)を物体の多いシーケンス03、05、06、08で改善し、フレームあたりわずか数百個のLiDAR点を使用しながらSuMa++(0.70/0.29)と同水準に達する。物体あたり50点に減らしてもほとんど精度は変わらない(0.72/0.22)。ステレオのみでは0.75/0.25であり、5HzでキーフレームごとにBAを行う場合はORB-SLAM2(0.72/0.22)と一致する。全体システムは約10fpsで動作し、Freiburg CarsおよびRedwood-OSの椅子データセットにおいて単眼入力から完全な物体再構成を生成する。

SLAMにおける意義

DSP-SLAMは、学習済みインプリシット形状事前分布をオンラインの物体再構成に統合した最初のSLAMシステムであり、SLAM++のビジョン(生の幾何ではなく物体で構成されたマップ)を深層学習時代に向けて更新した。スキャン済みCADモデルのデータベースの代わりに、潜在的な形状空間が1つのカテゴリ全体を覆う。ニューラルSDFを通じた2次最適化は、深い形状フィッティングがリアルタイムループの中で動作できることを示し、これは古典的な物体レベルSLAM(SLAM++、Fusion++、NodeSLAM)と後続のニューラルフィールドによる物体マッピング(vMAP)との間の重要な橋渡しとなっている。サーフェルの塊ではなく、意味的に意味のある完全な物体モデルが必要な場合に良い雛形となる。

ハンズオン

関連ノート